Re: SDIO bus hang on BayTrail machines

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11/01/17 17:42, Ulf Hansson wrote:
> On 12 December 2016 at 23:55, João Paulo Rechi Vita <jprvita@xxxxxxxxx> wrote:
>> Hello Dong Adrian and Ulf,
>>
>> I'm working on enabling a BayTrail-based machine with very similar
>> hardware to one of the Intel Compute sticks, which is an Intel
>> BayTrail and has a RTL8723BS WiFi card on the SDIO bus. I'm using
>> Linux 4.8 with the driver from https://github.com/hadess/rtl8723bs,
>> and I was experiencing a complete machine hang when using the WiFi
>> card. Passing `intel_idle.max_cstate=1` together with the following
>> patch (with the sdhci_runtime_pm_get and sdhci_runtime_pm_put
>> implementations added back) makes the problem go away:
>> https://github.com/hadess/rtl8723bs/blob/master/patches_4.5/0002-mmc-sdhci-get-runtime-pm-when-sdio-irq-is-enabled.patch
> 
> It's been a while ago and I wasn't able to dig out some information
> from earlier discussions/submissions.
> 
>>
>> I could not find much information on why this was never sent upstream,
>> and would like to know if this approach would be acceptable, or if
>> there are any other better alternatives to solve this problem. I'm not
>> a runtime PM expert, but as I understand this keeps the device powered
>> on as long as interrupts are enabled, potentially increasing the power
>> consumption. As this kernel has to run several different machines
>> using the same code base and config, I would rather avoid something
>> that could have a negative impact on other platforms.
> 
> Unless the board/soc supports an option to re-configure the SDIO IRQ
> as wakeup when entering runtime suspend state, there is no other way
> but to keep the device runtime resumed.
> 
> For this specific case, I have seen two different solutions for how to
> allow the device to be runtime suspended when using SDIO IRQ.
> 1) Re-routing the SDIO IRQ DAT line as a GPIO IRQ at runtime suspend,
> thus a wakeup becomes enabled.
> 2) Using a completely separate line for SDIO IRQs and thus not a DAT
> line, configured as a GPIO IRQ.
> 
>>
>> Any ideas appreciated, and I'm happy to try a newer tree if you guys
>> think some other commit might have fixed the problem.
> 
> I think the best option right now, is something very similar to the
> patch you point to at github above.

Sorry for the *very* slow reply! :-(.  I need to find time to look at this,
but although the patch is OK for Intel it is wrong for other SDHCI-based
drivers which *do* runtime suspend with the clock (and perhaps the whole
host controller) still on and thus expect SDIO interrupts *during* runtime
suspend.

--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux