All of lore.kernel.org
 help / color / mirror / Atom feed
* DMA-related cleanups for parisc v2
@ 2019-01-29 18:13 Christoph Hellwig
  2019-01-29 18:13 ` [PATCH 1/8] parisc: don't include <asm/cacheflush.h> in <asm/dma-mapping.h> Christoph Hellwig
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: Christoph Hellwig @ 2019-01-29 18:13 UTC (permalink / raw)
  To: James E.J. Bottomley, Helge Deller; +Cc: linux-parisc, linux-kernel

Hi James and Helge,

this series has a couple DMA-related cleanups for parisc.  The main aim
is to move anything not required by drivers out of <asm/dma-mapping.h>,
but I noticed a few related bits and cleaned them up as well.

Changes since v1:
 - include <linux/pci.h> in drivers/parisc/iommu.h to avoid build
   failures with some configs

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

* [PATCH 1/8] parisc: don't include <asm/cacheflush.h> in <asm/dma-mapping.h>
  2019-01-29 18:13 DMA-related cleanups for parisc v2 Christoph Hellwig
@ 2019-01-29 18:13 ` Christoph Hellwig
  2019-01-29 18:13 ` [PATCH 2/8] parisc: move internal implementation details out of <asm/dma-mapping.h> Christoph Hellwig
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Christoph Hellwig @ 2019-01-29 18:13 UTC (permalink / raw)
  To: James E.J. Bottomley, Helge Deller; +Cc: linux-parisc, linux-kernel

No need for any of the definitions here, all there real work now
happens out of line.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 arch/parisc/include/asm/dma-mapping.h | 2 --
 arch/parisc/kernel/setup.c            | 1 +
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/arch/parisc/include/asm/dma-mapping.h b/arch/parisc/include/asm/dma-mapping.h
index 44a9f97194aa..f1bf5e297f1c 100644
--- a/arch/parisc/include/asm/dma-mapping.h
+++ b/arch/parisc/include/asm/dma-mapping.h
@@ -2,8 +2,6 @@
 #ifndef _PARISC_DMA_MAPPING_H
 #define _PARISC_DMA_MAPPING_H
 
-#include <asm/cacheflush.h>
-
 /*
 ** We need to support 4 different coherent dma models with one binary:
 **
diff --git a/arch/parisc/kernel/setup.c b/arch/parisc/kernel/setup.c
index f2cf86ac279b..15dd9e21be7e 100644
--- a/arch/parisc/kernel/setup.c
+++ b/arch/parisc/kernel/setup.c
@@ -40,6 +40,7 @@
 #include <linux/sched/clock.h>
 #include <linux/start_kernel.h>
 
+#include <asm/cacheflush.h>
 #include <asm/processor.h>
 #include <asm/sections.h>
 #include <asm/pdc.h>
-- 
2.20.1


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

* [PATCH 2/8] parisc: move internal implementation details out of <asm/dma-mapping.h>
  2019-01-29 18:13 DMA-related cleanups for parisc v2 Christoph Hellwig
  2019-01-29 18:13 ` [PATCH 1/8] parisc: don't include <asm/cacheflush.h> in <asm/dma-mapping.h> Christoph Hellwig
@ 2019-01-29 18:13 ` Christoph Hellwig
  2019-01-29 18:13 ` [PATCH 3/8] parisc: turn GET_IOC into an inline function Christoph Hellwig
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Christoph Hellwig @ 2019-01-29 18:13 UTC (permalink / raw)
  To: James E.J. Bottomley, Helge Deller; +Cc: linux-parisc, linux-kernel

Move everything that is not required for the public facing DMA API out
of <asm/dma-mapping.h> and into a new drivers/parisc/iommu.h header.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 arch/parisc/include/asm/dma-mapping.h | 44 -----------------------
 drivers/parisc/ccio-dma.c             |  2 ++
 drivers/parisc/dino.c                 |  1 +
 drivers/parisc/eisa.c                 |  2 ++
 drivers/parisc/hppb.c                 |  2 ++
 drivers/parisc/iommu.h                | 51 +++++++++++++++++++++++++++
 drivers/parisc/lba_pci.c              |  2 ++
 drivers/parisc/sba_iommu.c            |  2 ++
 8 files changed, 62 insertions(+), 44 deletions(-)
 create mode 100644 drivers/parisc/iommu.h

