firefly-linux-kernel-4.4.55.git
10 years agoARM: rockchip: rk3188: rk3188.dtsi include more common files
黄涛 [Fri, 14 Mar 2014 03:16:21 +0000 (11:16 +0800)]
ARM: rockchip: rk3188: rk3188.dtsi include more common files

10 years ago move screen power control to board dts,because it's board specifc
yxj [Fri, 14 Mar 2014 02:16:59 +0000 (10:16 +0800)]
 move screen power control to board dts,because it's board specifc

10 years agork: add resource_tool, upstream commit 63eb39a
黄涛 [Fri, 14 Mar 2014 02:18:57 +0000 (10:18 +0800)]
rk: add resource_tool, upstream commit 63eb39a

10 years agofix rga DMA buf ref error
zsq [Fri, 14 Mar 2014 01:43:25 +0000 (09:43 +0800)]
fix rga DMA buf ref error

10 years agommc: core: If controller drv had not registed shutdown callback,
lintao [Fri, 14 Mar 2014 01:26:54 +0000 (09:26 +0800)]
mmc: core: If controller drv had not registed shutdown callback,
           mmc_bus_shutdown SHOULD NOT fall throught it

           We find  kernel panic when rebooting system for nandflash based machine

           [  105.821908] PC is at mmc_bus_shutdown+0xc/0x18
           [  105.826376] LR is at device_shutdown+0x114/0x174
           [  105.831015] pc : [<c03e1818>]    lr : [<c02c94a0>]    psr: 600f0013
           [  105.831015] sp : cf0d9e58  ip : 00000000  fp : 00036864
           [  105.842499] r10: cdd888fc  r9 : cf0d8000  r8 : c09e001c
           [  105.847738] r7 : c0f9edd4  r6 : cdd8f1c8  r5 : cdd888c8  r4 : cdd888d4
           [  105.854275] r3 : 00000000  r2 : 00000001  r1 : 00000002  r0 : cdd888c0
           [  105.860815] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
           [  105.867963] Control: 10c53c7d  Table: 6df9004a  DAC: 00000015
             .....
           [  106.799170] [<c03e1818>] (mmc_bus_shutdown+0xc/0x18) from [<c02c94a0>] (device_shutdown+0x114/0x174)
           [  106.808341] [<c02c94a0>] (device_shutdown+0x114/0x174) from [<c003ec10>] (kernel_restart+0xc/0x50)
           [  106.817331] [<c003ec10>] (kernel_restart+0xc/0x50) from [<c003edbc>] (SyS_reboot+0x160/0x1dc)
           [  106.825891] [<c003edbc>] (SyS_reboot+0x160/0x1dc) from [<c000da80>] (ret_fast_syscall+0x0/0x48)

10 years agork: support make resource.img
黄涛 [Fri, 14 Mar 2014 01:11:01 +0000 (09:11 +0800)]
rk: support make resource.img

10 years agofix rga support DMA buf error
zsq [Fri, 14 Mar 2014 01:01:50 +0000 (09:01 +0800)]
fix rga support DMA buf error

10 years agoBT: add rts control.
gwl [Thu, 13 Mar 2014 13:04:35 +0000 (21:04 +0800)]
BT: add rts control.

10 years agofix pinctrl bug for voltage domain setting
luowei [Thu, 13 Mar 2014 12:43:28 +0000 (20:43 +0800)]
fix pinctrl bug for voltage domain setting

10 years agork: ion: resive build error if CONFIG_CMA is disable
CMY [Thu, 13 Mar 2014 11:51:59 +0000 (19:51 +0800)]
rk: ion: resive build error if CONFIG_CMA is disable

10 years agoRevert "lvds: add rk319x lvds"
yxj [Thu, 13 Mar 2014 03:29:55 +0000 (11:29 +0800)]
Revert "lvds: add rk319x lvds"

This reverts commit 46f66629d7db9336a95e56bb2007107174392b3a.

Conflicts:

drivers/video/rockchip/transmitter/Kconfig
drivers/video/rockchip/transmitter/Makefile

10 years agoupdate rk3188/rk3288 dts
yxj [Thu, 13 Mar 2014 03:26:38 +0000 (11:26 +0800)]
update rk3188/rk3288 dts

