Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion Documentation/genlock.txt
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,12 @@ instance for a lock known as a handle. Handles can be shared between user
space and kernel space to allow a kernel driver to unlock or lock a buffer
on behalf of a user process.

Locks within a process using a single genlock handle follow the same rules for
exclusive write locks with multiple readers. Genlock cannot provide deadlock
protection because the same handle can be used simultaneously by a producer and
consumer. In practice in the event that the client creates a deadlock an error
will still be generated when the timeout expires.

Kernel API

Access to the genlock API can either be via the in-kernel API or via an
Expand Down Expand Up @@ -137,7 +143,12 @@ genlock_lock.op:
* GENLOCK_UNLOCK - unlock an existing lock

Pass flags in genlock_lock.flags:
* GENLOCK_NOBLOCK - Do not block if the lock is already taken
* GENLOCK_NOBLOCK - Do not block if the lock is already taken
* GENLOCK_WRITE_TO_READ - Convert a write lock that the handle owns to a read
lock. For instance graphics may hold a write lock
while rendering the back buffer then when swapping
convert the lock to a read lock to copy the front
buffer in the next frame for preserved buffers.

Pass a timeout value in milliseconds in genlock_lock.timeout.
genlock_lock.flags and genlock_lock.timeout are not used for UNLOCK.
Expand Down
53 changes: 53 additions & 0 deletions arch/arm/boot/compressed/ashldi3.S
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
/* Copyright 1995, 1996, 1998, 1999, 2000, 2003, 2004, 2005
Free Software Foundation, Inc.

This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.

In addition to the permissions in the GNU General Public License, the
Free Software Foundation gives you unlimited permission to link the
compiled version of this file into combinations with other programs,
and to distribute those combinations without any restriction coming
from the use of this file. (The General Public License restrictions
do apply in other respects; for example, they cover modification of
the file, and distribution when not linked into a combine
executable.)

This file is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; see the file COPYING. If not, write to
the Free Software Foundation, 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA. */


#include <linux/linkage.h>

#ifdef __ARMEB__
#define al r1
#define ah r0
#else
#define al r0
#define ah r1
#endif

ENTRY(__ashldi3)
ENTRY(__aeabi_llsl)

subs r3, r2, #32
rsb ip, r2, #32
movmi ah, ah, lsl r2
movpl ah, al, lsl r3
ARM( orrmi ah, ah, al, lsr ip )
THUMB( lsrmi r3, al, ip )
THUMB( orrmi ah, ah, r3 )
mov al, al, lsl r2
mov pc, lr

ENDPROC(__ashldi3)
ENDPROC(__aeabi_llsl)
Binary file added arch/arm/boot/compressed/piggy.xzkern
Binary file not shown.
4 changes: 2 additions & 2 deletions arch/arm/configs/mediapad_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ CONFIG_IRQ_WORK=y
CONFIG_EXPERIMENTAL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_CROSS_COMPILE=""
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION="-aftersilence"
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_LZMA=y
Expand Down Expand Up @@ -480,7 +480,7 @@ CONFIG_MSM_QDSP6_APR=y
# CONFIG_MSM_RPC_VIBRATOR is not set
CONFIG_MSM_SPM_V1=y
# CONFIG_MSM_SPM_V2 is not set
# CONFIG_MSM_MULTIMEDIA_USE_ION is not set
CONFIG_MSM_MULTIMEDIA_USE_ION=y
# CONFIG_MSM_RTB is not set
CONFIG_S7_FEATURE_OEMINFO=y
# CONFIG_S7_FEATURE_HANDSET is not set
Expand Down
8 changes: 4 additions & 4 deletions arch/arm/mach-msm/board-msm8x60_s7pro.c
Original file line number Diff line number Diff line change
Expand Up @@ -3507,10 +3507,10 @@ static void __init msm8x60_init_dsps(void)
#define MSM_ION_SF_SIZE 0x1800000 /* 24MB */
#define MSM_ION_CAMERA_SIZE MSM_PMEM_ADSP_SIZE
#define MSM_ION_MM_FW_SIZE 0x200000 /* (2MB) */
#define MSM_ION_MM_SIZE 0x3600000 /* (54MB) */ Must be a multiple of 64K */
#define MSM_ION_MFC_SIZE SZ_8K
#define MSM_ION_WB_SIZE 0x600000 /* 6MB */
#define MSM_ION_AUDIO_SIZE MSM_PMEM_AUDIO_SIZE
#define MSM_ION_MM_SIZE MSM_PMEM_ADSP_SIZE

