[RESEND,2/2] dmaengine: make QCOM_HIDMA depend on HAS_IOMEM

Message ID 20230506111628.712316-3-bhe@redhat.com
State New
Headers
Series Make PCMCIA and QCOM_HIDMA depend on HAS_IOMEM |

Commit Message

Baoquan He May 6, 2023, 11:16 a.m. UTC
  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

Signed-off-by: Baoquan He <bhe@redhat.com>
Reviewed-by: Niklas Schnelle <schnelle@linux.ibm.com>
Cc: Andy Gross <agross@kernel.org>
Cc: Bjorn Andersson <andersson@kernel.org>
Cc: Konrad Dybcio <konrad.dybcio@linaro.org>
Cc: Vinod Koul <vkoul@kernel.org>
Cc: linux-arm-msm@vger.kernel.org
Cc: dmaengine@vger.kernel.org
---
 drivers/dma/qcom/Kconfig | 1 +
 1 file changed, 1 insertion(+)
  

Comments

Dmitry Baryshkov May 6, 2023, 11:49 a.m. UTC | #1
On Sat, 6 May 2023 at 14:17, Baoquan He <bhe@redhat.com> 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
>
> Signed-off-by: Baoquan He <bhe@redhat.com>
> Reviewed-by: Niklas Schnelle <schnelle@linux.ibm.com>
> Cc: Andy Gross <agross@kernel.org>
> Cc: Bjorn Andersson <andersson@kernel.org>
> Cc: Konrad Dybcio <konrad.dybcio@linaro.org>
> Cc: Vinod Koul <vkoul@kernel.org>
> Cc: linux-arm-msm@vger.kernel.org
> Cc: dmaengine@vger.kernel.org
> ---
>  drivers/dma/qcom/Kconfig | 1 +
>  1 file changed, 1 insertion(+)

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@gmail.com>
  
Vinod Koul May 16, 2023, 5:56 p.m. UTC | #2
On 06-05-23, 19:16, 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.

I have 2/2 patch here, where is patch 1 of 2..?

> 
> --------------------------------------------------------
> 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
> 
> Signed-off-by: Baoquan He <bhe@redhat.com>
> Reviewed-by: Niklas Schnelle <schnelle@linux.ibm.com>
> Cc: Andy Gross <agross@kernel.org>
> Cc: Bjorn Andersson <andersson@kernel.org>
> Cc: Konrad Dybcio <konrad.dybcio@linaro.org>
> Cc: Vinod Koul <vkoul@kernel.org>
> Cc: linux-arm-msm@vger.kernel.org
> Cc: dmaengine@vger.kernel.org
> ---
>  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
  
Baoquan He May 17, 2023, 12:18 a.m. UTC | #3
On 05/16/23 at 11:26pm, Vinod Koul wrote:
> On 06-05-23, 19:16, 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.
> 
> I have 2/2 patch here, where is patch 1 of 2..?

It's here, thanks for check.
https://lore.kernel.org/all/20230506111628.712316-2-bhe@redhat.com/T/#u

I used get_maintainer to get reivewers list, seems your contact is only
put in 2/2 patch. I also sent to lkml, linux-mm and s390 mailing list,
so the whole series can be seen in any of the ML.

Thanks
Baoquan

> 
> > 
> > --------------------------------------------------------
> > 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
> > 
> > Signed-off-by: Baoquan He <bhe@redhat.com>
> > Reviewed-by: Niklas Schnelle <schnelle@linux.ibm.com>
> > Cc: Andy Gross <agross@kernel.org>
> > Cc: Bjorn Andersson <andersson@kernel.org>
> > Cc: Konrad Dybcio <konrad.dybcio@linaro.org>
> > Cc: Vinod Koul <vkoul@kernel.org>
> > Cc: linux-arm-msm@vger.kernel.org
> > Cc: dmaengine@vger.kernel.org
> > ---
> >  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
> 
> -- 
> ~Vinod
>
  
Vinod Koul May 18, 2023, 11:32 a.m. UTC | #4
On 17-05-23, 08:18, Baoquan He wrote:
> On 05/16/23 at 11:26pm, Vinod Koul wrote:
> > On 06-05-23, 19:16, 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.
> > 
> > I have 2/2 patch here, where is patch 1 of 2..?
> 
> It's here, thanks for check.
> https://lore.kernel.org/all/20230506111628.712316-2-bhe@redhat.com/T/#u
> 
> I used get_maintainer to get reivewers list, seems your contact is only
> put in 2/2 patch. I also sent to lkml, linux-mm and s390 mailing list,
> so the whole series can be seen in any of the ML.

Ideally these two could have been sent separately! If sending together
add a cover and cc everyone, so that we know..

Applied now
  

Patch

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.