diff --git a/arch/parisc/include/asm/dma-mapping.h b/arch/parisc/include/asm/dma-mapping.h
index f1bf5e297f1c..d5bd94247371 100644
--- a/arch/parisc/include/asm/dma-mapping.h
+++ b/arch/parisc/include/asm/dma-mapping.h
@@ -26,48 +26,4 @@ static inline const struct dma_map_ops *get_arch_dma_ops(struct bus_type *bus)
 	return hppa_dma_ops;
 }
 
-static inline void *
-parisc_walk_tree(struct device *dev)
-{
-	struct device *otherdev;
-	if(likely(dev->platform_data != NULL))
-		return dev->platform_data;
-	/* OK, just traverse the bus to find it */
-	for(otherdev = dev->parent; otherdev;
-	    otherdev = otherdev->parent) {
-		if(otherdev->platform_data) {
-			dev->platform_data = otherdev->platform_data;
-			break;
-		}
-	}
-	return dev->platform_data;
-}
-
-#define GET_IOC(dev) ({					\
-	void *__pdata = parisc_walk_tree(dev);		\
-	__pdata ? HBA_DATA(__pdata)->iommu : NULL;	\
-})
-
-#ifdef CONFIG_IOMMU_CCIO
-struct parisc_device;
-struct ioc;
-void * ccio_get_iommu(const struct parisc_device *dev);
-int ccio_request_resource(const struct parisc_device *dev,
-		struct resource *res);
-int ccio_allocate_resource(const struct parisc_device *dev,
-		struct resource *res, unsigned long size,
-		unsigned long min, unsigned long max, unsigned long align);
-#else /* !CONFIG_IOMMU_CCIO */
-#define ccio_get_iommu(dev) NULL
-#define ccio_request_resource(dev, res) insert_resource(&iomem_resource, res)
-#define ccio_allocate_resource(dev, res, size, min, max, align) \
-		allocate_resource(&iomem_resource, res, size, min, max, \
-				align, NULL, NULL)
-#endif /* !CONFIG_IOMMU_CCIO */
-
-#ifdef CONFIG_IOMMU_SBA
-struct parisc_device;
-void * sba_get_iommu(struct parisc_device *dev);
-#endif
-
 #endif
diff --git a/drivers/parisc/ccio-dma.c b/drivers/parisc/ccio-dma.c
index 8d2fc84119c6..b17e81cf77d5 100644
--- a/drivers/parisc/ccio-dma.c
+++ b/drivers/parisc/ccio-dma.c
@@ -55,6 +55,8 @@
 #include <asm/hardware.h>       /* for register_module() */
 #include <asm/parisc-device.h>
 