10 years agork transmitter: dp anx6345、dp rk32、lvds rk32 implement rk_fb_trsm_ops interface
yxj [Thu, 13 Mar 2014 03:21:13 +0000 (11:21 +0800)]
rk transmitter: dp anx6345、dp rk32、lvds rk32 implement rk_fb_trsm_ops interface

10 years agork fb: add rk_fb_trsm_ops
yxj [Thu, 13 Mar 2014 03:18:00 +0000 (11:18 +0800)]
rk fb: add rk_fb_trsm_ops

10 years agoclean up rk screen
yxj [Wed, 12 Mar 2014 23:28:20 +0000 (07:28 +0800)]
clean up rk screen

10 years agork3188 lcdc: early suspend/resume in blank
yxj [Wed, 12 Mar 2014 23:25:40 +0000 (07:25 +0800)]
rk3188 lcdc: early suspend/resume in blank

10 years agoadd rk32 lvds support
yxj [Tue, 11 Mar 2014 08:29:35 +0000 (16:29 +0800)]
add rk32 lvds support

10 years agork32 edp:remove unused code
yxj [Fri, 7 Mar 2014 02:57:39 +0000 (10:57 +0800)]
rk32 edp:remove unused code

10 years agolvds: add rk319x lvds
ZHW [Thu, 26 Dec 2013 12:56:00 +0000 (20:56 +0800)]
lvds: add rk319x lvds

10 years agork3188 pm support
xxx [Thu, 13 Mar 2014 07:24:12 +0000 (15:24 +0800)]
rk3188 pm support

10 years agoadd pm support
xxx [Thu, 13 Mar 2014 07:20:26 +0000 (15:20 +0800)]
add pm support

10 years agoclk: rk: add CLK_PLL_3288_APLL type support
dkl [Thu, 13 Mar 2014 03:30:36 +0000 (11:30 +0800)]
clk: rk: add CLK_PLL_3288_APLL type support

10 years agork: ion: rk3288/fpga reserve cma memory for ion from dts
CMY [Thu, 13 Mar 2014 03:05:00 +0000 (11:05 +0800)]
rk: ion: rk3288/fpga reserve cma memory for ion from dts

10 years agoclk: rk: add rk3188plus pll support
dkl [Thu, 13 Mar 2014 03:04:37 +0000 (11:04 +0800)]
clk: rk: add rk3188plus pll support

10 years agoclk: rk: modify clk_pll, using pll_flags instead of pll_id
dkl [Thu, 13 Mar 2014 02:35:26 +0000 (10:35 +0800)]
clk: rk: modify clk_pll, using pll_flags instead of pll_id

10 years agork3288 lcdc: fix suspend and resume deadluck
hjc [Wed, 12 Mar 2014 07:13:35 +0000 (15:13 +0800)]
rk3288 lcdc: fix suspend and resume deadluck

10 years agoMerge tag 'lsk-android-14.02' into develop-3.10
黄涛 [Wed, 12 Mar 2014 13:33:38 +0000 (21:33 +0800)]
Merge tag 'lsk-android-14.02' into develop-3.10

lsk 14.02 Android release

10 years agoHDMI: modify code about reading EDID and add HDCP register define at rk3288 hdmi...
zwl [Wed, 12 Mar 2014 13:27:17 +0000 (21:27 +0800)]
HDMI: modify code about reading EDID and add HDCP register define at rk3288 hdmi driver

10 years agopinctrl:add debug function support
luowei [Wed, 12 Mar 2014 12:36:55 +0000 (20:36 +0800)]
pinctrl:add debug function support

10 years agoethernet: adjust gmac code
hwg [Wed, 12 Mar 2014 12:23:10 +0000 (20:23 +0800)]
ethernet: adjust gmac code

10 years agork31:linux3.10:support bq27320 fg and bq24296 charger ic
张晴 [Wed, 12 Mar 2014 07:54:36 +0000 (15:54 +0800)]
rk31:linux3.10:support bq27320 fg and bq24296 charger ic

10 years agoUSB: fix compile error if disable config USB20_HOST or USB20_OTG.
wlf [Wed, 12 Mar 2014 07:41:19 +0000 (15:41 +0800)]
USB: fix compile error if disable config USB20_HOST or USB20_OTG.

