Commit Graph

174277 Commits

Author SHA1 Message Date
陈金泉
08c3b4ccb9 Use gpio for codec pop noise 2011-07-29 10:06:24 +08:00
黄涛
5d0b87e783 rk29: memcpy_dma: fix section mismatch and initialization from incompatible pointer type warning 2011-07-29 09:56:38 +08:00
黄涛
2b6f4cdec3 rk29: ipp: fix section mismatch warning and include slab.h 2011-07-29 09:53:13 +08:00
黄涛
ab9534f4be rtc: HYM8563: include slab.h, prepare for 2.6.36 2011-07-29 09:53:13 +08:00
黄涛
15ebb68452 rk29: cpufreq: fix section mismatch warning 2011-07-29 09:53:12 +08:00
黄涛
4c190e5e34 rk29: rfkill: sdk: fix section mismatch warning 2011-07-29 09:53:12 +08:00
黄涛
d0410092cb rk29: rfkill: phonepadsdk: fix section mismatch warning 2011-07-29 09:53:12 +08:00
黄涛
31bd2b85a9 rk29: rfkill: phonesdk: fix section mismatch warning 2011-07-29 09:53:12 +08:00
黄涛
c1efd1d33d rk29: rfkill: a22: fix section mismatch warning 2011-07-29 09:53:12 +08:00
lyx
cdad3accf2 newton: updata irda serial driver
add ioctl get frame length and start send function
2011-07-28 18:29:52 -07:00
黄涛
5a270af5a5 rk29: ddr_recofig: add ddr_reconfig.c 2011-07-28 19:43:10 +08:00
黄涛
b78fb50bcc rk29: add dynamic DDR reconfiguration support, default disabled 2011-07-28 19:40:37 +08:00
lbt
fba8c05b40 net:wireless:bcm4329: add country code setting for various radio regulator domains. 2011-07-28 18:44:10 +08:00
phc
95f4029300 RK29Smartphone:core voltage changed from 1.25v to 1.30v, when cpu frequecy is 1G Hz 2011-07-28 17:45:06 +08:00
黄涛
5aa311af03 rk29: adc: fix error: incompatible type for argument 1 of spin_lock 2011-07-28 15:53:24 +08:00
ddl
e999437a29 camera: update ov2655 sensor driver 2011-07-28 15:29:05 +08:00
root
e28511b626 WM831X:enable battery FET 2011-07-27 22:55:18 +08:00
黄涛
b9556fd539 rk2818: remove all rk2818 stuff, prepare for 2.6.36 2011-07-28 10:20:10 +08:00
lmc
54d1431f25 newton: add support for the pwm led and update board_rk29_newton.c 2011-07-27 17:51:04 +08:00
ddl
0a8f7464ad camera: update gc0308 sensor driver from 和天创 2011-07-27 16:17:02 +08:00
ddl
4afedcecde fb:support 180 degree rotate 2011-07-27 11:24:44 +08:00
ddl
f342768ebd camera: fix ov5640 driver auto focus may be failed 2011-07-27 11:24:44 +08:00
ddl
4a915cc59b uvc: fix dqueue ioctl may hold on forever when sensor is dead 2011-07-27 11:24:44 +08:00
ddl
194bd0355a camera: fix ov2659 delay 600ms after capture and pmem allocate for 0.3 Mega 2011-07-27 11:24:44 +08:00
ddl
d2365ede31 camera: fix ov5642 display abnormity moment after capture in focus infinity 2011-07-27 11:24:44 +08:00
ddl
14c5b8a54e camera: update ov5642 driver 2011-07-27 11:24:43 +08:00
ddl
ad78d87fad camera: fix camera open operation make a difference between O_RDONLY and O_RDWR for accerate open device 2011-07-27 11:24:43 +08:00
ddl
c5200f65bd camera: fix 0.0.2 camera driver is not compatible 0.0.1 driver v4l2 format 2011-07-27 11:24:43 +08:00
ddl
c7fcad114b camera and uvc: support uvc sensor 2011-07-27 11:24:43 +08:00
蔡枫
6469c2f516 newton:disable usb host 1.1 2011-07-27 10:45:43 +08:00
xsf@rock-chips.com
329fa1f088 phonesdk: slove the warnimg that the gpio used but not request 2011-07-26 18:05:42 +08:00
lzg
22eb879715 lzg: close mirror in ov2655 for newton 2011-07-26 17:55:42 +08:00
zyc
4c2b4f3d42 fb:src_vir_w and dst_vir_w of ipp request must be setted. 2011-07-26 01:01:08 -07:00
蔡枫
2270d4f5d2 Merge branch 'develop' of 10.10.10.29:/home/rockchip/kernel into develop 2011-07-26 11:08:08 +08:00
蔡枫
20c075b8c2 newton:update cs42l52 driver 2011-07-26 11:07:48 +08:00
黄涛
3318f1494e rk29: phonesdk: cpufreq add 1G support 2011-07-26 10:16:20 +08:00
黄涛
4e449bdf66 rk29: clock: more increase aclk_cpu 2011-07-25 17:03:22 +08:00
黄涛
3f5a33e934 rk29: cpufreq: support limit by voltage 2011-07-25 17:03:22 +08:00
黄涛
b877bcb0ec rk29: include/linux/regulator/consumer.h: fix warning: no return statement in function returning non-void 2011-07-25 17:03:22 +08:00
黄涛
d0dbaff1f5 rk29: pm-vol.h: fix warning: no return statement in function returning non-void 2011-07-25 17:03:21 +08:00
黄涛
71e7f0d47f cpufreq: ondemand: rk29 ignore nice default 2011-07-25 17:03:21 +08:00
lyx
656d3d289a newton:modify bu92747 irda_irq type for fir EOF 2011-07-25 00:37:07 -07:00
lzg
5bd9effb9e lzg:update mt9p111 and s5k6aa 2011-07-25 15:13:51 +08:00
lmc
715842b93d newton: update board-rk29-newton.c 2011-07-25 14:22:30 +08:00
Thomas Gleixner
b7ad2a012a clockevents: Use u32 for mult and shift factors
The mult and shift factors of clock events differ in their data type
from those of clock sources for no reason. u32 is sufficient for
both. shift is always <= 32 and mult is limited to 2^32-1 to avoid
64bit multiplication overflows in the conversion.

