linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]
       [not found]       ` <CANfzparZ17SMzE1qzzF=Rixu=aYpf1RiKqR4KXXS0S+u7Q3TwQ@mail.gmail.com>
@ 2019-10-20  9:08         ` Dominik Brodowski
  2019-10-21 16:09           ` Bjorn Helgaas
  0 siblings, 1 reply; 22+ messages in thread
From: Dominik Brodowski @ 2019-10-20  9:08 UTC (permalink / raw)
  To: bhelgaas, linux-pci
  Cc: Michael .,
	linux-kernel, Trevor Jacobs, Kris Cleveland, Jeff, Morgan Klym

On the basis of the additional information (thanks), there might be a
more specific path to investigate: It is that the PCI code does not
enumerate the second cardbus bridge PCI function in the more recent 4.19
kernel compared to the anvient (and working) 2.6 kernel.

Namely, only one CardBus bridge is recognized

...
06:01.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 8b)
06:01.1 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 11)
06:02.0 Network controller: Intel Corporation PRO/Wireless 2915ABG [Calexico2] Network Connection (rev 05)
...

instead of the two which really should be present:

...
06:01.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 8b)
06:01.1 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 8b)
06:01.2 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 11)
06:02.0 Network controller: Intel Corporation PRO/Wireless 2915ABG [Calexico2] Network Connection (rev 05)
...

To the PCI folks: any idea on what may cause the second cardbus bridge PCI
device function to be missed? Are there any command line options the users
who reported this issue[*] may try?

As this isn't really a PCMCIA (16bit) issue, but a PCI enumeration issue,
this issue is outside my area of expertise.

Thanks,
	Dominik

[*] For more information, see this thread:
	https://lore.kernel.org/lkml/CAFjuqNi+knSb9WVQOahCVFyxsiqoGgwoM7Z1aqDBebNzp_-jYw@mail.gmail.com/

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]
  2019-10-20  9:08         ` PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29] Dominik Brodowski
@ 2019-10-21 16:09           ` Bjorn Helgaas
  2019-10-21 18:17             ` Michael .
  0 siblings, 1 reply; 22+ messages in thread
From: Bjorn Helgaas @ 2019-10-21 16:09 UTC (permalink / raw)
  To: Dominik Brodowski
  Cc: linux-pci, Michael .,
	linux-kernel, Trevor Jacobs, Kris Cleveland, Jeff, Morgan Klym

On Sun, Oct 20, 2019 at 11:08:00AM +0200, Dominik Brodowski wrote:
> On the basis of the additional information (thanks), there might be a
> more specific path to investigate: It is that the PCI code does not
> enumerate the second cardbus bridge PCI function in the more recent 4.19
> kernel compared to the anvient (and working) 2.6 kernel.
> 
> Namely, only one CardBus bridge is recognized
> 
> ...
> 06:01.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 8b)
> 06:01.1 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 11)
> 06:02.0 Network controller: Intel Corporation PRO/Wireless 2915ABG [Calexico2] Network Connection (rev 05)
> ...
> 
> instead of the two which really should be present:
> 
> ...
> 06:01.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 8b)
> 06:01.1 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 8b)
> 06:01.2 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 11)
> 06:02.0 Network controller: Intel Corporation PRO/Wireless 2915ABG [Calexico2] Network Connection (rev 05)
> ...
> 
> To the PCI folks: any idea on what may cause the second cardbus bridge PCI
> device function to be missed? Are there any command line options the users
> who reported this issue[*] may try?

Thanks for the report.  Could you try disabling
ricoh_mmc_fixup_rl5c476(), e.g., with the patch below (this is based
on v5.4-rc1, but you can use v4.9 if that's easier for you)?  This
isn't a fix; it's just something that looks like it might be related.

> [*] For more information, see this thread:
> 	https://lore.kernel.org/lkml/CAFjuqNi+knSb9WVQOahCVFyxsiqoGgwoM7Z1aqDBebNzp_-jYw@mail.gmail.com/


diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 320255e5e8f8..7a1e1a242506 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -3036,38 +3036,6 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_HINT, 0x0020, quirk_hotplug_bridge);
  * #1, and this will confuse the PCI core.
  */
 #ifdef CONFIG_MMC_RICOH_MMC
-static void ricoh_mmc_fixup_rl5c476(struct pci_dev *dev)
-{
-	u8 write_enable;
-	u8 write_target;
-	u8 disable;
-
-	/*
-	 * Disable via CardBus interface
-	 *
-	 * This must be done via function #0
-	 */
-	if (PCI_FUNC(dev->devfn))
-		return;
-
-	pci_read_config_byte(dev, 0xB7, &disable);
-	if (disable & 0x02)
-		return;
-
-	pci_read_config_byte(dev, 0x8E, &write_enable);
-	pci_write_config_byte(dev, 0x8E, 0xAA);
-	pci_read_config_byte(dev, 0x8D, &write_target);
-	pci_write_config_byte(dev, 0x8D, 0xB7);
-	pci_write_config_byte(dev, 0xB7, disable | 0x02);
-	pci_write_config_byte(dev, 0x8E, write_enable);
-	pci_write_config_byte(dev, 0x8D, write_target);
-
-	pci_notice(dev, "proprietary Ricoh MMC controller disabled (via CardBus function)\n");
-	pci_notice(dev, "MMC cards are now supported by standard SDHCI controller\n");
-}
-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_RL5C476, ricoh_mmc_fixup_rl5c476);
-DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_RL5C476, ricoh_mmc_fixup_rl5c476);
-
 static void ricoh_mmc_fixup_r5c832(struct pci_dev *dev)
 {
 	u8 write_enable;

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]
  2019-10-21 16:09           ` Bjorn Helgaas
@ 2019-10-21 18:17             ` Michael .
  2019-10-21 18:47               ` Dominik Brodowski
  0 siblings, 1 reply; 22+ messages in thread
From: Michael . @ 2019-10-21 18:17 UTC (permalink / raw)
  To: Bjorn Helgaas
  Cc: Dominik Brodowski, linux-pci, linux-kernel, Trevor Jacobs,
	Kris Cleveland, Jeff, Morgan Klym

Thank you Dominik for looking at this for us and passing it on.

Good morning Bjorn, thank you also for looking into this for us and
thank you for CCing us into this as non of us are on the mailing list.
One question how do we apply this patch or is this for Dominik to try?

Cheers.
Michael

On 22/10/2019, Bjorn Helgaas <helgaas@kernel.org> wrote:
> On Sun, Oct 20, 2019 at 11:08:00AM +0200, Dominik Brodowski wrote:
>> On the basis of the additional information (thanks), there might be a
>> more specific path to investigate: It is that the PCI code does not
>> enumerate the second cardbus bridge PCI function in the more recent 4.19
>> kernel compared to the anvient (and working) 2.6 kernel.
>>
>> Namely, only one CardBus bridge is recognized
>>
>> ...
>> 06:01.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 8b)
>> 06:01.1 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host
>> Adapter (rev 11)
>> 06:02.0 Network controller: Intel Corporation PRO/Wireless 2915ABG
>> [Calexico2] Network Connection (rev 05)
>> ...
>>
>> instead of the two which really should be present:
>>
>> ...
>> 06:01.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 8b)
>> 06:01.1 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 8b)
>> 06:01.2 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host
>> Adapter (rev 11)
>> 06:02.0 Network controller: Intel Corporation PRO/Wireless 2915ABG
>> [Calexico2] Network Connection (rev 05)
>> ...
>>
>> To the PCI folks: any idea on what may cause the second cardbus bridge
>> PCI
>> device function to be missed? Are there any command line options the
>> users
>> who reported this issue[*] may try?
>
> Thanks for the report.  Could you try disabling
> ricoh_mmc_fixup_rl5c476(), e.g., with the patch below (this is based
> on v5.4-rc1, but you can use v4.9 if that's easier for you)?  This
> isn't a fix; it's just something that looks like it might be related.
>
>> [*] For more information, see this thread:
>> 	https://lore.kernel.org/lkml/CAFjuqNi+knSb9WVQOahCVFyxsiqoGgwoM7Z1aqDBebNzp_-jYw@mail.gmail.com/
>
>
> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> index 320255e5e8f8..7a1e1a242506 100644
> --- a/drivers/pci/quirks.c
> +++ b/drivers/pci/quirks.c
> @@ -3036,38 +3036,6 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_HINT, 0x0020,
> quirk_hotplug_bridge);
>   * #1, and this will confuse the PCI core.
>   */
>  #ifdef CONFIG_MMC_RICOH_MMC
> -static void ricoh_mmc_fixup_rl5c476(struct pci_dev *dev)
> -{
> -	u8 write_enable;
> -	u8 write_target;
> -	u8 disable;
> -
> -	/*
> -	 * Disable via CardBus interface
> -	 *
> -	 * This must be done via function #0
> -	 */
> -	if (PCI_FUNC(dev->devfn))
> -		return;
> -
> -	pci_read_config_byte(dev, 0xB7, &disable);
> -	if (disable & 0x02)
> -		return;
> -
> -	pci_read_config_byte(dev, 0x8E, &write_enable);
> -	pci_write_config_byte(dev, 0x8E, 0xAA);
> -	pci_read_config_byte(dev, 0x8D, &write_target);
> -	pci_write_config_byte(dev, 0x8D, 0xB7);
> -	pci_write_config_byte(dev, 0xB7, disable | 0x02);
> -	pci_write_config_byte(dev, 0x8E, write_enable);
> -	pci_write_config_byte(dev, 0x8D, write_target);
> -
> -	pci_notice(dev, "proprietary Ricoh MMC controller disabled (via CardBus
> function)\n");
> -	pci_notice(dev, "MMC cards are now supported by standard SDHCI
> controller\n");
> -}
> -DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_RL5C476,
> ricoh_mmc_fixup_rl5c476);
> -DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_RICOH,
> PCI_DEVICE_ID_RICOH_RL5C476, ricoh_mmc_fixup_rl5c476);
> -
>  static void ricoh_mmc_fixup_r5c832(struct pci_dev *dev)
>  {
>  	u8 write_enable;
>

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]
  2019-10-21 18:17             ` Michael .
@ 2019-10-21 18:47               ` Dominik Brodowski
  2019-10-21 18:59                 ` Michael .
  0 siblings, 1 reply; 22+ messages in thread
From: Dominik Brodowski @ 2019-10-21 18:47 UTC (permalink / raw)
  To: Michael .
  Cc: Bjorn Helgaas, linux-pci, linux-kernel, Trevor Jacobs,
	Kris Cleveland, Jeff, Morgan Klym

On Tue, Oct 22, 2019 at 05:17:12AM +1100, Michael . wrote:
> Thank you Dominik for looking at this for us and passing it on.
> 
> Good morning Bjorn, thank you also for looking into this for us and
> thank you for CCing us into this as non of us are on the mailing list.
> One question how do we apply this patch or is this for Dominik to try?

That's for you and/or other users of this hardware; I cannot test this
myself, sorry. As to how to apply the patch: you'd need to apply the patch
for the linux kernel sources, and then build a custom kernel. Some hints on
that (details depend on the distribtion):

	https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel
	https://wiki.ubuntu.com/KernelTeam/GitKernelBuild
	https://wiki.archlinux.org/index.php/Kernels/Arch_Build_System
	https://kernelnewbies.org/KernelBuild

Best,
	Dominik

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]
  2019-10-21 18:47               ` Dominik Brodowski
@ 2019-10-21 18:59                 ` Michael .
       [not found]                   ` <CAFjuqNg8_G-B5Owz1NBxa-nw620hXwcn9WkE4sfETVR81MWatA@mail.gmail.com>
  0 siblings, 1 reply; 22+ messages in thread
From: Michael . @ 2019-10-21 18:59 UTC (permalink / raw)
  To: Dominik Brodowski
  Cc: Bjorn Helgaas, linux-pci, linux-kernel, Trevor Jacobs,
	Kris Cleveland, Jeff, Morgan Klym

Thanks Domunik I'll get onto this and report back the results.

On 22/10/2019, Dominik Brodowski <linux@dominikbrodowski.net> wrote:
> On Tue, Oct 22, 2019 at 05:17:12AM +1100, Michael . wrote:
>> Thank you Dominik for looking at this for us and passing it on.
>>
>> Good morning Bjorn, thank you also for looking into this for us and
>> thank you for CCing us into this as non of us are on the mailing list.
>> One question how do we apply this patch or is this for Dominik to try?
>
> That's for you and/or other users of this hardware; I cannot test this
> myself, sorry. As to how to apply the patch: you'd need to apply the patch
> for the linux kernel sources, and then build a custom kernel. Some hints on
> that (details depend on the distribtion):
>
> 	https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel
> 	https://wiki.ubuntu.com/KernelTeam/GitKernelBuild
> 	https://wiki.archlinux.org/index.php/Kernels/Arch_Build_System
> 	https://kernelnewbies.org/KernelBuild
>
> Best,
> 	Dominik
>

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]
       [not found]                       ` <20191025075536.GA14531@owl.dominikbrodowski.net>
@ 2019-10-25 18:34                         ` Michael .
  2019-10-29  8:58                           ` Michael .
  0 siblings, 1 reply; 22+ messages in thread
From: Michael . @ 2019-10-25 18:34 UTC (permalink / raw)
  To: Dominik Brodowski
  Cc: Bjorn Helgaas, linux-pci, linux-kernel, Trevor Jacobs,
	Kris Cleveland, Jeff, Morgan Klym

