PXA168 + 88W8686 SDIO interrupt troubles
Doug Brown
doug at schmorgal.com
Thu Jun 9 14:49:05 PDT 2022
Hi James,
Thanks for the info you provided! I really appreciate it. Sadly, I
couldn't find any patches that seemed relevant to the problem I'm
experiencing. I tried a couple of them that sounded promising, but no
dice. It was definitely useful to see all of the patches though!
I booted back into my 2.6.28 kernel with the Marvell sd8xxx driver and
played around some more while looking at the code. The 2.6.28 kernel
never drops any IRQs. There are two big differences I noticed between
2.6.28/sd8xxx and 5.15/libertas:
1) 2.6.28 has an SDIO IRQ thread (even used when not polling), whereas
5.15 doesn't use a thread unless you have to do polling. I don't
think this should really affect what I'm seeing...
2) The sd8xxx driver's IRQ handler increments a counter and wakes the
main thread to do the work, so the SDHC host controller's interrupt
gets unmasked quickly, whereas libertas does more handling in the IRQ
handler before returning and allowing the interrupt to be unmasked.
That 2nd point seems interesting, because it means the host controller
is pretty quickly allowed to listen for interrupts again with the sd8xxx
driver. I wonder if the extra stuff happening in the libertas IRQ
handler doesn't play nicely with the PXA168 SDHCI host controller. I'll
keep experimenting -- maybe I should try the libertas driver on 2.6.28!
Thanks,
Doug
On 6/9/2022 2:12 AM, James Cameron wrote:
> G'day Doug,
>
> This rings bells, but it has been a long time, and I haven't got the knowledge in my head any more.
>
> Best I can offer is to tell you where our kernel and branches are, and let you look through the patches that weren't upstreamed. Look at both libertas and the SDHCI.
>
> http://dev.laptop.org/git/olpc-kernel
> https://wiki.laptop.org/go/Kernel (list of branches)
>
> We used 88W8686 on XO-1.5, XO-1.75, and the development phase of XO-4. Mass production on XO-4 switched to 88W8787.
More information about the libertas-dev
mailing list