Preparatory patch for a generic mult/shift factor calculation
function.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Mikael Pettersson <mikpe@it.uu.se>
Acked-by: Ralf Baechle <ralf@linux-mips.org>
Acked-by: Linus Walleij <linus.walleij@stericsson.com>
Cc: John Stultz <johnstul@us.ibm.com>
LKML-Reference: <20091111134229.725664788@linutronix.de>
2011-07-25 09:29:10 +08:00
xsf@rock-chips.com
7c2793efef phonesdk: step voltage regulator for Vcore 2011-07-22 18:26:18 +08:00
张晴
3fcb591659 a22 and rk29 phonesdk:32K Frequency switch time cut short 2011-07-22 01:55:58 -07:00
黄涛
5675bfaadd Revert "rk29: add hr_msleep/hr_msleep_interruptible/usleep"
This reverts commit c4c6281fd7.
2011-07-22 16:40:22 +08:00
黄涛
c4c6281fd7 rk29: add hr_msleep/hr_msleep_interruptible/usleep 2011-07-22 16:20:36 +08:00
Patrick Pannuto
18464b0b75 timer: Added usleep_range timer
usleep_range is a finer precision implementations of msleep
and is designed to be a drop-in replacement for udelay where
a precise sleep / busy-wait is unnecessary.

Since an easy interface to hrtimers could lead to an undesired
proliferation of interrupts, we provide only a "range" API,
forcing the caller to think about an acceptable tolerance on
both ends and hopefully avoiding introducing another interrupt.

INTRO