Hi Dominik
Thanks for your continued help. I used the file you attached and tried
a compile on 4.19.80 here is the outout of the failure
  CC [M]  drivers/net/wireless/marvell/mwifiex/uap_txrx.o
  CC [M]  drivers/net/wireless/marvell/mwifiex/cfg80211.o
  CC [M]  drivers/net/wireless/marvell/mwifiex/ethtool.o
  CC [M]  drivers/net/wireless/marvell/mwifiex/11h.o
  CC [M]  drivers/net/wireless/marvell/mwifiex/tdls.o
  CC [M]  drivers/net/wireless/marvell/mwifiex/debugfs.o
  LD [M]  drivers/net/wireless/marvell/mwifiex/mwifiex.o
  CC [M]  drivers/net/wireless/marvell/mwifiex/sdio.o
  LD [M]  drivers/net/wireless/marvell/mwifiex/mwifiex_sdio.o
  CC [M]  drivers/net/wireless/marvell/mwifiex/pcie.o
  LD [M]  drivers/net/wireless/marvell/mwifiex/mwifiex_pcie.o
  CC [M]  drivers/net/wireless/marvell/mwifiex/usb.o
  LD [M]  drivers/net/wireless/marvell/mwifiex/mwifiex_usb.o
  AR      drivers/net/wireless/marvell/built-in.a
  CC [M]  drivers/net/wireless/marvell/mwl8k.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x0/usb.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x0/init.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x0/main.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x0/mcu.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x0/trace.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x0/dma.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x0/phy.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x0/mac.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x0/util.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x0/debugfs.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x0/tx.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x0/core.o
  LD [M]  drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mmio.o
  CC [M]  drivers/net/wireless/mediatek/mt76/util.o
  CC [M]  drivers/net/wireless/mediatek/mt76/trace.o
  CC [M]  drivers/net/wireless/mediatek/mt76/dma.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mac80211.o
  CC [M]  drivers/net/wireless/mediatek/mt76/debugfs.o
  CC [M]  drivers/net/wireless/mediatek/mt76/eeprom.o
  CC [M]  drivers/net/wireless/mediatek/mt76/tx.o
  CC [M]  drivers/net/wireless/mediatek/mt76/agg-rx.o
  LD [M]  drivers/net/wireless/mediatek/mt76/mt76.o
  CC [M]  drivers/net/wireless/mediatek/mt76/usb.o
  CC [M]  drivers/net/wireless/mediatek/mt76/usb_trace.o
  CC [M]  drivers/net/wireless/mediatek/mt76/usb_mcu.o
  LD [M]  drivers/net/wireless/mediatek/mt76/mt76-usb.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_eeprom.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_tx_common.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_mac_common.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_init_common.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_common.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_phy_common.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_debugfs.o
  LD [M]  drivers/net/wireless/mediatek/mt76/mt76x2-common.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_pci.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_dma.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_main.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_init.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_tx.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_core.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_mac.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_mcu.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_phy.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_dfs.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_trace.o
  LD [M]  drivers/net/wireless/mediatek/mt76/mt76x2e.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_usb.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2u_init.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2u_main.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2u_mac.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2u_mcu.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2u_phy.o
  CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2u_core.o
  LD [M]  drivers/net/wireless/mediatek/mt76/mt76x2u.o
  CC [M]  drivers/net/wireless/mediatek/mt7601u/usb.o
  CC [M]  drivers/net/wireless/mediatek/mt7601u/init.o
  CC [M]  drivers/net/wireless/mediatek/mt7601u/main.o
  CC [M]  drivers/net/wireless/mediatek/mt7601u/mcu.o
  CC [M]  drivers/net/wireless/mediatek/mt7601u/trace.o
  CC [M]  drivers/net/wireless/mediatek/mt7601u/dma.o
  CC [M]  drivers/net/wireless/mediatek/mt7601u/core.o
  CC [M]  drivers/net/wireless/mediatek/mt7601u/eeprom.o
  CC [M]  drivers/net/wireless/mediatek/mt7601u/phy.o
  CC [M]  drivers/net/wireless/mediatek/mt7601u/mac.o
  CC [M]  drivers/net/wireless/mediatek/mt7601u/util.o
  CC [M]  drivers/net/wireless/mediatek/mt7601u/debugfs.o
  CC [M]  drivers/net/wireless/mediatek/mt7601u/tx.o
  LD [M]  drivers/net/wireless/mediatek/mt7601u/mt7601u.o
  AR      drivers/net/wireless/mediatek/built-in.a
  AR      drivers/net/wireless/quantenna/built-in.a
  CC [M]  drivers/net/wireless/ralink/rt2x00/rt2x00dev.o
  CC [M]  drivers/net/wireless/ralink/rt2x00/rt2x00mac.o
  CC [M]  drivers/net/wireless/ralink/rt2x00/rt2x00config.o
  CC [M]  drivers/net/wireless/ralink/rt2x00/rt2x00queue.o
  CC [M]  drivers/net/wireless/ralink/rt2x00/rt2x00link.o
  CC [M]  drivers/net/wireless/ralink/rt2x00/rt2x00crypto.o
  CC [M]  drivers/net/wireless/ralink/rt2x00/rt2x00firmware.o
  CC [M]  drivers/net/wireless/ralink/rt2x00/rt2x00leds.o
  LD [M]  drivers/net/wireless/ralink/rt2x00/rt2x00lib.o
  CC [M]  drivers/net/wireless/ralink/rt2x00/rt2x00mmio.o
  CC [M]  drivers/net/wireless/ralink/rt2x00/rt2x00pci.o
  CC [M]  drivers/net/wireless/ralink/rt2x00/rt2x00usb.o
  CC [M]  drivers/net/wireless/ralink/rt2x00/rt2800lib.o
  CC [M]  drivers/net/wireless/ralink/rt2x00/rt2800mmio.o
  CC [M]  drivers/net/wireless/ralink/rt2x00/rt2400pci.o
  CC [M]  drivers/net/wireless/ralink/rt2x00/rt2500pci.o
  CC [M]  drivers/net/wireless/ralink/rt2x00/rt61pci.o
  CC [M]  drivers/net/wireless/ralink/rt2x00/rt2800pci.o
  CC [M]  drivers/net/wireless/ralink/rt2x00/rt2500usb.o
  CC [M]  drivers/net/wireless/ralink/rt2x00/rt73usb.o
  CC [M]  drivers/net/wireless/ralink/rt2x00/rt2800usb.o
  AR      drivers/net/wireless/ralink/built-in.a
  CC [M]  drivers/net/wireless/realtek/rtl818x/rtl8180/dev.o
  CC [M]  drivers/net/wireless/realtek/rtl818x/rtl8180/rtl8225.o
  CC [M]  drivers/net/wireless/realtek/rtl818x/rtl8180/sa2400.o
  CC [M]  drivers/net/wireless/realtek/rtl818x/rtl8180/max2820.o
  CC [M]  drivers/net/wireless/realtek/rtl818x/rtl8180/grf5101.o
  CC [M]  drivers/net/wireless/realtek/rtl818x/rtl8180/rtl8225se.o
  LD [M]  drivers/net/wireless/realtek/rtl818x/rtl8180/rtl818x_pci.o
  CC [M]  drivers/net/wireless/realtek/rtl818x/rtl8187/dev.o
  CC [M]  drivers/net/wireless/realtek/rtl818x/rtl8187/rtl8225.o
  CC [M]  drivers/net/wireless/realtek/rtl818x/rtl8187/leds.o
  CC [M]  drivers/net/wireless/realtek/rtl818x/rtl8187/rfkill.o
  LD [M]  drivers/net/wireless/realtek/rtl818x/rtl8187/rtl8187.o
  CC [M]  drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.o
  CC [M]  drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.o
  CC [M]  drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.o
  CC [M]  drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723a.o
  CC [M]  drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192c.o
  LD [M]  drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8192e2ant.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b1ant.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b2ant.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a1ant.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a2ant.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/btcoexist/rtl_btc.o
  LD [M]  drivers/net/wireless/realtek/rtlwifi/btcoexist/btcoexist.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8188ee/dm.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8188ee/fw.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8188ee/led.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8188ee/phy.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8188ee/pwrseq.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8188ee/rf.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8188ee/sw.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8188ee/table.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8188ee/trx.o
  LD [M]  drivers/net/wireless/realtek/rtlwifi/rtl8188ee/rtl8188ee.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192c/main.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192c/dm_common.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192c/fw_common.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192c/phy_common.o
  LD [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ce/dm.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ce/hw.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ce/led.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ce/phy.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ce/rf.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ce/sw.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ce/table.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ce/trx.o
  LD [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ce/rtl8192ce.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192cu/dm.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192cu/hw.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192cu/led.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192cu/mac.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192cu/phy.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192cu/rf.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192cu/sw.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192cu/table.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192cu/trx.o
  LD [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192cu/rtl8192cu.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192de/dm.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192de/fw.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192de/led.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192de/rf.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192de/sw.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192de/table.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.o
  LD [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192de/rtl8192de.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ee/dm.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ee/fw.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ee/led.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ee/phy.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ee/pwrseq.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ee/rf.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ee/sw.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ee/table.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ee/trx.o
  LD [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ee/rtl8192ee.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192se/dm.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192se/fw.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192se/hw.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192se/led.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192se/phy.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192se/rf.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192se/sw.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192se/table.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192se/trx.o
  LD [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192se/rtl8192se.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723ae/dm.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723ae/fw.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hal_btc.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hal_bt_coexist.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hw.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723ae/led.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723ae/pwrseq.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723ae/rf.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723ae/sw.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723ae/table.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723ae/trx.o
  LD [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723ae/rtl8723ae.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723be/dm.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723be/fw.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723be/led.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723be/phy.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723be/pwrseq.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723be/rf.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723be/sw.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723be/table.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723be/trx.o
  LD [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723be/rtl8723be.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723com/main.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723com/dm_common.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723com/fw_common.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723com/phy_common.o
  LD [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8821ae/dm.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8821ae/fw.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8821ae/led.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8821ae/phy.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8821ae/pwrseq.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8821ae/rf.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8821ae/sw.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8821ae/table.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8821ae/trx.o
  LD [M]  drivers/net/wireless/realtek/rtlwifi/rtl8821ae/rtl8821ae.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/base.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/cam.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/core.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/debug.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/efuse.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/ps.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rc.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/regd.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/stats.o
  LD [M]  drivers/net/wireless/realtek/rtlwifi/rtlwifi.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/pci.o
  LD [M]  drivers/net/wireless/realtek/rtlwifi/rtl_pci.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/usb.o
  LD [M]  drivers/net/wireless/realtek/rtlwifi/rtl_usb.o
  AR      drivers/net/wireless/realtek/built-in.a
  AR      drivers/net/wireless/rsi/built-in.a
  CC [M]  drivers/net/wireless/rsi/rsi_91x_main.o
  CC [M]  drivers/net/wireless/rsi/rsi_91x_core.o
  CC [M]  drivers/net/wireless/rsi/rsi_91x_mac80211.o
  CC [M]  drivers/net/wireless/rsi/rsi_91x_mgmt.o
  CC [M]  drivers/net/wireless/rsi/rsi_91x_hal.o
  CC [M]  drivers/net/wireless/rsi/rsi_91x_ps.o
  CC [M]  drivers/net/wireless/rsi/rsi_91x_coex.o
  CC [M]  drivers/net/wireless/rsi/rsi_91x_debugfs.o
  LD [M]  drivers/net/wireless/rsi/rsi_91x.o
  CC [M]  drivers/net/wireless/rsi/rsi_91x_usb.o
  CC [M]  drivers/net/wireless/rsi/rsi_91x_usb_ops.o
  LD [M]  drivers/net/wireless/rsi/rsi_usb.o
  AR      drivers/net/wireless/st/built-in.a
  CC [M]  drivers/net/wireless/zydas/zd1211rw/zd_chip.o
  CC [M]  drivers/net/wireless/zydas/zd1211rw/zd_mac.o
  CC [M]  drivers/net/wireless/zydas/zd1211rw/zd_rf_al2230.o
  CC [M]  drivers/net/wireless/zydas/zd1211rw/zd_rf_rf2959.o
  CC [M]  drivers/net/wireless/zydas/zd1211rw/zd_rf_al7230b.o
  CC [M]  drivers/net/wireless/zydas/zd1211rw/zd_rf_uw2453.o
  CC [M]  drivers/net/wireless/zydas/zd1211rw/zd_rf.o
  CC [M]  drivers/net/wireless/zydas/zd1211rw/zd_usb.o
  LD [M]  drivers/net/wireless/zydas/zd1211rw/zd1211rw.o
  AR      drivers/net/wireless/zydas/built-in.a
  CC [M]  drivers/net/wireless/zydas/zd1201.o
  AR      drivers/net/wireless/built-in.a
  CC [M]  drivers/net/wireless/ray_cs.o
  CC [M]  drivers/net/wireless/wl3501_cs.o
  CC [M]  drivers/net/wireless/rndis_wlan.o
  CC [M]  drivers/net/wireless/mac80211_hwsim.o
  CC [M]  drivers/net/xen-netback/netback.o
  CC [M]  drivers/net/xen-netback/xenbus.o
  CC [M]  drivers/net/xen-netback/interface.o
  CC [M]  drivers/net/xen-netback/hash.o
  CC [M]  drivers/net/xen-netback/rx.o
  LD [M]  drivers/net/xen-netback/xen-netback.o
  CC      drivers/net/Space.o
  CC      drivers/net/loopback.o
  AR      drivers/net/built-in.a
  CC [M]  drivers/net/dummy.o
  CC [M]  drivers/net/eql.o
  CC [M]  drivers/net/ifb.o
  CC [M]  drivers/net/macsec.o
  CC [M]  drivers/net/macvlan.o
  CC [M]  drivers/net/macvtap.o
  CC [M]  drivers/net/mii.o
  CC [M]  drivers/net/mdio.o
  CC [M]  drivers/net/netconsole.o
  CC [M]  drivers/net/tun.o
  CC [M]  drivers/net/tap.o
  CC [M]  drivers/net/veth.o
  CC [M]  drivers/net/virtio_net.o
  CC [M]  drivers/net/vxlan.o
  CC [M]  drivers/net/geneve.o
  CC [M]  drivers/net/gtp.o
  CC [M]  drivers/net/nlmon.o
  CC [M]  drivers/net/vrf.o
  CC [M]  drivers/net/vsockmon.o
  CC [M]  drivers/net/sb1000.o
  CC [M]  drivers/net/sungem_phy.o
  CC [M]  drivers/net/xen-netfront.o
  CC [M]  drivers/net/thunderbolt.o
  LD [M]  drivers/net/thunderbolt-net.o
  CC [M]  drivers/net/net_failover.o
  CC [M]  drivers/nfc/pn533/pn533.o
  CC [M]  drivers/nfc/pn533/usb.o
  LD [M]  drivers/nfc/pn533/pn533_usb.o
  CC [M]  drivers/nfc/pn544/pn544.o
  CC [M]  drivers/nfc/pn544/mei.o
  LD [M]  drivers/nfc/pn544/pn544_mei.o
  AR      drivers/nfc/built-in.a
  CC [M]  drivers/nfc/mei_phy.o
  CC [M]  drivers/nfc/nfcsim.o
  CC [M]  drivers/nfc/port100.o
  CC [M]  drivers/nvdimm/core.o
  CC [M]  drivers/nvdimm/bus.o
  CC [M]  drivers/nvdimm/dimm_devs.o
  CC [M]  drivers/nvdimm/dimm.o
  CC [M]  drivers/nvdimm/region_devs.o
  CC [M]  drivers/nvdimm/region.o
  CC [M]  drivers/nvdimm/namespace_devs.o
  CC [M]  drivers/nvdimm/label.o
  CC [M]  drivers/nvdimm/badrange.o
  CC [M]  drivers/nvdimm/claim.o
  CC [M]  drivers/nvdimm/btt_devs.o
  LD [M]  drivers/nvdimm/libnvdimm.o
  CC [M]  drivers/nvdimm/pmem.o
  LD [M]  drivers/nvdimm/nd_pmem.o
  CC [M]  drivers/nvdimm/btt.o
  LD [M]  drivers/nvdimm/nd_btt.o
  CC [M]  drivers/nvdimm/blk.o
  LD [M]  drivers/nvdimm/nd_blk.o
  CC [M]  drivers/nvdimm/e820.o
  LD [M]  drivers/nvdimm/nd_e820.o
  AR      drivers/nvme/host/built-in.a
  CC [M]  drivers/nvme/host/core.o
  CC [M]  drivers/nvme/host/trace.o
  CC [M]  drivers/nvme/host/multipath.o
  LD [M]  drivers/nvme/host/nvme-core.o
  CC [M]  drivers/nvme/host/pci.o
  LD [M]  drivers/nvme/host/nvme.o
  CC [M]  drivers/nvme/host/fabrics.o
  LD [M]  drivers/nvme/host/nvme-fabrics.o
  CC [M]  drivers/nvme/host/rdma.o
  LD [M]  drivers/nvme/host/nvme-rdma.o
  CC [M]  drivers/nvme/host/fc.o
  LD [M]  drivers/nvme/host/nvme-fc.o
  AR      drivers/nvme/target/built-in.a
  CC [M]  drivers/nvme/target/core.o
  CC [M]  drivers/nvme/target/configfs.o
  CC [M]  drivers/nvme/target/admin-cmd.o
  CC [M]  drivers/nvme/target/fabrics-cmd.o
  CC [M]  drivers/nvme/target/discovery.o
  CC [M]  drivers/nvme/target/io-cmd-file.o
  CC [M]  drivers/nvme/target/io-cmd-bdev.o
  LD [M]  drivers/nvme/target/nvmet.o
  CC [M]  drivers/nvme/target/rdma.o
  LD [M]  drivers/nvme/target/nvmet-rdma.o
  CC [M]  drivers/nvme/target/fc.o
  LD [M]  drivers/nvme/target/nvmet-fc.o
  AR      drivers/nvme/built-in.a
  CC      drivers/nvmem/core.o
  AR      drivers/nvmem/built-in.a
  CC      drivers/opp/core.o
  CC      drivers/opp/cpu.o
  CC      drivers/opp/debugfs.o
  AR      drivers/opp/built-in.a
  CC [M]  drivers/parport/share.o
  CC [M]  drivers/parport/ieee1284.o
  CC [M]  drivers/parport/ieee1284_ops.o
  CC [M]  drivers/parport/procfs.o
  CC [M]  drivers/parport/daisy.o
  CC [M]  drivers/parport/probe.o
  LD [M]  drivers/parport/parport.o
  CC [M]  drivers/parport/parport_pc.o
  CC [M]  drivers/parport/parport_serial.o
  CC [M]  drivers/parport/parport_cs.o
  AR      drivers/pci/controller/dwc/built-in.a
  AR      drivers/pci/controller/built-in.a
  CC      drivers/pci/hotplug/pci_hotplug_core.o
  CC      drivers/pci/hotplug/cpci_hotplug_core.o
  CC      drivers/pci/hotplug/cpci_hotplug_pci.o
  CC      drivers/pci/hotplug/acpi_pcihp.o
  CC      drivers/pci/hotplug/pciehp_core.o
  CC      drivers/pci/hotplug/pciehp_ctrl.o
  CC      drivers/pci/hotplug/pciehp_pci.o
  CC      drivers/pci/hotplug/pciehp_hpc.o
  CC      drivers/pci/hotplug/shpchp_core.o
  CC      drivers/pci/hotplug/shpchp_ctrl.o
  CC      drivers/pci/hotplug/shpchp_pci.o
  CC      drivers/pci/hotplug/shpchp_sysfs.o
  CC      drivers/pci/hotplug/shpchp_hpc.o
  CC      drivers/pci/hotplug/acpiphp_core.o
  CC      drivers/pci/hotplug/acpiphp_glue.o
  AR      drivers/pci/hotplug/built-in.a
  CC [M]  drivers/pci/hotplug/cpqphp_core.o
  CC [M]  drivers/pci/hotplug/cpqphp_ctrl.o
  CC [M]  drivers/pci/hotplug/cpqphp_sysfs.o
  CC [M]  drivers/pci/hotplug/cpqphp_pci.o
  LD [M]  drivers/pci/hotplug/cpqphp.o
  CC [M]  drivers/pci/hotplug/ibmphp_core.o
  CC [M]  drivers/pci/hotplug/ibmphp_ebda.o
  CC [M]  drivers/pci/hotplug/ibmphp_pci.o
  CC [M]  drivers/pci/hotplug/ibmphp_res.o
  CC [M]  drivers/pci/hotplug/ibmphp_hpc.o
  LD [M]  drivers/pci/hotplug/ibmphp.o
  CC [M]  drivers/pci/hotplug/cpcihp_zt5550.o
  CC [M]  drivers/pci/hotplug/cpcihp_generic.o
  CC [M]  drivers/pci/hotplug/acpiphp_ibm.o
  CC      drivers/pci/pcie/portdrv_core.o
  CC      drivers/pci/pcie/portdrv_pci.o
  CC      drivers/pci/pcie/err.o
  CC      drivers/pci/pcie/aspm.o
  CC      drivers/pci/pcie/aer.o
  CC      drivers/pci/pcie/pme.o
  CC      drivers/pci/pcie/dpc.o
  CC      drivers/pci/pcie/ptm.o
  AR      drivers/pci/pcie/built-in.a
  CC [M]  drivers/pci/pcie/aer_inject.o
  AR      drivers/pci/switch/built-in.a
  CC      drivers/pci/access.o
  CC      drivers/pci/bus.o
  CC      drivers/pci/probe.o
  CC      drivers/pci/host-bridge.o
  CC      drivers/pci/remove.o
  CC      drivers/pci/pci.o
  CC      drivers/pci/pci-driver.o
  CC      drivers/pci/search.o
  CC      drivers/pci/pci-sysfs.o
  CC      drivers/pci/rom.o
  CC      drivers/pci/setup-res.o
  CC      drivers/pci/irq.o
  CC      drivers/pci/vpd.o
  CC      drivers/pci/setup-bus.o
  CC      drivers/pci/vc.o
  CC      drivers/pci/mmap.o
  CC      drivers/pci/setup-irq.o
  CC      drivers/pci/proc.o
  CC      drivers/pci/slot.o
  CC      drivers/pci/quirks.o
drivers/pci/quirks.c: In function ‘quirk_synopsys_haps’:
drivers/pci/quirks.c:631:7: error: ‘PCI_DEVICE_ID_SYNOPSYS_HAPSUSB3’
undeclared (first use in this function); did you mean
‘PCI_DEVICE_ID_ESS_MAESTRO3’?
  case PCI_DEVICE_ID_SYNOPSYS_HAPSUSB3:
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       PCI_DEVICE_ID_ESS_MAESTRO3
drivers/pci/quirks.c:631:7: note: each undeclared identifier is
reported only once for each function it appears in
drivers/pci/quirks.c:632:7: error:
‘PCI_DEVICE_ID_SYNOPSYS_HAPSUSB3_AXI’ undeclared (first use in this
function); did you mean ‘PCI_DEVICE_ID_SUN_CASSINI’?
  case PCI_DEVICE_ID_SYNOPSYS_HAPSUSB3_AXI:
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       PCI_DEVICE_ID_SUN_CASSINI
drivers/pci/quirks.c:633:7: error: ‘PCI_DEVICE_ID_SYNOPSYS_HAPSUSB31’
undeclared (first use in this function); did you mean
‘PCI_DEVICE_ID_SUN_CASSINI’?
  case PCI_DEVICE_ID_SYNOPSYS_HAPSUSB31:
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       PCI_DEVICE_ID_SUN_CASSINI
drivers/pci/quirks.c: In function ‘quirk_disable_aspm_l0s’:
drivers/pci/quirks.c:2229:2: error: implicit declaration of function
‘pci_disable_link_state’; did you mean ‘pci_restore_iov_state’?
[-Werror=implicit-function-declaration]
  pci_disable_link_state(dev, PCIE_LINK_STATE_L0S);
  ^~~~~~~~~~~~~~~~~~~~~~
  pci_restore_iov_state
drivers/pci/quirks.c:2229:30: error: ‘PCIE_LINK_STATE_L0S’ undeclared
(first use in this function); did you mean ‘PCIE_LNK_WIDTH_RESRV’?
  pci_disable_link_state(dev, PCIE_LINK_STATE_L0S);
                              ^~~~~~~~~~~~~~~~~~~
                              PCIE_LNK_WIDTH_RESRV
drivers/pci/quirks.c: At top level:
drivers/pci/quirks.c:4612:4: error: ‘PCI_VENDOR_ID_HXT’ undeclared
here (not in a function); did you mean ‘PCI_VENDOR_ID_ATT’?
  { PCI_VENDOR_ID_HXT, 0x0401, pci_quirk_qcom_rp_acs },
    ^~~~~~~~~~~~~~~~~
    PCI_VENDOR_ID_ATT
drivers/pci/quirks.c:4633:4: error:
‘PCI_VENDOR_ID_AMAZON_ANNAPURNA_LABS’ undeclared here (not in a
function); did you mean ‘PCI_VENDOR_ID_AMAZON’?
  { PCI_VENDOR_ID_AMAZON_ANNAPURNA_LABS, 0x0031, pci_quirk_al_acs },
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    PCI_VENDOR_ID_AMAZON
drivers/pci/quirks.c: In function ‘quirk_nvidia_hda’:
drivers/pci/quirks.c:5096:20: error:
‘PCI_DEVICE_ID_NVIDIA_GEFORCE_320M’ undeclared (first use in this
function); did you mean ‘PCI_DEVICE_ID_NVIDIA_GEFORCE_6200’?
  if (gpu->device < PCI_DEVICE_ID_NVIDIA_GEFORCE_320M)
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    PCI_DEVICE_ID_NVIDIA_GEFORCE_6200
drivers/pci/quirks.c:5096:18: warning: comparison between pointer and integer
  if (gpu->device < PCI_DEVICE_ID_NVIDIA_GEFORCE_320M)
                  ^
cc1: some warnings being treated as errors
make[5]: *** [scripts/Makefile.build:304: drivers/pci/quirks.o] Error 1
make[4]: *** [scripts/Makefile.build:544: drivers/pci] Error 2
make[3]: *** [Makefile:1046: drivers] Error 2
make[2]: *** [debian/rules:4: build] Error 2
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2
make[1]: *** [scripts/package/Makefile:75: deb-pkg] Error 2
make: *** [Makefile:1359: deb-pkg] Error 2
root@CF-29:/home/michael/kernel/linux-4.19.80#

I will now try a compile of 5.4-rc1
Cheers.
Michael.


On 25/10/2019, Dominik Brodowski <linux@dominikbrodowski.net> wrote:
> The patch doesn't seem to have been applied correctly (using the patch(1)
> utility). Attached is the file how it should look like.
>
> 	Dominik
>
> On Fri, Oct 25, 2019 at 01:38:46PM +1100, Michael . wrote:
>> Here's the resulting output of the failed compilation of 5.4rc1 with
>> the patch applied to quirks.c:
>>  CC      drivers/pci/quirks.o
>> drivers/pci/quirks.c:3039:1: error: expected identifier or ‘(’ before ‘-’
>> token
>>  3039 | -static void ricoh_mmc_fixup_rl5c476(struct pci_dev *dev)
>>       | ^
>> drivers/pci/quirks.c:3068:1: error: expected identifier or ‘(’ before ‘-’
>> token
>
>

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]
  2019-10-25 18:34                         ` Michael .
@ 2019-10-29  8:58                           ` Michael .
  2019-10-29 17:02                             ` Bjorn Helgaas
  0 siblings, 1 reply; 22+ messages in thread
From: Michael . @ 2019-10-29  8:58 UTC (permalink / raw)
  To: Bjorn Helgaas
  Cc: Dominik Brodowski, linux-pci, linux-kernel, Trevor Jacobs,
	Kris Cleveland, Jeff, Morgan Klym

Bjorn and Dominik.
I am happy to let you know the patch did the trick, it compiled well
on 5.4-rc4 and my friends in the CC list have tested the modified
kernel and confirmed that both slots are now working as they should.
As a group of dedicated Toughbook users and Linux users please accept
our thanks your efforts and assistance is greatly appreciated.

Now that we knwo this patch works what kernel do you think it will be
released in? Will it make 5.4 or will it be put into 5.5 development
for further testing?

Thanks again.
Michael Findlay on behalf of many others.

On 26/10/2019, Michael . <keltoiboy@gmail.com> wrote:
> Hi Dominik
> Thanks for your continued help. I used the file you attached and tried
> a compile on 4.19.80 here is the outout of the failure
>   CC [M]  drivers/net/wireless/marvell/mwifiex/uap_txrx.o
>   CC [M]  drivers/net/wireless/marvell/mwifiex/cfg80211.o
>   CC [M]  drivers/net/wireless/marvell/mwifiex/ethtool.o
>   CC [M]  drivers/net/wireless/marvell/mwifiex/11h.o
>   CC [M]  drivers/net/wireless/marvell/mwifiex/tdls.o
>   CC [M]  drivers/net/wireless/marvell/mwifiex/debugfs.o
>   LD [M]  drivers/net/wireless/marvell/mwifiex/mwifiex.o
>   CC [M]  drivers/net/wireless/marvell/mwifiex/sdio.o
>   LD [M]  drivers/net/wireless/marvell/mwifiex/mwifiex_sdio.o
>   CC [M]  drivers/net/wireless/marvell/mwifiex/pcie.o
>   LD [M]  drivers/net/wireless/marvell/mwifiex/mwifiex_pcie.o
>   CC [M]  drivers/net/wireless/marvell/mwifiex/usb.o
>   LD [M]  drivers/net/wireless/marvell/mwifiex/mwifiex_usb.o
>   AR      drivers/net/wireless/marvell/built-in.a
>   CC [M]  drivers/net/wireless/marvell/mwl8k.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x0/usb.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x0/init.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x0/main.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x0/mcu.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x0/trace.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x0/dma.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x0/phy.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x0/mac.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x0/util.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x0/debugfs.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x0/tx.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x0/core.o
>   LD [M]  drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mmio.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/util.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/trace.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/dma.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mac80211.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/debugfs.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/eeprom.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/tx.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/agg-rx.o
>   LD [M]  drivers/net/wireless/mediatek/mt76/mt76.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/usb.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/usb_trace.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/usb_mcu.o
>   LD [M]  drivers/net/wireless/mediatek/mt76/mt76-usb.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_eeprom.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_tx_common.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_mac_common.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_init_common.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_common.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_phy_common.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_debugfs.o
>   LD [M]  drivers/net/wireless/mediatek/mt76/mt76x2-common.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_pci.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_dma.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_main.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_init.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_tx.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_core.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_mac.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_mcu.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_phy.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_dfs.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_trace.o
>   LD [M]  drivers/net/wireless/mediatek/mt76/mt76x2e.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2_usb.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2u_init.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2u_main.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2u_mac.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2u_mcu.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2u_phy.o
>   CC [M]  drivers/net/wireless/mediatek/mt76/mt76x2u_core.o
>   LD [M]  drivers/net/wireless/mediatek/mt76/mt76x2u.o
>   CC [M]  drivers/net/wireless/mediatek/mt7601u/usb.o
>   CC [M]  drivers/net/wireless/mediatek/mt7601u/init.o
>   CC [M]  drivers/net/wireless/mediatek/mt7601u/main.o
>   CC [M]  drivers/net/wireless/mediatek/mt7601u/mcu.o
>   CC [M]  drivers/net/wireless/mediatek/mt7601u/trace.o
>   CC [M]  drivers/net/wireless/mediatek/mt7601u/dma.o
>   CC [M]  drivers/net/wireless/mediatek/mt7601u/core.o
>   CC [M]  drivers/net/wireless/mediatek/mt7601u/eeprom.o
>   CC [M]  drivers/net/wireless/mediatek/mt7601u/phy.o
>   CC [M]  drivers/net/wireless/mediatek/mt7601u/mac.o
>   CC [M]  drivers/net/wireless/mediatek/mt7601u/util.o
>   CC [M]  drivers/net/wireless/mediatek/mt7601u/debugfs.o
>   CC [M]  drivers/net/wireless/mediatek/mt7601u/tx.o
>   LD [M]  drivers/net/wireless/mediatek/mt7601u/mt7601u.o
>   AR      drivers/net/wireless/mediatek/built-in.a
>   AR      drivers/net/wireless/quantenna/built-in.a
>   CC [M]  drivers/net/wireless/ralink/rt2x00/rt2x00dev.o
>   CC [M]  drivers/net/wireless/ralink/rt2x00/rt2x00mac.o
>   CC [M]  drivers/net/wireless/ralink/rt2x00/rt2x00config.o
>   CC [M]  drivers/net/wireless/ralink/rt2x00/rt2x00queue.o
>   CC [M]  drivers/net/wireless/ralink/rt2x00/rt2x00link.o
>   CC [M]  drivers/net/wireless/ralink/rt2x00/rt2x00crypto.o
>   CC [M]  drivers/net/wireless/ralink/rt2x00/rt2x00firmware.o
>   CC [M]  drivers/net/wireless/ralink/rt2x00/rt2x00leds.o
>   LD [M]  drivers/net/wireless/ralink/rt2x00/rt2x00lib.o
>   CC [M]  drivers/net/wireless/ralink/rt2x00/rt2x00mmio.o
>   CC [M]  drivers/net/wireless/ralink/rt2x00/rt2x00pci.o
>   CC [M]  drivers/net/wireless/ralink/rt2x00/rt2x00usb.o
>   CC [M]  drivers/net/wireless/ralink/rt2x00/rt2800lib.o
>   CC [M]  drivers/net/wireless/ralink/rt2x00/rt2800mmio.o
>   CC [M]  drivers/net/wireless/ralink/rt2x00/rt2400pci.o
>   CC [M]  drivers/net/wireless/ralink/rt2x00/rt2500pci.o
>   CC [M]  drivers/net/wireless/ralink/rt2x00/rt61pci.o
>   CC [M]  drivers/net/wireless/ralink/rt2x00/rt2800pci.o
>   CC [M]  drivers/net/wireless/ralink/rt2x00/rt2500usb.o
>   CC [M]  drivers/net/wireless/ralink/rt2x00/rt73usb.o
>   CC [M]  drivers/net/wireless/ralink/rt2x00/rt2800usb.o
>   AR      drivers/net/wireless/ralink/built-in.a
>   CC [M]  drivers/net/wireless/realtek/rtl818x/rtl8180/dev.o
>   CC [M]  drivers/net/wireless/realtek/rtl818x/rtl8180/rtl8225.o
>   CC [M]  drivers/net/wireless/realtek/rtl818x/rtl8180/sa2400.o
>   CC [M]  drivers/net/wireless/realtek/rtl818x/rtl8180/max2820.o
>   CC [M]  drivers/net/wireless/realtek/rtl818x/rtl8180/grf5101.o
>   CC [M]  drivers/net/wireless/realtek/rtl818x/rtl8180/rtl8225se.o
>   LD [M]  drivers/net/wireless/realtek/rtl818x/rtl8180/rtl818x_pci.o
>   CC [M]  drivers/net/wireless/realtek/rtl818x/rtl8187/dev.o
>   CC [M]  drivers/net/wireless/realtek/rtl818x/rtl8187/rtl8225.o
>   CC [M]  drivers/net/wireless/realtek/rtl818x/rtl8187/leds.o
>   CC [M]  drivers/net/wireless/realtek/rtl818x/rtl8187/rfkill.o
>   LD [M]  drivers/net/wireless/realtek/rtl818x/rtl8187/rtl8187.o
>   CC [M]  drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.o
>   CC [M]  drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.o
>   CC [M]  drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.o
>   CC [M]  drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723a.o
>   CC [M]  drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192c.o
>   LD [M]  drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8192e2ant.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b1ant.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b2ant.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a1ant.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a2ant.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/btcoexist/rtl_btc.o
>   LD [M]  drivers/net/wireless/realtek/rtlwifi/btcoexist/btcoexist.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8188ee/dm.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8188ee/fw.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8188ee/led.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8188ee/phy.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8188ee/pwrseq.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8188ee/rf.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8188ee/sw.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8188ee/table.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8188ee/trx.o
>   LD [M]  drivers/net/wireless/realtek/rtlwifi/rtl8188ee/rtl8188ee.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192c/main.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192c/dm_common.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192c/fw_common.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192c/phy_common.o
>   LD [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ce/dm.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ce/hw.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ce/led.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ce/phy.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ce/rf.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ce/sw.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ce/table.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ce/trx.o
>   LD [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ce/rtl8192ce.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192cu/dm.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192cu/hw.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192cu/led.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192cu/mac.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192cu/phy.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192cu/rf.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192cu/sw.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192cu/table.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192cu/trx.o
>   LD [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192cu/rtl8192cu.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192de/dm.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192de/fw.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192de/led.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192de/rf.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192de/sw.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192de/table.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.o
>   LD [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192de/rtl8192de.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ee/dm.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ee/fw.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ee/led.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ee/phy.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ee/pwrseq.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ee/rf.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ee/sw.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ee/table.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ee/trx.o
>   LD [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192ee/rtl8192ee.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192se/dm.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192se/fw.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192se/hw.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192se/led.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192se/phy.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192se/rf.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192se/sw.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192se/table.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192se/trx.o
>   LD [M]  drivers/net/wireless/realtek/rtlwifi/rtl8192se/rtl8192se.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723ae/dm.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723ae/fw.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hal_btc.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hal_bt_coexist.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hw.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723ae/led.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723ae/pwrseq.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723ae/rf.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723ae/sw.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723ae/table.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723ae/trx.o
>   LD [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723ae/rtl8723ae.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723be/dm.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723be/fw.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723be/led.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723be/phy.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723be/pwrseq.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723be/rf.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723be/sw.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723be/table.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723be/trx.o
>   LD [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723be/rtl8723be.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723com/main.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723com/dm_common.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723com/fw_common.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723com/phy_common.o
>   LD [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8821ae/dm.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8821ae/fw.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8821ae/led.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8821ae/phy.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8821ae/pwrseq.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8821ae/rf.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8821ae/sw.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8821ae/table.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8821ae/trx.o
>   LD [M]  drivers/net/wireless/realtek/rtlwifi/rtl8821ae/rtl8821ae.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/base.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/cam.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/core.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/debug.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/efuse.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/ps.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/rc.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/regd.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/stats.o
>   LD [M]  drivers/net/wireless/realtek/rtlwifi/rtlwifi.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/pci.o
>   LD [M]  drivers/net/wireless/realtek/rtlwifi/rtl_pci.o
>   CC [M]  drivers/net/wireless/realtek/rtlwifi/usb.o
>   LD [M]  drivers/net/wireless/realtek/rtlwifi/rtl_usb.o
>   AR      drivers/net/wireless/realtek/built-in.a
>   AR      drivers/net/wireless/rsi/built-in.a
>   CC [M]  drivers/net/wireless/rsi/rsi_91x_main.o
>   CC [M]  drivers/net/wireless/rsi/rsi_91x_core.o
>   CC [M]  drivers/net/wireless/rsi/rsi_91x_mac80211.o
>   CC [M]  drivers/net/wireless/rsi/rsi_91x_mgmt.o
>   CC [M]  drivers/net/wireless/rsi/rsi_91x_hal.o
>   CC [M]  drivers/net/wireless/rsi/rsi_91x_ps.o
>   CC [M]  drivers/net/wireless/rsi/rsi_91x_coex.o
>   CC [M]  drivers/net/wireless/rsi/rsi_91x_debugfs.o
>   LD [M]  drivers/net/wireless/rsi/rsi_91x.o
>   CC [M]  drivers/net/wireless/rsi/rsi_91x_usb.o
>   CC [M]  drivers/net/wireless/rsi/rsi_91x_usb_ops.o
>   LD [M]  drivers/net/wireless/rsi/rsi_usb.o
>   AR      drivers/net/wireless/st/built-in.a
>   CC [M]  drivers/net/wireless/zydas/zd1211rw/zd_chip.o
>   CC [M]  drivers/net/wireless/zydas/zd1211rw/zd_mac.o
>   CC [M]  drivers/net/wireless/zydas/zd1211rw/zd_rf_al2230.o
>   CC [M]  drivers/net/wireless/zydas/zd1211rw/zd_rf_rf2959.o
>   CC [M]  drivers/net/wireless/zydas/zd1211rw/zd_rf_al7230b.o
>   CC [M]  drivers/net/wireless/zydas/zd1211rw/zd_rf_uw2453.o
>   CC [M]  drivers/net/wireless/zydas/zd1211rw/zd_rf.o
>   CC [M]  drivers/net/wireless/zydas/zd1211rw/zd_usb.o
>   LD [M]  drivers/net/wireless/zydas/zd1211rw/zd1211rw.o
>   AR      drivers/net/wireless/zydas/built-in.a
>   CC [M]  drivers/net/wireless/zydas/zd1201.o
>   AR      drivers/net/wireless/built-in.a
>   CC [M]  drivers/net/wireless/ray_cs.o
>   CC [M]  drivers/net/wireless/wl3501_cs.o
>   CC [M]  drivers/net/wireless/rndis_wlan.o
>   CC [M]  drivers/net/wireless/mac80211_hwsim.o
>   CC [M]  drivers/net/xen-netback/netback.o
>   CC [M]  drivers/net/xen-netback/xenbus.o
>   CC [M]  drivers/net/xen-netback/interface.o
>   CC [M]  drivers/net/xen-netback/hash.o
>   CC [M]  drivers/net/xen-netback/rx.o
>   LD [M]  drivers/net/xen-netback/xen-netback.o
>   CC      drivers/net/Space.o
>   CC      drivers/net/loopback.o
>   AR      drivers/net/built-in.a
>   CC [M]  drivers/net/dummy.o
>   CC [M]  drivers/net/eql.o
>   CC [M]  drivers/net/ifb.o
>   CC [M]  drivers/net/macsec.o
>   CC [M]  drivers/net/macvlan.o
>   CC [M]  drivers/net/macvtap.o
>   CC [M]  drivers/net/mii.o
>   CC [M]  drivers/net/mdio.o
>   CC [M]  drivers/net/netconsole.o
>   CC [M]  drivers/net/tun.o
>   CC [M]  drivers/net/tap.o
>   CC [M]  drivers/net/veth.o
>   CC [M]  drivers/net/virtio_net.o
>   CC [M]  drivers/net/vxlan.o
>   CC [M]  drivers/net/geneve.o
>   CC [M]  drivers/net/gtp.o
>   CC [M]  drivers/net/nlmon.o
>   CC [M]  drivers/net/vrf.o
>   CC [M]  drivers/net/vsockmon.o
>   CC [M]  drivers/net/sb1000.o
>   CC [M]  drivers/net/sungem_phy.o
>   CC [M]  drivers/net/xen-netfront.o
>   CC [M]  drivers/net/thunderbolt.o
>   LD [M]  drivers/net/thunderbolt-net.o
>   CC [M]  drivers/net/net_failover.o
>   CC [M]  drivers/nfc/pn533/pn533.o
>   CC [M]  drivers/nfc/pn533/usb.o
>   LD [M]  drivers/nfc/pn533/pn533_usb.o
>   CC [M]  drivers/nfc/pn544/pn544.o
>   CC [M]  drivers/nfc/pn544/mei.o
>   LD [M]  drivers/nfc/pn544/pn544_mei.o
>   AR      drivers/nfc/built-in.a
>   CC [M]  drivers/nfc/mei_phy.o
>   CC [M]  drivers/nfc/nfcsim.o
>   CC [M]  drivers/nfc/port100.o
>   CC [M]  drivers/nvdimm/core.o
>   CC [M]  drivers/nvdimm/bus.o
>   CC [M]  drivers/nvdimm/dimm_devs.o
>   CC [M]  drivers/nvdimm/dimm.o
>   CC [M]  drivers/nvdimm/region_devs.o
>   CC [M]  drivers/nvdimm/region.o
>   CC [M]  drivers/nvdimm/namespace_devs.o
>   CC [M]  drivers/nvdimm/label.o
>   CC [M]  drivers/nvdimm/badrange.o
>   CC [M]  drivers/nvdimm/claim.o
>   CC [M]  drivers/nvdimm/btt_devs.o
>   LD [M]  drivers/nvdimm/libnvdimm.o
>   CC [M]  drivers/nvdimm/pmem.o
>   LD [M]  drivers/nvdimm/nd_pmem.o
>   CC [M]  drivers/nvdimm/btt.o
>   LD [M]  drivers/nvdimm/nd_btt.o
>   CC [M]  drivers/nvdimm/blk.o
>   LD [M]  drivers/nvdimm/nd_blk.o
>   CC [M]  drivers/nvdimm/e820.o
>   LD [M]  drivers/nvdimm/nd_e820.o
>   AR      drivers/nvme/host/built-in.a
>   CC [M]  drivers/nvme/host/core.o
>   CC [M]  drivers/nvme/host/trace.o
>   CC [M]  drivers/nvme/host/multipath.o
>   LD [M]  drivers/nvme/host/nvme-core.o
>   CC [M]  drivers/nvme/host/pci.o
>   LD [M]  drivers/nvme/host/nvme.o
>   CC [M]  drivers/nvme/host/fabrics.o
>   LD [M]  drivers/nvme/host/nvme-fabrics.o
>   CC [M]  drivers/nvme/host/rdma.o
>   LD [M]  drivers/nvme/host/nvme-rdma.o
>   CC [M]  drivers/nvme/host/fc.o
>   LD [M]  drivers/nvme/host/nvme-fc.o
>   AR      drivers/nvme/target/built-in.a
>   CC [M]  drivers/nvme/target/core.o
>   CC [M]  drivers/nvme/target/configfs.o
>   CC [M]  drivers/nvme/target/admin-cmd.o
>   CC [M]  drivers/nvme/target/fabrics-cmd.o
>   CC [M]  drivers/nvme/target/discovery.o
>   CC [M]  drivers/nvme/target/io-cmd-file.o
>   CC [M]  drivers/nvme/target/io-cmd-bdev.o
>   LD [M]  drivers/nvme/target/nvmet.o
>   CC [M]  drivers/nvme/target/rdma.o
>   LD [M]  drivers/nvme/target/nvmet-rdma.o
>   CC [M]  drivers/nvme/target/fc.o
>   LD [M]  drivers/nvme/target/nvmet-fc.o
>   AR      drivers/nvme/built-in.a
>   CC      drivers/nvmem/core.o
>   AR      drivers/nvmem/built-in.a
>   CC      drivers/opp/core.o
>   CC      drivers/opp/cpu.o
>   CC      drivers/opp/debugfs.o
>   AR      drivers/opp/built-in.a
>   CC [M]  drivers/parport/share.o
>   CC [M]  drivers/parport/ieee1284.o
>   CC [M]  drivers/parport/ieee1284_ops.o
>   CC [M]  drivers/parport/procfs.o
>   CC [M]  drivers/parport/daisy.o
>   CC [M]  drivers/parport/probe.o
>   LD [M]  drivers/parport/parport.o
>   CC [M]  drivers/parport/parport_pc.o
>   CC [M]  drivers/parport/parport_serial.o
>   CC [M]  drivers/parport/parport_cs.o
>   AR      drivers/pci/controller/dwc/built-in.a
>   AR      drivers/pci/controller/built-in.a
>   CC      drivers/pci/hotplug/pci_hotplug_core.o
>   CC      drivers/pci/hotplug/cpci_hotplug_core.o
>   CC      drivers/pci/hotplug/cpci_hotplug_pci.o
>   CC      drivers/pci/hotplug/acpi_pcihp.o
>   CC      drivers/pci/hotplug/pciehp_core.o
>   CC      drivers/pci/hotplug/pciehp_ctrl.o
>   CC      drivers/pci/hotplug/pciehp_pci.o
>   CC      drivers/pci/hotplug/pciehp_hpc.o
>   CC      drivers/pci/hotplug/shpchp_core.o
>   CC      drivers/pci/hotplug/shpchp_ctrl.o
>   CC      drivers/pci/hotplug/shpchp_pci.o
>   CC      drivers/pci/hotplug/shpchp_sysfs.o
>   CC      drivers/pci/hotplug/shpchp_hpc.o
>   CC      drivers/pci/hotplug/acpiphp_core.o
>   CC      drivers/pci/hotplug/acpiphp_glue.o
>   AR      drivers/pci/hotplug/built-in.a
>   CC [M]  drivers/pci/hotplug/cpqphp_core.o
>   CC [M]  drivers/pci/hotplug/cpqphp_ctrl.o
>   CC [M]  drivers/pci/hotplug/cpqphp_sysfs.o
>   CC [M]  drivers/pci/hotplug/cpqphp_pci.o
>   LD [M]  drivers/pci/hotplug/cpqphp.o
>   CC [M]  drivers/pci/hotplug/ibmphp_core.o
>   CC [M]  drivers/pci/hotplug/ibmphp_ebda.o
>   CC [M]  drivers/pci/hotplug/ibmphp_pci.o
>   CC [M]  drivers/pci/hotplug/ibmphp_res.o
>   CC [M]  drivers/pci/hotplug/ibmphp_hpc.o
>   LD [M]  drivers/pci/hotplug/ibmphp.o
>   CC [M]  drivers/pci/hotplug/cpcihp_zt5550.o
>   CC [M]  drivers/pci/hotplug/cpcihp_generic.o
>   CC [M]  drivers/pci/hotplug/acpiphp_ibm.o
>   CC      drivers/pci/pcie/portdrv_core.o
>   CC      drivers/pci/pcie/portdrv_pci.o
>   CC      drivers/pci/pcie/err.o
>   CC      drivers/pci/pcie/aspm.o
>   CC      drivers/pci/pcie/aer.o
>   CC      drivers/pci/pcie/pme.o
>   CC      drivers/pci/pcie/dpc.o
>   CC      drivers/pci/pcie/ptm.o
>   AR      drivers/pci/pcie/built-in.a
>   CC [M]  drivers/pci/pcie/aer_inject.o
>   AR      drivers/pci/switch/built-in.a
>   CC      drivers/pci/access.o
>   CC      drivers/pci/bus.o
>   CC      drivers/pci/probe.o
>   CC      drivers/pci/host-bridge.o
>   CC      drivers/pci/remove.o
>   CC      drivers/pci/pci.o
>   CC      drivers/pci/pci-driver.o
>   CC      drivers/pci/search.o
>   CC      drivers/pci/pci-sysfs.o
>   CC      drivers/pci/rom.o
>   CC      drivers/pci/setup-res.o
>   CC      drivers/pci/irq.o
>   CC      drivers/pci/vpd.o
>   CC      drivers/pci/setup-bus.o
>   CC      drivers/pci/vc.o
>   CC      drivers/pci/mmap.o
>   CC      drivers/pci/setup-irq.o
>   CC      drivers/pci/proc.o
>   CC      drivers/pci/slot.o
>   CC      drivers/pci/quirks.o
> drivers/pci/quirks.c: In function ‘quirk_synopsys_haps’:
> drivers/pci/quirks.c:631:7: error: ‘PCI_DEVICE_ID_SYNOPSYS_HAPSUSB3’
> undeclared (first use in this function); did you mean
> ‘PCI_DEVICE_ID_ESS_MAESTRO3’?
>   case PCI_DEVICE_ID_SYNOPSYS_HAPSUSB3:
>        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>        PCI_DEVICE_ID_ESS_MAESTRO3
> drivers/pci/quirks.c:631:7: note: each undeclared identifier is
> reported only once for each function it appears in
> drivers/pci/quirks.c:632:7: error:
> ‘PCI_DEVICE_ID_SYNOPSYS_HAPSUSB3_AXI’ undeclared (first use in this
> function); did you mean ‘PCI_DEVICE_ID_SUN_CASSINI’?
>   case PCI_DEVICE_ID_SYNOPSYS_HAPSUSB3_AXI:
>        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>        PCI_DEVICE_ID_SUN_CASSINI
> drivers/pci/quirks.c:633:7: error: ‘PCI_DEVICE_ID_SYNOPSYS_HAPSUSB31’
> undeclared (first use in this function); did you mean
> ‘PCI_DEVICE_ID_SUN_CASSINI’?
>   case PCI_DEVICE_ID_SYNOPSYS_HAPSUSB31:
>        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>        PCI_DEVICE_ID_SUN_CASSINI
> drivers/pci/quirks.c: In function ‘quirk_disable_aspm_l0s’:
> drivers/pci/quirks.c:2229:2: error: implicit declaration of function
> ‘pci_disable_link_state’; did you mean ‘pci_restore_iov_state’?
> [-Werror=implicit-function-declaration]
>   pci_disable_link_state(dev, PCIE_LINK_STATE_L0S);
>   ^~~~~~~~~~~~~~~~~~~~~~
>   pci_restore_iov_state
> drivers/pci/quirks.c:2229:30: error: ‘PCIE_LINK_STATE_L0S’ undeclared
> (first use in this function); did you mean ‘PCIE_LNK_WIDTH_RESRV’?
>   pci_disable_link_state(dev, PCIE_LINK_STATE_L0S);
>                               ^~~~~~~~~~~~~~~~~~~
>                               PCIE_LNK_WIDTH_RESRV
> drivers/pci/quirks.c: At top level:
> drivers/pci/quirks.c:4612:4: error: ‘PCI_VENDOR_ID_HXT’ undeclared
> here (not in a function); did you mean ‘PCI_VENDOR_ID_ATT’?
>   { PCI_VENDOR_ID_HXT, 0x0401, pci_quirk_qcom_rp_acs },
>     ^~~~~~~~~~~~~~~~~
>     PCI_VENDOR_ID_ATT
> drivers/pci/quirks.c:4633:4: error:
> ‘PCI_VENDOR_ID_AMAZON_ANNAPURNA_LABS’ undeclared here (not in a
> function); did you mean ‘PCI_VENDOR_ID_AMAZON’?
>   { PCI_VENDOR_ID_AMAZON_ANNAPURNA_LABS, 0x0031, pci_quirk_al_acs },
>     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     PCI_VENDOR_ID_AMAZON
> drivers/pci/quirks.c: In function ‘quirk_nvidia_hda’:
> drivers/pci/quirks.c:5096:20: error:
> ‘PCI_DEVICE_ID_NVIDIA_GEFORCE_320M’ undeclared (first use in this
> function); did you mean ‘PCI_DEVICE_ID_NVIDIA_GEFORCE_6200’?
>   if (gpu->device < PCI_DEVICE_ID_NVIDIA_GEFORCE_320M)
>                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>                     PCI_DEVICE_ID_NVIDIA_GEFORCE_6200
> drivers/pci/quirks.c:5096:18: warning: comparison between pointer and
> integer
>   if (gpu->device < PCI_DEVICE_ID_NVIDIA_GEFORCE_320M)
>                   ^
> cc1: some warnings being treated as errors
> make[5]: *** [scripts/Makefile.build:304: drivers/pci/quirks.o] Error 1
> make[4]: *** [scripts/Makefile.build:544: drivers/pci] Error 2
> make[3]: *** [Makefile:1046: drivers] Error 2
> make[2]: *** [debian/rules:4: build] Error 2
> dpkg-buildpackage: error: debian/rules build subprocess returned exit status
> 2
> make[1]: *** [scripts/package/Makefile:75: deb-pkg] Error 2
> make: *** [Makefile:1359: deb-pkg] Error 2
> root@CF-29:/home/michael/kernel/linux-4.19.80#
>
> I will now try a compile of 5.4-rc1
> Cheers.
> Michael.
>
>
> On 25/10/2019, Dominik Brodowski <linux@dominikbrodowski.net> wrote:
>> The patch doesn't seem to have been applied correctly (using the patch(1)
>> utility). Attached is the file how it should look like.
>>
>> 	Dominik
>>
>> On Fri, Oct 25, 2019 at 01:38:46PM +1100, Michael . wrote:
>>> Here's the resulting output of the failed compilation of 5.4rc1 with
>>> the patch applied to quirks.c:
>>>  CC      drivers/pci/quirks.o
>>> drivers/pci/quirks.c:3039:1: error: expected identifier or ‘(’ before
>>> ‘-’
>>> token
>>>  3039 | -static void ricoh_mmc_fixup_rl5c476(struct pci_dev *dev)
>>>       | ^
>>> drivers/pci/quirks.c:3068:1: error: expected identifier or ‘(’ before
>>> ‘-’
>>> token
>>
>>
>

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]
  2019-10-29  8:58                           ` Michael .
@ 2019-10-29 17:02                             ` Bjorn Helgaas
  2020-02-22 16:56                               ` Bjorn Helgaas
  0 siblings, 1 reply; 22+ messages in thread
From: Bjorn Helgaas @ 2019-10-29 17:02 UTC (permalink / raw)
  To: Michael .
  Cc: Dominik Brodowski, linux-pci, linux-kernel, Trevor Jacobs,
	Kris Cleveland, Jeff, Morgan Klym, Ulf Hansson, Philip Langdale,
	Pierre Ossman, Maxim Levitsky, linux-mmc

[+cc Ulf, Philip, Pierre, Maxim, linux-mmc; see [1] for beginning of
thread, [2] for problem report and the patch Michael tested]

On Tue, Oct 29, 2019 at 07:58:27PM +1100, Michael . wrote:
> Bjorn and Dominik.
> I am happy to let you know the patch did the trick, it compiled well
> on 5.4-rc4 and my friends in the CC list have tested the modified
> kernel and confirmed that both slots are now working as they should.
> As a group of dedicated Toughbook users and Linux users please accept
> our thanks your efforts and assistance is greatly appreciated.
> 
> Now that we know this patch works what kernel do you think it will be
> released in? Will it make 5.4 or will it be put into 5.5 development
> for further testing?

That patch was not intended to be a fix; it was just to test my guess
that the quirk might be related.

Removing the quirk solved the problem *you're* seeing, but the quirk
was added in the first place to solve some other problem, and if we
simply remove the quirk, we may reintroduce the original problem.

So we have to look at the history and figure out some way to solve
both problems.  I cc'd some people who might have insight.  Here are
some commits that look relevant:

  5ae70296c85f ("mmc: Disabler for Ricoh MMC controller")
  03cd8f7ebe0c ("ricoh_mmc: port from driver to pci quirk")


[1] https://lore.kernel.org/r/CAFjuqNi+knSb9WVQOahCVFyxsiqoGgwoM7Z1aqDBebNzp_-jYw@mail.gmail.com/
[2] https://lore.kernel.org/r/20191021160952.GA229204@google.com/

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]
  2019-10-29 17:02                             ` Bjorn Helgaas
@ 2020-02-22 16:56                               ` Bjorn Helgaas
  2020-02-22 18:14                                 ` Michael .
  2020-02-25 15:03                                 ` Ulf Hansson
  0 siblings, 2 replies; 22+ messages in thread
From: Bjorn Helgaas @ 2020-02-22 16:56 UTC (permalink / raw)
  To: Michael .
  Cc: Dominik Brodowski, linux-pci, linux-kernel, Trevor Jacobs,
	Kris Cleveland, Jeff, Morgan Klym, Ulf Hansson, Philip Langdale,
	Pierre Ossman, Maxim Levitsky, linux-mmc

On Tue, Oct 29, 2019 at 12:02:50PM -0500, Bjorn Helgaas wrote:
> [+cc Ulf, Philip, Pierre, Maxim, linux-mmc; see [1] for beginning of
> thread, [2] for problem report and the patch Michael tested]
> 
> On Tue, Oct 29, 2019 at 07:58:27PM +1100, Michael . wrote:
> > Bjorn and Dominik.
> > I am happy to let you know the patch did the trick, it compiled well
> > on 5.4-rc4 and my friends in the CC list have tested the modified
> > kernel and confirmed that both slots are now working as they should.
> > As a group of dedicated Toughbook users and Linux users please accept
> > our thanks your efforts and assistance is greatly appreciated.
> > 
> > Now that we know this patch works what kernel do you think it will be
> > released in? Will it make 5.4 or will it be put into 5.5 development
> > for further testing?
> 
> That patch was not intended to be a fix; it was just to test my guess
> that the quirk might be related.
> 
> Removing the quirk solved the problem *you're* seeing, but the quirk
> was added in the first place to solve some other problem, and if we
> simply remove the quirk, we may reintroduce the original problem.
> 
> So we have to look at the history and figure out some way to solve
> both problems.  I cc'd some people who might have insight.  Here are
> some commits that look relevant:
> 
>   5ae70296c85f ("mmc: Disabler for Ricoh MMC controller")
>   03cd8f7ebe0c ("ricoh_mmc: port from driver to pci quirk")
> 
> 
> [1] https://lore.kernel.org/r/CAFjuqNi+knSb9WVQOahCVFyxsiqoGgwoM7Z1aqDBebNzp_-jYw@mail.gmail.com/
> [2] https://lore.kernel.org/r/20191021160952.GA229204@google.com/

I guess this problem is still unfixed?  I hate the fact that we broke
something that used to work.

Maybe we need some sort of DMI check in ricoh_mmc_fixup_rl5c476() so
we skip it for Toughbooks?  Or maybe we limit the quirk to the
machines where it was originally needed?

Bjorn

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]
  2020-02-22 16:56                               ` Bjorn Helgaas
@ 2020-02-22 18:14                                 ` Michael .
  2020-02-25 15:03                                 ` Ulf Hansson
  1 sibling, 0 replies; 22+ messages in thread
From: Michael . @ 2020-02-22 18:14 UTC (permalink / raw)
  To: Bjorn Helgaas
  Cc: Dominik Brodowski, linux-pci, linux-kernel, Trevor Jacobs,
	Kris Cleveland, Jeff, Morgan Klym, Ulf Hansson, Philip Langdale,
	Pierre Ossman, Maxim Levitsky, linux-mmc

Hi Bjorn, yes this is still unfixed.
I'm sorry that I haven't been able to pursue this but the weather in
Australia has been horrendous since October last year. Your proposals
sound good but are way beyond my knowledge and skill level to
implement. I, and my friends, are happy to help in any way we can.
Cheers.
Michael.

P.S. I apologise for the double reply

On 23/02/2020, Bjorn Helgaas <helgaas@kernel.org> wrote:
> On Tue, Oct 29, 2019 at 12:02:50PM -0500, Bjorn Helgaas wrote:
>> [+cc Ulf, Philip, Pierre, Maxim, linux-mmc; see [1] for beginning of
>> thread, [2] for problem report and the patch Michael tested]
>>
>> On Tue, Oct 29, 2019 at 07:58:27PM +1100, Michael . wrote:
>> > Bjorn and Dominik.
>> > I am happy to let you know the patch did the trick, it compiled well
>> > on 5.4-rc4 and my friends in the CC list have tested the modified
>> > kernel and confirmed that both slots are now working as they should.
>> > As a group of dedicated Toughbook users and Linux users please accept
>> > our thanks your efforts and assistance is greatly appreciated.
>> >
>> > Now that we know this patch works what kernel do you think it will be
>> > released in? Will it make 5.4 or will it be put into 5.5 development
>> > for further testing?
>>
>> That patch was not intended to be a fix; it was just to test my guess
>> that the quirk might be related.
>>
>> Removing the quirk solved the problem *you're* seeing, but the quirk
>> was added in the first place to solve some other problem, and if we
>> simply remove the quirk, we may reintroduce the original problem.
>>
>> So we have to look at the history and figure out some way to solve
>> both problems.  I cc'd some people who might have insight.  Here are
>> some commits that look relevant:
>>
>>   5ae70296c85f ("mmc: Disabler for Ricoh MMC controller")
>>   03cd8f7ebe0c ("ricoh_mmc: port from driver to pci quirk")
>>
>>
>> [1]
>> https://lore.kernel.org/r/CAFjuqNi+knSb9WVQOahCVFyxsiqoGgwoM7Z1aqDBebNzp_-jYw@mail.gmail.com/
>> [2] https://lore.kernel.org/r/20191021160952.GA229204@google.com/
>
> I guess this problem is still unfixed?  I hate the fact that we broke
> something that used to work.
>
> Maybe we need some sort of DMI check in ricoh_mmc_fixup_rl5c476() so
> we skip it for Toughbooks?  Or maybe we limit the quirk to the
> machines where it was originally needed?
>
> Bjorn
>

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]
  2020-02-22 16:56                               ` Bjorn Helgaas
  2020-02-22 18:14                                 ` Michael .
@ 2020-02-25 15:03                                 ` Ulf Hansson
  2020-02-25 19:15                                   ` Bjorn Helgaas
                                                     ` (2 more replies)
  1 sibling, 3 replies; 22+ messages in thread
From: Ulf Hansson @ 2020-02-25 15:03 UTC (permalink / raw)
  To: Bjorn Helgaas
  Cc: Michael .,
	Dominik Brodowski, Linux PCI, Linux Kernel Mailing List,
	Trevor Jacobs, Kris Cleveland, Jeff, Morgan Klym,
	Philip Langdale, Pierre Ossman, Maxim Levitsky, linux-mmc

On Sat, 22 Feb 2020 at 17:56, Bjorn Helgaas <helgaas@kernel.org> wrote:
>
> On Tue, Oct 29, 2019 at 12:02:50PM -0500, Bjorn Helgaas wrote:
> > [+cc Ulf, Philip, Pierre, Maxim, linux-mmc; see [1] for beginning of
> > thread, [2] for problem report and the patch Michael tested]
> >
> > On Tue, Oct 29, 2019 at 07:58:27PM +1100, Michael . wrote:
> > > Bjorn and Dominik.
> > > I am happy to let you know the patch did the trick, it compiled well
> > > on 5.4-rc4 and my friends in the CC list have tested the modified
> > > kernel and confirmed that both slots are now working as they should.
> > > As a group of dedicated Toughbook users and Linux users please accept
> > > our thanks your efforts and assistance is greatly appreciated.
> > >
> > > Now that we know this patch works what kernel do you think it will be
> > > released in? Will it make 5.4 or will it be put into 5.5 development
> > > for further testing?
> >
> > That patch was not intended to be a fix; it was just to test my guess
> > that the quirk might be related.
> >
> > Removing the quirk solved the problem *you're* seeing, but the quirk
> > was added in the first place to solve some other problem, and if we
> > simply remove the quirk, we may reintroduce the original problem.
> >
> > So we have to look at the history and figure out some way to solve
> > both problems.  I cc'd some people who might have insight.  Here are
> > some commits that look relevant:
> >
> >   5ae70296c85f ("mmc: Disabler for Ricoh MMC controller")
> >   03cd8f7ebe0c ("ricoh_mmc: port from driver to pci quirk")
> >
> >
> > [1] https://lore.kernel.org/r/CAFjuqNi+knSb9WVQOahCVFyxsiqoGgwoM7Z1aqDBebNzp_-jYw@mail.gmail.com/
> > [2] https://lore.kernel.org/r/20191021160952.GA229204@google.com/
>
> I guess this problem is still unfixed?  I hate the fact that we broke
> something that used to work.
>
> Maybe we need some sort of DMI check in ricoh_mmc_fixup_rl5c476() so
> we skip it for Toughbooks?  Or maybe we limit the quirk to the
> machines where it was originally needed?

Both options seems reasonable to me. Do you have time to put together a patch?

Kind regards
Uffe

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]
  2020-02-25 15:03                                 ` Ulf Hansson
@ 2020-02-25 19:15                                   ` Bjorn Helgaas
  2020-02-25 23:46                                   ` bluerocksaddles
  2020-02-26  1:13                                   ` Arvind Sankar
  2 siblings, 0 replies; 22+ messages in thread
From: Bjorn Helgaas @ 2020-02-25 19:15 UTC (permalink / raw)
  To: Ulf Hansson
  Cc: Michael .,
	Dominik Brodowski, Linux PCI, Linux Kernel Mailing List,
	Trevor Jacobs, Kris Cleveland, Jeff, Morgan Klym,
	Philip Langdale, Pierre Ossman, Maxim Levitsky, linux-mmc

On Tue, Feb 25, 2020 at 04:03:32PM +0100, Ulf Hansson wrote:
> On Sat, 22 Feb 2020 at 17:56, Bjorn Helgaas <helgaas@kernel.org> wrote:
> >
> > On Tue, Oct 29, 2019 at 12:02:50PM -0500, Bjorn Helgaas wrote:
> > > [+cc Ulf, Philip, Pierre, Maxim, linux-mmc; see [1] for beginning of
> > > thread, [2] for problem report and the patch Michael tested]
> > >
> > > On Tue, Oct 29, 2019 at 07:58:27PM +1100, Michael . wrote:
> > > > Bjorn and Dominik.
> > > > I am happy to let you know the patch did the trick, it compiled well
> > > > on 5.4-rc4 and my friends in the CC list have tested the modified
> > > > kernel and confirmed that both slots are now working as they should.
> > > > As a group of dedicated Toughbook users and Linux users please accept
> > > > our thanks your efforts and assistance is greatly appreciated.
> > > >
> > > > Now that we know this patch works what kernel do you think it will be
> > > > released in? Will it make 5.4 or will it be put into 5.5 development
> > > > for further testing?
> > >
> > > That patch was not intended to be a fix; it was just to test my guess
> > > that the quirk might be related.
> > >
> > > Removing the quirk solved the problem *you're* seeing, but the quirk
> > > was added in the first place to solve some other problem, and if we
> > > simply remove the quirk, we may reintroduce the original problem.
> > >
> > > So we have to look at the history and figure out some way to solve
> > > both problems.  I cc'd some people who might have insight.  Here are
> > > some commits that look relevant:
> > >
> > >   5ae70296c85f ("mmc: Disabler for Ricoh MMC controller")
> > >   03cd8f7ebe0c ("ricoh_mmc: port from driver to pci quirk")
> > >
> > >
> > > [1] https://lore.kernel.org/r/CAFjuqNi+knSb9WVQOahCVFyxsiqoGgwoM7Z1aqDBebNzp_-jYw@mail.gmail.com/
> > > [2] https://lore.kernel.org/r/20191021160952.GA229204@google.com/
> >
> > I guess this problem is still unfixed?  I hate the fact that we broke
> > something that used to work.
> >
> > Maybe we need some sort of DMI check in ricoh_mmc_fixup_rl5c476() so
> > we skip it for Toughbooks?  Or maybe we limit the quirk to the
> > machines where it was originally needed?
> 
> Both options seems reasonable to me. Do you have time to put
> together a patch?

I don't really have time, and I'm not sure which way is best.  In
general I like to avoid quirks, so I would lean toward applying the
quirk only on the machines that we know need it.  But I'm not sure how
to identify those.

Bjorn

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]
  2020-02-25 15:03                                 ` Ulf Hansson
  2020-02-25 19:15                                   ` Bjorn Helgaas
@ 2020-02-25 23:46                                   ` bluerocksaddles
  2020-02-26  1:13                                   ` Arvind Sankar
  2 siblings, 0 replies; 22+ messages in thread
From: bluerocksaddles @ 2020-02-25 23:46 UTC (permalink / raw)
  To: Ulf Hansson
  Cc: Bjorn Helgaas, Michael .,
	Dominik Brodowski, Linux PCI, Linux Kernel Mailing List,
	Trevor Jacobs, Kris Cleveland, Morgan Klym, Philip Langdale,
	Pierre Ossman, Maxim Levitsky, linux-mmc

Bjorn,

If you folks need a test unit or five, let me know. I can donate any 
Mark CF-29 to the project. (MK 2 or 3 will duplicate the "problem".) 
They are non-pae 386.

Jeff

On 2020-02-25 07:03, Ulf Hansson wrote:
> On Sat, 22 Feb 2020 at 17:56, Bjorn Helgaas <helgaas@kernel.org> wrote:
>> 
>> On Tue, Oct 29, 2019 at 12:02:50PM -0500, Bjorn Helgaas wrote:
>> > [+cc Ulf, Philip, Pierre, Maxim, linux-mmc; see [1] for beginning of
>> > thread, [2] for problem report and the patch Michael tested]
>> >
>> > On Tue, Oct 29, 2019 at 07:58:27PM +1100, Michael . wrote:
>> > > Bjorn and Dominik.
>> > > I am happy to let you know the patch did the trick, it compiled well
>> > > on 5.4-rc4 and my friends in the CC list have tested the modified
>> > > kernel and confirmed that both slots are now working as they should.
>> > > As a group of dedicated Toughbook users and Linux users please accept
>> > > our thanks your efforts and assistance is greatly appreciated.
>> > >
>> > > Now that we know this patch works what kernel do you think it will be
>> > > released in? Will it make 5.4 or will it be put into 5.5 development
>> > > for further testing?
>> >
>> > That patch was not intended to be a fix; it was just to test my guess
>> > that the quirk might be related.
>> >
>> > Removing the quirk solved the problem *you're* seeing, but the quirk
>> > was added in the first place to solve some other problem, and if we
>> > simply remove the quirk, we may reintroduce the original problem.
>> >
>> > So we have to look at the history and figure out some way to solve
>> > both problems.  I cc'd some people who might have insight.  Here are
>> > some commits that look relevant:
>> >
>> >   5ae70296c85f ("mmc: Disabler for Ricoh MMC controller")
>> >   03cd8f7ebe0c ("ricoh_mmc: port from driver to pci quirk")
>> >
>> >
>> > [1] https://lore.kernel.org/r/CAFjuqNi+knSb9WVQOahCVFyxsiqoGgwoM7Z1aqDBebNzp_-jYw@mail.gmail.com/
>> > [2] https://lore.kernel.org/r/20191021160952.GA229204@google.com/
>> 
>> I guess this problem is still unfixed?  I hate the fact that we broke
>> something that used to work.
>> 
>> Maybe we need some sort of DMI check in ricoh_mmc_fixup_rl5c476() so
>> we skip it for Toughbooks?  Or maybe we limit the quirk to the
>> machines where it was originally needed?
> 
> Both options seems reasonable to me. Do you have time to put together a 
> patch?
> 
> Kind regards
> Uffe

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]
  2020-02-25 15:03                                 ` Ulf Hansson
  2020-02-25 19:15                                   ` Bjorn Helgaas
  2020-02-25 23:46                                   ` bluerocksaddles
@ 2020-02-26  1:13                                   ` Arvind Sankar
  2020-02-26  1:50                                     ` Michael .
  2 siblings, 1 reply; 22+ messages in thread
From: Arvind Sankar @ 2020-02-26  1:13 UTC (permalink / raw)
  To: Ulf Hansson
  Cc: Bjorn Helgaas, Michael .,
	Dominik Brodowski, Linux PCI, Linux Kernel Mailing List,
	Trevor Jacobs, Kris Cleveland, Jeff, Morgan Klym,
	Philip Langdale, Pierre Ossman, Maxim Levitsky, linux-mmc

On Tue, Feb 25, 2020 at 04:03:32PM +0100, Ulf Hansson wrote:
> On Sat, 22 Feb 2020 at 17:56, Bjorn Helgaas <helgaas@kernel.org> wrote:
> >
> > On Tue, Oct 29, 2019 at 12:02:50PM -0500, Bjorn Helgaas wrote:
> > > [+cc Ulf, Philip, Pierre, Maxim, linux-mmc; see [1] for beginning of
> > > thread, [2] for problem report and the patch Michael tested]
> > >
> > > On Tue, Oct 29, 2019 at 07:58:27PM +1100, Michael . wrote:
> > > > Bjorn and Dominik.
> > > > I am happy to let you know the patch did the trick, it compiled well
> > > > on 5.4-rc4 and my friends in the CC list have tested the modified
> > > > kernel and confirmed that both slots are now working as they should.
> > > > As a group of dedicated Toughbook users and Linux users please accept
> > > > our thanks your efforts and assistance is greatly appreciated.
> > > >
> > > > Now that we know this patch works what kernel do you think it will be
> > > > released in? Will it make 5.4 or will it be put into 5.5 development
> > > > for further testing?
> > >
> > > That patch was not intended to be a fix; it was just to test my guess
> > > that the quirk might be related.
> > >
> > > Removing the quirk solved the problem *you're* seeing, but the quirk
> > > was added in the first place to solve some other problem, and if we
> > > simply remove the quirk, we may reintroduce the original problem.
> > >
> > > So we have to look at the history and figure out some way to solve
> > > both problems.  I cc'd some people who might have insight.  Here are
> > > some commits that look relevant:
> > >
> > >   5ae70296c85f ("mmc: Disabler for Ricoh MMC controller")
> > >   03cd8f7ebe0c ("ricoh_mmc: port from driver to pci quirk")
> > >
> > >
> > > [1] https://lore.kernel.org/r/CAFjuqNi+knSb9WVQOahCVFyxsiqoGgwoM7Z1aqDBebNzp_-jYw@mail.gmail.com/
> > > [2] https://lore.kernel.org/r/20191021160952.GA229204@google.com/
> >
> > I guess this problem is still unfixed?  I hate the fact that we broke
> > something that used to work.
> >
> > Maybe we need some sort of DMI check in ricoh_mmc_fixup_rl5c476() so
> > we skip it for Toughbooks?  Or maybe we limit the quirk to the
> > machines where it was originally needed?
> 
> Both options seems reasonable to me. Do you have time to put together a patch?
> 
> Kind regards
> Uffe

The quirk is controlled by MMC_RICOH_MMC configuration option. At least
as a short-term fix a bit better than patching the kernel, building one
with that config option disabled should have the same effect.

From the commit messages, the quirk was required to support MMC (as
opposed to SD) cards in the SD slot. I would assume this will be an
issue with the chip in any machine as the commit indicates that the
hardware in the chip detects MMC cards and doesn't expose them through
the SDHCI function.

It looks like the quirk was only enabled by default in 2015, at least
upstream [1], though in Debian it was enabled in May 2010 going by their
git repo, maybe in 2.6.32-16.

[1] commit ba2f73250e4a ("mmc: Enable Ricoh MMC quirk by default")

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]
  2020-02-26  1:13                                   ` Arvind Sankar
@ 2020-02-26  1:50                                     ` Michael .
  2020-02-26  3:12                                       ` Trevor Jacobs
  0 siblings, 1 reply; 22+ messages in thread
From: Michael . @ 2020-02-26  1:50 UTC (permalink / raw)
  To: Arvind Sankar
  Cc: Ulf Hansson, Bjorn Helgaas, Dominik Brodowski, Linux PCI,
	Linux Kernel Mailing List, Trevor Jacobs, Kris Cleveland, Jeff,
	Morgan Klym, Philip Langdale, Pierre Ossman, Maxim Levitsky,
	linux-mmc

Through our own testing it hasn't worked on any of the regular Linux
releases (both Deb and RPM varieties, and I think someone tested Arch
or Slackware as well) after 2.6.32 .

On 26/02/2020, Arvind Sankar <nivedita@alum.mit.edu> wrote:
> On Tue, Feb 25, 2020 at 04:03:32PM +0100, Ulf Hansson wrote:
>> On Sat, 22 Feb 2020 at 17:56, Bjorn Helgaas <helgaas@kernel.org> wrote:
>> >
>> > On Tue, Oct 29, 2019 at 12:02:50PM -0500, Bjorn Helgaas wrote:
>> > > [+cc Ulf, Philip, Pierre, Maxim, linux-mmc; see [1] for beginning of
>> > > thread, [2] for problem report and the patch Michael tested]
>> > >
>> > > On Tue, Oct 29, 2019 at 07:58:27PM +1100, Michael . wrote:
>> > > > Bjorn and Dominik.
>> > > > I am happy to let you know the patch did the trick, it compiled
>> > > > well
>> > > > on 5.4-rc4 and my friends in the CC list have tested the modified
>> > > > kernel and confirmed that both slots are now working as they
>> > > > should.
>> > > > As a group of dedicated Toughbook users and Linux users please
>> > > > accept
>> > > > our thanks your efforts and assistance is greatly appreciated.
>> > > >
>> > > > Now that we know this patch works what kernel do you think it will
>> > > > be
>> > > > released in? Will it make 5.4 or will it be put into 5.5
>> > > > development
>> > > > for further testing?
>> > >
>> > > That patch was not intended to be a fix; it was just to test my guess
>> > > that the quirk might be related.
>> > >
>> > > Removing the quirk solved the problem *you're* seeing, but the quirk
>> > > was added in the first place to solve some other problem, and if we
>> > > simply remove the quirk, we may reintroduce the original problem.
>> > >
>> > > So we have to look at the history and figure out some way to solve
>> > > both problems.  I cc'd some people who might have insight.  Here are
>> > > some commits that look relevant:
>> > >
>> > >   5ae70296c85f ("mmc: Disabler for Ricoh MMC controller")
>> > >   03cd8f7ebe0c ("ricoh_mmc: port from driver to pci quirk")
>> > >
>> > >
>> > > [1]
>> > > https://lore.kernel.org/r/CAFjuqNi+knSb9WVQOahCVFyxsiqoGgwoM7Z1aqDBebNzp_-jYw@mail.gmail.com/
>> > > [2] https://lore.kernel.org/r/20191021160952.GA229204@google.com/
>> >
>> > I guess this problem is still unfixed?  I hate the fact that we broke
>> > something that used to work.
>> >
>> > Maybe we need some sort of DMI check in ricoh_mmc_fixup_rl5c476() so
>> > we skip it for Toughbooks?  Or maybe we limit the quirk to the
>> > machines where it was originally needed?
>>
>> Both options seems reasonable to me. Do you have time to put together a
>> patch?
>>
>> Kind regards
>> Uffe
>
> The quirk is controlled by MMC_RICOH_MMC configuration option. At least
> as a short-term fix a bit better than patching the kernel, building one
> with that config option disabled should have the same effect.
>
> From the commit messages, the quirk was required to support MMC (as
> opposed to SD) cards in the SD slot. I would assume this will be an
> issue with the chip in any machine as the commit indicates that the
> hardware in the chip detects MMC cards and doesn't expose them through
> the SDHCI function.
>
> It looks like the quirk was only enabled by default in 2015, at least
> upstream [1], though in Debian it was enabled in May 2010 going by their
> git repo, maybe in 2.6.32-16.
>
> [1] commit ba2f73250e4a ("mmc: Enable Ricoh MMC quirk by default")
>

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]
  2020-02-26  1:50                                     ` Michael .
@ 2020-02-26  3:12                                       ` Trevor Jacobs
  2020-02-26  4:51                                         ` Arvind Sankar
  0 siblings, 1 reply; 22+ messages in thread
From: Trevor Jacobs @ 2020-02-26  3:12 UTC (permalink / raw)
  To: Michael ., Arvind Sankar
  Cc: Ulf Hansson, Bjorn Helgaas, Dominik Brodowski, Linux PCI,
	Linux Kernel Mailing List, Kris Cleveland, Jeff, Morgan Klym,
	Philip Langdale, Pierre Ossman, Maxim Levitsky, linux-mmc

That's correct, I tested a bunch of the old distros including slackware, 
and 2.6.32 is where the problem began.

Also, the Panasonic Toughbook CF-29s effected that we tested are the 
later marks, MK4 and MK5 for certain. The MK2 CF-29 worked just fine 
because it has different hardware supporting the PCMCIA slots. I have 
not tested a MK3 but suspect it would work ok as it also uses the older 
hardware.

Thanks for your help guys!
Trevor

On 2/25/20 7:50 PM, Michael . wrote:
> Through our own testing it hasn't worked on any of the regular Linux
> releases (both Deb and RPM varieties, and I think someone tested Arch
> or Slackware as well) after 2.6.32 .
>
> On 26/02/2020, Arvind Sankar <nivedita@alum.mit.edu> wrote:
>> On Tue, Feb 25, 2020 at 04:03:32PM +0100, Ulf Hansson wrote:
>>> On Sat, 22 Feb 2020 at 17:56, Bjorn Helgaas <helgaas@kernel.org> wrote:
>>>> On Tue, Oct 29, 2019 at 12:02:50PM -0500, Bjorn Helgaas wrote:
>>>>> [+cc Ulf, Philip, Pierre, Maxim, linux-mmc; see [1] for beginning of
>>>>> thread, [2] for problem report and the patch Michael tested]
>>>>>
>>>>> On Tue, Oct 29, 2019 at 07:58:27PM +1100, Michael . wrote:
>>>>>> Bjorn and Dominik.
>>>>>> I am happy to let you know the patch did the trick, it compiled
>>>>>> well
>>>>>> on 5.4-rc4 and my friends in the CC list have tested the modified
>>>>>> kernel and confirmed that both slots are now working as they
>>>>>> should.
>>>>>> As a group of dedicated Toughbook users and Linux users please
>>>>>> accept
>>>>>> our thanks your efforts and assistance is greatly appreciated.
>>>>>>
>>>>>> Now that we know this patch works what kernel do you think it will
>>>>>> be
>>>>>> released in? Will it make 5.4 or will it be put into 5.5
>>>>>> development
>>>>>> for further testing?
>>>>> That patch was not intended to be a fix; it was just to test my guess
>>>>> that the quirk might be related.
>>>>>
>>>>> Removing the quirk solved the problem *you're* seeing, but the quirk
>>>>> was added in the first place to solve some other problem, and if we
>>>>> simply remove the quirk, we may reintroduce the original problem.
>>>>>
>>>>> So we have to look at the history and figure out some way to solve
>>>>> both problems.  I cc'd some people who might have insight.  Here are
>>>>> some commits that look relevant:
>>>>>
>>>>>    5ae70296c85f ("mmc: Disabler for Ricoh MMC controller")
>>>>>    03cd8f7ebe0c ("ricoh_mmc: port from driver to pci quirk")
>>>>>
>>>>>
>>>>> [1]
>>>>> https://lore.kernel.org/r/CAFjuqNi+knSb9WVQOahCVFyxsiqoGgwoM7Z1aqDBebNzp_-jYw@mail.gmail.com/
>>>>> [2] https://lore.kernel.org/r/20191021160952.GA229204@google.com/
>>>> I guess this problem is still unfixed?  I hate the fact that we broke
>>>> something that used to work.
>>>>
>>>> Maybe we need some sort of DMI check in ricoh_mmc_fixup_rl5c476() so
>>>> we skip it for Toughbooks?  Or maybe we limit the quirk to the
>>>> machines where it was originally needed?
>>> Both options seems reasonable to me. Do you have time to put together a
>>> patch?
>>>
>>> Kind regards
>>> Uffe
>> The quirk is controlled by MMC_RICOH_MMC configuration option. At least
>> as a short-term fix a bit better than patching the kernel, building one
>> with that config option disabled should have the same effect.
>>
>>  From the commit messages, the quirk was required to support MMC (as
>> opposed to SD) cards in the SD slot. I would assume this will be an
>> issue with the chip in any machine as the commit indicates that the
>> hardware in the chip detects MMC cards and doesn't expose them through
>> the SDHCI function.
>>
>> It looks like the quirk was only enabled by default in 2015, at least
>> upstream [1], though in Debian it was enabled in May 2010 going by their
>> git repo, maybe in 2.6.32-16.
>>
>> [1] commit ba2f73250e4a ("mmc: Enable Ricoh MMC quirk by default")
>>


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]
  2020-02-26  3:12                                       ` Trevor Jacobs
@ 2020-02-26  4:51                                         ` Arvind Sankar
  2020-02-26  5:20                                           ` Philip Langdale
  0 siblings, 1 reply; 22+ messages in thread
From: Arvind Sankar @ 2020-02-26  4:51 UTC (permalink / raw)
  To: Trevor Jacobs
  Cc: Michael .,
	Arvind Sankar, Ulf Hansson, Bjorn Helgaas, Dominik Brodowski,
	Linux PCI, Linux Kernel Mailing List, Kris Cleveland, Jeff,
	Morgan Klym, Philip Langdale, Pierre Ossman, Maxim Levitsky,
	linux-mmc

On Tue, Feb 25, 2020 at 09:12:48PM -0600, Trevor Jacobs wrote:
> That's correct, I tested a bunch of the old distros including slackware, 
> and 2.6.32 is where the problem began.
> 
> Also, the Panasonic Toughbook CF-29s effected that we tested are the 
> later marks, MK4 and MK5 for certain. The MK2 CF-29 worked just fine 
> because it has different hardware supporting the PCMCIA slots. I have 
> not tested a MK3 but suspect it would work ok as it also uses the older 
> hardware.
> 
> Thanks for your help guys!
> Trevor
> 

Right, the distros probably all enabled MMC_RICOH_MMC earlier than
upstream. Can you test a custom kernel based off your distro kernel but
just disabling that config option? That's probably the easiest fix
currently, even though not ideal. Perhaps there should be a command line
option to disable specific pci quirks to make this easier.

An ideal fix is I feel hard, given this quirk is based on undocumented
config registers -- it worked on Dell machines (that's where the
original authors seem to have gotten their info from), perhaps they had
only one Cardbus slot, but the code ends up disabling your second
Cardbus slot instead of disabling the MMC controller.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]
  2020-02-26  4:51                                         ` Arvind Sankar
@ 2020-02-26  5:20                                           ` Philip Langdale
  2020-02-26  6:10                                             ` Michael .
  0 siblings, 1 reply; 22+ messages in thread
From: Philip Langdale @ 2020-02-26  5:20 UTC (permalink / raw)
  To: Arvind Sankar
  Cc: Trevor Jacobs, Michael .,
	Ulf Hansson, Bjorn Helgaas, Dominik Brodowski, Linux PCI,
	Linux Kernel Mailing List, Kris Cleveland, Jeff, Morgan Klym,
	Pierre Ossman, Maxim Levitsky, linux-mmc

On Tue, 25 Feb 2020 23:51:05 -0500
Arvind Sankar <nivedita@alum.mit.edu> wrote:

> On Tue, Feb 25, 2020 at 09:12:48PM -0600, Trevor Jacobs wrote:
> > That's correct, I tested a bunch of the old distros including
> > slackware, and 2.6.32 is where the problem began.
> > 
> > Also, the Panasonic Toughbook CF-29s effected that we tested are
> > the later marks, MK4 and MK5 for certain. The MK2 CF-29 worked just
> > fine because it has different hardware supporting the PCMCIA slots.
> > I have not tested a MK3 but suspect it would work ok as it also
> > uses the older hardware.
> > 
> > Thanks for your help guys!
> > Trevor
> > 
> 
> Right, the distros probably all enabled MMC_RICOH_MMC earlier than
> upstream. Can you test a custom kernel based off your distro kernel
> but just disabling that config option? That's probably the easiest fix
> currently, even though not ideal. Perhaps there should be a command
> line option to disable specific pci quirks to make this easier.
> 
> An ideal fix is I feel hard, given this quirk is based on undocumented
> config registers -- it worked on Dell machines (that's where the
> original authors seem to have gotten their info from), perhaps they
> had only one Cardbus slot, but the code ends up disabling your second
> Cardbus slot instead of disabling the MMC controller.

Keeping in mind that this was 12+ years ago, you can at least still
read the original discussion in the archives. My original Dell laptop
(XPS m1330) had no cardbus slots at all, and used the r5c832
controller. There was a subsequent change that I was not involved with
which added support for the rl5c476, which is the problematic device in
this thread.

As a hypothesis, based on the observed behaviour, the quirk (keeping in
mind that these are magic configuration register values that are not
documented) probably disabled function 1, regardless of what it is, and
the original example that motivated adding the rl5c476 quirk probably
had one cardbus slot and the card reader functions were all moved up
one, or something along those lines.

Truly making this smart would then involve having the code enumerate
the pci functions and identify the one that is the unwanted mmc
controller, based on function ID or class or whatever, and then
disabling that (assuming the magic can be reverse engineered: eg, the
current magic ORs the disable flag with 0x02 - chances are, that's the
index of the function: 0x01 would be the 0th function, 0x04 would be
the 2nd function, etc). Someone with access to real hardware could
easily experiment with changing that magic value and seeing if it
changes which function is disabled.

Good luck.

--phil

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]
  2020-02-26  5:20                                           ` Philip Langdale
@ 2020-02-26  6:10                                             ` Michael .
  2020-02-26 19:46                                               ` bluerocksaddles
  0 siblings, 1 reply; 22+ messages in thread
From: Michael . @ 2020-02-26  6:10 UTC (permalink / raw)
  To: Philip Langdale
  Cc: Arvind Sankar, Trevor Jacobs, Ulf Hansson, Bjorn Helgaas,
	Dominik Brodowski, Linux PCI, Linux Kernel Mailing List,
	Kris Cleveland, Jeff, Morgan Klym, Pierre Ossman, Maxim Levitsky,
	linux-mmc

>Someone with access to real hardware could
>easily experiment with changing that magic value and seeing if it
>changes which function is disabled.

One of our members has offered to supply a machine to a dev that can
use it to test any theory.

It is nearly beyond the scope of the majority of us to do much more
than just testing. We appreciate all the effort the devs put in and
are willing to help in anyway we can but we aren't kernel devs.

I, personally, use Debian. Others use Debian based distros such as MX
and Mint. We have been able to test many different distros such as
those listed in other comments but don't have the skills or expertise
to do much more. It is our hope that this discussion and subsequent
effort may enable others who prefer distros other than Debian based
distros can use a CF-29 (and possibly earlier) Toughbook with the
distro of their choice without having to rebuild a kernel so they can
use hardware that worked back in 2010. To do this the fix needs to be
at the kernel dev level not a local enthusiast level because while I
can rebuild a Debian kernel I can't rebuild a Fedora or Arch or
Slackware kernel.

I did a search about this issue before I made initial contact late
last year and the issue was discovered on more than Toughbooks and
posted about on various sites not long after distros moved from
2.6.32. It seems back then people just got new machines that didn't
have a 2nd slot so the search for an answer stopped. Us Toughbook
users are a loyal group we use our machines because they are exactly
what we need and they take alot of "punishment" taht other machines
simply cannot handle. Our machines are used rather than recycled or
worse still just left to sit in waste management facilities in a
country that the western world dumps its rubbish in, we are Linux and
Toughbook enthusiasts and hope to be able to keep our machines running
for many years to come with all their native capabilities working as
they were designed to but using a modern Linux instead of Windows XP
or Windows 7. (that wasn't a pep talk, its just an explanation of why
we are passionate about this).

Let us know what you need us to do, we will let you know if we are
capable of it and give you any feedback you ask for. Over the weekend
I will try to rebuild a Debian kernel with the relevant option
disabled, provide it to my peers for testing and report back here what
the outcome is.

Thank you all for all your time and effort, it is truly appreciated.
Cheers.
Michael.

On 26/02/2020, Philip Langdale <philipl@overt.org> wrote:
> On Tue, 25 Feb 2020 23:51:05 -0500
> Arvind Sankar <nivedita@alum.mit.edu> wrote:
>
>> On Tue, Feb 25, 2020 at 09:12:48PM -0600, Trevor Jacobs wrote:
>> > That's correct, I tested a bunch of the old distros including
>> > slackware, and 2.6.32 is where the problem began.
>> >
>> > Also, the Panasonic Toughbook CF-29s effected that we tested are
>> > the later marks, MK4 and MK5 for certain. The MK2 CF-29 worked just
>> > fine because it has different hardware supporting the PCMCIA slots.
>> > I have not tested a MK3 but suspect it would work ok as it also
>> > uses the older hardware.
>> >
>> > Thanks for your help guys!
>> > Trevor
>> >
>>
>> Right, the distros probably all enabled MMC_RICOH_MMC earlier than
>> upstream. Can you test a custom kernel based off your distro kernel
>> but just disabling that config option? That's probably the easiest fix
>> currently, even though not ideal. Perhaps there should be a command
>> line option to disable specific pci quirks to make this easier.
>>
>> An ideal fix is I feel hard, given this quirk is based on undocumented
>> config registers -- it worked on Dell machines (that's where the
>> original authors seem to have gotten their info from), perhaps they
>> had only one Cardbus slot, but the code ends up disabling your second
>> Cardbus slot instead of disabling the MMC controller.
>
> Keeping in mind that this was 12+ years ago, you can at least still
> read the original discussion in the archives. My original Dell laptop
> (XPS m1330) had no cardbus slots at all, and used the r5c832
> controller. There was a subsequent change that I was not involved with
> which added support for the rl5c476, which is the problematic device in
> this thread.
>
> As a hypothesis, based on the observed behaviour, the quirk (keeping in
> mind that these are magic configuration register values that are not
> documented) probably disabled function 1, regardless of what it is, and
> the original example that motivated adding the rl5c476 quirk probably
> had one cardbus slot and the card reader functions were all moved up
> one, or something along those lines.
>
> Truly making this smart would then involve having the code enumerate
> the pci functions and identify the one that is the unwanted mmc
> controller, based on function ID or class or whatever, and then
> disabling that (assuming the magic can be reverse engineered: eg, the
> current magic ORs the disable flag with 0x02 - chances are, that's the
> index of the function: 0x01 would be the 0th function, 0x04 would be
> the 2nd function, etc). Someone with access to real hardware could
> easily experiment with changing that magic value and seeing if it
> changes which function is disabled.
>
> Good luck.
>
> --phil
>

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]
  2020-02-26  6:10                                             ` Michael .
@ 2020-02-26 19:46                                               ` bluerocksaddles
  2020-07-28  1:50                                                 ` Michael .
  0 siblings, 1 reply; 22+ messages in thread
From: bluerocksaddles @ 2020-02-26 19:46 UTC (permalink / raw)
  To: Michael .
  Cc: Philip Langdale, Arvind Sankar, Trevor Jacobs, Ulf Hansson,
	Bjorn Helgaas, Dominik Brodowski, Linux PCI,
	Linux Kernel Mailing List, Kris Cleveland, Morgan Klym,
	Pierre Ossman, Maxim Levitsky, linux-mmc

Somewhere in these messages is a clue....in that SD reader was involved.

MK 4 and 5 have SD whilst MK 1, 2 and three do not.



On 2020-02-25 22:10, Michael . wrote:
>> Someone with access to real hardware could
>> easily experiment with changing that magic value and seeing if it
>> changes which function is disabled.
> 
> One of our members has offered to supply a machine to a dev that can
> use it to test any theory.
> 
> It is nearly beyond the scope of the majority of us to do much more
> than just testing. We appreciate all the effort the devs put in and
> are willing to help in anyway we can but we aren't kernel devs.
> 
> I, personally, use Debian. Others use Debian based distros such as MX
> and Mint. We have been able to test many different distros such as
> those listed in other comments but don't have the skills or expertise
> to do much more. It is our hope that this discussion and subsequent
> effort may enable others who prefer distros other than Debian based
> distros can use a CF-29 (and possibly earlier) Toughbook with the
> distro of their choice without having to rebuild a kernel so they can
> use hardware that worked back in 2010. To do this the fix needs to be
> at the kernel dev level not a local enthusiast level because while I
> can rebuild a Debian kernel I can't rebuild a Fedora or Arch or
> Slackware kernel.
> 
> I did a search about this issue before I made initial contact late
> last year and the issue was discovered on more than Toughbooks and
> posted about on various sites not long after distros moved from
> 2.6.32. It seems back then people just got new machines that didn't
> have a 2nd slot so the search for an answer stopped. Us Toughbook
> users are a loyal group we use our machines because they are exactly
> what we need and they take alot of "punishment" taht other machines
> simply cannot handle. Our machines are used rather than recycled or
> worse still just left to sit in waste management facilities in a
> country that the western world dumps its rubbish in, we are Linux and
> Toughbook enthusiasts and hope to be able to keep our machines running
> for many years to come with all their native capabilities working as
> they were designed to but using a modern Linux instead of Windows XP
> or Windows 7. (that wasn't a pep talk, its just an explanation of why
> we are passionate about this).
> 
> Let us know what you need us to do, we will let you know if we are
> capable of it and give you any feedback you ask for. Over the weekend
> I will try to rebuild a Debian kernel with the relevant option
> disabled, provide it to my peers for testing and report back here what
> the outcome is.
> 
> Thank you all for all your time and effort, it is truly appreciated.
> Cheers.
> Michael.
> 
> On 26/02/2020, Philip Langdale <philipl@overt.org> wrote:
>> On Tue, 25 Feb 2020 23:51:05 -0500
>> Arvind Sankar <nivedita@alum.mit.edu> wrote:
>> 
>>> On Tue, Feb 25, 2020 at 09:12:48PM -0600, Trevor Jacobs wrote:
>>> > That's correct, I tested a bunch of the old distros including
>>> > slackware, and 2.6.32 is where the problem began.
>>> >
>>> > Also, the Panasonic Toughbook CF-29s effected that we tested are
>>> > the later marks, MK4 and MK5 for certain. The MK2 CF-29 worked just
>>> > fine because it has different hardware supporting the PCMCIA slots.
>>> > I have not tested a MK3 but suspect it would work ok as it also
>>> > uses the older hardware.
>>> >
>>> > Thanks for your help guys!
>>> > Trevor
>>> >
>>> 
>>> Right, the distros probably all enabled MMC_RICOH_MMC earlier than
>>> upstream. Can you test a custom kernel based off your distro kernel
>>> but just disabling that config option? That's probably the easiest 
>>> fix
>>> currently, even though not ideal. Perhaps there should be a command
>>> line option to disable specific pci quirks to make this easier.
>>> 
>>> An ideal fix is I feel hard, given this quirk is based on 
>>> undocumented
>>> config registers -- it worked on Dell machines (that's where the
>>> original authors seem to have gotten their info from), perhaps they
>>> had only one Cardbus slot, but the code ends up disabling your second
>>> Cardbus slot instead of disabling the MMC controller.
>> 
>> Keeping in mind that this was 12+ years ago, you can at least still
>> read the original discussion in the archives. My original Dell laptop
>> (XPS m1330) had no cardbus slots at all, and used the r5c832
>> controller. There was a subsequent change that I was not involved with
>> which added support for the rl5c476, which is the problematic device 
>> in
>> this thread.
>> 
>> As a hypothesis, based on the observed behaviour, the quirk (keeping 
>> in
>> mind that these are magic configuration register values that are not
>> documented) probably disabled function 1, regardless of what it is, 
>> and
>> the original example that motivated adding the rl5c476 quirk probably
>> had one cardbus slot and the card reader functions were all moved up
>> one, or something along those lines.
>> 
>> Truly making this smart would then involve having the code enumerate
>> the pci functions and identify the one that is the unwanted mmc
>> controller, based on function ID or class or whatever, and then
>> disabling that (assuming the magic can be reverse engineered: eg, the
>> current magic ORs the disable flag with 0x02 - chances are, that's the
>> index of the function: 0x01 would be the 0th function, 0x04 would be
>> the 2nd function, etc). Someone with access to real hardware could
>> easily experiment with changing that magic value and seeing if it
>> changes which function is disabled.
>> 
>> Good luck.
>> 
>> --phil
>> 

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]
  2020-02-26 19:46                                               ` bluerocksaddles
@ 2020-07-28  1:50                                                 ` Michael .
  2020-08-02  5:58                                                   ` Michael .
  0 siblings, 1 reply; 22+ messages in thread
From: Michael . @ 2020-07-28  1:50 UTC (permalink / raw)
  To: bluerocksaddles
  Cc: Philip Langdale, Arvind Sankar, Trevor Jacobs, Ulf Hansson,
	Bjorn Helgaas, Dominik Brodowski, Linux PCI,
	Linux Kernel Mailing List, Kris Cleveland, Morgan Klym,
	Pierre Ossman, Maxim Levitsky, linux-mmc

I have just compiled and uploaded a kernel to test for this issue,
members of the Toughbook community have been provided with the link,
though a forum discussion, to download the kernel and test it.
Hopefully we will get positive results and can confirm the
MMC_RICOH_MMC flag is the culprit.
Regards.
Stay safe.
Michael.

On 27/02/2020, bluerocksaddles@willitsonline.com
<bluerocksaddles@willitsonline.com> wrote:
> Somewhere in these messages is a clue....in that SD reader was involved.
>
> MK 4 and 5 have SD whilst MK 1, 2 and three do not.
>
>
>
> On 2020-02-25 22:10, Michael . wrote:
>>> Someone with access to real hardware could
>>> easily experiment with changing that magic value and seeing if it
>>> changes which function is disabled.
>>
>> One of our members has offered to supply a machine to a dev that can
>> use it to test any theory.
>>
>> It is nearly beyond the scope of the majority of us to do much more
>> than just testing. We appreciate all the effort the devs put in and
>> are willing to help in anyway we can but we aren't kernel devs.
>>
>> I, personally, use Debian. Others use Debian based distros such as MX
>> and Mint. We have been able to test many different distros such as
>> those listed in other comments but don't have the skills or expertise
>> to do much more. It is our hope that this discussion and subsequent
>> effort may enable others who prefer distros other than Debian based
>> distros can use a CF-29 (and possibly earlier) Toughbook with the
>> distro of their choice without having to rebuild a kernel so they can
>> use hardware that worked back in 2010. To do this the fix needs to be
>> at the kernel dev level not a local enthusiast level because while I
>> can rebuild a Debian kernel I can't rebuild a Fedora or Arch or
>> Slackware kernel.
>>
>> I did a search about this issue before I made initial contact late
>> last year and the issue was discovered on more than Toughbooks and
>> posted about on various sites not long after distros moved from
>> 2.6.32. It seems back then people just got new machines that didn't
>> have a 2nd slot so the search for an answer stopped. Us Toughbook
>> users are a loyal group we use our machines because they are exactly
>> what we need and they take alot of "punishment" taht other machines
>> simply cannot handle. Our machines are used rather than recycled or
>> worse still just left to sit in waste management facilities in a
>> country that the western world dumps its rubbish in, we are Linux and
>> Toughbook enthusiasts and hope to be able to keep our machines running
>> for many years to come with all their native capabilities working as
>> they were designed to but using a modern Linux instead of Windows XP
>> or Windows 7. (that wasn't a pep talk, its just an explanation of why
>> we are passionate about this).
>>
>> Let us know what you need us to do, we will let you know if we are
>> capable of it and give you any feedback you ask for. Over the weekend
>> I will try to rebuild a Debian kernel with the relevant option
>> disabled, provide it to my peers for testing and report back here what
>> the outcome is.
>>
>> Thank you all for all your time and effort, it is truly appreciated.
>> Cheers.
>> Michael.
>>
>> On 26/02/2020, Philip Langdale <philipl@overt.org> wrote:
>>> On Tue, 25 Feb 2020 23:51:05 -0500
>>> Arvind Sankar <nivedita@alum.mit.edu> wrote:
>>>
>>>> On Tue, Feb 25, 2020 at 09:12:48PM -0600, Trevor Jacobs wrote:
>>>> > That's correct, I tested a bunch of the old distros including
>>>> > slackware, and 2.6.32 is where the problem began.
>>>> >
>>>> > Also, the Panasonic Toughbook CF-29s effected that we tested are
>>>> > the later marks, MK4 and MK5 for certain. The MK2 CF-29 worked just
>>>> > fine because it has different hardware supporting the PCMCIA slots.
>>>> > I have not tested a MK3 but suspect it would work ok as it also
>>>> > uses the older hardware.
>>>> >
>>>> > Thanks for your help guys!
>>>> > Trevor
>>>> >
>>>>
>>>> Right, the distros probably all enabled MMC_RICOH_MMC earlier than
>>>> upstream. Can you test a custom kernel based off your distro kernel
>>>> but just disabling that config option? That's probably the easiest
>>>> fix
>>>> currently, even though not ideal. Perhaps there should be a command
>>>> line option to disable specific pci quirks to make this easier.
>>>>
>>>> An ideal fix is I feel hard, given this quirk is based on
>>>> undocumented
>>>> config registers -- it worked on Dell machines (that's where the
>>>> original authors seem to have gotten their info from), perhaps they
>>>> had only one Cardbus slot, but the code ends up disabling your second
>>>> Cardbus slot instead of disabling the MMC controller.
>>>
>>> Keeping in mind that this was 12+ years ago, you can at least still
>>> read the original discussion in the archives. My original Dell laptop
>>> (XPS m1330) had no cardbus slots at all, and used the r5c832
>>> controller. There was a subsequent change that I was not involved with
>>> which added support for the rl5c476, which is the problematic device
>>> in
>>> this thread.
>>>
>>> As a hypothesis, based on the observed behaviour, the quirk (keeping
>>> in
>>> mind that these are magic configuration register values that are not
>>> documented) probably disabled function 1, regardless of what it is,
>>> and
>>> the original example that motivated adding the rl5c476 quirk probably
>>> had one cardbus slot and the card reader functions were all moved up
>>> one, or something along those lines.
>>>
>>> Truly making this smart would then involve having the code enumerate
>>> the pci functions and identify the one that is the unwanted mmc
>>> controller, based on function ID or class or whatever, and then
>>> disabling that (assuming the magic can be reverse engineered: eg, the
>>> current magic ORs the disable flag with 0x02 - chances are, that's the
>>> index of the function: 0x01 would be the 0th function, 0x04 would be
>>> the 2nd function, etc). Someone with access to real hardware could
>>> easily experiment with changing that magic value and seeing if it
>>> changes which function is disabled.
>>>
>>> Good luck.
>>>
>>> --phil
>>>
>

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]
  2020-07-28  1:50                                                 ` Michael .
@ 2020-08-02  5:58                                                   ` Michael .
  0 siblings, 0 replies; 22+ messages in thread
