2019-10-20 09:10:01

by Dominik Brodowski

[permalink] [raw]
Subject: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]

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/


2019-10-21 16:10:33

by Bjorn Helgaas

[permalink] [raw]
Subject: Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]

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;

2019-10-21 18:18:59

by Michael .

[permalink] [raw]
Subject: Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]

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 <[email protected]> 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;
>

2019-10-21 18:48:34

by Dominik Brodowski

[permalink] [raw]
Subject: Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]

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

2019-10-21 19:00:09

by Michael .

[permalink] [raw]
Subject: Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]

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

On 22/10/2019, Dominik Brodowski <[email protected]> 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
>

2019-10-25 19:16:09

by Michael .

[permalink] [raw]
Subject: Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]

I just tried to do a kernel compile on Debian Sid running kernel 5.2.
Downloaded 4.19.80 modded the quirks file, please find modded file
attached, and started the compile.
About an hour into it it fails with:
CC drivers/pci/quirks.o
drivers/pci/quirks.c:2945:1: error: expected identifier or ‘(’ before ‘-’ token
2945 | -static void ricoh_mmc_fixup_rl5c476(struct pci_dev *dev)
| ^
drivers/pci/quirks.c:2974:1: error: expected identifier or ‘(’ before ‘-’ token
2974 | -DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_RICOH,
PCI_DEVICE_ID_RICOH_RL5C476, ricoh_mmc_fixup_rl5c476);
| ^
drivers/pci/quirks.c:2975:1: error: expected identifier or ‘(’ before ‘-’ token
2975 | -DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_RICOH,
PCI_DEVICE_ID_RICOH_RL5C476, ricoh_mmc_fixup_rl5c476);
| ^
drivers/pci/quirks.c:2976:1: error: expected identifier or ‘(’ before ‘-’ token
2976 | -
| ^
In file included from ./include/linux/export.h:45,
from ./include/linux/linkage.h:7,
from ./include/linux/kernel.h:7,
from drivers/pci/quirks.c:16:
drivers/pci/quirks.c:3026:74: error: ‘ricoh_mmc_fixup_r5c832’
undeclared here (not in a function)
3026 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_RICOH,
PCI_DEVICE_ID_RICOH_R5C832, ricoh_mmc_fixup_r5c832);
|
^~~~~~~~~~~~~~~~~~~~~~
./include/linux/compiler.h:296:53: note: in definition of macro ‘__ADDRESSABLE’
296 | __PASTE(__addressable_##sym, __LINE__) = (void *)&sym;
| ^~~
./include/linux/pci.h:1847:2: note: in expansion of macro
‘__DECLARE_PCI_FIXUP_SECTION’
1847 | __DECLARE_PCI_FIXUP_SECTION(sec, name, vendor, device, class, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/pci.h:1892:2: note: in expansion of macro
‘DECLARE_PCI_FIXUP_SECTION’
1892 | DECLARE_PCI_FIXUP_SECTION(.pci_fixup_early, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~
drivers/pci/quirks.c:3026:1: note: in expansion of macro
‘DECLARE_PCI_FIXUP_EARLY’
3026 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_RICOH,
PCI_DEVICE_ID_RICOH_R5C832, ricoh_mmc_fixup_r5c832);
| ^~~~~~~~~~~~~~~~~~~~~~~
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@michael-desktop:/home/michael/Debian/linux-4.19.80#

I will try later with the latest 5.4-rc to see if the diff is
incompatible with 4.19.
Cheers.
Michael

On 22/10/2019, Michael . <[email protected]> wrote:
> Thanks Domunik I'll get onto this and report back the results.
>
> On 22/10/2019, Dominik Brodowski <[email protected]> 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
>>
>


Attachments:
quirks.c (182.08 kB)

2019-10-25 19:22:03

by Michael .

[permalink] [raw]
Subject: Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]

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
3068 | -DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_RICOH,
PCI_DEVICE_ID_RICOH_RL5C476, ricoh_mmc_fixup_rl5c476);
| ^
drivers/pci/quirks.c:3069:1: error: expected identifier or ‘(’ before ‘-’ token
3069 | -DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_RICOH,
PCI_DEVICE_ID_RICOH_RL5C476, ricoh_mmc_fixup_rl5c476);
| ^
drivers/pci/quirks.c:3070:1: error: expected identifier or ‘(’ before ‘-’ token
3070 | -
| ^
In file included from ./include/linux/export.h:44,
from ./include/linux/linkage.h:7,
from ./include/linux/kernel.h:8,
from drivers/pci/quirks.c:16:
drivers/pci/quirks.c:3120:74: error: ‘ricoh_mmc_fixup_r5c832’
undeclared here (not in a function)
3120 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_RICOH,
PCI_DEVICE_ID_RICOH_R5C832, ricoh_mmc_fixup_r5c832);
|
^~~~~~~~~~~~~~~~~~~~~~
./include/linux/compiler.h:302:53: note: in definition of macro ‘__ADDRESSABLE’
302 | __PASTE(__addressable_##sym, __LINE__) = (void *)&sym;
| ^~~
./include/linux/pci.h:1911:2: note: in expansion of macro
‘__DECLARE_PCI_FIXUP_SECTION’
1911 | __DECLARE_PCI_FIXUP_SECTION(sec, name, vendor, device, class, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/pci.h:1956:2: note: in expansion of macro
‘DECLARE_PCI_FIXUP_SECTION’
1956 | DECLARE_PCI_FIXUP_SECTION(.pci_fixup_early, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~
drivers/pci/quirks.c:3120:1: note: in expansion of macro
‘DECLARE_PCI_FIXUP_EARLY’
3120 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_RICOH,
PCI_DEVICE_ID_RICOH_R5C832, ricoh_mmc_fixup_r5c832);
| ^~~~~~~~~~~~~~~~~~~~~~~
make[5]: *** [scripts/Makefile.build:266: drivers/pci/quirks.o] Error 1
make[4]: *** [scripts/Makefile.build:509: drivers/pci] Error 2
make[3]: *** [Makefile:1649: drivers] Error 2
make[2]: *** [debian/rules:6: build] Error 2
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2
make[1]: *** [scripts/Makefile.package:77: deb-pkg] Error 2
make: *** [Makefile:1427: deb-pkg] Error 2
root@michael-desktop:/home/michael/Debian/linux-5.4-rc4#

Please also find attached the patched quirks.c file
Cheers.
Michael

On 25/10/2019, Michael . <[email protected]> wrote:
> I just tried to do a kernel compile on Debian Sid running kernel 5.2.
> Downloaded 4.19.80 modded the quirks file, please find modded file
> attached, and started the compile.
> About an hour into it it fails with:
> CC drivers/pci/quirks.o
> drivers/pci/quirks.c:2945:1: error: expected identifier or ‘(’ before ‘-’
> token
> 2945 | -static void ricoh_mmc_fixup_rl5c476(struct pci_dev *dev)
> | ^
> drivers/pci/quirks.c:2974:1: error: expected identifier or ‘(’ before ‘-’
> token
> 2974 | -DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_RICOH,
> PCI_DEVICE_ID_RICOH_RL5C476, ricoh_mmc_fixup_rl5c476);
> | ^
> drivers/pci/quirks.c:2975:1: error: expected identifier or ‘(’ before ‘-’
> token
> 2975 | -DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_RICOH,
> PCI_DEVICE_ID_RICOH_RL5C476, ricoh_mmc_fixup_rl5c476);
> | ^
> drivers/pci/quirks.c:2976:1: error: expected identifier or ‘(’ before ‘-’
> token
> 2976 | -
> | ^
> In file included from ./include/linux/export.h:45,
> from ./include/linux/linkage.h:7,
> from ./include/linux/kernel.h:7,
> from drivers/pci/quirks.c:16:
> drivers/pci/quirks.c:3026:74: error: ‘ricoh_mmc_fixup_r5c832’
> undeclared here (not in a function)
> 3026 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_RICOH,
> PCI_DEVICE_ID_RICOH_R5C832, ricoh_mmc_fixup_r5c832);
> |
> ^~~~~~~~~~~~~~~~~~~~~~
> ./include/linux/compiler.h:296:53: note: in definition of macro
> ‘__ADDRESSABLE’
> 296 | __PASTE(__addressable_##sym, __LINE__) = (void *)&sym;
> | ^~~
> ./include/linux/pci.h:1847:2: note: in expansion of macro
> ‘__DECLARE_PCI_FIXUP_SECTION’
> 1847 | __DECLARE_PCI_FIXUP_SECTION(sec, name, vendor, device, class, \
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> ./include/linux/pci.h:1892:2: note: in expansion of macro
> ‘DECLARE_PCI_FIXUP_SECTION’
> 1892 | DECLARE_PCI_FIXUP_SECTION(.pci_fixup_early, \
> | ^~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/pci/quirks.c:3026:1: note: in expansion of macro
> ‘DECLARE_PCI_FIXUP_EARLY’
> 3026 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_RICOH,
> PCI_DEVICE_ID_RICOH_R5C832, ricoh_mmc_fixup_r5c832);
> | ^~~~~~~~~~~~~~~~~~~~~~~
> 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@michael-desktop:/home/michael/Debian/linux-4.19.80#
>
> I will try later with the latest 5.4-rc to see if the diff is
> incompatible with 4.19.
> Cheers.
> Michael
>
> On 22/10/2019, Michael . <[email protected]> wrote:
>> Thanks Domunik I'll get onto this and report back the results.
>>
>> On 22/10/2019, Dominik Brodowski <[email protected]> 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
>>>
>>
>


Attachments:
quirks.c (189.35 kB)

2019-10-25 19:28:23

by Dominik Brodowski

[permalink] [raw]
Subject: Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]

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


Attachments:
(No filename) (611.00 B)
quirks.c (193.40 kB)
Download all attachments

2019-10-25 20:53:39

by Michael .

[permalink] [raw]
Subject: Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]

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 <[email protected]> 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
>
>

2019-10-29 10:16:21

by Michael .

[permalink] [raw]
Subject: Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]

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 . <[email protected]> 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 <[email protected]> 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
>>
>>
>

2019-10-29 17:04:49

by Bjorn Helgaas

[permalink] [raw]
Subject: Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]

[+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/[email protected]/

2020-02-22 16:56:40

by Bjorn Helgaas

[permalink] [raw]
Subject: Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]

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/[email protected]/

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

2020-02-22 18:14:36

by Michael .

[permalink] [raw]
Subject: Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]

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 <[email protected]> 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/[email protected]/
>
> 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
>

2020-02-25 15:10:51

by Ulf Hansson

[permalink] [raw]
Subject: Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]

