Commit Graph

174260 Commits

Author SHA1 Message Date
黄涛
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
蔡枫
2c1af0340f Merge branch 'develop' of 10.10.10.29:/home/rockchip/kernel into develop 2011-07-22 15:01:20 +08:00
clb
be7ae9eca0 modify cir send 2011-07-22 15:02:31 +08:00
蔡枫
520bb95388 Merge branch 'develop' of 10.10.10.29:/home/rockchip/kernel into develop 2011-07-22 14:55:55 +08:00
蔡枫
a1b52cab73 newton:remove flash usb mass storage 2011-07-22 14:55:44 +08:00
黄涛
11daa202c7 rk29: sdk: defconfig: kernel log buffer size 512KB 2011-07-22 14:25:07 +08:00
黄涛
17f59c54f7 rk29: phonesdk: defconfig: kernel log buffer size 512KB 2011-07-22 14:25:06 +08:00
黄涛
e40ef744e0 rk29: phonepadsdk: defconfig: kernel log buffer size 512KB 2011-07-22 14:25:06 +08:00
黄涛
734f7ce771 rk29: ddr3sdk: defconfig: kernel log buffer size 512KB 2011-07-22 14:25:06 +08:00
yangkai
2a95f8edcc fix bug of GIC crash 2011-07-22 09:45:07 +08:00
yangkai
4edfc209d7 move clk_set_rate out of irq disabled 2011-07-21 19:56:02 +08:00
张晴
c6f99f9fc0 a22 and 29phonesdk:sey VCC25 0V when in sleep,29phonesdk:set key gpio pullup/down disable 2011-07-21 03:04:52 -07:00
kfx
c5b95a8d30 update hdmi drivers 2011-07-21 16:36:50 +08:00
kfx
c03aa5e23e rk29_fb.c: hdmi_get_scale-->hdmi_get_fbscale 2011-07-21 15:34:40 +08:00
phc
026cfefa79 RK29SmartPhone:sync. SDCard code with XBW, use the old config 2011-07-21 15:23:31 +08:00
kfx
b39dd2b30c close hdmi debug info 2011-07-21 09:44:14 +08:00
kfx
6631c31b41 update hdmi driver 2011-07-21 09:29:37 +08:00
黄涛
0dde5f4acf arm: Makefile: better support make boot.img 2011-07-21 09:20:28 +08:00