From owner-freebsd-current@freebsd.org Fri Sep 7 14:52:15 2018 Return-Path: Delivered-To: freebsd-current@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B0D5BFFCF98 for ; Fri, 7 Sep 2018 14:52:15 +0000 (UTC) (envelope-from jakob@alvermark.net) Received: from out.alvermark.net (out.alvermark.net [185.34.136.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4A98A8C975; Fri, 7 Sep 2018 14:52:14 +0000 (UTC) (envelope-from jakob@alvermark.net) Received: from c-42bc70d5.06-431-73746f70.bbcust.telenor.se ([213.112.188.66] helo=mail.alvermark.net) by out.alvermark.net with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.91 (FreeBSD)) (envelope-from ) id 1fyI7J-000LsX-Mg; Fri, 07 Sep 2018 16:52:13 +0200 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=alvermark.net; s=x; h=Content-Transfer-Encoding:Content-Type:In-Reply-To: MIME-Version:Date:Message-ID:From:References:Cc:To:Subject:Sender:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=0n4yJcDKAyenm06zewLHSN3A1PyjDPXzdpJBKdQsFvo=; b=GBO0oDTAwYN85o4I9lW/ja/RAg dItvvg6/COGwae0ujpUJubgTBBWPUpwazH4FX9foGCj0u5Lo/fiZcVxC0JMa76vCkxDqJMZImwE1e nOj06lYB0sV/v8cl4HJQC2BOuMhJv5wKFsCYoXbMqH7TZpxP8uZzllSM4KiHs/CRJdPy2Y9vlRFnA IJoYj+knpbOdNfK1ueIhwSrSzHDgzSz9GqG6Z0kYL+opNMZxyrPjCzPkOUnigYXvWm2wQWG7L7dIk YFOho3r+BhQmF1Z9gWirAfzi2m5KxGhmc4DStudMyDBLF2S7BBbzAz7gw3K8nzX6HCH8ktdnEglvF nev1neFQ==; Received: from [192.168.67.33] by mail.alvermark.net with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.91 (FreeBSD)) (envelope-from ) id 1fyI7J-000Hnz-5n; Fri, 07 Sep 2018 16:52:13 +0200 Subject: Re: SD card reader only works after a suspend/resume To: Marius Strobl Cc: FreeBSD Current References: <34659383-981f-e627-dfaa-d486685a11f5@alvermark.net> <20180906224108.GA65506@alchemy.franken.de> From: Jakob Alvermark Message-ID: <3a219e6e-0e27-00d7-50ff-e6671f717bc6@alvermark.net> Date: Fri, 7 Sep 2018 16:52:12 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:60.0) Gecko/20100101 Thunderbird/60.0 MIME-Version: 1.0 In-Reply-To: <20180906224108.GA65506@alchemy.franken.de> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Sep 2018 14:52:16 -0000 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: iomem >> 0x90a00000-0x90a00fff irq 47 on acpi0 >> >> But nothing happens if I put a card in. Unless I suspend and resume: >> >> mmc1: on sdhci_acpi1 >> mmcsd0: 32GB 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. Jakob