+#include "iommu.h"
+
 /* 
 ** Choose "ccio" since that's what HP-UX calls it.
 ** Make it easier for folks to migrate from one to the other :^)
diff --git a/drivers/parisc/dino.c b/drivers/parisc/dino.c
index dfeea458a789..6f348c75687c 100644
--- a/drivers/parisc/dino.c
+++ b/drivers/parisc/dino.c
@@ -59,6 +59,7 @@
 #include <asm/hardware.h>
 
 #include "gsc.h"
+#include "iommu.h"
 
 #undef DINO_DEBUG
 
diff --git a/drivers/parisc/eisa.c b/drivers/parisc/eisa.c
index 9ff434f354bd..5657a1d3eb2b 100644
--- a/drivers/parisc/eisa.c
+++ b/drivers/parisc/eisa.c
@@ -45,6 +45,8 @@
 #include <asm/eisa_bus.h>
 #include <asm/eisa_eeprom.h>
 
+#include "iommu.h"
+
 #if 0
 #define EISA_DBG(msg, arg...) printk(KERN_DEBUG "eisa: " msg, ## arg)
 #else
diff --git a/drivers/parisc/hppb.c b/drivers/parisc/hppb.c
index ebc7b617e5d0..3b3481c0d81d 100644
--- a/drivers/parisc/hppb.c
+++ b/drivers/parisc/hppb.c
@@ -23,6 +23,8 @@
 #include <asm/hardware.h>
 #include <asm/parisc-device.h>
 
+#include "iommu.h"
+
 struct hppb_card {
 	unsigned long hpa;
 	struct resource mmio_region;
diff --git a/drivers/parisc/iommu.h b/drivers/parisc/iommu.h
new file mode 100644
index 000000000000..5a38b635e963
--- /dev/null
+++ b/drivers/parisc/iommu.h
@@ -0,0 +1,51 @@
+#ifndef _IOMMU_H
+#define _IOMMU_H 1
+
+#include <linux/pci.h>
+
+struct parisc_device;
+struct ioc;
+
+static inline void *parisc_walk_tree(struct device *dev)
+{
+	struct device *otherdev;
+
+	if (likely(dev->platform_data))
+		return dev->platform_data;
+
+	/* OK, just traverse the bus to find it */
+	for (otherdev = dev->parent;
+	     otherdev;
+	     otherdev = otherdev->parent) {
+		if (otherdev->platform_data) {
+			dev->platform_data = otherdev->platform_data;
+			break;
+		}
+	}
+
+	return dev->platform_data;
+}
+
+#define GET_IOC(dev) ({					\
+	void *__pdata = parisc_walk_tree(dev);		\
+	__pdata ? HBA_DATA(__pdata)->iommu : NULL;	\
+})
+
+#ifdef CONFIG_IOMMU_CCIO
+void *ccio_get_iommu(const struct parisc_device *dev);
+int ccio_request_resource(const struct parisc_device *dev,
+		struct resource *res);
+int ccio_allocate_resource(const struct parisc_device *dev,
+		struct resource *res, unsigned long size,
+		unsigned long min, unsigned long max, unsigned long align);
+#else /* !CONFIG_IOMMU_CCIO */
+#define ccio_get_iommu(dev) NULL
+#define ccio_request_resource(dev, res) insert_resource(&iomem_resource, res)
+#define ccio_allocate_resource(dev, res, size, min, max, align) \
+		allocate_resource(&iomem_resource, res, size, min, max, \
+				align, NULL, NULL)
+#endif /* !CONFIG_IOMMU_CCIO */
+
+void *sba_get_iommu(struct parisc_device *dev);
+
+#endif /* _IOMMU_H */
diff --git a/drivers/parisc/lba_pci.c b/drivers/parisc/lba_pci.c
index 69bd98421eb1..63e9bc6d18de 100644
--- a/drivers/parisc/lba_pci.c
+++ b/drivers/parisc/lba_pci.c
@@ -49,6 +49,8 @@
 #include <asm/parisc-device.h>
 #include <asm/io.h>		/* read/write stuff */
 
+#include "iommu.h"
+
 #undef DEBUG_LBA	/* general stuff */
 #undef DEBUG_LBA_PORT	/* debug I/O Port access */
 #undef DEBUG_LBA_CFG	/* debug Config Space Access (ie PCI Bus walk) */
diff --git a/drivers/parisc/sba_iommu.c b/drivers/parisc/sba_iommu.c
index 42172eb32235..afaf8e6aefe6 100644
--- a/drivers/parisc/sba_iommu.c
+++ b/drivers/parisc/sba_iommu.c
@@ -49,6 +49,8 @@
 #include <asm/pdcpat.h>		/* for is_pdc_pat() */
 #include <asm/parisc-device.h>
 