10 years agork: ion: more debug info
CMY [Wed, 12 Mar 2014 07:21:17 +0000 (15:21 +0800)]
rk: ion: more debug info

10 years agoSDMMC: eMMC OK. It is good to run correctly from emmc
xbw [Wed, 12 Mar 2014 06:37:47 +0000 (14:37 +0800)]
SDMMC: eMMC OK. It is good to run correctly from emmc

10 years agoethernet: remove SI project file
hwg [Wed, 12 Mar 2014 06:34:03 +0000 (14:34 +0800)]
ethernet: remove SI project file

10 years agoARM: rockchip: support console write by thread
黄涛 [Wed, 12 Mar 2014 03:43:07 +0000 (11:43 +0800)]
ARM: rockchip: support console write by thread

10 years agork3288 lcdc: fix some compile warning
hjc [Wed, 12 Mar 2014 03:50:22 +0000 (11:50 +0800)]
rk3288 lcdc: fix some compile warning

10 years agork: ion: get reserve cma memory for ion from device tree
CMY [Wed, 12 Mar 2014 02:49:32 +0000 (10:49 +0800)]
rk: ion: get reserve cma memory for ion from device tree
         restore default CMA size to 16M

10 years agoUSB: fix otg20 host mode auto suspend bug.
wlf [Wed, 12 Mar 2014 03:19:54 +0000 (11:19 +0800)]
USB: fix otg20 host mode auto suspend bug.

10 years agoARM: rockchip: fix debug/rockchip.S compile error
黄涛 [Wed, 12 Mar 2014 02:44:45 +0000 (10:44 +0800)]
ARM: rockchip: fix debug/rockchip.S compile error

10 years agousb sound card: add switch register and switch state setting
陈金泉 [Wed, 12 Mar 2014 02:18:57 +0000 (10:18 +0800)]
usb sound card: add switch register and switch state setting

10 years agowifi: add wifi configuration into rockchip_defconfig.
gwl [Wed, 12 Mar 2014 02:25:38 +0000 (10:25 +0800)]
wifi: add wifi configuration into rockchip_defconfig.

10 years agoinput: ts: ct36x: init use async and fix compile warning
黄涛 [Wed, 12 Mar 2014 01:52:39 +0000 (09:52 +0800)]
input: ts: ct36x: init use async and fix compile warning

10 years agoethernet: solve compile error
hwg [Wed, 12 Mar 2014 01:22:56 +0000 (09:22 +0800)]
ethernet: solve compile error

10 years agoUSB: add remote wakeup and detect by otg bvalid in defconfig
wlf [Wed, 12 Mar 2014 01:10:30 +0000 (09:10 +0800)]
USB: add remote wakeup and detect by otg bvalid in defconfig

10 years agoadd dma support for spi driver
luowei [Tue, 11 Mar 2014 14:05:04 +0000 (22:05 +0800)]
add dma support for spi driver

10 years agoethernet: add gmac driver
hwg [Tue, 11 Mar 2014 13:52:01 +0000 (21:52 +0800)]
ethernet: add gmac driver

10 years agovmac: add phy power control driver
hwg [Tue, 11 Mar 2014 13:09:35 +0000 (21:09 +0800)]
vmac: add phy power control driver

10 years agowifi:bcmdhd: wifi does't work in oob's way.
gwl [Tue, 11 Mar 2014 12:22:30 +0000 (20:22 +0800)]
wifi:bcmdhd: wifi does't work in oob's way.

10 years agowifi:bcmdhd: remove a disgusting print.
gwl [Tue, 11 Mar 2014 12:13:34 +0000 (20:13 +0800)]
wifi:bcmdhd: remove a disgusting print.

10 years agoARM: rockchip: cpu.c support rk3288
黄涛 [Tue, 11 Mar 2014 11:54:12 +0000 (19:54 +0800)]
ARM: rockchip: cpu.c support rk3288

10 years agowifi: modify wifi plat data.
gwl [Tue, 11 Mar 2014 11:38:46 +0000 (19:38 +0800)]
wifi: modify wifi plat data.

