Commit Graph

271394 Commits

Author SHA1 Message Date
kfx
06ae80f613 iomux: Uniform Naming: I2S0_MCLK && I2S0_LRCKRX 2013-07-16 10:29:49 +08:00
黄涛
f3cea814bf ARM: RK: add initial support for RK3026 2013-07-15 18:08:00 +08:00
cym
81ad528222 RK3188T:1)fix ddr change frequency bug for RK3188T
2)fix LPDDR2 burst length set bug
2013-07-12 15:57:55 +08:00
chenxing
f75b8858cd rk3188: fix ddr pll do not update status 2013-07-12 15:48:36 +08:00
chenxing
c536c367cb rk: add function to get dvfs table range 2013-07-12 15:48:36 +08:00
xuhuicong
247368a8b0 rk616 hdmi: default vif 12M rebuild 2013-07-12 15:16:28 +08:00
xuhuicong
5ee8b53459 rk616 hdmi: modify some time edid read err and delete some no necessary log 2013-07-12 15:14:29 +08:00
chenxing
d324dea3ad rk: support resume rate when disable limit after enable multiple 2013-07-12 14:43:55 +08:00
黄涛
22e6221d73 rk: gpio.h: make gpio irq num same as gpio num 2013-07-12 14:17:14 +08:00
hjc
a48b48eef7 rk3168m: modify defconfig for new ic 2013-07-12 11:16:01 +08:00
chenxing
1bb0806ff6 rk3066: fix compile warning 2013-07-12 11:04:50 +08:00
chenxing
d0d8ba8ef2 rk3066: fix i2s frac div do not effect 2013-07-12 11:04:49 +08:00
hwg
9636f52be0 mt5931: solve rk3188 and rk3168 compatible problem 2013-07-12 11:02:18 +08:00
xbw
71cf734496 MT6620: eliminate the warning about mt6620-gps 2013-07-12 09:30:32 +08:00
yxj
62d274681e rk fb: add read/write support 2013-07-11 15:56:22 +08:00
张晴
491dd59250 rk31:ricoh619:modify fg and charger 2013-07-11 10:13:54 +08:00
xbw
5effbc0271 MT6620: set the sdio clk to 50Mhz 2013-07-11 09:29:03 +08:00
hhb
5dcdf1703f mipi dsi: make sure that DCS sent in command mode HS is OK 2013-07-10 19:51:28 +08:00
chenxing
d7badbbbe3 rk3188: add setting rate in dump clocks 2013-07-10 18:59:39 +08:00
chenxing
2679ab0858 rk: pm_tests: do nothing after dvfs clk enable freq limit 2013-07-10 18:59:39 +08:00
chenxing
45b4451604 rk: freq limit resume when disable_limit 2013-07-10 18:59:38 +08:00
黄涛
833703ca8e rk: split cpu_axi.h 2013-07-10 16:10:53 +08:00
chenxing
fe1c8d94f2 rk3188: set new leakage level and delayline bounds to fit avdd_com shoted with vdd_arm 2013-07-10 11:04:55 +08:00
张晴
acbb8ac591 rk3028:support pmic tps65910 for rk3028 2013-07-10 10:20:50 +08:00
hjc
131c0b60ab add rk3028_86v rk3168_rk616 board and defconfig 2013-07-10 09:41:00 +08:00
yxj
06fdbd6756 rk30 lcdc:delay 30ms before disable lcdc clk 2013-07-09 16:08:13 +08:00
Subhash Jadavani
b81062c4cc mmc: block: replace __blk_end_request() with blk_end_request()
[rk emmc: read rate up to 78MB/s, write rate up to 26MB/s]

For completing any block request, MMC block driver is calling:
	spin_lock_irq(queue)
	__blk_end_request()
	spin_unlock_irq(queue)

But if we analyze the sources of latency in kernel using ftrace,
__blk_end_request() function at times may take up to 6.5ms with
spinlock held and irq disabled.

__blk_end_request() calls couple of functions and ftrace output
shows that blk_update_bidi_request() function is almost taking 6ms.
There are 2 function to end the current request: ___blk_end_request()
and blk_end_request(). Both these functions do same thing except
that blk_end_request() function doesn't take up the spinlock
while calling the blk_update_bidi_request().

This patch replaces all __blk_end_request() calls with
blk_end_request() and __blk_end_request_all() calls with
blk_end_request_all().

Testing done: 20 process concurrent read/write on sd card
and eMMC. Ran this test for almost a day on multicore system
and no errors observed.

This change is not meant for improving MMC throughput; it's basically
about becoming fair to other threads/interrupts in the system. By
holding spin lock and interrupts disabled for longer duration, we
won't allow other threads/interrupts to run at all.  Actually slight
performance degradation at file system level can be expected as we
are not holding the spin lock during blk_update_bidi_request() which
means our mmcqd thread may get preempted for other high priority
thread or any interrupt in the system.

These are performance numbers (100MB file write) with eMMC running
in DDR mode:

Without this patch:
	Name of the Test   Value   Unit
	LMDD Read Test     53.79   MBPS
	LMDD Write Test    18.86   MBPS
	IOZONE  Read Test  51.65   MBPS
	IOZONE  Write Test 24.36   MBPS

With this patch:
	Name of the Test    Value  Unit
	LMDD Read Test      52.94  MBPS
	LMDD Write Test     16.70  MBPS
	IOZONE  Read Test   52.08  MBPS
	IOZONE  Write Test  23.29  MBPS

