kfx [Wed, 30 May 2012 07:31:23 +0000 (15:31 +0800)]
sc8800: tmp_buf: Cross-border access
邱建斌 [Tue, 29 May 2012 11:58:22 +0000 (19:58 +0800)]
fix compiler warnings and add calling adjust volume code
黄涛 [Tue, 29 May 2012 11:49:08 +0000 (19:49 +0800)]
rk30: sdk: temporary increase voltage for SDK release
陈恒明 [Tue, 29 May 2012 08:27:08 +0000 (16:27 +0800)]
Revert "vpu_service: replace spin_lock by mutex and use irq_thread to handle irq"
This reverts commit
d21aa293426f5dfdb1fd9173d3b4a8c64078bb1c.
hecanyang [Tue, 29 May 2012 06:58:01 +0000 (14:58 +0800)]
rename some simple function's name
陈恒明 [Tue, 29 May 2012 06:47:20 +0000 (14:47 +0800)]
vpu_service: replace spin_lock by mutex and use irq_thread to handle irq
hecanyang [Tue, 29 May 2012 06:18:18 +0000 (14:18 +0800)]
fix data training bug, add ODT disable frequency macro,
and reduce change frequency period
Russell King [Wed, 16 May 2012 14:19:20 +0000 (15:19 +0100)]
ARM: prevent VM_GROWSDOWN mmaps extending below FIRST_USER_ADDRESS
commit
9b61a4d1b2064dbd0c9e61754305ac852170509f upstream.
Reported-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Tim Bird [Wed, 2 May 2012 21:55:39 +0000 (22:55 +0100)]
ARM: 7410/1: Add extra clobber registers for assembly in kernel_execve
commit
e787ec1376e862fcea1bfd523feb7c5fb43ecdb9 upstream.
The inline assembly in kernel_execve() uses r8 and r9. Since this
code sequence does not return, it usually doesn't matter if the
register clobber list is accurate. However, I saw a case where a
particular version of gcc used r8 as an intermediate for the value
eventually passed to r9. Because r8 is used in the inline
assembly, and not mentioned in the clobber list, r9 was set
to an incorrect value.
This resulted in a kernel panic on execution of the first user-space
program in the system. r9 is used in ret_to_user as the thread_info
pointer, and if it's wrong, bad things happen.
Signed-off-by: Tim Bird <tim.bird@am.sony.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Will Deacon [Fri, 27 Apr 2012 11:45:07 +0000 (12:45 +0100)]
ARM: 7403/1: tls: remove covert channel via TPIDRURW
commit
6a1c53124aa161eb624ce7b1e40ade728186d34c upstream.
TPIDRURW is a user read/write register forming part of the group of
thread registers in more recent versions of the ARM architecture (~v6+).
Currently, the kernel does not touch this register, which allows tasks
to communicate covertly by reading and writing to the register without
context-switching affecting its contents.
This patch clears TPIDRURW when TPIDRURO is updated via the set_tls
macro, which is called directly from __switch_to. Since the current
behaviour makes the register useless to userspace as far as thread
pointers are concerned, simply clearing the register (rather than saving
and restoring it) will not cause any problems to userspace.
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Jonathan Austin [Thu, 12 Apr 2012 16:45:25 +0000 (17:45 +0100)]
ARM: 7384/1: ThumbEE: Disable userspace TEEHBR access for !CONFIG_ARM_THUMBEE
commit
078c04545ba56da21567728a909a496df5ff730d upstream.
Currently when ThumbEE is not enabled (!CONFIG_ARM_THUMBEE) the ThumbEE
register states are not saved/restored at context switch. The default state
of the ThumbEE Ctrl register (TEECR) allows userspace accesses to the
ThumbEE Base Handler register (TEEHBR). This can cause unexpected behaviour
when people use ThumbEE on !CONFIG_ARM_THUMBEE kernels, as well as allowing
covert communication - eg between userspace tasks running inside chroot
jails.
This patch sets up TEECR in order to prevent user-space access to TEEHBR
when !CONFIG_ARM_THUMBEE. In this case, tasks are sent SIGILL if they try to
access TEEHBR.
Reviewed-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Jonathan Austin <jonathan.austin@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Rabin Vincent [Wed, 15 Feb 2012 15:01:42 +0000 (16:01 +0100)]
ARM: 7325/1: fix v7 boot with lockdep enabled
commit
8e43a905dd574f54c5715d978318290ceafbe275 upstream.
Bootup with lockdep enabled has been broken on v7 since
b46c0f74657d
("ARM: 7321/1: cache-v7: Disable preemption when reading CCSIDR").
This is because v7_setup (which is called very early during boot) calls
v7_flush_dcache_all, and the save_and_disable_irqs added by that patch
ends up attempting to call into lockdep C code (trace_hardirqs_off())
when we are in no position to execute it (no stack, MMU off).
Fix this by using a notrace variant of save_and_disable_irqs. The code
already uses the notrace variant of restore_irqs.
Reviewed-by: Nicolas Pitre <nico@linaro.org>
Acked-by: Stephen Boyd <sboyd@codeaurora.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Rabin Vincent <rabin@rab.in>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Stephen Boyd [Tue, 7 Feb 2012 18:42:07 +0000 (19:42 +0100)]
ARM: 7321/1: cache-v7: Disable preemption when reading CCSIDR
commit
b46c0f74657d1fe1c1b0c1452631cc38a9e6987f upstream.
armv7's flush_cache_all() flushes caches via set/way. To
determine the cache attributes (line size, number of sets,
etc.) the assembly first writes the CSSELR register to select a
cache level and then reads the CCSIDR register. The CSSELR register
is banked per-cpu and is used to determine which cache level CCSIDR
reads. If the task is migrated between when the CSSELR is written and
the CCSIDR is read the CCSIDR value may be for an unexpected cache
level (for example L1 instead of L2) and incorrect cache flushing
could occur.
Disable interrupts across the write and read so that the correct
cache attributes are read and used for the cache flushing
routine. We disable interrupts instead of disabling preemption
because the critical section is only 3 instructions and we want
to call v7_dcache_flush_all from __v7_setup which doesn't have a
full kernel stack with a struct thread_info.
This fixes a problem we see in scm_call() when flush_cache_all()
is called from preemptible context and sometimes the L2 cache is
not properly flushed out.
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Will Deacon [Mon, 30 Jan 2012 19:23:29 +0000 (20:23 +0100)]
ARM: 7308/1: vfp: flush thread hwstate before copying ptrace registers
commit
8130b9d7b9d858aa04ce67805e8951e3cb6e9b2f upstream.
If we are context switched whilst copying into a thread's
vfp_hard_struct then the partial copy may be corrupted by the VFP
context switching code (see "ARM: vfp: flush thread hwstate before
restoring context from sigframe").
This patch updates the ptrace VFP set code so that the thread state is
flushed before the copy, therefore disabling VFP and preventing
corruption from occurring.
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Dave Martin [Mon, 30 Jan 2012 19:22:28 +0000 (20:22 +0100)]
ARM: 7307/1: vfp: fix ptrace regset modification race
commit
247f4993a5974e6759606c4d380748eecfd273ff upstream.
In a preemptible kernel, vfp_set() can be preempted, causing the
hardware VFP context to be switched while the thread vfp state is
being read and modified. This leads to a race condition which can
cause the thread vfp state to become corrupted if lazy VFP context
save occurs due to preemption in between the time thread->vfpstate
is read and the time the modified state is written back.
This may occur if preemption occurs during the execution of a
ptrace() call which modifies the VFP register state of a thread.
Such instances should be very rare in most realistic scenarios --
none has been reported, so far as I am aware. Only uniprocessor
systems should be affected, since VFP context save is not currently
lazy in SMP kernels.
The problem was introduced by my earlier patch migrating to use
regsets to implement ptrace.
This patch does a vfp_sync_hwstate() before reading
thread->vfpstate, to make sure that the thread's VFP state is not
live in the hardware registers while the registers are modified.
Thanks to Will Deacon for spotting this.
Signed-off-by: Dave Martin <dave.martin@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Will Deacon [Mon, 30 Jan 2012 19:21:42 +0000 (20:21 +0100)]
ARM: 7306/1: vfp: flush thread hwstate before restoring context from sigframe
commit
2af276dfb1722e97b190bd2e646b079a2aa674db upstream.
Following execution of a signal handler, we currently restore the VFP
context from the ucontext in the signal frame. This involves copying
from the user stack into the current thread's vfp_hard_struct and then
flushing the new data out to the hardware registers.
This is problematic when using a preemptible kernel because we could be
context switched whilst updating the vfp_hard_struct. If the current
thread has made use of VFP since the last context switch, the VFP
notifier will copy from the hardware registers into the vfp_hard_struct,
overwriting any data that had been partially copied by the signal code.
Disabling preemption across copy_from_user calls is a terrible idea, so
instead we move the VFP thread flush *before* we update the
vfp_hard_struct. Since the flushing is performed lazily, this has the
effect of disabling VFP and clearing the CPU's VFP state pointer,
therefore preventing the thread from being updated with stale data on
the next context switch.
Tested-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Catalin Marinas [Mon, 7 Nov 2011 17:05:53 +0000 (18:05 +0100)]
ARM: 7150/1: Allow kernel unaligned accesses on ARMv6+ processors
commit
8428e84d42179c2a00f5f6450866e70d802d1d05 upstream.
Recent gcc versions generate unaligned accesses by default on ARMv6 and
later processors. This patch ensures that the SCTLR.A bit is always
cleared on such processors to avoid kernel traping before
alignment_init() is called.
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Tested-by: John Linn <John.Linn@xilinx.com>
Acked-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
宋秀杰 [Mon, 28 May 2012 15:16:16 +0000 (23:16 +0800)]
rk30 phone: modify headset detect irq level for actul device
hhb [Mon, 28 May 2012 14:33:51 +0000 (22:33 +0800)]
rk30 phone loquat: modify lcd driver
hhb [Mon, 28 May 2012 14:27:17 +0000 (22:27 +0800)]
Revert "rk30 phone loquat: modify lcd driver"
This reverts commit
0355a52ff6b48bc565dec18ca45bca233e819117.
hhb [Mon, 28 May 2012 14:25:57 +0000 (22:25 +0800)]
rk30 phone loquat: modify lcd driver
hhb [Mon, 28 May 2012 14:25:22 +0000 (22:25 +0800)]
rk30 phone loquat: optimize touch screen report points
hhb [Mon, 28 May 2012 14:23:30 +0000 (22:23 +0800)]
rk30 phone loquat: fix bug touch screen don't work when resume from suspend
张晴 [Mon, 28 May 2012 14:19:05 +0000 (22:19 +0800)]
rk30:phone loquat:reduce arm and logic voltage when pmu enter sleep,set spi gpio pullup and down disable when in sleep
张晴 [Mon, 28 May 2012 12:22:36 +0000 (20:22 +0800)]
rk30:sdk:Solve the RTC alarm automatic startup
chenxing [Mon, 28 May 2012 11:57:55 +0000 (19:57 +0800)]
rk30:sdk: clock_data add cpu 1.1G and 1.3G support
张晴 [Mon, 28 May 2012 11:46:44 +0000 (19:46 +0800)]
rk30:phone loquat:modify the pmu battery charger work quenes
root [Mon, 28 May 2012 10:47:59 +0000 (18:47 +0800)]
camera rk30 : add fps detection code.
张晴 [Mon, 28 May 2012 10:35:21 +0000 (18:35 +0800)]
rk30:phone loquat:add clk switch from 24M to 32K when in sleep
root [Mon, 28 May 2012 07:35:34 +0000 (15:35 +0800)]
camera : ov2655 svga series has wrong(added soft sleep),fix it .
黄涛 [Sun, 27 May 2012 11:11:44 +0000 (19:11 +0800)]
rk30: reset: pll enter slow mode when reset
slow down core periph. fix unable to boot sometime.
黄涛 [Sun, 27 May 2012 10:44:46 +0000 (18:44 +0800)]
rk: fiq_debugger: support reboot with command
hhb [Sun, 27 May 2012 07:52:01 +0000 (15:52 +0800)]
rk30 phone loauqt: add touch screen synaptics s3202 standar drivers
hhb [Sun, 27 May 2012 07:50:06 +0000 (15:50 +0800)]
rk30 phone loauqt: add touch screen synaptics s3202 drivers
hhb [Sun, 27 May 2012 07:47:03 +0000 (15:47 +0800)]
rk30 phone loquat: modify lcd init registers
chenxing [Fri, 25 May 2012 14:23:35 +0000 (22:23 +0800)]
rk30:sdk: fix compiled error when disable dvfs in menuconfig
wdc [Fri, 25 May 2012 10:13:16 +0000 (18:13 +0800)]
Loquate: Add bt sleep and wakeup host function
root [Fri, 25 May 2012 02:10:19 +0000 (10:10 +0800)]
camera rk30 : expire time of reinit timer is not accurate,fix it
lw [Thu, 24 May 2012 10:05:18 +0000 (18:05 +0800)]
rk30_phone_loquat:modify sensors orientation
宋秀杰 [Thu, 24 May 2012 08:38:50 +0000 (16:38 +0800)]
rk30 phone: modify the fmt of codec side in bt and bb incall mode, slove a Uninitialized bug
CMY [Wed, 23 May 2012 10:32:02 +0000 (18:32 +0800)]
BT: enable bt_wakeup_host irq when system entern deep slep
lw [Wed, 23 May 2012 08:04:43 +0000 (16:04 +0800)]
gsensor:add lis3dh file
lw [Wed, 23 May 2012 07:36:26 +0000 (15:36 +0800)]
gsensor:add lis3dh support
lw@rock-chips.com [Wed, 23 May 2012 07:14:44 +0000 (15:14 +0800)]
gsensor:modify gsensor struct name
CMY [Tue, 22 May 2012 15:12:33 +0000 (23:12 +0800)]
Enable bluetooth auto sleep function
张晴 [Tue, 22 May 2012 12:47:57 +0000 (20:47 +0800)]
rk30:phone loquat:supply the PMU usb charge
宋秀杰 [Tue, 22 May 2012 09:22:24 +0000 (17:22 +0800)]
rk30 phone: aic3262 set codec phone call slave
hhb [Tue, 22 May 2012 06:29:26 +0000 (14:29 +0800)]
rk30 phone loquat: remove touch screen in defconfig
hwg [Mon, 21 May 2012 12:20:04 +0000 (20:20 +0800)]
ethernet: solve spin_lock_irqsave problem
root [Mon, 21 May 2012 07:23:03 +0000 (15:23 +0800)]
camera rk30 : fix ov3640 compile erro.
kfx [Mon, 21 May 2012 02:39:03 +0000 (10:39 +0800)]
i2c-dev: struct i2c_msg: be compatible with standard interface
yangkai [Sat, 19 May 2012 03:00:26 +0000 (11:00 +0800)]
update for rk30 usbhost multicore process
yangkai [Sat, 19 May 2012 02:50:24 +0000 (10:50 +0800)]
update rk30 dwc_otg_check_dpdm
ddl [Fri, 18 May 2012 08:20:11 +0000 (16:20 +0800)]
camera: add ov3660 information in rk_camera.h
CMY [Fri, 18 May 2012 12:21:51 +0000 (20:21 +0800)]
fix bug for rk903 work in rk29
zsq [Fri, 18 May 2012 09:00:51 +0000 (17:00 +0800)]
fix rga prescale mode dst height bug
root [Fri, 18 May 2012 07:25:05 +0000 (15:25 +0800)]
camera rk30 : change the version to the odd ,0xb,indicate that it's NOT sure the stable one.
hwg [Fri, 18 May 2012 07:18:54 +0000 (15:18 +0800)]
BT: modify bcm4330 compile error
许盛飞 [Fri, 18 May 2012 07:14:52 +0000 (15:14 +0800)]
rk29: adc bat bug
root [Fri, 18 May 2012 04:15:00 +0000 (12:15 +0800)]
camera rk30 : the interval time(1s) is too short when stream on,adjust that.
黄涛 [Fri, 18 May 2012 01:49:42 +0000 (09:49 +0800)]
rk30: camera: speedup boot time by init async
黄涛 [Fri, 18 May 2012 01:37:43 +0000 (09:37 +0800)]
rk30: lcdc: remove set aclk rate code
root [Thu, 17 May 2012 13:06:46 +0000 (21:06 +0800)]
camera rk30 : add control of pd_cif clock , just reinit the sensor at the first time of no data.
许盛飞 [Thu, 17 May 2012 10:12:49 +0000 (18:12 +0800)]
rk30: perfect information of Single battery
陈恒明 [Thu, 17 May 2012 07:17:34 +0000 (15:17 +0800)]
rk30: vpu_service: extend encoder buffer size for rk30
root [Thu, 17 May 2012 03:22:59 +0000 (11:22 +0800)]
camera rk30 : detect whether cif recevie data in two second's interval,wake up vb when no data.
root [Wed, 16 May 2012 09:21:05 +0000 (17:21 +0800)]
camera rk30: ov2655 mirror and flip is initialized wrong , fix it.
lw@rock-chips.com [Wed, 16 May 2012 09:15:16 +0000 (17:15 +0800)]
rk30:fix spim dma transfer bug and enable dma mode of td8803
Zheng Yang [Wed, 16 May 2012 09:09:51 +0000 (17:09 +0800)]
rk30 hdmi: When system wake up from 2nd sleep mode, hdmi reg CSC_CONFIG1 value
is random, which will cause color space convertion mode is incorrect. Need to
set CSC_CONFIG1 to default value before configure color space convertion mode.
xxx [Wed, 16 May 2012 07:14:30 +0000 (00:14 -0700)]
clk_disable_unused clock
黄涛 [Wed, 16 May 2012 07:03:58 +0000 (15:03 +0800)]
rk30: support sound playback DMA buffer in internal SRAM
张晴 [Wed, 16 May 2012 03:41:45 +0000 (11:41 +0800)]
rk30:phone loquat:Make the clk32kaudio and clk32kg output 32.768K clock
ddl [Wed, 16 May 2012 03:32:49 +0000 (11:32 +0800)]
camera: add commit ov3660.c file
ddl [Wed, 16 May 2012 03:25:36 +0000 (11:25 +0800)]
camera: add support ov3660, this driver is from haixing E170BS
宋秀杰 [Tue, 15 May 2012 14:08:21 +0000 (22:08 +0800)]
rk30 phone:add codec aic3262 support BT and BB setting
宋秀杰 [Tue, 15 May 2012 11:11:11 +0000 (19:11 +0800)]
rk30 phone: modify some warnnings、error and unused code in aic3262
许盛飞 [Tue, 15 May 2012 10:12:16 +0000 (18:12 +0800)]
rk30: system clock switch to 32.768K in suspend
CMY [Tue, 15 May 2012 08:39:54 +0000 (16:39 +0800)]
merge rfkill for rk29 and rk30
许盛飞 [Tue, 15 May 2012 07:54:00 +0000 (15:54 +0800)]
rk29: modify the bug of adc_charge
黄涛 [Tue, 15 May 2012 06:52:03 +0000 (14:52 +0800)]
rk30: sram: add sram_32k_udelay support deep slow mode delay
黄涛 [Tue, 15 May 2012 06:49:30 +0000 (14:49 +0800)]
rk30: cpufreq: better support thermal throttle
黄涛 [Tue, 15 May 2012 06:37:58 +0000 (14:37 +0800)]
pack-kernel: rk30 exclude more phone config
root [Tue, 15 May 2012 04:30:32 +0000 (12:30 +0800)]
camera rk30:update to v0.x.10,wake up vb when cif have't receive data etc.
黄涛 [Fri, 11 May 2012 10:26:14 +0000 (18:26 +0800)]
rk30: clock: disable pd_vio gating function before rga, lcdc, cif support properly
黄涛 [Fri, 11 May 2012 09:47:10 +0000 (17:47 +0800)]
rk30: cpufreq: better support log
黄涛 [Fri, 11 May 2012 09:46:50 +0000 (17:46 +0800)]
rk30: clock: better support log
hhb [Fri, 11 May 2012 09:41:58 +0000 (17:41 +0800)]
rk30 phone loquat: modify camera LED error in board
宋秀杰 [Fri, 11 May 2012 07:45:32 +0000 (15:45 +0800)]
rk30 phone: update aic3262 audio_map
张晴 [Fri, 11 May 2012 05:05:50 +0000 (13:05 +0800)]
rk30:phone loquat:Solve the first reported shutdown failure
黄涛 [Fri, 11 May 2012 03:38:20 +0000 (11:38 +0800)]
video: rk30: Kconfig: select LCDC1_RK30 & DUAL_DISP_IN_KERNEL when HDMI_RK30 is selected
wdc [Fri, 11 May 2012 03:03:50 +0000 (11:03 +0800)]
Loquate: remove the sleep log
wdc [Fri, 11 May 2012 02:37:04 +0000 (10:37 +0800)]
Loquate: update bt for bcm4329
hecanyang [Fri, 11 May 2012 03:02:11 +0000 (11:02 +0800)]
DDR3 ODT resume to 120ohm
zsq [Fri, 11 May 2012 02:29:43 +0000 (10:29 +0800)]
add mmu table flush for master bug
黄涛 [Thu, 10 May 2012 13:31:33 +0000 (21:31 +0800)]
serial: rk30: enable pclk_uart
张晴 [Thu, 10 May 2012 13:05:28 +0000 (21:05 +0800)]
rk30:phone loquat:modify ti pmu usb report function
张晴 [Thu, 10 May 2012 12:37:49 +0000 (20:37 +0800)]
rk30:phone loquat:Reporte the button for shutdown
黄涛 [Thu, 10 May 2012 12:10:19 +0000 (20:10 +0800)]
adc: rk30: enable pclk_saradc
lw [Thu, 10 May 2012 10:49:10 +0000 (18:49 +0800)]
rk30_phone:delete CONFIG_TEST_POWER
gwl [Thu, 10 May 2012 10:14:25 +0000 (18:14 +0800)]
update usb wifi for rk30 platform