Commit Graph

174235 Commits

Author SHA1 Message Date
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
邱建斌
cf10dc2c58 wm8994: fix a bug for Bluetooth headsets 2011-07-20 19:35:06 +08:00
邱建斌
8d130f7243 rk29_phone: fix heatset main mic Call Features 2011-07-20 19:34:33 +08:00
蔡枫
76527fd2e7 newton:update config and board file 2011-07-20 17:57:11 +08:00
陈恒明
a0986f8d6d rk29: vpu_service: fix bug when delay work and cancel work come at the same time 2011-07-20 16:07:00 +08:00
胡卫国
12755a589c support 3 usb ethernet: dm9620, ax8872b, sr9700 (2) 2011-07-20 15:06:20 +08:00
胡卫国
a01f37a6f2 support 3 usb ethernet: dm9620, ax8872b, sr9700 2011-07-20 15:03:14 +08:00
陈辉
bd03eb18b7 change AXI frequency division from 3 to 2 2011-07-20 14:33:20 +08:00
杨云
be8970a989 Merge branch 'develop' of /home/rockchip/kernel into develop 2011-07-20 09:56:48 +08:00
杨云
0501d636e7 Merge remote branch 'origin/develop_xbw_update-SDCard' into develop 2011-07-20 08:50:06 +08:00
xbw
bad4d04a8e Integrate the XBW-version of SDMMC-drver into rk29_ddr3sdk 2011-07-19 22:12:51 +08:00
黄涛
29492dc9e1 Revert "rk29: vpu_service: fix bug when __cancel_delayed_work and delay work run at the same time"
This reverts commit c41dd26340.
2011-07-19 18:10:54 +08:00
蔡枫
d035f2c5fb newton:add gt819 firmware 2011-07-19 18:04:28 +08:00
蔡枫
3332f84e0b Merge branch 'develop' of 10.10.10.29:/home/rockchip/kernel into develop 2011-07-19 18:00:33 +08:00
蔡枫
d6b84a8289 newton:add gt819 firmware 2011-07-19 18:00:14 +08:00
陈恒明
c41dd26340 rk29: vpu_service: fix bug when __cancel_delayed_work and delay work run at the same time
if in inturrept use async interface else use sync interface
2011-07-19 17:57:31 +08:00
黄涛
57cebea06a arm: Makefile: boot.img use zImage 2011-07-19 16:51:28 +08:00
黄涛
ac8f55bd7c rk29: default LZO-compressed kernel for zImage 2011-07-19 16:51:28 +08:00
Albin Tonnerre
c418f3acd2 arm: add support for LZO-compressed kernels
- changes to ach/arch/boot/Makefile to make it easier to add new
   compression types
 - new piggy.lzo.S necessary for lzo compression
 - changes in arch/arm/boot/compressed/misc.c to allow the use of lzo or
   gzip, depending on the config
 - Kconfig support

Signed-off-by: Albin Tonnerre <albin.tonnerre@free-electrons.com>
Tested-by: Wu Zhangjin <wuzhangjin@gmail.com>
Acked-by: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Russell King <rmk@arm.linux.org.uk>
Acked-by: Russell King <rmk@arm.linux.org.uk>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Martin Michlmayr <tbm@cyrius.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-07-19 16:51:28 +08:00
Albin Tonnerre
3a3ba0241a lib: add support for LZO-compressed kernels
This patch series adds generic support for creating and extracting
LZO-compressed kernel images, as well as support for using such images on
the x86 and ARM architectures, and support for creating and using
LZO-compressed initrd and initramfs images.

Russell King said:

: Testing on a Cortex A9 model:
: - lzo decompressor is 65% of the time gzip takes to decompress a kernel
: - lzo kernel is 9% larger than a gzip kernel
:
: which I'm happy to say confirms your figures when comparing the two.
:
: However, when comparing your new gzip code to the old gzip code:
: - new is 99% of the size of the old code
: - new takes 42% of the time to decompress than the old code
:
: What this means is that for a proper comparison, the results get even better:
: - lzo is 7.5% larger than the old gzip'd kernel image
: - lzo takes 28% of the time that the old gzip code took
:
: So the expense seems definitely worth the effort.  The only reason I
: can think of ever using gzip would be if you needed the additional
: compression (eg, because you have limited flash to store the image.)
:
: I would argue that the default for ARM should therefore be LZO.

This patch:

The lzo compressor is worse than gzip at compression, but faster at
extraction.  Here are some figures for an ARM board I'm working on:

Uncompressed size: 3.24Mo
gzip  1.61Mo 0.72s
lzo   1.75Mo 0.48s

So for a compression ratio that is still relatively close to gzip, it's
much faster to extract, at least in that case.

This part contains:
 - Makefile routine to support lzo compression
 - Fixes to the existing lzo compressor so that it can be used in
   compressed kernels
 - wrapper around the existing lzo1x_decompress, as it only extracts one
   block at a time, while we need to extract a whole file here
 - config dialog for kernel compression

[akpm@linux-foundation.org: coding-style fixes]
[akpm@linux-foundation.org: cleanup]
Signed-off-by: Albin Tonnerre <albin.tonnerre@free-electrons.com>
Tested-by: Wu Zhangjin <wuzhangjin@gmail.com>
Acked-by: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Russell King <rmk@arm.linux.org.uk>
Acked-by: Russell King <rmk@arm.linux.org.uk>
Cc: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-07-19 16:51:28 +08:00
杜坤明
d93da5bb9b gpu : fix the gcdOPTIMIZE_HEAP_SAMESIZE for heap alloc. 2011-07-19 16:02:03 +08:00
黄涛
acc0c9aaa8 rk29: i2c: cpu freq notifier only for i2c0 2011-07-19 15:24:29 +08:00
chenli
8e1c0bb9bc IPP fix bugs:
1.Disable pre_scaling or deinterlacing when there is no request to do
2.Store clip mode always set to 1 now
2011-07-19 09:44:37 +08:00
杨云
deaed860bc Merge remote branch 'origin/develop_xbw_update-SDCard' into develop 2011-07-19 09:02:40 +08:00
黄涛
5c8bf163e9 rk29: clock: bump version 2011-07-18 19:43:08 +08:00
黄涛
62da766b65 lcd: nt35510: aclk_lcdc max 300MHz 2011-07-18 19:29:29 +08:00