Read numbers are fine. Write numbers are bit down (especially LMDD
write), may be because write requests normally have large transfer
size and which means there are chances that while mmcq is executing
blk_update_bidi_request(), it may get interrupted by interrupts or
other high priority thread.

Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
Reviewed-by: Namjae Jeon <linkinjeon@gmail.com>
Signed-off-by: Chris Ball <cjb@laptop.org>

Conflicts:
	drivers/mmc/card/block.c
2013-07-09 15:08:16 +08:00
黄涛
b0addf30d0 rk2928: tb: fix defconfig for lvds rename 2013-07-09 14:41:50 +08:00
黄涛
29e180c979 rk2928: fix lvds support, rename from rk_lvds 2013-07-09 14:41:49 +08:00
ZHW
84115ec457 rk_fb:fix CONFIG_DONE in rk_fb_disp_scaler 2013-07-09 14:36:20 +08:00
hhb
57cce20018 mipi dsi: fix compile error of rk616_mipi_dsi.c 2013-07-09 11:47:06 +08:00
hhb
4d3405ed76 mipi dsi: dcs commmand sent by command mode in HS mode 2013-07-09 11:38:44 +08:00
邱建斌
bc07a28a70 rt5631: support sample rate up to 192khz
RT5631_VERSION "0.01 alsa 1.0.25"
2013-07-09 11:38:02 +08:00
黄涛
f59786a58d rk30: replace RK30_GICD_BASE with GIC_DIST_BASE, RK30_GICC_BASE with GIC_CPU_BASE 2013-07-09 11:35:59 +08:00
hhb
1afedb32d7 mipi:dsi: modify some registers configuration about electricity parameter and data phase 2013-07-09 11:26:21 +08:00
chenxing
981f1d9f96 rk3188: Priority setting i2s under cpll to fix i2s frac div do not effect, let axi_cpu's pll different with i2s's 2013-07-09 11:11:32 +08:00
陈金泉
25354452dd add new config(CONFIG_RK616_USE_MCLK_12M) for HDMI using 12M, use fromdos correct format of rk_rk616.c 2013-07-09 11:06:36 +08:00
kfx
a496af6374 Revert "sdmmc: module_init->fs_initcall, emmc: fs_inicall-->fs_initcall_sync"
This reverts commit aa4812bdf2.
2013-07-09 10:55:43 +08:00
kfx
fbba14e2e8 fixed compile error: drivers/mmc/card/block.c:992:46: error: request for member 'stop' in something not a structure or union 2013-07-09 10:55:13 +08:00
chenxing
1900714c60 rk3188: plus: add adjust dvfs table support 2013-07-09 09:40:02 +08:00
黄涛
906ffdfff7 rk_timer: version 1.3, make it consistent with arm twd 2013-07-08 19:48:38 +08:00
kfx
8427754129 mmc: emmc: revert thread name 2013-07-08 17:12:23 +08:00
kfx
318034e914 sdmmc: fixed crash due to commit '1db93c3593381dd716685e01856c7680113363c5' 2013-07-08 16:54:05 +08:00
Per Forlin
1db93c3593 mmc: block: add handling for two parallel block requests in issue_rw_rq(emmc)
Change mmc_blk_issue_rw_rq() to become asynchronous.
The execution flow looks like this:

* The mmc-queue calls issue_rw_rq(), which sends the request
  to the host and returns back to the mmc-queue.
* The mmc-queue calls issue_rw_rq() again with a new request.
* This new request is prepared in issue_rw_rq(), then it waits for
  the active request to complete before pushing it to the host.
* When the mmc-queue is empty it will call issue_rw_rq() with a NULL
  req to finish off the active request without starting a new request.

Signed-off-by: Per Forlin <per.forlin@linaro.org>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Venkatraman S <svenkatr@ti.com>
Tested-by: Sourav Poddar <sourav.poddar@ti.com>
Tested-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>

Conflicts:
	drivers/mmc/card/block.c
2013-07-08 16:29:50 +08:00
kfx
aa4812bdf2 sdmmc: module_init->fs_initcall, emmc: fs_inicall-->fs_initcall_sync 2013-07-08 15:37:17 +08:00
邱建斌
4a3e05653b rt5631 : add pcm playback volume config 2013-07-08 15:16:50 +08:00
Per Forlin
ede6fc1a54 mmc: queue: add a second mmc queue request member
Add an additional mmc queue request instance to make way for two active
block requests. One request may be active while the other request is
being prepared.

Signed-off-by: Per Forlin <per.forlin@linaro.org>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Venkatraman S <svenkatr@ti.com>
Tested-by: Sourav Poddar <sourav.poddar@ti.com>
Tested-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
2013-07-08 14:38:52 +08:00
Per Forlin
3bc2a47d44 mmc: block: move error path in issue_rw_rq to a separate function(emmc).
Break out code without functional changes. This simplifies the code and
makes way for handling two parallel requests.

Signed-off-by: Per Forlin <per.forlin@linaro.org>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Venkatraman S <svenkatr@ti.com>
Tested-by: Sourav Poddar<sourav.poddar@ti.com>
Tested-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>

Conflicts:
	drivers/mmc/card/block.c
2013-07-08 14:36:43 +08:00
Per Forlin
4702b8371e mmc: block: add a block request prepare function(emmc)
Break out code from mmc_blk_issue_rw_rq to create a block request prepare
function. This doesn't change any functionallity. This helps when handling
more than one active block request.

Signed-off-by: Per Forlin <per.forlin@linaro.org>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Venkatraman S <svenkatr@ti.com>
Tested-by: Sourav Poddar <sourav.poddar@ti.com>
Tested-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>

Conflicts:
	drivers/mmc/card/block.c
2013-07-08 14:25:06 +08:00
kfx
16ccab258d sdmmc: fixed compile error 2013-07-08 12:38:29 +08:00