arch/arm64/Kconfig | 3 +++ 1 file changed, 3 insertions(+)
From: huanglei <huanglei@kylinos.cn>
Enable GENERIC_ISA_DMA feature on arm64 platform,
thus, request_dma and free_dma interface can be export.
and driver modules can use the this interfaces on arm64
platform.
Currently, many pcie parallel port drivers still use these
interfaces when ported to arm64 platform.
Signed-off-by: huanglei <huanglei@kylinos.cn>
---
arch/arm64/Kconfig | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index fd9df6dcc593..986eb251f68f 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -367,6 +367,9 @@ config GENERIC_CSUM
config GENERIC_CALIBRATE_DELAY
def_bool y
+config GENERIC_ISA_DMA
+ def_bool y
+
config SMP
def_bool y
--
2.17.1
On Fri, Oct 25, 2024 at 09:16:41AM +0800, huanglei814 wrote: > From: huanglei <huanglei@kylinos.cn> > > Enable GENERIC_ISA_DMA feature on arm64 platform, > thus, request_dma and free_dma interface can be export. > and driver modules can use the this interfaces on arm64 > platform. > > Currently, many pcie parallel port drivers still use these > interfaces when ported to arm64 platform. Why has it taken so long for anybody to notice? > Signed-off-by: huanglei <huanglei@kylinos.cn> > --- > arch/arm64/Kconfig | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > index fd9df6dcc593..986eb251f68f 100644 > --- a/arch/arm64/Kconfig > +++ b/arch/arm64/Kconfig > @@ -367,6 +367,9 @@ config GENERIC_CSUM > config GENERIC_CALIBRATE_DELAY > def_bool y > > +config GENERIC_ISA_DMA > + def_bool y > + Does this actually do anything without MAX_DMA_CHANNELS defined? Will
Even if MAX_SMA_CANNELS is not defined, as long as GENETIC-SIA_DMA is enabled, request_rma/free_rma function will also be exported, and other modules using these two interfaces will not encounter link errors. I don't know why others haven't noticed, but I discovered it when debugging pcie parallel port drivers. And the arm/Kconfig has been around for a long time. Best regards! At 2024-10-28 22:05:45, "Will Deacon" <will@kernel.org> wrote: >On Fri, Oct 25, 2024 at 09:16:41AM +0800, huanglei814 wrote: >> From: huanglei <huanglei@kylinos.cn> >> >> Enable GENERIC_ISA_DMA feature on arm64 platform, >> thus, request_dma and free_dma interface can be export. >> and driver modules can use the this interfaces on arm64 >> platform. >> >> Currently, many pcie parallel port drivers still use these >> interfaces when ported to arm64 platform. > >Why has it taken so long for anybody to notice? > >> Signed-off-by: huanglei <huanglei@kylinos.cn> >> --- >> arch/arm64/Kconfig | 3 +++ >> 1 file changed, 3 insertions(+) >> >> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig >> index fd9df6dcc593..986eb251f68f 100644 >> --- a/arch/arm64/Kconfig >> +++ b/arch/arm64/Kconfig >> @@ -367,6 +367,9 @@ config GENERIC_CSUM >> config GENERIC_CALIBRATE_DELAY >> def_bool y >> >> +config GENERIC_ISA_DMA >> + def_bool y >> + > >Does this actually do anything without MAX_DMA_CHANNELS defined? > >Will
On Tue, Oct 29, 2024 at 09:41:08AM +0800, huanglei wrote: > Even if MAX_SMA_CANNELS is not defined, as long as GENETIC-SIA_DMA is > enabled, request_rma/free_rma function will also be exported, and > other modules using these two interfaces will not encounter link > errors. > > I don't know why others haven't noticed, but I discovered it when > debugging pcie parallel port drivers. And the arm/Kconfig has been > around for a long time. Please try to avoid top-posting in replies, as it makes the conversation very hard to follow. > At 2024-10-28 22:05:45, "Will Deacon" <will@kernel.org> wrote: > >On Fri, Oct 25, 2024 at 09:16:41AM +0800, huanglei814 wrote: > >> From: huanglei <huanglei@kylinos.cn> > >> > >> Enable GENERIC_ISA_DMA feature on arm64 platform, > >> thus, request_dma and free_dma interface can be export. > >> and driver modules can use the this interfaces on arm64 > >> platform. > >> > >> Currently, many pcie parallel port drivers still use these > >> interfaces when ported to arm64 platform. > > > >Why has it taken so long for anybody to notice? > > > >> Signed-off-by: huanglei <huanglei@kylinos.cn> > >> --- > >> arch/arm64/Kconfig | 3 +++ > >> 1 file changed, 3 insertions(+) > >> > >> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > >> index fd9df6dcc593..986eb251f68f 100644 > >> --- a/arch/arm64/Kconfig > >> +++ b/arch/arm64/Kconfig > >> @@ -367,6 +367,9 @@ config GENERIC_CSUM > >> config GENERIC_CALIBRATE_DELAY > >> def_bool y > >> > >> +config GENERIC_ISA_DMA > >> + def_bool y > >> + > > > > Does this actually do anything without MAX_DMA_CHANNELS defined? > > Even if MAX_SMA_CANNELS is not defined, as long as GENETIC-SIA_DMA is > enabled, request_rma/free_rma function will also be exported, and > other modules using these two interfaces will not encounter link > errors. Do the drivers do anything useful after they've linked? Can you please provide some in-tree examples of drivers that can be used on arm64 only once GENERIC_ISA_DMA is selected? If they just need some stubs for request_dma() and free_dma(), then it feels to me like that should be the default implementation, rather than having to select something to get them. Will
On Tue, Oct 29, 2024, at 13:20, Will Deacon wrote: > On Tue, Oct 29, 2024 at 09:41:08AM +0800, huanglei wrote: >> >> Even if MAX_SMA_CANNELS is not defined, as long as GENETIC-SIA_DMA is >> enabled, request_rma/free_rma function will also be exported, and >> other modules using these two interfaces will not encounter link >> errors. > > Do the drivers do anything useful after they've linked? Can you please > provide some in-tree examples of drivers that can be used on arm64 only > once GENERIC_ISA_DMA is selected? If they just need some stubs for > request_dma() and free_dma(), then it feels to me like that should be > the default implementation, rather than having to select something to > get them. GENERIC_ISA_DMA does nothing by iself, there also needs to be an iplementation of CONFIG_ISA_DMA_API in order to use DMA mode on floppy/parport/soundblaster. I think this should not be enabled by the architecture itself, but by the LPC host driver that provides the ISA style DMA. Most LPC implementations don't have this, and most arm64 machines have no LPC or PC104 at all. Note that PCI-ISA bridges can sometimes provide ISA devices, but ISA DMA won't work behind a PCIe bridge. The patch also needs a better changelog text to explain specifically which arm64 platform has PC style DMA support, and what devices are connected to it. Arnd
There was a slight word spelling error in the previous reply, Now correct it. Even if MAX_DMA_CHANNELS is not defined, as long as GENERIC_ISA_DMA is enabled, request_dma/free_dma function will also be exported, and other modules using these two interfaces will not encounter link errors. I don't know why others haven't noticed, but I discovered it when debugging pcie parallel port drivers. And the arm/Kconfig has been around for a long time. Best regards! >At 2024-10-28 22:05:45, "Will Deacon" <will@kernel.org> wrote: >>On Fri, Oct 25, 2024 at 09:16:41AM +0800, huanglei814 wrote: >>> From: huanglei <huanglei@kylinos.cn> >>> >>> Enable GENERIC_ISA_DMA feature on arm64 platform, >>> thus, request_dma and free_dma interface can be export. >>> and driver modules can use the this interfaces on arm64 >>> platform. >>> >>> Currently, many pcie parallel port drivers still use these >>> interfaces when ported to arm64 platform. >> >>Why has it taken so long for anybody to notice? >> >>> Signed-off-by: huanglei <huanglei@kylinos.cn> >>> --- >>> arch/arm64/Kconfig | 3 +++ >>> 1 file changed, 3 insertions(+) >>> >>> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig >>> index fd9df6dcc593..986eb251f68f 100644 >>> --- a/arch/arm64/Kconfig >>> +++ b/arch/arm64/Kconfig >>> @@ -367,6 +367,9 @@ config GENERIC_CSUM >>> config GENERIC_CALIBRATE_DELAY >>> def_bool y >>> >>> +config GENERIC_ISA_DMA >>> + def_bool y >>> + >> >>Does this actually do anything without MAX_DMA_CHANNELS defined? >> >>Will
© 2016 - 2024 Red Hat, Inc.