As discussed here ( http://lkml.org/lkml/2007/8/3/250 ), msleep(1) is not
precise enough for many drivers (yes, sleep precision is an unfair notion,
but consistently sleeping for ~an order of magnitude greater than requested
is worth fixing). This patch adds a usleep API so that udelay does not have
to be used. Obviously not every udelay can be replaced (those in atomic
contexts or being used for simple bitbanging come to mind), but there are
many, many examples of

mydriver_write(...)
/* Wait for hardware to latch */
udelay(100)

in various drivers where a busy-wait loop is neither beneficial nor
necessary, but msleep simply does not provide enough precision and people
are using a busy-wait loop instead.

CONCERNS FROM THE RFC

Why is udelay a problem / necessary? Most callers of udelay are in device/
driver initialization code, which is serial...

	As I see it, there is only benefit to sleeping over a delay; the
	notion of "refactoring" areas that use udelay was presented, but
	I see usleep as the refactoring. Consider i2c, if the bus is busy,
	you need to wait a bit (say 100us) before trying again, your
	current options are:

		* udelay(100)
		* msleep(1) <-- As noted above, actually as high as ~20ms
				on some platforms, so not really an option
		* Manually set up an hrtimer to try again in 100us (which
		  is what usleep does anyway...)

	People choose the udelay route because it is EASY; we need to
	provide a better easy route.

	Device / driver / boot code is *currently* serial, but every few
	months someone makes noise about parallelizing boot, and IMHO, a
	little forward-thinking now is one less thing to worry about
	if/when that ever happens

udelay's could be preempted

	Sure, but if udelay plans on looping 1000 times, and it gets
	preempted on loop 200, whenever it's scheduled again, it is
	going to do the next 800 loops.

Is the interruptible case needed?

	Probably not, but I see usleep as a very logical parallel to msleep,
	so it made sense to include the "full" API. Processors are getting
	faster (albeit not as quickly as they are becoming more parallel),
	so if someone wanted to be interruptible for a few usecs, why not
	let them? If this is a contentious point, I'm happy to remove it.

OTHER THOUGHTS

I believe there is also value in exposing the usleep_range option; it gives
the scheduler a lot more flexibility and allows the programmer to express
his intent much more clearly; it's something I would hope future driver
writers will take advantage of.

To get the results in the NUMBERS section below, I literally s/udelay/usleep
the kernel tree; I had to go in and undo the changes to the USB drivers, but
everything else booted successfully; I find that extremely telling in and
of itself -- many people are using a delay API where a sleep will suit them
just fine.

SOME ATTEMPTS AT NUMBERS

It turns out that calculating quantifiable benefit on this is challenging,
so instead I will simply present the current state of things, and I hope
this to be sufficient:

How many udelay calls are there in 2.6.35-rc5?

	udealy(ARG) >=	| COUNT
	1000		| 319
	500		| 414
	100		| 1146
	20		| 1832

I am working on Android, so that is my focus for this. The following table
is a modified usleep that simply printk's the amount of time requested to
sleep; these tests were run on a kernel with udelay >= 20 --> usleep

"boot" is power-on to lock screen
"power collapse" is when the power button is pushed and the device suspends
"resume" is when the power button is pushed and the lock screen is displayed
         (no touchscreen events or anything, just turning on the display)
"use device" is from the unlock swipe to clicking around a bit; there is no
	sd card in this phone, so fail loading music, video, camera

	ACTION		| TOTAL NUMBER OF USLEEP CALLS	| NET TIME (us)
	boot		| 22				| 1250
	power-collapse	| 9				| 1200
	resume		| 5				| 500
	use device	| 59				| 7700

The most interesting category to me is the "use device" field; 7700us of
busy-wait time that could be put towards better responsiveness, or at the
least less power usage.

Signed-off-by: Patrick Pannuto <ppannuto@codeaurora.org>
Cc: apw@canonical.com
Cc: corbet@lwn.net
Cc: arjan@linux.intel.com
Cc: Randy Dunlap <rdunlap@xenotime.net>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2011-07-22 16:20:35 +08:00