10 years agowifi: fix rfkill-wlan.c error.
gwl [Tue, 11 Mar 2014 09:30:13 +0000 (17:30 +0800)]
wifi: fix rfkill-wlan.c error.

10 years agoHDMI: fix rk3288 hdmi driver code compile error
zwl [Tue, 11 Mar 2014 09:15:15 +0000 (17:15 +0800)]
HDMI: fix rk3288 hdmi driver code compile error

10 years agoBT: add bt resource into dts, add bt power driver.
gwl [Tue, 11 Mar 2014 09:23:59 +0000 (17:23 +0800)]
BT: add bt resource into dts, add bt power driver.

10 years agommc: rk_sdmmc: add host->hw_reset for eMMC
lintao [Tue, 11 Mar 2014 09:09:28 +0000 (17:09 +0800)]
mmc: rk_sdmmc: add host->hw_reset for eMMC

10 years agoHDMI: optimize rk3288 hdmi driver code
zwl [Tue, 11 Mar 2014 08:14:11 +0000 (16:14 +0800)]
HDMI: optimize rk3288 hdmi driver code

10 years agoct36x compatible ct363 and ct365
zyk [Tue, 11 Mar 2014 07:59:26 +0000 (15:59 +0800)]
ct36x compatible ct363 and ct365

10 years agoUSB: remove unused files: ehci-rk.c and ohci-rk.c
wlf [Tue, 11 Mar 2014 06:46:49 +0000 (14:46 +0800)]
USB: remove unused files: ehci-rk.c and ohci-rk.c

10 years agoUSB: renamed usb files: ehci-rk.c -> ehci-rockchip.c, ohci-rk.c -> ohci-rockchip.c
wlf [Tue, 11 Mar 2014 06:35:51 +0000 (14:35 +0800)]
USB: renamed usb files: ehci-rk.c -> ehci-rockchip.c, ohci-rk.c -> ohci-rockchip.c

10 years agoUSB: RK3288 USB CTLR initialization
wlf [Tue, 11 Mar 2014 03:14:10 +0000 (11:14 +0800)]
USB: RK3288 USB CTLR initialization

10 years agoSDMMC: to suuport eMMC. continue with commit-7dcb2b4f0
xbw [Tue, 11 Mar 2014 02:36:22 +0000 (10:36 +0800)]
SDMMC: to suuport eMMC. continue with commit-7dcb2b4f0

10 years ago1.to support eMMC.
xbw [Tue, 11 Mar 2014 02:01:46 +0000 (10:01 +0800)]
1.to support eMMC.
2.Resolve conflicts pin used to wifi-sdio-det.
3.Resolve the clock conflict between sd and sdio.

10 years agofs: emmc: Delete useless files
xbw [Tue, 11 Mar 2014 01:53:36 +0000 (09:53 +0800)]
fs: emmc:  Delete useless files

10 years agork3288 lcdc: win0/1/2/3 test at fpga ok
hjc [Tue, 11 Mar 2014 01:40:16 +0000 (09:40 +0800)]
rk3288 lcdc: win0/1/2/3 test at fpga ok

10 years agofix rk3188 and 3288 fpga screen par define error
hjc [Tue, 11 Mar 2014 01:38:30 +0000 (09:38 +0800)]
fix rk3188 and 3288 fpga screen par define error

10 years agoARM: rockchip: fix fpga compile error
黄涛 [Tue, 11 Mar 2014 01:02:37 +0000 (09:02 +0800)]
ARM: rockchip: fix fpga compile error

10 years agoinput: ts: ct36x: fix init
黄涛 [Mon, 10 Mar 2014 12:27:32 +0000 (20:27 +0800)]
input: ts: ct36x: fix init

10 years agoARM: rockchip: move some head files to include/linux/rockchip
黄涛 [Mon, 10 Mar 2014 11:32:34 +0000 (19:32 +0800)]
ARM: rockchip: move some head files to include/linux/rockchip

10 years agork fb: new framework test ok at rk3188
hjc [Fri, 7 Mar 2014 03:49:23 +0000 (11:49 +0800)]
rk fb: new framework test ok at rk3188
this commit depend on the hwc commit:
commit 59966e5cc0530d936435052d187fbe574684f21e
Author: huangds <hds@rock-chips.com>
Date:   Fri Mar 7 11:17:56 2014 +0800

    lcdc ok ,enable hwc