From: Michael . @ 2020-08-02  5:58 UTC (permalink / raw)
  To: bluerocksaddles
  Cc: Philip Langdale, Arvind Sankar, Trevor Jacobs, Ulf Hansson,
	Bjorn Helgaas, Dominik Brodowski, Linux PCI,
	Linux Kernel Mailing List, Kris Cleveland, Morgan Klym,
	Pierre Ossman, Maxim Levitsky, linux-mmc

Have just had confirmation that the mmc_ricoh_mmc change works and
both PCMCIA slots now work as intended on Panasonic Toughbook CF-29 Mk
4 and 5.

Thank you to all who have made suggestions for this, your dedication
to Linux is amazing and your help with this is appreciated.

Stay safe.
Michael.

On 28/07/2020, Michael . <keltoiboy@gmail.com> wrote:
> I have just compiled and uploaded a kernel to test for this issue,
> members of the Toughbook community have been provided with the link,
> though a forum discussion, to download the kernel and test it.
> Hopefully we will get positive results and can confirm the
> MMC_RICOH_MMC flag is the culprit.
> Regards.
> Stay safe.
> Michael.
>
> On 27/02/2020, bluerocksaddles@willitsonline.com
> <bluerocksaddles@willitsonline.com> wrote:
>> Somewhere in these messages is a clue....in that SD reader was involved.
>>
>> MK 4 and 5 have SD whilst MK 1, 2 and three do not.
>>
>>
>>
>> On 2020-02-25 22:10, Michael . wrote:
>>>> Someone with access to real hardware could
>>>> easily experiment with changing that magic value and seeing if it
>>>> changes which function is disabled.
>>>
>>> One of our members has offered to supply a machine to a dev that can
>>> use it to test any theory.
>>>
>>> It is nearly beyond the scope of the majority of us to do much more
>>> than just testing. We appreciate all the effort the devs put in and
>>> are willing to help in anyway we can but we aren't kernel devs.
>>>
>>> I, personally, use Debian. Others use Debian based distros such as MX
>>> and Mint. We have been able to test many different distros such as
>>> those listed in other comments but don't have the skills or expertise
>>> to do much more. It is our hope that this discussion and subsequent
>>> effort may enable others who prefer distros other than Debian based
>>> distros can use a CF-29 (and possibly earlier) Toughbook with the
>>> distro of their choice without having to rebuild a kernel so they can
>>> use hardware that worked back in 2010. To do this the fix needs to be
>>> at the kernel dev level not a local enthusiast level because while I
>>> can rebuild a Debian kernel I can't rebuild a Fedora or Arch or
>>> Slackware kernel.
>>>
>>> I did a search about this issue before I made initial contact late
>>> last year and the issue was discovered on more than Toughbooks and
>>> posted about on various sites not long after distros moved from
>>> 2.6.32. It seems back then people just got new machines that didn't
>>> have a 2nd slot so the search for an answer stopped. Us Toughbook
>>> users are a loyal group we use our machines because they are exactly
>>> what we need and they take alot of "punishment" taht other machines
>>> simply cannot handle. Our machines are used rather than recycled or
>>> worse still just left to sit in waste management facilities in a
>>> country that the western world dumps its rubbish in, we are Linux and
>>> Toughbook enthusiasts and hope to be able to keep our machines running
>>> for many years to come with all their native capabilities working as
>>> they were designed to but using a modern Linux instead of Windows XP
>>> or Windows 7. (that wasn't a pep talk, its just an explanation of why
>>> we are passionate about this).
>>>
>>> Let us know what you need us to do, we will let you know if we are
>>> capable of it and give you any feedback you ask for. Over the weekend
>>> I will try to rebuild a Debian kernel with the relevant option
>>> disabled, provide it to my peers for testing and report back here what
>>> the outcome is.
>>>
>>> Thank you all for all your time and effort, it is truly appreciated.
>>> Cheers.
>>> Michael.
>>>
>>> On 26/02/2020, Philip Langdale <philipl@overt.org> wrote:
>>>> On Tue, 25 Feb 2020 23:51:05 -0500
>>>> Arvind Sankar <nivedita@alum.mit.edu> wrote:
>>>>
>>>>> On Tue, Feb 25, 2020 at 09:12:48PM -0600, Trevor Jacobs wrote:
>>>>> > That's correct, I tested a bunch of the old distros including
>>>>> > slackware, and 2.6.32 is where the problem began.
>>>>> >
>>>>> > Also, the Panasonic Toughbook CF-29s effected that we tested are
>>>>> > the later marks, MK4 and MK5 for certain. The MK2 CF-29 worked just
>>>>> > fine because it has different hardware supporting the PCMCIA slots.
>>>>> > I have not tested a MK3 but suspect it would work ok as it also
>>>>> > uses the older hardware.
>>>>> >
>>>>> > Thanks for your help guys!
>>>>> > Trevor
>>>>> >
>>>>>
>>>>> Right, the distros probably all enabled MMC_RICOH_MMC earlier than
>>>>> upstream. Can you test a custom kernel based off your distro kernel
>>>>> but just disabling that config option? That's probably the easiest
>>>>> fix
>>>>> currently, even though not ideal. Perhaps there should be a command
>>>>> line option to disable specific pci quirks to make this easier.
>>>>>
>>>>> An ideal fix is I feel hard, given this quirk is based on
>>>>> undocumented
>>>>> config registers -- it worked on Dell machines (that's where the
>>>>> original authors seem to have gotten their info from), perhaps they
>>>>> had only one Cardbus slot, but the code ends up disabling your second
>>>>> Cardbus slot instead of disabling the MMC controller.
>>>>
>>>> Keeping in mind that this was 12+ years ago, you can at least still
>>>> read the original discussion in the archives. My original Dell laptop
>>>> (XPS m1330) had no cardbus slots at all, and used the r5c832
>>>> controller. There was a subsequent change that I was not involved with
>>>> which added support for the rl5c476, which is the problematic device
>>>> in
>>>> this thread.
>>>>
>>>> As a hypothesis, based on the observed behaviour, the quirk (keeping
>>>> in
>>>> mind that these are magic configuration register values that are not
>>>> documented) probably disabled function 1, regardless of what it is,
>>>> and
>>>> the original example that motivated adding the rl5c476 quirk probably
>>>> had one cardbus slot and the card reader functions were all moved up
>>>> one, or something along those lines.
>>>>
>>>> Truly making this smart would then involve having the code enumerate
>>>> the pci functions and identify the one that is the unwanted mmc
>>>> controller, based on function ID or class or whatever, and then
>>>> disabling that (assuming the magic can be reverse engineered: eg, the
>>>> current magic ORs the disable flag with 0x02 - chances are, that's the
>>>> index of the function: 0x01 would be the 0th function, 0x04 would be
>>>> the 2nd function, etc). Someone with access to real hardware could
>>>> easily experiment with changing that magic value and seeing if it
>>>> changes which function is disabled.
>>>>
>>>> Good luck.
>>>>
>>>> --phil
>>>>
>>
>

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2020-08-02  5:58 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <CAFjuqNh1=B7Ft6v7nzo3BW70EbAvK=Eko_4yqrJ4Z4N3w_Y+Xw@mail.gmail.com>
     [not found] ` <CAFjuqNjLJw8J0nU2oo8rDfDUBavHLC7D0=AAwM62tp6=kHHk-A@mail.gmail.com>
     [not found]   ` <20191015064801.GA104469@owl.dominikbrodowski.net>
     [not found]     ` <CAFjuqNgxAuf+JTkWqhimDspzPd0+s5yGJro=Zi164uoxu4CmOA@mail.gmail.com>
     [not found]       ` <CANfzparZ17SMzE1qzzF=Rixu=aYpf1RiKqR4KXXS0S+u7Q3TwQ@mail.gmail.com>
