Re: [PATCH] x86/early-quirks: Scan all functions in early_pci_scan_bus()

Thorsten Blum <[email protected]>
Newsgroups org.kernel.vger.linux-pci,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On Sun, Aug 16, 2026 at 07:25:22AM +0200, Lukas Wunner wrote:
> On Fri, Aug 07, 2026 at 11:46:02AM +0200, Thorsten Blum wrote:
> > early_pci_scan_bus() stops scanning a PCI slot when check_dev_quirk()
> > returns nonzero, which avoids probing functions 1-7 on single-function
> > devices, but also stops scanning when a function is absent on a
> > multifunction device.
> > 
> > This can skip early quirks on multifunction devices with holes in their
> > function numbering.
> > 
> > Check function 0 first, and if it indicates a multifunction device, scan
> > functions 1-7 independently so that absent functions do not cause later
> > ones to be skipped.
> 
> Which device do you need this for?  We should only scan additional
> Functions if a quirk needs to applied to them because this extends
> boot time.  It requires a justification and shouldn't be done "just
> because".

On iMac13,1 and iMac13,2, the BCM4331 AirPort card is behind root port
00:1c.3, also documented by the model list in abb2bafd295f ("x86/quirks:
Add early quirk to reset Apple AirPort card").

Public lspci output for 2012 iMacs [1][2] shows that 00:1c.0, 00:1c.2,
00:1c.3 and 00:1c.4 are present, but 00:1c.1 is missing. The old code
stops at 00:1c.1 and never reaches 00:1c.3, so the AirPort reset quirk
is silently skipped on these machines.

[1] https://forum.libreelec.tv/thread/26799-wifi-not-detected-on-2012-imac-in-11-0/
[2] https://zoringroup.com/forum/5/7170/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.