Skip to contentSkip to conversation

char: xillybus: remove direct dependency on DT functions

PATCH In review Rob Herring 2 participants 2 messages Jan 4, 2018 – Jan 9, 2018

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 char: xillybus: remove direct dependency on DT functions

Drivers generally should not need to depend directly on OF_ADDRESS or OF_IRQ. Convert xillybus to use the preferred platform_get_resource() and platform_get_irq() functions to remove this dependency.

Cc Eli Billauer <[email protected]>
Cc Greg Kroah-Hartman <[email protected]>
---
 drivers/char/xillybus/Kconfig       |  4 ++--
 drivers/char/xillybus/xillybus_of.c | 12 ++++--------
 2 files changed, 6 insertions(+), 10 deletions(-)
drivers/char/xillybus/Kconfig +2 -2
index b302684d86c1..a1f16df08d32 100644
@@ -4,7 +4,7 @@
 
 config XILLYBUS
 	tristate "Xillybus generic FPGA interface"
-	depends on PCI || (OF_ADDRESS && OF_IRQ)
+	depends on PCI || OF
 	select CRC32
 	help
 	  Xillybus is a generic interface for peripherals designed on
@@ -24,7 +24,7 @@ config XILLYBUS_PCIE
 
 config XILLYBUS_OF
 	tristate "Xillybus over Device Tree"
-	depends on OF_ADDRESS && OF_IRQ && HAS_DMA
+	depends on OF && HAS_DMA
 	help
 	  Set to M if you want Xillybus to find its resources from the
 	  Open Firmware Flattened Device Tree. If the target is an embedded
drivers/char/xillybus/xillybus_of.c +4 -8
index 78a492f5acfb..4d6625ccb48f 100644
@@ -15,10 +15,6 @@
 #include <linux/slab.h>
 #include <linux/platform_device.h>
 #include <linux/of.h>
-#include <linux/of_irq.h>
-#include <linux/of_address.h>
-#include <linux/of_device.h>
-#include <linux/of_platform.h>
 #include <linux/err.h>
 #include "xillybus.h"
 
@@ -123,7 +119,7 @@ static int xilly_drv_probe(struct platform_device *op)
 	struct xilly_endpoint *endpoint;
 	int rc;
 	int irq;
-	struct resource res;
+	struct resource *res;
 	struct xilly_endpoint_hardware *ephw = &of_hw;
 
 	if (of_property_read_bool(dev->of_node, "dma-coherent"))
@@ -136,13 +132,13 @@ static int xilly_drv_probe(struct platform_device *op)
 
 	dev_set_drvdata(dev, endpoint);
 
-	rc = of_address_to_resource(dev->of_node, 0, &res);
-	endpoint->registers = devm_ioremap_resource(dev, &res);
+	res = platform_get_resource(op, IORESOURCE_MEM, 0);
+	endpoint->registers = devm_ioremap_resource(dev, res);
 
 	if (IS_ERR(endpoint->registers))
 		return PTR_ERR(endpoint->registers);
 
-	irq = irq_of_parse_and_map(dev->of_node, 0);
+	irq = platform_get_irq(op, 0);
 
 	rc = devm_request_irq(dev, irq, xillybus_isr, 0, xillyname, endpoint);
 

--
2.14.1

maintainer
#1 lore raw

Hello Rob,

I've had issues with my Gmail account recently, so I saw the patch only today. I was on my way to Ack it, when I got the mail announcing it has been applied.

So thanks, and sorry for not responding earlier.

Regards,
Eli

Quoted 79 lines · Rob Herring

Drivers generally should not need to depend directly on OF_ADDRESS or OF_IRQ. Convert xillybus to use the preferred platform_get_resource() and platform_get_irq() functions to remove this dependency.

Cc Eli Billauer<[email protected]>
Cc Greg Kroah-Hartman<[email protected]>
---
  drivers/char/xillybus/Kconfig       |  4 ++--
  drivers/char/xillybus/xillybus_of.c | 12 ++++--------
  2 files changed, 6 insertions(+), 10 deletions(-)
drivers/char/xillybus/Kconfig +2 -2
index b302684d86c1..a1f16df08d32 100644
@@ -4,7 +4,7 @@
 
  config XILLYBUS
  	tristate "Xillybus generic FPGA interface"
-	depends on PCI || (OF_ADDRESS&&  OF_IRQ)
+	depends on PCI || OF
  	select CRC32
  	help
  	  Xillybus is a generic interface for peripherals designed on
@@ -24,7 +24,7 @@ config XILLYBUS_PCIE
 
  config XILLYBUS_OF
  	tristate "Xillybus over Device Tree"
-	depends on OF_ADDRESS&&  OF_IRQ&&  HAS_DMA
+	depends on OF&&  HAS_DMA
  	help
  	  Set to M if you want Xillybus to find its resources from the
  	  Open Firmware Flattened Device Tree. If the target is an embedded
drivers/char/xillybus/xillybus_of.c +4 -9
index 78a492f5acfb..4d6625ccb48f 100644
@@ -15,10 +15,6 @@
  #include<linux/slab.h>
  #include<linux/platform_device.h>
  #include<linux/of.h>
-#include<linux/of_irq.h>
-#include<linux/of_address.h>
-#include<linux/of_device.h>
-#include<linux/of_platform.h>
  #include<linux/err.h>
  #include "xillybus.h"
 
@@ -123,7 +119,7 @@ static int xilly_drv_probe(struct platform_device *op)
  	struct xilly_endpoint *endpoint;
  	int rc;
  	int irq;
-	struct resource res;
+	struct resource *res;
  	struct xilly_endpoint_hardware *ephw =&of_hw;
 
  	if (of_property_read_bool(dev->of_node, "dma-coherent"))
@@ -136,13 +132,13 @@ static int xilly_drv_probe(struct platform_device *op)
 
  	dev_set_drvdata(dev, endpoint);
 
-	rc = of_address_to_resource(dev->of_node, 0,&res);
-	endpoint->registers = devm_ioremap_resource(dev,&res);
+	res = platform_get_resource(op, IORESOURCE_MEM, 0);
+	endpoint->registers = devm_ioremap_resource(dev, res);
 
  	if (IS_ERR(endpoint->registers))
  		return PTR_ERR(endpoint->registers);
 
-	irq = irq_of_parse_and_map(dev->of_node, 0);
+	irq = platform_get_irq(op, 0);
 
  	rc = devm_request_irq(dev, irq, xillybus_isr, 0, xillyname, endpoint);
 
--

2.14.1