commit 314b22af926f28c3daa048354a4e4185fc46611b
Author: huangds <hds@rock-chips.com>
Date:   Mon Mar 10 18:19:04 2014 +0800

    lcdc abbort ,RK_FBIOSET_CONFIG_DONE remove for a moment

10 years agoARM: rockchip: rk3288 support cpu on/off
黄涛 [Mon, 10 Mar 2014 11:03:15 +0000 (19:03 +0800)]
ARM: rockchip: rk3288 support cpu on/off

10 years agoARM: rockchip: rk3288.dtsi indent only
黄涛 [Mon, 10 Mar 2014 10:25:27 +0000 (18:25 +0800)]
ARM: rockchip: rk3288.dtsi indent only

10 years agoHDMI: add rk3288 hdmi PHY MPLL config
zwl [Mon, 10 Mar 2014 10:22:21 +0000 (18:22 +0800)]
HDMI: add rk3288 hdmi PHY MPLL config

10 years agoMerge branch 'develop-3.10' of ssh://10.10.10.29/rk/kernel into develop-3.10
libing [Mon, 10 Mar 2014 09:35:08 +0000 (17:35 +0800)]
Merge branch 'develop-3.10' of ssh://10.10.10.29/rk/kernel into develop-3.10

10 years agork mipi dsi: dsi file:lcd-rockchip_mipi.dtsi support rk3288.
libing [Mon, 10 Mar 2014 09:34:51 +0000 (17:34 +0800)]
rk mipi dsi: dsi file:lcd-rockchip_mipi.dtsi support rk3288.

10 years agork31:linux3.10:pmic:support dc&ldo suspend en/disable,add rk808 pre_init
张晴 [Mon, 10 Mar 2014 06:21:07 +0000 (14:21 +0800)]
rk31:linux3.10:pmic:support dc&ldo suspend en/disable,add rk808 pre_init

10 years agork610-hdmi:delete hdmi_set_spk
陈金泉 [Mon, 10 Mar 2014 06:03:45 +0000 (14:03 +0800)]
rk610-hdmi:delete hdmi_set_spk

10 years agommc: sdio: fix sdio_reset_comm
lintao [Mon, 10 Mar 2014 04:35:09 +0000 (12:35 +0800)]
mmc: sdio: fix sdio_reset_comm

10 years agoSDMMC: 1.to identify eMMC. 2.add the trace log in rk_sdmmc driver.
xbw [Mon, 10 Mar 2014 04:05:59 +0000 (12:05 +0800)]
SDMMC: 1.to identify eMMC. 2.add the trace log in rk_sdmmc driver.

10 years agoAudio: delete codec_set_spk, update rk616 codec driver
陈金泉 [Mon, 10 Mar 2014 03:10:43 +0000 (11:10 +0800)]
Audio: delete codec_set_spk, update rk616 codec driver

10 years agork: ion: show client's buffer info
CMY [Fri, 7 Mar 2014 11:59:26 +0000 (19:59 +0800)]
rk: ion: show client's buffer info

10 years agoHDMI: implement function at rk3288_hdmi_hw.c and add some register defined
zwl [Sat, 8 Mar 2014 11:13:36 +0000 (19:13 +0800)]
HDMI: implement function at rk3288_hdmi_hw.c and add some register defined

10 years agoRevert "rk fb: new framework test ok at rk3188"
libing [Sat, 8 Mar 2014 06:30:22 +0000 (14:30 +0800)]
Revert "rk fb: new framework test ok at rk3188"

This reverts commit fe817a682b4cf0e477b945bce9565e44f476370c.

10 years agoMerge branch 'develop-3.10' of ssh://10.10.10.29/rk/kernel into develop-3.10
lintao [Fri, 7 Mar 2014 12:13:34 +0000 (20:13 +0800)]
Merge branch 'develop-3.10' of ssh://10.10.10.29/rk/kernel into develop-3.10

10 years agoFix uses of dma_max_pfn() when converting to a limiting address
Russell King [Tue, 11 Feb 2014 17:11:04 +0000 (17:11 +0000)]
Fix uses of dma_max_pfn() when converting to a limiting address

