On 9/13/18 12:13 AM, Marius Strobl wrote: > On Fri, Sep 07, 2018 at 04:52:12PM +0200, Jakob Alvermark wrote: >> On 9/7/18 12:41 AM, Marius Strobl wrote: >>> On Thu, Sep 06, 2018 at 12:33:39PM +0200, Jakob Alvermark wrote: >>>> Hi, >>>> >>>> >>>> I discovered this by chance. >>>> >>>> The SD card reader in my laptop has never worked, but now I noticed it >>>> does after suspending and resuming. >>>> >>>> The controller is probed and attached on boot: >>>> >>>> sdhci_acpi1: <Intel Bay Trail/Braswell SDXC Controller> iomem >>>> 0x90a00000-0x90a00fff irq 47 on acpi0 >>>> >>>> But nothing happens if I put a card in. Unless I suspend and resume: >>>> >>>> mmc1: <MMC/SD bus> on sdhci_acpi1 >>>> mmcsd0: 32GB <SDHC SL32G 8.0 SN 19CD02C0 MFG 11/2014 by 3 SD> at mmc1 >>>> 50.0MHz/4bit/65535-block >>>> >>>> Then I can remove and replug cards and it seems to work just fine. >>> I believe that making SD card insertion/removal with the integrated >>> SDHCI controlers of newer Intel SoCs work out-of-the-box requires >>> support for ACPI GPE interrupts and ACPI GPIO events respectively to >>> be added to FreeBSD. Otherwise insertion/removal interrutps/events >>> aren't reported and polling the card present state doesn't generally >>> work as a workaround with these controllers either, unfortunately. >>> I'm not aware of anyone working on the former, though. >>> >>> Polling the card present state happens to work one time after SDHCI >>> initialization with these controllers which is why a card will be >>> attached when inserted as part of a suspend/resume cycle (resume of >>> mmc(4) had some bugs until some months ago, which probably explains >>> why that procedure hasn't worked as a workaround for you in the past). >>> Inserting the card before boot, unloading/loading sdhci_acpi.ko or >>> triggering detach/attach of sdhci_acpi(4) via devctl(8) should allow >>> to attach a card, too. >> If a card is inserted before booting it is not detected. >> >> Removing and inserting card after boot is not detected unless I suspend >> and resume. >> >> After I have suspended and resumed once, cards are detected. Removals >> and insertions are detected as they happen. > Okay, then you are seeing somewhat different behavior than I do. What > SoC model is this? CPU: Intel(R) Pentium(R) CPU N3540 _at_ 2.16GHz (2166.73-MHz K8-class CPU) > Are you loading a GPIO controller driver such as > bytgpio(4) or chvgpio(4)? Doing so might be sufficient to kick ACPI > GPIO events into working but would be missing dependency information > between drivers (which might explain what you are experiencing if > sdhci_acpi1 attaches first) and some other bits to do it properly. I have bytgpio_load="YES" in /boot/loader.conf But I tried removing it, doesn't change the behavior. With or without the bytgpio driver, inserting or removing cards is only detected after a suspend/resume cycle of the computer. > Also, could you please try whether doing a suspend/resume cycle of > sdhci_acpi1 via devctl(8) only kicks the card detection into working? > That test should indicate whether the firmware plays a role in making > the latter work. Tried that. devctl suspend sdhci_acpi1 devctl resume sdhci_acpi1 Doesn't make any difference. Also tried devctl disable/enable. No change. JakobReceived on Thu Sep 13 2018 - 14:11:30 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:18 UTC