Commit Graph

270995 Commits

Author SHA1 Message Date
xuhuicong
9065fdbd7b add b101uano 1920x1200 lcd driver 2013-03-21 23:26:55 +08:00
xuhuicong
f6fe4f3526 update ft5x0x driver add 10 point, support upgrade tp parameter and modify panic start up when touch 2013-03-21 23:23:14 +08:00
xuhuicong
08d8a6c0b5 add l3g20d Gyroscope support 2013-03-21 23:17:34 +08:00
xuhuicong
3a7610aed1 update cw2015 battery driver 2013-03-21 22:46:22 +08:00
黄涛
67d7c69260 rk3188: arm-pmu: support qual core 2013-03-21 18:18:03 +08:00
hwg
3862a09452 ethernet: remove mac from wifi 2013-03-21 17:49:21 +08:00
chenxing
08998398e1 rk3188: support hdmi 576p(dclk_lcdc freediv when need 27 MHz) 2013-03-21 17:36:08 +08:00
hwg
fada4ac28a ethernet: support mac from idb ... supply 2013-03-21 16:59:51 +08:00
hwg
bb05601a5f ethernet: support mac from idb 2013-03-21 16:32:04 +08:00
hjc
464f26696e rk3168_86v_codec(ds803f): add support am8963,ov2659,bt(2in1) 2013-03-21 10:41:38 +08:00
chenxing
b96ce52033 rk2928: rename pclk_spi0 compatible with previous versions 2013-03-21 09:12:33 +08:00
hwg
50c9726b04 wifi: add mt6622 resource in board 2013-03-20 17:39:26 +08:00
hwg
2667c7b7b6 mt5931: Smooth rssi, update to 2.12 2013-03-20 17:04:32 +08:00
yxj
5a6fbdee60 rk fb: fix bmp logo support 2013-03-20 16:43:14 +08:00
wlf
7e4cfd6383 USB: enable external hubs in the defconfigs 2013-03-20 15:31:09 +08:00
黄涛
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