Re: [PATCH 1/2] mfd: rtsx_usb: Fix runtime PM deadlock

2015-01-20 Thread Roger Tseng
On Tue, 2015-01-20 at 16:07 +, Lee Jones wrote: > On Tue, 20 Jan 2015, Roger Tseng wrote: > > > On Mon, 2015-01-19 at 09:45 +, Lee Jones wrote: > > > On Thu, 15 Jan 2015, Roger Tseng wrote: > > > > > > > sd_set_power_mode() in derive

Re: [PATCH 1/2] mfd: rtsx_usb: Fix runtime PM deadlock

2015-01-20 Thread Roger Tseng
On Mon, 2015-01-19 at 09:45 +, Lee Jones wrote: > On Thu, 15 Jan 2015, Roger Tseng wrote: > > > sd_set_power_mode() in derived module drivers/mmc/host/rtsx_usb_sdmmc.c > > acquires dev_mutex and then calls pm_runtime_get_sync() to make sure the > > device is awake wh

[PATCH 1/2] mfd: rtsx_usb: Fix runtime PM deadlock

2015-01-14 Thread Roger Tseng
. Cc: # v3.16+ Fixes: 730876be2566 ("mfd: Add realtek USB card reader driver") Signed-off-by: Roger Tseng --- drivers/mfd/rtsx_usb.c | 9 - 1 file changed, 9 deletions(-) diff --git a/drivers/mfd/rtsx_usb.c b/drivers/mfd/rtsx_usb.c index dbdd0faeb6ce..076694126e5d 100644 --- a/d

[PATCH 0/2] Fix PM deadlock and card detection problem

2015-01-14 Thread Roger Tseng
The patchset fixes a deadlock situation of runtime PM methods and minimize card detection "deadtime" during runtime suspending. Roger Tseng (2): mfd: rtsx_usb: Fix runtime PM deadlock mfd: rtsx_usb: Defer autosuspend while card exists drivers/mfd/rtsx_usb.c | 21 +-

[PATCH 2/2] mfd: rtsx_usb: Defer autosuspend while card exists

2015-01-14 Thread Roger Tseng
in suspend method and defer the autosuspend if the slot is loaded. The default 2 second autosuspend delay of USB subsystem should let the next polling detects the card. Signed-off-by: Roger Tseng --- drivers/mfd/rtsx_usb.c | 14 ++ 1 file changed, 14 insertions(+) diff --git a/drivers

[PATCH 2/2] mmc: rtsx_pci: Set power related cap2 macros

2014-09-24 Thread Roger Tseng
Set MMC_CAP2_NO_PRESCAN_POWERUP and MMC_CAP2_FULL_PWR_CYCLE for rtsx_pci_sdmmc and rtsx_usb_sdmmc to reflect properties of Realtek card reader hosts. Signed-off-by: Roger Tseng --- drivers/mmc/host/rtsx_pci_sdmmc.c |1 + drivers/mmc/host/rtsx_usb_sdmmc.c |1 + 2 files changed, 2

[PATCH 1/2] mmc: core: Add new power_mode MMC_POWER_UNDEFINED

2014-09-24 Thread Roger Tseng
her prevents state messed up in cards that was already initialized(eg. by BIOS of UEFI driver). Signed-off-by: Roger Tseng --- drivers/mmc/core/core.c |1 + include/linux/mmc/host.h |1 + 2 files changed, 2 insertions(+) diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c in

[PATCH 0/2] mmc: Add power_mode MMC_POWER_UNDEFINED

2014-09-24 Thread Roger Tseng
Invent MMC_POWER_UNDEFINED to describe the initial host power_mode which might be either off or turned on by an early driver such as BIOS or UEFI driver. This lets the later mmc_power_off() do actual power-off things and power_mode will be in a known state eventually. Roger Tseng (2): mmc: core

Re: [PATCH] mmc: rtsx: add card power off during probe

2014-09-22 Thread Roger Tseng
oking mmc_power_off() in mmc_start_host() is more than NOP now and triggers real power-off and re-init in sdhci. Will this be OK? > So, let's try your proposal, thus don't check MMC_CAP2_FULL_PWR_CYCLE. > > Can you repost new version of your patches and please split them up on

Re: [PATCH] mmc: rtsx: add card power off during probe

2014-09-18 Thread Roger Tseng
On Wed, 2014-09-17 at 21:29 +0200, Ulf Hansson wrote: > On 17 September 2014 11:11, micky wrote: > > On 09/17/2014 02:01 AM, Ulf Hansson wrote: > >> > >> On 12 September 2014 03:39, wrote: > >>> > >>> From: Roger Tseng > >>> &

Re: [PATCH] mmc: rtsx: fix incorrect last byte in R2 response

2014-08-13 Thread Roger Tseng
On Wed, 2014-08-13 at 17:09 +0200, Ulf Hansson wrote: > On 11 August 2014 10:32, wrote: > > From: Roger Tseng > > > > Current code erroneously fill the last byte of R2 response with an undefined > > value. In addition, it is impossible to obtain the real values since

RE: [PATCH 1/3] mfd: Add realtek USB card reader driver

2014-01-07 Thread Roger Tseng
Hi Dan, >> +int rtsx_usb_ep0_write_register(struct rtsx_ucr *ucr, u16 addr, >> + u8 mask, u8 data) >> +{ >> + u16 value = 0, index = 0; >> + >> + value |= (u16)(3 & 0x03) << 14; >> + value |= (u16)(addr & 0x3FFF); > >Don't do pointless things: > >value |= 0x03 << 14