Commit Graph

270830 Commits

Author SHA1 Message Date
黄涛
ead9010b04 pack-kernel.sh: exclude rk_pm_tests 2013-03-20 14:55:13 +08:00
chenxing
62e801f1f8 rk: add /sys/pm_tests/tools support 2013-03-20 14:29:20 +08:00
yxj
369a5ca92b rk fb : fix a panic bug
panic bug like this:
	rk_fb_wait_for_vsync_thread may access inf->fb[0] before it is initialized
	[    1.009224] Unable to handle kernel NULL pointer dereference at virtual address 00000240
	[    1.017323] pgd = c0404000
	[    1.020035] [00000240] *pgd=00000000
	[    1.023620] Internal error: Oops: 5 [#1] PREEMPT SMP
	[    1.028586] CPU: 1    Not tainted  (3.0.36+ #217)
	[    1.033297] PC is at rk_fb_wait_for_vsync_thread+0xe8/0x144
	[    1.112136] LR is at rk_fb_wait_for_vsync_thread+0xe8/0x144
	[    1.117708] pc : [<c06243e0>]    lr : [<c06243e0>]    psr: 60000013
	[    1.117715] sp : efe59f80  ip : c04384a0  fp : 00000000
	[    1.129194] r10: 00000000  r9 : efe59f90  r8 : efe58000
	[    1.134417] r7 : efe39a98  r6 : 00000000  r5 : efe59f84  r4 : efe39a08
	[    1.140942] r3 : 00000000  r2 : 00000000  r1 : efc475a0  r0 : 00000036
	[    1.147469] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
	[    1.154777] Control: 10c5387d  Table: 6040404a  DAC: 00000015
2013-03-20 12:29:02 +08:00
wlf
46fa5a365f USB: do not call disconnect callback func in dwc_otg_hcd_enable 2013-03-19 21:35:42 +08:00
wlf
089bf56384 USB: fix urb NULL pointer bug 2013-03-19 21:20:16 +08:00
wlf
c653a9c6da USB: fix usb_get_configuration bug 2013-03-19 20:51:14 +08:00
黄涛
fca83b70fe pack-kernel.sh: exclude rk3028 2013-03-19 12:10:20 +08:00
黄涛
8ba17d0cbc rk3028: rename from rk2928b 2013-03-19 12:05:53 +08:00
wuhao
5469d10d87 rk3188 ds1006h: config hardware v1.2 2013-03-19 10:57:34 +08:00
hjc
3f28dcd8aa rk2928b: pwm regulator ,tp irq and pwm hold 2013-03-19 10:17:59 +08:00
陈辉
48e3cea8fc rk3168_86v_codec(ds803f): enable MT5931_MT6622 wifi 2013-03-18 17:47:42 +08:00
yxj
5b18ea09e6 fix compile err when no select CONFIG_DISPLAY_SUPPORT 2013-03-18 17:22:00 +08:00
黄涛
134516e298 block: fix request_queue lifetime handling by making blk_queue_cleanup() properly shutdown
commit c9a929dde3 upstream.

request_queue is refcounted but actually depdends on lifetime
management from the queue owner - on blk_cleanup_queue(), block layer
expects that there's no request passing through request_queue and no
new one will.

This is fundamentally broken.  The queue owner (e.g. SCSI layer)
doesn't have a way to know whether there are other active users before
calling blk_cleanup_queue() and other users (e.g. bsg) don't have any
guarantee that the queue is and would stay valid while it's holding a
reference.

With delay added in blk_queue_bio() before queue_lock is grabbed, the
following oops can be easily triggered when a device is removed with
in-flight IOs.

 sd 0:0:1:0: [sdb] Stopping disk
 ata1.01: disabled
 general protection fault: 0000 [#1] PREEMPT SMP
 CPU 2
 Modules linked in:

 Pid: 648, comm: test_rawio Not tainted 3.1.0-rc3-work+ #56 Bochs Bochs
 RIP: 0010:[<ffffffff8137d651>]  [<ffffffff8137d651>] elv_rqhash_find+0x61/0x100
 ...
 Process test_rawio (pid: 648, threadinfo ffff880019efa000, task ffff880019ef8a80)
 ...
 Call Trace:
  [<ffffffff8137d774>] elv_merge+0x84/0xe0
  [<ffffffff81385b54>] blk_queue_bio+0xf4/0x400
  [<ffffffff813838ea>] generic_make_request+0xca/0x100
  [<ffffffff81383994>] submit_bio+0x74/0x100
  [<ffffffff811c53ec>] dio_bio_submit+0xbc/0xc0
  [<ffffffff811c610e>] __blockdev_direct_IO+0x92e/0xb40
  [<ffffffff811c39f7>] blkdev_direct_IO+0x57/0x60
  [<ffffffff8113b1c5>] generic_file_aio_read+0x6d5/0x760
  [<ffffffff8118c1ca>] do_sync_read+0xda/0x120
  [<ffffffff8118ce55>] vfs_read+0xc5/0x180
  [<ffffffff8118cfaa>] sys_pread64+0x9a/0xb0
  [<ffffffff81afaf6b>] system_call_fastpath+0x16/0x1b

This happens because blk_queue_cleanup() destroys the queue and
elevator whether IOs are in progress or not and DEAD tests are
sprinkled in the request processing path without proper
synchronization.

Similar problem exists for blk-throtl.  On queue cleanup, blk-throtl
is shutdown whether it has requests in it or not.  Depending on
timing, it either oopses or throttled bios are lost putting tasks
which are waiting for bio completion into eternal D state.

The way it should work is having the usual clear distinction between
shutdown and release.  Shutdown drains all currently pending requests,
marks the queue dead, and performs partial teardown of the now
unnecessary part of the queue.  Even after shutdown is complete,
reference holders are still allowed to issue requests to the queue
although they will be immmediately failed.  The rest of teardown
happens on release.

This patch makes the following changes to make blk_queue_cleanup()
behave as proper shutdown.

* QUEUE_FLAG_DEAD is now set while holding both q->exit_mutex and
  queue_lock.

* Unsynchronized DEAD check in generic_make_request_checks() removed.
  This couldn't make any meaningful difference as the queue could die
  after the check.

* blk_drain_queue() updated such that it can drain all requests and is
  now called during cleanup.

* blk_throtl updated such that it checks DEAD on grabbing queue_lock,
  drains all throttled bios during cleanup and free td when queue is
  released.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Vivek Goyal <vgoyal@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2013-03-18 17:15:50 +08:00
Tejun Heo
6bf3b25053 block: make get_request[_wait]() fail if queue is dead
Currently get_request[_wait]() allocates request whether queue is dead
or not.  This patch makes get_request[_wait]() return NULL if @q is
dead.  blk_queue_bio() is updated to fail the submitted bio if request
allocation fails.  While at it, add docbook comments for
get_request[_wait]().

Note that the current code has rather unclear (there are spurious DEAD
tests scattered around) assumption that the owner of a queue
guarantees that no request travels block layer if the queue is dead
and this patch in itself doesn't change much; however, this will allow
fixing the broken assumption in the next patch.

Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2013-03-18 17:01:00 +08:00
Akinobu Mita
4a8913795a fail_make_request: cleanup should_fail_request
This changes should_fail_request() to more usable wrapper function of
should_fail().  It can avoid putting #ifdef CONFIG_FAIL_MAKE_REQUEST in
the middle of a function.

Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Cc: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2013-03-18 17:00:09 +08:00
黄涛
940efe7e52 rtc: HYM8563: fix probe error handling by destroy wake lock
fix this bug:
 Unable to handle kernel paging request at virtual address 00020008
 pgd = d3e60000
 [00020008] *pgd=00000000
 Internal error: Oops: 5 [#1] PREEMPT SMP
 CPU: 1    Tainted: G         C   (3.0.36+ #6)
 PC is at print_lock_stat+0x1c/0x1b8
 LR is at wakelock_stats_show+0x3c/0xa4

or this bug:
 WARNING: at lib/list_debug.c:26 __list_add+0x60/0x90()
 list_add corruption. next->prev should be prev (c0ae4468), but was 05900000. (next=d89bb060).
 [<c043ece0>] (unwind_backtrace+0x0/0xfc) from [<c046dacc>] (warn_slowpath_common+0x4c/0x64)
 [<c046dacc>] (warn_slowpath_common+0x4c/0x64) from [<c046db78>] (warn_slowpath_fmt+0x30/0x40)
 [<c046db78>] (warn_slowpath_fmt+0x30/0x40) from [<c060554c>] (__list_add+0x60/0x90)
 [<c060554c>] (__list_add+0x60/0x90) from [<c04a6140>] (wake_lock_init+0x8c/0xe4)
 [<c04a6140>] (wake_lock_init+0x8c/0xe4) from [<c071bda0>] (power_supply_register+0xd8/0x100)
 [<c071bda0>] (power_supply_register+0xd8/0x100) from [<c041e5d8>] (test_power_init+0x18/0x7c)
 [<c041e5d8>] (test_power_init+0x18/0x7c) from [<c04335d0>] (do_one_initcall+0x34/0x17c)
 [<c04335d0>] (do_one_initcall+0x34/0x17c) from [<c0408370>] (kernel_init+0x98/0x144)
 [<c0408370>] (kernel_init+0x98/0x144) from [<c0439f64>] (kernel_thread_exit+0x0/0x8)
2013-03-18 15:29:17 +08:00
hjc
d02a97f84a rk3168_86v: codec es8323 2013-03-18 14:27:03 +08:00
gwl
980f518539 add broadcom AP series wifi 2013-03-18 11:57:22 +08:00
hjc
f7d61c6a9f rk2928b: defconfig delete sdmmc gpio 2013-03-18 11:40:03 +08:00
hjc
b3cc013bb1 rk3168_86v: 2in1 IO 2013-03-18 11:00:12 +08:00
hjc
56fb0445b9 rk3168_86v: add support lcd auo A080SN03 2013-03-18 10:59:34 +08:00
hjc
54e61f5302 rk3168_86v: add support codec es8323,tp goodix_82x 2013-03-18 10:58:28 +08:00
hjc
7744fd39b0 rk2928b: lcd wifi codec hdmi and defconfig 2013-03-18 10:40:14 +08:00
黄涛
61e905928d rk: alarm: disable rtc alarm irq when shutdown 2013-03-18 09:31:34 +08:00
hhb
d66be0ba67 rgb to mipi: update mipi driver 2013-03-15 18:05:16 +08:00
lyz
1c2405cd65 rk2928 : tune usb-phy config for full/low speed devices 2013-03-15 14:33:21 +08:00
yxj
0af46446c0 rk30 lcdc:support ioctl RK_FBIOPUT_COLOR_KEY_CFG 2013-03-15 11:53:22 +08:00
wuhao
0b5ce5d965 rk3188 ds1006h: add hardware V1.2 support 2013-03-15 09:38:56 +08:00
yzq
c65f73be23 it66121 hdmi : fix read device_id err 2013-03-14 16:57:03 +08:00
yxj
09a960744d lcdc Kconfig:RK30 lcdc depends on ARCH_RK30XX 2013-03-14 16:47:00 +08:00
yxj
182c55e79b lcdc Kconfig:RK30 LCDC depend on SOC_RK3066 2013-03-14 16:29:52 +08:00
yzq
7dda349522 it66121 hdmi: update drivers
1、support HDCP
	2、if edid read err,assume sink as HDMI
	3、add device_id distinguish
2013-03-14 14:29:06 +08:00
张晴
8283fc01e8 tps65910:set dcdc time step 12.5mv/us 2013-03-14 11:47:26 +08:00
邱建斌
e609b8428a audio DMA : dma_period is not an integer multiple of dma_size support 2013-03-14 11:42:36 +08:00
wbx
5f780555f8 rk 3188: fix board-rk3168-tb.c for sensor 2013-03-14 10:55:09 +08:00
黄涛
a5195a4f01 pack-kernel.sh: never build .uu 2013-03-14 10:36:51 +08:00
lyz
01e0ce0664 usb : USB20_OTG support both host & device mode in defconfig for rk3066/3168/3188/2928b 2013-03-14 09:52:36 +08:00
lyz
9a53e8bbfe Rk2928 : use uart2 as default uart debug port instead of usb-uart for rk2928_tb 2013-03-14 09:44:20 +08:00
yxj
2340d07c51 rk3066b lcdc:better support for dump display info interface 2013-03-13 17:42:37 +08:00
yxj
97447f5a8f board LR097:modify gesnsor orientation to support new sensor framework 2013-03-13 17:42:37 +08:00
yxj
53d5940f72 rk30 lcdc:better support for dump display info interface 2013-03-13 17:42:36 +08:00
chenxing
267fd7727e rk3066: make sure gpll config(nr = 1, nf = 25, no = 2) when use VMAC 2013-03-13 15:23:12 +08:00
kfx
87b505b639 update rk3066_openwrt_defconfig 2013-03-13 11:14:04 +08:00
wbx
8375ed6afe rk3066 : fix board-rk30-ds975.c board-rk30-sdk.c for sensor 2013-03-13 11:08:31 +08:00
wuhao
bde42ac964 rk3188 ds1006h: pwm is set to 30k 2013-03-13 10:55:21 +08:00
wuhao
9d13960fbf rk3188 ds1006h: modify freq volt table 2013-03-13 10:53:07 +08:00
黄涛
93f7f04203 rk: meminfo: show real totalram 2013-03-12 22:27:56 +08:00
赵子初
ff5ab68661 update bp driver 2013-03-12 17:39:27 +08:00
wuhao
3de7a5ccb6 rk3188 ds1006h: configuration the akm8963 based sensors framework 2013-03-12 16:46:20 +08:00
lyz
ab09f9d7e4 USB: support RK2928B for usb host and usb otg 2013-03-12 16:25:43 +08:00