We must use a 64-bit for this, otherwise overflowed bits get lost, and
that can result in a lower than intended value set.

Fixes: 8e0cb8a1f6ac ("ARM: 7797/1: mmc: Use dma_max_pfn(dev) helper for bounce_limit calculations")
Fixes: 7d35496dd982 ("ARM: 7796/1: scsi: Use dma_max_pfn(dev) helper for bounce_limit calculations")
Tested-Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Conflicts:
drivers/scsi/scsi_lib.c

10 years agommc: fix host release issue after discard operation
Ray Jui [Sat, 26 Oct 2013 18:03:44 +0000 (11:03 -0700)]
mmc: fix host release issue after discard operation

Under function mmc_blk_issue_rq, after an MMC discard operation,
the MMC request data structure may be freed in memory. Later in
the same function, the check of req->cmd_flags & MMC_REQ_SPECIAL_MASK
is dangerous and invalid. It causes the MMC host not to be released
when it should.

This patch fixes the issue by marking the special request down before
the discard/flush operation.

Reported by: Harold (SoonYeal) Yang <haroldsy@broadcom.com>
Signed-off-by: Ray Jui <rjui@broadcom.com>
Reviewed-by: Seungwon Jeon <tgih.jun@samsung.com>
Acked-by: Seungwon Jeon <tgih.jun@samsung.com>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
10 years agoARM: 7795/1: mm: dma-mapping: Add dma_max_pfn(dev) helper function
Santosh Shilimkar [Mon, 29 Jul 2013 13:18:48 +0000 (14:18 +0100)]
ARM: 7795/1: mm: dma-mapping: Add dma_max_pfn(dev) helper function

Most of the kernel assumes that PFN0 is the start of the physical
memory (RAM). This assumptions is not true on most of the ARM SOCs
and hence and if one try to update the ARM port to follow the assumptions,
we end of breaking the dma bounce limit for few block layer drivers.
One such example is trying to unify the meaning of max*_pfn on ARM
as the bootmem layer expects, breaks few block layer driver dma
bounce limit.

To fix this problem, we introduce dma_max_pfn(dev) generic helper with
a possibility of override from the architecture code. The helper converts
a DMA bitmask of bits to a block PFN number. In all the generic cases,
it is just  "dev->dma_mask >> PAGE_SHIFT" and hence default behavior
is maintained as is.

Subsequent patches will make use of the helper. No functional change.

Cc: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
10 years agoARM: 7797/1: mmc: Use dma_max_pfn(dev) helper for bounce_limit calculations
Santosh Shilimkar [Mon, 29 Jul 2013 13:20:15 +0000 (14:20 +0100)]
ARM: 7797/1: mmc: Use dma_max_pfn(dev) helper for bounce_limit calculations

DMA bounce limit is the maximum direct DMA'able memory beyond which
bounce buffers has to be used to perform dma operations. MMC queue layr
relies on dma_mask but its calculation is based on max_*pfn which
don't have uniform meaning across architectures. So make use of
dma_max_pfn() which is expected to return the DMAable maximum pfn
value across architectures.

Cc: Chris Ball <cjb@laptop.org>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
10 years agommc: Don't force card to active state when entering suspend/shutdown
Ulf Hansson [Wed, 2 Oct 2013 15:37:09 +0000 (17:37 +0200)]
mmc: Don't force card to active state when entering suspend/shutdown

By adding a card state that records if it is suspended or resumed, we
can accept asyncronus suspend/resume requests for the mmc and sd
bus_ops.

MMC_CAP_AGGRESSIVE_PM, will at request inactivity through the runtime
bus_ops callbacks, execute a suspend of the the card. In the state were
this has been done, we can receive a suspend request for the mmc bus,
which for sd and mmc forced the card to active state by a
pm_runtime_get_sync. In other words, the card was resumed and then
immediately suspended again, completely unnecessary.

Since the suspend/resume bus_ops callbacks for sd and mmc are now
capable of handling asynchronous requests, we no longer need to force
the card to active state before executing suspend. Evidently preventing
the above sequence for MMC_CAP_AGGRESSIVE_PM.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
Conflicts:
drivers/mmc/core/mmc.c
drivers/mmc/core/sd.c