#ifdef CONFIG_MSM_MULTIMEDIA_USE_ION
#define MSM_ION_HEAP_NUM 8
Expand Down Expand Up @@ -6803,7 +6803,7 @@ static struct ion_cp_heap_pdata cp_mm_ion_pdata = {
.release_region = release_smi_region,
.setup_region = setup_smi_region,
.iommu_map_all = 1,
.iommu_2x_map_domain = VIDEO_DOMAIN,
//.iommu_2x_map_domain = VIDEO_DOMAIN,
};

static struct ion_cp_heap_pdata cp_mfc_ion_pdata = {
Expand Down Expand Up @@ -7560,7 +7560,7 @@ static struct pm8xxx_vibrator_platform_data pm8058_vib_pdata = {
};

static struct pm8xxx_rtc_platform_data pm8058_rtc_pdata = {
.rtc_write_enable = false,
.rtc_write_enable = true,
.rtc_alarm_powerup = false,
};

Expand Down Expand Up @@ -9759,7 +9759,7 @@ static int msm_sdcc_vreg_enable(struct sdcc_reg *vreg)
int rc=0;
if (!vreg->enabled) {
rc = regulator_enable(vreg->reg);
if (rc) {
if (rc) {
pr_err("%s: regulator_enable(%s) failed. rc=%d\n",
__func__, vreg->reg_name, rc);
goto out;
Expand Down
30 changes: 9 additions & 21 deletions build.sh
Original file line number Diff line number Diff line change
@@ -1,28 +1,16 @@
export KBUILD_BUILD_VERSION="3.0.38"
export KBUILD_BUILD_USER="Mediapad EX"
export CROSS_COMPILE="/home/ubu/arm-eabi-4.4.3/bin/arm-eabi-"
#export KBUILD_BUILD_VERSION="3.0.38"
#export KBUILD_BUILD_USER="Mediapad EX"
export CROSS_COMPILE="~/android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-"

ROOTFS_PATH="/home/ubu/mediapad/ramdisk"
ramdisk_dir=/home/ubu/mediapad/ramdisk/ramdisk.gz
CMDLINE="console=console=ttyHSL0,115200,n8 androidboot.hardware=hws7300u vmalloc=578M kgsl.ptcount=16"
BASE="0x40300000"
#ROOTFS_PATH="/home/ubu/mediapad/ramdisk"
#ramdisk_dir=/home/ubu/mediapad/ramdisk/ramdisk.gz
#CMDLINE="console=console=ttyHSL0,115200,n8 androidboot.hardware=hws7300u vmalloc=578M kgsl.ptcount=16"
#BASE="0x40300000"

# Do not modify below this line

NB_CPU=`grep processor /proc/cpuinfo | wc -l`

let NB_CPU+=1

CONFIG=$1

make $CONFIG

CONFIG='mediapad_defconfig'
make ARCH=arm $CONFIG
make ARCH=arm -j$NB_CPU CROSS_COMPILE=$CROSS_COMPILE

cp arch/arm/boot/zImage .

find -name '*.ko' -exec cp -av {} $ROOTFS_PATH/lib/modules/ \;

# Make boot.img

./mkbootimg --cmdline "$CMDLINE" --base $BASE --kernel zImage --ramdisk $ramdisk_dir -o boot_new.img
Loading