+#include "iommu.h"
+
 #define MODULE_NAME "SBA"
 
 /*
-- 
2.20.1


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

* [PATCH 3/8] parisc: turn GET_IOC into an inline function
  2019-01-29 18:13 DMA-related cleanups for parisc v2 Christoph Hellwig
  2019-01-29 18:13 ` [PATCH 1/8] parisc: don't include <asm/cacheflush.h> in <asm/dma-mapping.h> Christoph Hellwig
  2019-01-29 18:13 ` [PATCH 2/8] parisc: move internal implementation details out of <asm/dma-mapping.h> Christoph Hellwig
@ 2019-01-29 18:13 ` Christoph Hellwig
  2019-01-29 18:13 ` [PATCH 4/8] parisc: properly type the iommu field in struct pci_hba_data Christoph Hellwig
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Christoph Hellwig @ 2019-01-29 18:13 UTC (permalink / raw)
  To: James E.J. Bottomley, Helge Deller; +Cc: linux-parisc, linux-kernel

This makes the function both more readable and more typesafe.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 drivers/parisc/iommu.h | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/parisc/iommu.h b/drivers/parisc/iommu.h
index 5a38b635e963..d6fd3ab899ac 100644
--- a/drivers/parisc/iommu.h
+++ b/drivers/parisc/iommu.h
@@ -26,10 +26,14 @@ static inline void *parisc_walk_tree(struct device *dev)
 	return dev->platform_data;
 }
 
-#define GET_IOC(dev) ({					\
-	void *__pdata = parisc_walk_tree(dev);		\
-	__pdata ? HBA_DATA(__pdata)->iommu : NULL;	\
-})
+static inline struct ioc *GET_IOC(struct device *dev)
+{
+	struct pci_hba_data *pdata = parisc_walk_tree(dev);
+
+	if (!pdata)
+		return NULL;
+	return pdata->iommu;
+}
 
 #ifdef CONFIG_IOMMU_CCIO
 void *ccio_get_iommu(const struct parisc_device *dev);
-- 
2.20.1


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

* [PATCH 4/8] parisc: properly type the iommu field in struct pci_hba_data
  2019-01-29 18:13 DMA-related cleanups for parisc v2 Christoph Hellwig
                   ` (2 preceding siblings ...)
  2019-01-29 18:13 ` [PATCH 3/8] parisc: turn GET_IOC into an inline function Christoph Hellwig
@ 2019-01-29 18:13 ` Christoph Hellwig
  2019-01-29 18:13 ` [PATCH 5/8] parisc: properly type the return value of parisc_walk_tree Christoph Hellwig
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Christoph Hellwig @ 2019-01-29 18:13 UTC (permalink / raw)
  To: James E.J. Bottomley, Helge Deller; +Cc: linux-parisc, linux-kernel

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 arch/parisc/include/asm/pci.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/parisc/include/asm/pci.h b/arch/parisc/include/asm/pci.h
index 3328fd17c19d..00f763688401 100644
--- a/arch/parisc/include/asm/pci.h
+++ b/arch/parisc/include/asm/pci.h
@@ -56,7 +56,7 @@ struct pci_hba_data {
 	#define DINO_MAX_LMMIO_RESOURCES	3
 
 	unsigned long   lmmio_space_offset;  /* CPU view - PCI view */
-	void *          iommu;          /* IOMMU this device is under */
+	struct ioc	*iommu;		/* IOMMU this device is under */
 	/* REVISIT - spinlock to protect resources? */
 
 	#define HBA_NAME_SIZE 16
-- 
2.20.1


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

* [PATCH 5/8] parisc: properly type the return value of parisc_walk_tree
  2019-01-29 18:13 DMA-related cleanups for parisc v2 Christoph Hellwig
                   ` (3 preceding siblings ...)
  2019-01-29 18:13 ` [PATCH 4/8] parisc: properly type the iommu field in struct pci_hba_data Christoph Hellwig
