Commit Graph

270860 Commits

Author SHA1 Message Date
chenxing
12ed2a5442 rk3066b: dvfs: format dvfs-rk3066b.c 2013-03-26 09:42:01 +08:00
chenxing
6bf8275686 rk3066b/rk3168: add dvfs with no voltage difference support(uoc) 2013-03-25 19:11:17 +08:00
chenxing
31057fa22d rk: dvfs: format plat-rk/dvfs.c && fix some debug message 2013-03-25 19:11:16 +08:00
cym
cd2219dac1 RK30/31:replace the "switch" in the function of ddr_update_timing 2013-03-25 19:01:34 +08:00
张晴
5838137546 rk808:support pmu rk808 sleep mode 2013-03-25 17:44:44 +08:00
zsq
2dce214493 add param check print / fix param check error 2013-03-25 11:00:40 +08:00
张晴
b2a79c3e11 rk808:support pmu rk808 2013-03-25 11:00:14 +08:00
chm
be8fe02a8d vpu_service: set freq to 400M on rk2928g 2013-03-25 09:48:42 +08:00
wlf
f0ec0ae82c RK3188: wakeup system by OTG BVALID interrupt in defconfig 2013-03-23 16:30:55 +08:00
yzq
e5e13e606d it66121 hdmi updates:
1、change poll mode to irq mode(Please check the irq gpio if ok at board file)
	2、support csc, RGB to YUV,YUV to RGB
2013-03-23 09:39:13 +08:00
黄涛
d36caf0ebf block: fix loop on blk_drain_queue when __dm_destroy
when install apk to sdcard, vold will loop on blk_drain_queue:
vold            D c090e3a8     0   119      1 0x00000000
[<c090e3a8>] (__schedule+0x3b0/0x85c) from [<c090ed98>] (schedule_timeout+0x160/0x2dc)
[<c090ed98>] (schedule_timeout+0x160/0x2dc) from [<c047de38>] (msleep+0x14/0x20)
[<c047de38>] (msleep+0x14/0x20) from [<c05e6e04>] (blk_cleanup_queue+0xb4/0x218)
[<c05e6e04>] (blk_cleanup_queue+0xb4/0x218) from [<c071cca4>] (__dm_destroy+0x170/0x1c4)
[<c071cca4>] (__dm_destroy+0x170/0x1c4) from [<c0721d8c>] (dev_remove+0x74/0xa8)
[<c0721d8c>] (dev_remove+0x74/0xa8) from [<c0722534>] (dm_ctl_ioctl+0x1e4/0x2d4)
[<c0722534>] (dm_ctl_ioctl+0x1e4/0x2d4) from [<c05153c4>] (do_vfs_ioctl+0x80/0x5b0)
[<c05153c4>] (do_vfs_ioctl+0x80/0x5b0) from [<c051592c>] (sys_ioctl+0x38/0x60)
[<c051592c>] (sys_ioctl+0x38/0x60) from [<c0439540>] (ret_fast_syscall+0x0/0x30)
2013-03-23 09:32:38 +08:00
cym
6a5987725d RK292X:modify DDR3 DLL disable frequency,part of the LVDDR3 can not
work with low-frequency.
2013-03-22 21:01:11 +08:00
chenxing
1e778d3e93 rk: pm_tests: add auto_wakeup and clk_auto_volt tool 2013-03-22 16:12:25 +08:00
xuhuicong
aaccf500d6 add cw2015 support to board-rk3168-tb 2013-03-22 09:56:00 +08:00
xuhuicong
d1c996a0e2 add cube u30gt2 3188 prodect 2013-03-21 23:30:54 +08:00
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