2019-10-20  9:08         ` PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29] Dominik Brodowski
2019-10-21 16:09           ` Bjorn Helgaas
2019-10-21 18:17             ` Michael .
2019-10-21 18:47               ` Dominik Brodowski
2019-10-21 18:59                 ` Michael .
     [not found]                   ` <CAFjuqNg8_G-B5Owz1NBxa-nw620hXwcn9WkE4sfETVR81MWatA@mail.gmail.com>
     [not found]                     ` <CAFjuqNiToDC9BSJVdahdkPz8Ejb-rM3VRkyoBNUTJr8go=7zrg@mail.gmail.com>
     [not found]                       ` <20191025075536.GA14531@owl.dominikbrodowski.net>
2019-10-25 18:34                         ` Michael .
2019-10-29  8:58                           ` Michael .
2019-10-29 17:02                             ` Bjorn Helgaas
2020-02-22 16:56                               ` Bjorn Helgaas
2020-02-22 18:14                                 ` Michael .
2020-02-25 15:03                                 ` Ulf Hansson
2020-02-25 19:15                                   ` Bjorn Helgaas
2020-02-25 23:46                                   ` bluerocksaddles
2020-02-26  1:13                                   ` Arvind Sankar
2020-02-26  1:50                                     ` Michael .
2020-02-26  3:12                                       ` Trevor Jacobs
2020-02-26  4:51                                         ` Arvind Sankar
2020-02-26  5:20                                           ` Philip Langdale
2020-02-26  6:10                                             ` Michael .
2020-02-26 19:46                                               ` bluerocksaddles
2020-07-28  1:50                                                 ` Michael .
2020-08-02  5:58                                                   ` Michael .

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).