@ 2019-01-29 18:13 ` Christoph Hellwig
  2019-01-29 18:13 ` [PATCH 6/8] parisc/dino: use container_of in DINO_DEV Christoph Hellwig
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Christoph Hellwig @ 2019-01-29 18:13 UTC (permalink / raw)
  To: James E.J. Bottomley, Helge Deller; +Cc: linux-parisc, linux-kernel

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 drivers/parisc/iommu.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/parisc/iommu.h b/drivers/parisc/iommu.h
index d6fd3ab899ac..240059cd8185 100644
--- a/drivers/parisc/iommu.h
+++ b/drivers/parisc/iommu.h
@@ -6,7 +6,7 @@
 struct parisc_device;
 struct ioc;
 
-static inline void *parisc_walk_tree(struct device *dev)
+static inline struct pci_hba_data *parisc_walk_tree(struct device *dev)
 {
 	struct device *otherdev;
 
-- 
2.20.1


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

* [PATCH 6/8] parisc/dino: use container_of in DINO_DEV
  2019-01-29 18:13 DMA-related cleanups for parisc v2 Christoph Hellwig
                   ` (4 preceding siblings ...)
  2019-01-29 18:13 ` [PATCH 5/8] parisc: properly type the return value of parisc_walk_tree Christoph Hellwig
@ 2019-01-29 18:13 ` Christoph Hellwig
  2019-01-29 18:13 ` [PATCH 7/8] parisc/lba_pci: use container_of in LBA_DEV Christoph Hellwig
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Christoph Hellwig @ 2019-01-29 18:13 UTC (permalink / raw)
  To: James E.J. Bottomley, Helge Deller; +Cc: linux-parisc, linux-kernel

Use the type safe container_of macros instead of a blind cast in
DINO_DEV, and turn the macro into an inline function.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 drivers/parisc/dino.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/drivers/parisc/dino.c b/drivers/parisc/dino.c
index 6f348c75687c..846b59d15999 100644
--- a/drivers/parisc/dino.c
+++ b/drivers/parisc/dino.c
@@ -154,12 +154,10 @@ struct dino_device
 #endif
 };
 