On Sat, 22 Feb 2020 at 17:56, Bjorn Helgaas <[email protected]> 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/[email protected]/
>
> 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

2020-02-25 19:35:48

by Bjorn Helgaas

[permalink] [raw]
Subject: Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]

On Tue, Feb 25, 2020 at 04:03:32PM +0100, Ulf Hansson wrote:
> On Sat, 22 Feb 2020 at 17:56, Bjorn Helgaas <[email protected]> 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/[email protected]/
> >
> > 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

2020-02-25 23:55:14

by bluerocksaddles

[permalink] [raw]
Subject: Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]

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 <[email protected]> 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/[email protected]/
>>
>> 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

2020-02-26 01:14:30

by Arvind Sankar

[permalink] [raw]
Subject: Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]

On Tue, Feb 25, 2020 at 04:03:32PM +0100, Ulf Hansson wrote:
> On Sat, 22 Feb 2020 at 17:56, Bjorn Helgaas <[email protected]> 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/[email protected]/
> >
> > 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")

2020-02-26 01:52:03

by Michael .

[permalink] [raw]
Subject: Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]

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 <[email protected]> wrote:
> On Tue, Feb 25, 2020 at 04:03:32PM +0100, Ulf Hansson wrote:
>> On Sat, 22 Feb 2020 at 17:56, Bjorn Helgaas <[email protected]> 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/[email protected]/
>> >
>> > 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")
>

