On s390 systems (aka mainframes), it has classic channel devices for
networking and permanent storage that are currently even more common
than PCI devices. Hence it could have a fully functional s390 kernel
with CONFIG_PCI=n, then the relevant iomem mapping functions
[including ioremap(), devm_ioremap(), etc.] are not available.
Here let depend PCMCIA on HAS_IOMEM so that it won't be built to
cause below compiling error if PCI is unset.
-------------------------------------------------------
ld: drivers/pcmcia/cistpl.o: in function `set_cis_map':
cistpl.c:(.text+0x1202): undefined reference to `ioremap'
ld: cistpl.c:(.text+0x13b0): undefined reference to `iounmap'
ld: cistpl.c:(.text+0x14a6): undefined reference to `iounmap'
ld: cistpl.c:(.text+0x1544): undefined reference to `ioremap'
ld: drivers/pcmcia/cistpl.o: in function `release_cis_mem':
cistpl.c:(.text+0x3f14): undefined reference to `iounmap'
Link: https://lore.kernel.org/all/Y0TcaZD4nB1w+mAQ@MiWiFi-R3L-srv/T/#u
Signed-off-by: Baoquan He <[email protected]>
Cc: Dominik Brodowski <[email protected]>
Cc: Arnd Bergmann <[email protected]>
Cc: Jonathan Cameron <[email protected]>
Cc: Linus Walleij <[email protected]>
Cc: Thomas Bogendoerfer <[email protected]>
---
drivers/pcmcia/Kconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/pcmcia/Kconfig b/drivers/pcmcia/Kconfig
index 1525023e49b6..7c412bbe8bbe 100644
--- a/drivers/pcmcia/Kconfig
+++ b/drivers/pcmcia/Kconfig
@@ -20,6 +20,7 @@ if PCCARD
config PCMCIA
tristate "16-bit PCMCIA support"
+ depends on HAS_IOMEM
select CRC32
default y
help
--
2.34.1
On s390 systems (aka mainframes), it has classic channel devices for
networking and permanent storage that are currently even more common
than PCI devices. Hence it could have a fully functional s390 kernel
with CONFIG_PCI=n, then the relevant iomem mapping functions
[including ioremap(), devm_ioremap(), etc.] are not available.
Here let QCOM_HIDMA depend on HAS_IOMEM so that it won't be built to
cause below compiling error if PCI is unset.
--------------------------------------------------------
ld: drivers/dma/qcom/hidma.o: in function `hidma_probe':
hidma.c:(.text+0x4b46): undefined reference to `devm_ioremap_resource'
ld: hidma.c:(.text+0x4b9e): undefined reference to `devm_ioremap_resource'
make[1]: *** [scripts/Makefile.vmlinux:35: vmlinux] Error 1
make: *** [Makefile:1264: vmlinux] Error 2
Link: https://lore.kernel.org/all/Y0TcaZD4nB1w+mAQ@MiWiFi-R3L-srv/T/#u
Signed-off-by: Baoquan He <[email protected]>
Cc: Andy Gross <[email protected]>
Cc: Bjorn Andersson <[email protected]>
Cc: Konrad Dybcio <[email protected]>
Cc: Vinod Koul <[email protected]>
Cc: [email protected]
Cc: [email protected]
---
drivers/dma/qcom/Kconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/dma/qcom/Kconfig b/drivers/dma/qcom/Kconfig
index 3f926a653bd8..ace75d7b835a 100644
--- a/drivers/dma/qcom/Kconfig
+++ b/drivers/dma/qcom/Kconfig
@@ -45,6 +45,7 @@ config QCOM_HIDMA_MGMT
config QCOM_HIDMA
tristate "Qualcomm Technologies HIDMA Channel support"
+ depends on HAS_IOMEM
select DMA_ENGINE
help
Enable support for the Qualcomm Technologies HIDMA controller.
--
2.34.1
On Thu, 2023-02-16 at 15:34 +0800, Baoquan He wrote:
> On s390 systems (aka mainframes), it has classic channel devices for
> networking and permanent storage that are currently even more common
> than PCI devices. Hence it could have a fully functional s390 kernel
> with CONFIG_PCI=n, then the relevant iomem mapping functions
> [including ioremap(), devm_ioremap(), etc.] are not available.
>
> Here let depend PCMCIA on HAS_IOMEM so that it won't be built to
> cause below compiling error if PCI is unset.
>
> -------------------------------------------------------
> ld: drivers/pcmcia/cistpl.o: in function `set_cis_map':
> cistpl.c:(.text+0x1202): undefined reference to `ioremap'
> ld: cistpl.c:(.text+0x13b0): undefined reference to `iounmap'
> ld: cistpl.c:(.text+0x14a6): undefined reference to `iounmap'
> ld: cistpl.c:(.text+0x1544): undefined reference to `ioremap'
> ld: drivers/pcmcia/cistpl.o: in function `release_cis_mem':
> cistpl.c:(.text+0x3f14): undefined reference to `iounmap'
>
> Link: https://lore.kernel.org/all/Y0TcaZD4nB1w+mAQ@MiWiFi-R3L-srv/T/#u
> Signed-off-by: Baoquan He <[email protected]>
> Cc: Dominik Brodowski <[email protected]>
> Cc: Arnd Bergmann <[email protected]>
> Cc: Jonathan Cameron <[email protected]>
> Cc: Linus Walleij <[email protected]>
> Cc: Thomas Bogendoerfer <[email protected]>
> ---
> drivers/pcmcia/Kconfig | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/pcmcia/Kconfig b/drivers/pcmcia/Kconfig
> index 1525023e49b6..7c412bbe8bbe 100644
> --- a/drivers/pcmcia/Kconfig
> +++ b/drivers/pcmcia/Kconfig
> @@ -20,6 +20,7 @@ if PCCARD
>
> config PCMCIA
> tristate "16-bit PCMCIA support"
> + depends on HAS_IOMEM
> select CRC32
> default y
> help
Not sure how many PCMCIA drivers only use I/O memory but not I/O ports
the latter of which are badly stubbed out on s390, though at leat they
compile. I have a series on that part that I intend to send a new
version for soon™. That said yes this does solve the compilation issue
and there could be drivers which rely only on I/O memory and are not
broken in principle.
Reviewed-by: Niklas Schnelle <[email protected]>
On Thu, 2023-02-16 at 15:34 +0800, Baoquan He wrote:
> On s390 systems (aka mainframes), it has classic channel devices for
> networking and permanent storage that are currently even more common
> than PCI devices. Hence it could have a fully functional s390 kernel
> with CONFIG_PCI=n, then the relevant iomem mapping functions
> [including ioremap(), devm_ioremap(), etc.] are not available.
>
> Here let QCOM_HIDMA depend on HAS_IOMEM so that it won't be built to
> cause below compiling error if PCI is unset.
>
> --------------------------------------------------------
> ld: drivers/dma/qcom/hidma.o: in function `hidma_probe':
> hidma.c:(.text+0x4b46): undefined reference to `devm_ioremap_resource'
> ld: hidma.c:(.text+0x4b9e): undefined reference to `devm_ioremap_resource'
> make[1]: *** [scripts/Makefile.vmlinux:35: vmlinux] Error 1
> make: *** [Makefile:1264: vmlinux] Error 2
>
> Link: https://lore.kernel.org/all/Y0TcaZD4nB1w+mAQ@MiWiFi-R3L-srv/T/#u
> Signed-off-by: Baoquan He <[email protected]>
> Cc: Andy Gross <[email protected]>
> Cc: Bjorn Andersson <[email protected]>
> Cc: Konrad Dybcio <[email protected]>
> Cc: Vinod Koul <[email protected]>
> Cc: [email protected]
> Cc: [email protected]
> ---
> drivers/dma/qcom/Kconfig | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/dma/qcom/Kconfig b/drivers/dma/qcom/Kconfig
> index 3f926a653bd8..ace75d7b835a 100644
> --- a/drivers/dma/qcom/Kconfig
> +++ b/drivers/dma/qcom/Kconfig
> @@ -45,6 +45,7 @@ config QCOM_HIDMA_MGMT
>
> config QCOM_HIDMA
> tristate "Qualcomm Technologies HIDMA Channel support"
> + depends on HAS_IOMEM
> select DMA_ENGINE
> help
> Enable support for the Qualcomm Technologies HIDMA controller.
Thanks for the patch!
Reviewed-by: Niklas Schnelle <[email protected]?
On Thu, Feb 16, 2023, at 10:05, Niklas Schnelle wrote:
> On Thu, 2023-02-16 at 15:34 +0800, Baoquan He wrote:
>> diff --git a/drivers/pcmcia/Kconfig b/drivers/pcmcia/Kconfig
>> index 1525023e49b6..7c412bbe8bbe 100644
>> --- a/drivers/pcmcia/Kconfig
>> +++ b/drivers/pcmcia/Kconfig
>> @@ -20,6 +20,7 @@ if PCCARD
>>
>> config PCMCIA
>> tristate "16-bit PCMCIA support"
>> + depends on HAS_IOMEM
>> select CRC32
>> default y
>> help
>
> Not sure how many PCMCIA drivers only use I/O memory but not I/O ports
> the latter of which are badly stubbed out on s390, though at leat they
> compile. I have a series on that part that I intend to send a new
> version for soon™. That said yes this does solve the compilation issue
> and there could be drivers which rely only on I/O memory and are not
> broken in principle.
There are no platforms that have I/O ports but don't set HAS_IOMEM, so it
doesn't really matter.
> Reviewed-by: Niklas Schnelle <[email protected]>
Acked-by: Arnd Bergmann <[email protected]>