-/* Looks nice and keeps the compiler happy */
-#define DINO_DEV(d) ({				\
-	void *__pdata = d;			\
-	BUG_ON(!__pdata);			\
-	(struct dino_device *)__pdata; })
-
+static inline struct dino_device *DINO_DEV(struct pci_hba_data *hba)
+{
+	return container_of(hba, struct dino_device, hba);
+}
 
 /*
  * Dino Configuration Space Accessor Functions
-- 
2.20.1


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

* [PATCH 7/8] parisc/lba_pci: use container_of in LBA_DEV
  2019-01-29 18:13 DMA-related cleanups for parisc v2 Christoph Hellwig
                   ` (5 preceding siblings ...)
  2019-01-29 18:13 ` [PATCH 6/8] parisc/dino: use container_of in DINO_DEV Christoph Hellwig
@ 2019-01-29 18:13 ` Christoph Hellwig
  2019-01-29 18:13 ` [PATCH 8/8] parisc: remove the HBA_DATA macro Christoph Hellwig
  2019-01-29 19:21 ` DMA-related cleanups for parisc v2 Helge Deller
  8 siblings, 0 replies; 10+ messages in thread
From: Christoph Hellwig @ 2019-01-29 18:13 UTC (permalink / raw)
  To: James E.J. Bottomley, Helge Deller; +Cc: linux-parisc, linux-kernel

Use the type safe container_of macros instead of a blind cast in
LBA_DEV, and turn the macro into an inline function.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 drivers/parisc/lba_pci.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/drivers/parisc/lba_pci.c b/drivers/parisc/lba_pci.c
index 63e9bc6d18de..065d88868402 100644
--- a/drivers/parisc/lba_pci.c
+++ b/drivers/parisc/lba_pci.c
@@ -111,12 +111,10 @@ static u32 lba_t32;
 
 #define LBA_SKIP_PROBE(d) ((d)->flags & LBA_FLAG_SKIP_PROBE)
 
-
-/* Looks nice and keeps the compiler happy */
-#define LBA_DEV(d) ({				\
-	void *__pdata = d;			\
-	BUG_ON(!__pdata);			\
-	(struct lba_device *)__pdata; })
+static inline struct lba_device *LBA_DEV(struct pci_hba_data *hba)
+{
+	return container_of(hba, struct lba_device, hba);
+}
 
 /*
 ** Only allow 8 subsidiary busses per LBA
-- 
2.20.1


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

* [PATCH 8/8] parisc: remove the HBA_DATA macro
  2019-01-29 18:13 DMA-related cleanups for parisc v2 Christoph Hellwig
                   ` (6 preceding siblings ...)
  2019-01-29 18:13 ` [PATCH 7/8] parisc/lba_pci: use container_of in LBA_DEV Christoph Hellwig
@ 2019-01-29 18:13 ` Christoph Hellwig
  2019-01-29 19:21 ` DMA-related cleanups for parisc v2 Helge Deller
  8 siblings, 0 replies; 10+ messages in thread
From: Christoph Hellwig @ 2019-01-29 18:13 UTC (permalink / raw)
  To: James E.J. Bottomley, Helge Deller; +Cc: linux-parisc, linux-kernel

No need to hide a cast in a macro, especially as all users have
cleaner ways to archive the result than blind casting.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 arch/parisc/include/asm/pci.h | 2 --
 drivers/parisc/ccio-dma.c     | 9 ++++++---
 drivers/parisc/lba_pci.c      | 6 +++---
 3 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/arch/parisc/include/asm/pci.h b/arch/parisc/include/asm/pci.h
index 00f763688401..f14465b84de4 100644
--- a/arch/parisc/include/asm/pci.h
+++ b/arch/parisc/include/asm/pci.h
@@ -66,8 +66,6 @@ struct pci_hba_data {
 	char gmmio_name[HBA_NAME_SIZE];
 };
 
-#define HBA_DATA(d)		((struct pci_hba_data *) (d))
-
 /* 
 ** We support 2^16 I/O ports per HBA.  These are set up in the form
 ** 0xbbxxxx, where bb is the bus number and xxxx is the I/O port
diff --git a/drivers/parisc/ccio-dma.c b/drivers/parisc/ccio-dma.c
index b17e81cf77d5..097b0d43d13c 100644
--- a/drivers/parisc/ccio-dma.c
+++ b/drivers/parisc/ccio-dma.c
@@ -1519,6 +1519,7 @@ static int __init ccio_probe(struct parisc_device *dev)
 {
 	int i;
 	struct ioc *ioc, **ioc_p = &ioc_list;
+	struct pci_hba_data *hba;
 
 	ioc = kzalloc(sizeof(struct ioc), GFP_KERNEL);
 	if (ioc == NULL) {
@@ -1545,11 +1546,13 @@ static int __init ccio_probe(struct parisc_device *dev)
 	ccio_ioc_init(ioc);
 	ccio_init_resources(ioc);
 	hppa_dma_ops = &ccio_ops;
-	dev->dev.platform_data = kzalloc(sizeof(struct pci_hba_data), GFP_KERNEL);
 
+	hba = kzalloc(sizeof(*hba), GFP_KERNEL);
 	/* if this fails, no I/O cards will work, so may as well bug */