10 years agommc: fix null pointer use in mmc_blk_remove_req
Franck Jullien [Wed, 24 Jul 2013 13:17:48 +0000 (15:17 +0200)]
mmc: fix null pointer use in mmc_blk_remove_req

A previous commit (fdfa20c1631210d0) reordered the shutdown sequence
in mmc_blk_remove_req. However, mmc_cleanup_queue is now called before
we get the card pointer, and mmc_cleanup_queue sets mq->card to NULL.

This patch moves the card pointer assignment before mmc_cleanup_queue.

Signed-off-by: Franck Jullien <franck.jullien@gmail.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
10 years agommc: core: Handle card shutdown from mmc_bus
Ulf Hansson [Mon, 10 Jun 2013 15:03:40 +0000 (17:03 +0200)]
mmc: core: Handle card shutdown from mmc_bus

Considering shutdown of the card, the responsibility to initate this
sequence shall be driven from the mmc_bus.

This patch enables the mmc_bus to handle this sequence properly. A new
.shutdown callback is added in the mmc_driver struct which is used to
shutdown the blk device.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
Conflicts:
drivers/mmc/core/bus.c

10 years agommc: card: fixing an false identification of SANITIZE command
Yaniv Gardi [Wed, 5 Jun 2013 11:13:08 +0000 (14:13 +0300)]
mmc: card: fixing an false identification of SANITIZE command

Inside the routine mmc_blk_ioctl_cmd() the sanitize command is
identified according to the value of bits 16-23 of the argument.

but what happens if a different command is sent, and only by
chance, bits 16-23 contain the value of SANITIZE command ?
In that case a SANITIZE command will be falsely identified.
In order to prevent such a case, the condition is expanded and
now it also checks the opcode itself, and verifies that it is an
MMC_SWITCH opcode.

Signed-off-by: Yaniv Gardi <ygardi@codeaurora.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
10 years agommc: reordered shutdown sequence in mmc_bld_remove_req
Paul Taysom [Tue, 4 Jun 2013 21:42:40 +0000 (14:42 -0700)]
mmc: reordered shutdown sequence in mmc_bld_remove_req

We had a multi-partition SD-Card with two ext2 file systems. The partition
table was getting overwritten by a race between the card removal and
the unmount of the 2nd ext2 partition.

What was observed:
1. Suspend/resume would call to remove the device. The clearing
   of the device information is done asynchronously.
2. A request is made to unmount the file system (this is called
   after the removal has started).
3. The remapping table was cleared by the asynchronous part of
   the device removal.
4. A write request to the super block (block 0 of the partition)
   was sent down and instead of being remapped to the partition
   offset, it was remapped to block 0 of the device which is where
   the partition table is located.
5. Write was queued and written resulting in the overwriting
   of the partition table with the ext2 super block.
6. The mmc_queue is cleaned up.

The mmc card device driver used to access SD cards, was calling del_gendisk
before calling mmc_cleanup-queue. The comment in the mmc_blk_remove_req
code indicated that it expected del_gendisk to block all further requests
from being queued but it doesn't. The mmc driver uses the presences of the
mmc_queue to determine if the request should be queued.

The fix was to clean up the mmc_queue before the rest of the
the delete partition code is called.

This prevents the overwriting of the partition table.

However, the umount gets an error trying to write the super block.
The umount should be issued before the device is removed but that
is not always possible. The umount is still needed to cleanup other
data structures.

Addresses the problem described in http://crbug.com/240815

Signed-off-by: Paul Taysom <taysom@chromium.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
10 years agommc: block: Enable runtime pm for mmc blkdevice
Ulf Hansson [Thu, 2 May 2013 12:02:38 +0000 (14:02 +0200)]
mmc: block: Enable runtime pm for mmc blkdevice

Once the mmc blkdevice is being probed, runtime pm will be enabled.
By using runtime autosuspend, the power save operations can be done
when request inactivity occurs for a certain time. Right now the
selected timeout value is set to 3 s. Obviously this value will likely
need to be configurable somehow since it needs to be trimmed depending
on the power save algorithm.

For SD-combo cards, we are still leaving the enablement of runtime PM
to the SDIO init sequence since it depends on the capabilities of the
SDIO func driver.