2020-02-26 03:13:18

by Trevor Jacobs

[permalink] [raw]
Subject: Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]

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 <[email protected]> wrote:
>> On Tue, Feb 25, 2020 at 04:03:32PM +0100, Ulf Hansson wrote:
>>> On Sat, 22 Feb 2020 at 17:56, Bjorn Helgaas <[email protected]> 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/[email protected]/
>>>> 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")
>>

2020-02-26 04:51:25

by Arvind Sankar

[permalink] [raw]
Subject: Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]

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.

2020-02-26 06:12:01

by Michael .

[permalink] [raw]
Subject: Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]

>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 <[email protected]> wrote:
> On Tue, 25 Feb 2020 23:51:05 -0500
> Arvind Sankar <[email protected]> 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
>

2020-02-26 19:47:21

by bluerocksaddles

[permalink] [raw]
Subject: Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]

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 <[email protected]> wrote:
>> On Tue, 25 Feb 2020 23:51:05 -0500
>> Arvind Sankar <[email protected]> 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
>>

2020-07-28 01:51:46

by Michael .

[permalink] [raw]
Subject: Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]

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, [email protected]
<[email protected]> 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 <[email protected]> wrote:
>>> On Tue, 25 Feb 2020 23:51:05 -0500
>>> Arvind Sankar <[email protected]> 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
>>>
>

2020-08-02 06:00:38

by Michael .

[permalink] [raw]
Subject: Re: PCI device function not being enumerated [Was: PCMCIA not working on Panasonic Toughbook CF-29]

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 . <[email protected]> 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, [email protected]
> <[email protected]> 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 <[email protected]> wrote:
>>>> On Tue, 25 Feb 2020 23:51:05 -0500
>>>> Arvind Sankar <[email protected]> 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
>>>>
>>
>