-	BUG_ON(dev->dev.platform_data == NULL);
-	HBA_DATA(dev->dev.platform_data)->iommu = ioc;
+	BUG_ON(hba == NULL);
+
+	hba->iommu = ioc;
+	dev->dev.platform_data = hba;
 
 #ifdef CONFIG_PROC_FS
 	if (ioc_count == 0) {
diff --git a/drivers/parisc/lba_pci.c b/drivers/parisc/lba_pci.c
index 065d88868402..9047cc22c155 100644
--- a/drivers/parisc/lba_pci.c
+++ b/drivers/parisc/lba_pci.c
@@ -1275,7 +1275,7 @@ lba_legacy_resources(struct parisc_device *pa_dev, struct lba_device *lba_dev)
 		r->flags = IORESOURCE_MEM;
 		/* mmio_mask also clears Enable bit */
 		r->start &= mmio_mask;
-		r->start = PCI_HOST_ADDR(HBA_DATA(lba_dev), r->start);
+		r->start = PCI_HOST_ADDR(&lba_dev->hba, r->start);
 		rsize = ~ READ_REG32(lba_dev->hba.base_addr + LBA_LMMIO_MASK);
 
 		/*
@@ -1321,7 +1321,7 @@ lba_legacy_resources(struct parisc_device *pa_dev, struct lba_device *lba_dev)
 		r->flags = IORESOURCE_MEM;
 		/* mmio_mask also clears Enable bit */
 		r->start &= mmio_mask;
-		r->start = PCI_HOST_ADDR(HBA_DATA(lba_dev), r->start);
+		r->start = PCI_HOST_ADDR(&lba_dev->hba, r->start);
 		rsize = READ_REG32(lba_dev->hba.base_addr + LBA_ELMMIO_MASK);
 		r->end = r->start + ~rsize;
 	}
@@ -1562,7 +1562,7 @@ lba_driver_probe(struct parisc_device *dev)
 
 	/* ------------ Second : initialize common stuff ---------- */
 	pci_bios = &lba_bios_ops;
-	pcibios_register_hba(HBA_DATA(lba_dev));
+	pcibios_register_hba(&lba_dev->hba);
 	spin_lock_init(&lba_dev->lba_lock);
 
 	if (lba_hw_init(lba_dev))
-- 
2.20.1


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

* Re: DMA-related cleanups for parisc v2
  2019-01-29 18:13 DMA-related cleanups for parisc v2 Christoph Hellwig
                   ` (7 preceding siblings ...)
  2019-01-29 18:13 ` [PATCH 8/8] parisc: remove the HBA_DATA macro Christoph Hellwig
@ 2019-01-29 19:21 ` Helge Deller
  8 siblings, 0 replies; 10+ messages in thread
From: Helge Deller @ 2019-01-29 19:21 UTC (permalink / raw)
  To: Christoph Hellwig, James E.J. Bottomley; +Cc: linux-parisc, linux-kernel

On 29.01.19 19:13, Christoph Hellwig wrote:
> this series has a couple DMA-related cleanups for parisc.  The main aim
> is to move anything not required by drivers out of <asm/dma-mapping.h>,
> but I noticed a few related bits and cleaned them up as well.
> 
> Changes since v1:
>  - include <linux/pci.h> in drivers/parisc/iommu.h to avoid build
>    failures with some configs

Thanks!
I've added it to the parisc linux-next tree.

Helge

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

end of thread, other threads:[~2019-01-29 19:21 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-29 18:13 DMA-related cleanups for parisc v2 Christoph Hellwig
2019-01-29 18:13 ` [PATCH 1/8] parisc: don't include <asm/cacheflush.h> in <asm/dma-mapping.h> Christoph Hellwig
2019-01-29 18:13 ` [PATCH 2/8] parisc: move internal implementation details out of <asm/dma-mapping.h> Christoph Hellwig
2019-01-29 18:13 ` [PATCH 3/8] parisc: turn GET_IOC into an inline function Christoph Hellwig
2019-01-29 18:13 ` [PATCH 4/8] parisc: properly type the iommu field in struct pci_hba_data Christoph Hellwig
2019-01-29 18:13 ` [PATCH 5/8] parisc: properly type the return value of parisc_walk_tree Christoph Hellwig
2019-01-29 18:13 ` [PATCH 6/8] parisc/dino: use container_of in DINO_DEV Christoph Hellwig
2019-01-29 18:13 ` [PATCH 7/8] parisc/lba_pci: use container_of in LBA_DEV Christoph Hellwig
2019-01-29 18:13 ` [PATCH 8/8] parisc: remove the HBA_DATA macro Christoph Hellwig
2019-01-29 19:21 ` DMA-related cleanups for parisc v2 Helge Deller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.