Moreover, when the blk device is being suspended, we make sure the device
will be runtime resumed. The reason for doing this is that we want the
host suspend sequence to be unaware of any runtime power save operations
done for the card in this phase. Thus it can just handle the suspend as
the card is fully powered from a runtime perspective.

Finally, this patch prepares to make it possible to move BKOPS handling
into the runtime callbacks for the mmc bus_ops. Thus IDLE BKOPS can be
accomplished.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
Conflicts:
drivers/mmc/card/block.c

10 years agommc: sdio: add a quirk for broken SDIO_CCCR_INTx polling
Bing Zhao [Tue, 26 Nov 2013 23:39:20 +0000 (15:39 -0800)]
mmc: sdio: add a quirk for broken SDIO_CCCR_INTx polling

Polling SDIO_CCCR_INTx could create a fake interrupt with Marvell
SD8797 card. Add a quirk to handle this case. The fixup here is
to issue a dummy CMD52 read to function 0 register 0xff, and this
dummy read must be right after SDIO_CCCR_INTx is read.

Patch has been verified on a dw_mmc controller (Samsung Chromebook)
with MMC_CAP_SDIO_IRQ disabled.

Signed-off-by: Bing Zhao <bzhao@marvell.com>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Reviewed-by: Doug Anderson <dianders@chromium.org>
Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Chris Ball <chris@printf.net>
10 years agommc: core: sd: implement proper support for sd3.0 au sizes
Wolfram Sang [Tue, 26 Nov 2013 01:16:25 +0000 (02:16 +0100)]
mmc: core: sd: implement proper support for sd3.0 au sizes

This reverts and updates commit 77776fd0a4cc541b9 ("mmc: sd: fix the
maximum au_size for SD3.0"). The au_size for SD3.0 cannot be achieved
by a simple bit shift, so this needs to be implemented differently.
Also, don't print the warning in case of 0 since 'not defined' is
different from 'invalid'.

Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Acked-by: Jaehoon Chung <jh80.chung@samsung.com>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: stable <stable@vger.kernel.org> # [3.12, 3.13]
Signed-off-by: Chris Ball <chris@printf.net>
10 years agommc: Do not call get_cd for non removable cards
Sascha Hauer [Thu, 5 Dec 2013 13:34:46 +0000 (14:34 +0100)]
mmc: Do not call get_cd for non removable cards

Non removable cards are always present, so do not call get_cd for them.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
10 years agommc: core: mmc DDR mode should not depend on UHS_DDR50
Dong Aisheng [Wed, 30 Oct 2013 14:09:53 +0000 (22:09 +0800)]
mmc: core: mmc DDR mode should not depend on UHS_DDR50

The MMC_CAP_UHS_DDR50 must work on 1.8v.
However, the eMMC DDR mode can work on either 1.8v or 3.3v and
should not depend on UHS_DDR50.
So get rid of this limitation to let controller without 1.8v
signal voltage support can also work for eMMC DDR mode if it claims.

Signed-off-by: Dong Aisheng <b29396@freescale.com>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
10 years agommc: core: Silence compiler warning in __mmc_switch
Ulf Hansson [Mon, 28 Oct 2013 01:51:41 +0000 (02:51 +0100)]
mmc: core: Silence compiler warning in __mmc_switch

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
10 years agommc: core: Add MMC_CAP_RUNTIME_RESUME to resume at runtime_resume
Ulf Hansson [Thu, 10 Oct 2013 15:22:23 +0000 (17:22 +0200)]
mmc: core: Add MMC_CAP_RUNTIME_RESUME to resume at runtime_resume

In some environments it is to prefer to postpone the resume of the card
device until runtime_resume is being carried out, since it will mean a
signficant decrease of the total system resume time.

The reason of the decreased resume time is simply because of the actual
re-initalization of the card, which typically takes hundreds of
milliseconds, is performed outside the resume sequence and wont thus
affect it.

For removable card, the detect work tries to re-detect the card to make
sure it is still present, as a part of that sequence the card will also
be runtime_resumed and thus also fully resumed.

For a non-removable card, typically a mmc blk request will trigger a
runtime_resume and thus fully resume the card. This also means the
first request will likely suffer from an inital latency since the
re-initialization of the card needs to be performed.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>