2013-04-22 02:13:38

by Rob Herring

[permalink] [raw]
Subject: [PATCH 0/5] of_platform_driver and OF_DEVICE removal

From: Rob Herring <[email protected]>

This series is a relatively straight-forward removal of the last remaining
user of of_platform_driver (ibmebus) and removal of CONFIG_OF_DEVICE which
is always enabled when CONFIG_OF is enabled.

Compile tested on powerpc and sparc.

Rob

Rob Herring (5):
ibmebus: convert of_platform_driver to platform_driver
driver core: move to_platform_driver to platform_device.h
of: remove of_platform_driver
usb: chipidea: depend on CONFIG_OF instead of CONFIG_OF_DEVICE
of: remove CONFIG_OF_DEVICE

arch/powerpc/include/asm/ibmebus.h | 4 ++--
arch/powerpc/kernel/ibmebus.c | 22 ++++++++++-----------
drivers/base/platform.c | 3 ---
drivers/infiniband/hw/ehca/ehca_main.c | 5 ++---
drivers/net/ethernet/ibm/ehea/ehea_main.c | 8 +++-----
drivers/of/Kconfig | 3 ---
drivers/of/Makefile | 3 +--
drivers/usb/chipidea/Makefile | 2 +-
include/linux/of_device.h | 6 +++---
include/linux/of_platform.h | 30 +----------------------------
include/linux/platform_device.h | 3 +++
11 files changed, 26 insertions(+), 63 deletions(-)

--
1.7.10.4


2013-04-22 02:13:45

by Rob Herring

[permalink] [raw]
Subject: [PATCH 4/5] usb: chipidea: depend on CONFIG_OF instead of CONFIG_OF_DEVICE

From: Rob Herring <[email protected]>

CONFIG_OF_DEVICE is going away, so use CONFIG_OF instead. It does not
appear that CONFIG_OF_DEVICE was the correct dependency either.

Signed-off-by: Rob Herring <[email protected]>
Cc: Alexander Shishkin <[email protected]>
Cc: Greg Kroah-Hartman <[email protected]>
Cc: Grant Likely <[email protected]>
Cc: [email protected]
---
drivers/usb/chipidea/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/chipidea/Makefile b/drivers/usb/chipidea/Makefile
index d92ca32..0895e3e 100644
--- a/drivers/usb/chipidea/Makefile
+++ b/drivers/usb/chipidea/Makefile
@@ -16,6 +16,6 @@ ifneq ($(CONFIG_PCI),)
obj-$(CONFIG_USB_CHIPIDEA) += ci13xxx_pci.o
endif

-ifneq ($(CONFIG_OF_DEVICE),)
+ifneq ($(CONFIG_OF),)
obj-$(CONFIG_USB_CHIPIDEA) += ci13xxx_imx.o usbmisc_imx6q.o
endif
--
1.7.10.4

2013-04-22 02:13:43

by Rob Herring

[permalink] [raw]
Subject: [PATCH 3/5] of: remove of_platform_driver

From: Rob Herring <[email protected]>

The last user of of_platform_driver is converted to a regular
platform_driver, so of_platform_driver can be removed now.

Signed-off-by: Rob Herring <[email protected]>
Cc: Grant Likely <[email protected]>
---
include/linux/of_platform.h | 21 ---------------------
1 file changed, 21 deletions(-)

diff --git a/include/linux/of_platform.h b/include/linux/of_platform.h
index 2a93b64..aa7eb02 100644
--- a/include/linux/of_platform.h
+++ b/include/linux/of_platform.h
@@ -53,27 +53,6 @@ struct of_dev_auxdata {
{ .compatible = _compat, .phys_addr = _phys, .name = _name, \
.platform_data = _pdata }

-/**
- * of_platform_driver - Legacy of-aware driver for platform devices.
- *
- * An of_platform_driver driver is attached to a basic platform_device on
- * the ibm ebus (ibmebus_bus_type).
- */
-struct of_platform_driver
-{
- int (*probe)(struct platform_device* dev,
- const struct of_device_id *match);
- int (*remove)(struct platform_device* dev);
-
- int (*suspend)(struct platform_device* dev, pm_message_t state);
- int (*resume)(struct platform_device* dev);
- int (*shutdown)(struct platform_device* dev);
-
- struct device_driver driver;
-};
-#define to_of_platform_driver(drv) \
- container_of(drv,struct of_platform_driver, driver)
-
extern const struct of_device_id of_default_bus_match_table[];

/* Platform drivers register/unregister */
--
1.7.10.4

2013-04-22 02:14:03

by Rob Herring

[permalink] [raw]
Subject: [PATCH 5/5] of: remove CONFIG_OF_DEVICE

From: Rob Herring <[email protected]>

CONFIG_OF_DEVICE is always selected when CONFIG_OF is enabled, so remove
it and simplify of_platform.h and of_device.h headers. This also fixes
!OF compiles using of_platform_populate.

Signed-off-by: Rob Herring <[email protected]>
Cc: Grant Likely <[email protected]>
---
drivers/of/Kconfig | 3 ---
drivers/of/Makefile | 3 +--
include/linux/of_device.h | 6 +++---
include/linux/of_platform.h | 9 +--------
4 files changed, 5 insertions(+), 16 deletions(-)

diff --git a/drivers/of/Kconfig b/drivers/of/Kconfig
index d37bfcf..80e5c13 100644
--- a/drivers/of/Kconfig
+++ b/drivers/of/Kconfig
@@ -48,9 +48,6 @@ config OF_IRQ
def_bool y
depends on !SPARC

-config OF_DEVICE
- def_bool y
-
config OF_I2C
def_tristate I2C
depends on I2C
diff --git a/drivers/of/Makefile b/drivers/of/Makefile
index e027f44..1f9c0c4 100644
--- a/drivers/of/Makefile
+++ b/drivers/of/Makefile
@@ -1,9 +1,8 @@
-obj-y = base.o
+obj-y = base.o device.o platform.o
obj-$(CONFIG_OF_FLATTREE) += fdt.o
obj-$(CONFIG_OF_PROMTREE) += pdt.o
obj-$(CONFIG_OF_ADDRESS) += address.o
obj-$(CONFIG_OF_IRQ) += irq.o
-obj-$(CONFIG_OF_DEVICE) += device.o platform.o
obj-$(CONFIG_OF_I2C) += of_i2c.o
obj-$(CONFIG_OF_NET) += of_net.o
obj-$(CONFIG_OF_SELFTEST) += selftest.o
diff --git a/include/linux/of_device.h b/include/linux/of_device.h
index 901b743..9d27475 100644
--- a/include/linux/of_device.h
+++ b/include/linux/of_device.h
@@ -4,12 +4,12 @@
#include <linux/platform_device.h>
#include <linux/of_platform.h> /* temporary until merge */

-#ifdef CONFIG_OF_DEVICE
#include <linux/of.h>
#include <linux/mod_devicetable.h>

struct device;

+#ifdef CONFIG_OF
extern const struct of_device_id *of_match_device(
const struct of_device_id *matches, const struct device *dev);
extern void of_device_make_bus_id(struct device *dev);
@@ -43,7 +43,7 @@ static inline void of_device_node_put(struct device *dev)
of_node_put(dev->of_node);
}

-#else /* CONFIG_OF_DEVICE */
+#else /* CONFIG_OF */

static inline int of_driver_match_device(struct device *dev,
struct device_driver *drv)
@@ -67,6 +67,6 @@ static inline const struct of_device_id *of_match_device(
{
return NULL;
}
-#endif /* CONFIG_OF_DEVICE */
+#endif /* CONFIG_OF */

#endif /* _LINUX_OF_DEVICE_H */
diff --git a/include/linux/of_platform.h b/include/linux/of_platform.h
index aa7eb02..6b840f0 100644
--- a/include/linux/of_platform.h
+++ b/include/linux/of_platform.h
@@ -13,8 +13,6 @@

#include <linux/device.h>
#include <linux/mod_devicetable.h>
-
-#ifdef CONFIG_OF_DEVICE
#include <linux/pm.h>
#include <linux/of_device.h>
#include <linux/platform_device.h>
@@ -74,13 +72,8 @@ extern int of_platform_populate(struct device_node *root,
const struct of_device_id *matches,
const struct of_dev_auxdata *lookup,
struct device *parent);
-#endif /* CONFIG_OF_ADDRESS */
-
-#endif /* CONFIG_OF_DEVICE */
+#else

-#if !defined(CONFIG_OF_ADDRESS)
-struct of_dev_auxdata;
-struct device_node;
static inline int of_platform_populate(struct device_node *root,
const struct of_device_id *matches,
const struct of_dev_auxdata *lookup,
--
1.7.10.4

2013-04-22 02:13:41

by Rob Herring

[permalink] [raw]
Subject: [PATCH 2/5] driver core: move to_platform_driver to platform_device.h

From: Rob Herring <[email protected]>

In converting the last remaining of_platform_driver (ibmebus) to a regular
platform driver, to_platform_driver is needed to replace
to_of_platform_driver.

Signed-off-by: Rob Herring <[email protected]>
Cc: Greg Kroah-Hartman <[email protected]>
Cc: Grant Likely <[email protected]>
---
drivers/base/platform.c | 3 ---
include/linux/platform_device.h | 3 +++
2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/base/platform.c b/drivers/base/platform.c
index c0b8df3..819ecb0 100644
--- a/drivers/base/platform.c
+++ b/drivers/base/platform.c
@@ -29,9 +29,6 @@
/* For automatically allocated device IDs */
static DEFINE_IDA(platform_devid_ida);

-#define to_platform_driver(drv) (container_of((drv), struct platform_driver, \
- driver))
-
struct device platform_bus = {
.init_name = "platform",
};
diff --git a/include/linux/platform_device.h b/include/linux/platform_device.h
index c082c71..6e4e096 100644
--- a/include/linux/platform_device.h
+++ b/include/linux/platform_device.h
@@ -176,6 +176,9 @@ struct platform_driver {
const struct platform_device_id *id_table;
};

+#define to_platform_driver(drv) (container_of((drv), struct platform_driver, \
+ driver))
+
extern int platform_driver_register(struct platform_driver *);
extern void platform_driver_unregister(struct platform_driver *);

--
1.7.10.4

2013-04-22 02:14:48

by Rob Herring

[permalink] [raw]
Subject: [PATCH 1/5] ibmebus: convert of_platform_driver to platform_driver

From: Rob Herring <[email protected]>

ibmebus is the last remaining user of of_platform_driver and the
conversion to a regular platform driver is trivial.

Signed-off-by: Rob Herring <[email protected]>
Cc: Benjamin Herrenschmidt <[email protected]>
Cc: Paul Mackerras <[email protected]>
Cc: Hoang-Nam Nguyen <[email protected]>
Cc: Christoph Raisch <[email protected]>
Cc: Roland Dreier <[email protected]>
Cc: Sean Hefty <[email protected]>
Cc: Hal Rosenstock <[email protected]>
Cc: Thadeu Lima de Souza Cascardo <[email protected]>
Cc: Grant Likely <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
---
arch/powerpc/include/asm/ibmebus.h | 4 ++--
arch/powerpc/kernel/ibmebus.c | 22 ++++++++++------------
drivers/infiniband/hw/ehca/ehca_main.c | 5 ++---
drivers/net/ethernet/ibm/ehea/ehea_main.c | 8 +++-----
4 files changed, 17 insertions(+), 22 deletions(-)

diff --git a/arch/powerpc/include/asm/ibmebus.h b/arch/powerpc/include/asm/ibmebus.h
index 1a9d9ae..088f95b 100644
--- a/arch/powerpc/include/asm/ibmebus.h
+++ b/arch/powerpc/include/asm/ibmebus.h
@@ -48,8 +48,8 @@

extern struct bus_type ibmebus_bus_type;

-int ibmebus_register_driver(struct of_platform_driver *drv);
-void ibmebus_unregister_driver(struct of_platform_driver *drv);
+int ibmebus_register_driver(struct platform_driver *drv);
+void ibmebus_unregister_driver(struct platform_driver *drv);

int ibmebus_request_irq(u32 ist, irq_handler_t handler,
unsigned long irq_flags, const char *devname,
diff --git a/arch/powerpc/kernel/ibmebus.c b/arch/powerpc/kernel/ibmebus.c
index 8220baa..16a7c23 100644
--- a/arch/powerpc/kernel/ibmebus.c
+++ b/arch/powerpc/kernel/ibmebus.c
@@ -205,7 +205,7 @@ static int ibmebus_create_devices(const struct of_device_id *matches)
return ret;
}

-int ibmebus_register_driver(struct of_platform_driver *drv)
+int ibmebus_register_driver(struct platform_driver *drv)
{
/* If the driver uses devices that ibmebus doesn't know, add them */
ibmebus_create_devices(drv->driver.of_match_table);
@@ -215,7 +215,7 @@ int ibmebus_register_driver(struct of_platform_driver *drv)
}
EXPORT_SYMBOL(ibmebus_register_driver);

-void ibmebus_unregister_driver(struct of_platform_driver *drv)
+void ibmebus_unregister_driver(struct platform_driver *drv)
{
driver_unregister(&drv->driver);
}
@@ -338,11 +338,10 @@ static int ibmebus_bus_bus_match(struct device *dev, struct device_driver *drv)
static int ibmebus_bus_device_probe(struct device *dev)
{
int error = -ENODEV;
- struct of_platform_driver *drv;
+ struct platform_driver *drv;
struct platform_device *of_dev;
- const struct of_device_id *match;

- drv = to_of_platform_driver(dev->driver);
+ drv = to_platform_driver(dev->driver);
of_dev = to_platform_device(dev);

if (!drv->probe)
@@ -350,9 +349,8 @@ static int ibmebus_bus_device_probe(struct device *dev)

of_dev_get(of_dev);

- match = of_match_device(drv->driver.of_match_table, dev);
- if (match)
- error = drv->probe(of_dev, match);
+ if (of_driver_match_device(dev, dev->driver))
+ error = drv->probe(of_dev);
if (error)
of_dev_put(of_dev);

@@ -362,7 +360,7 @@ static int ibmebus_bus_device_probe(struct device *dev)
static int ibmebus_bus_device_remove(struct device *dev)
{
struct platform_device *of_dev = to_platform_device(dev);
- struct of_platform_driver *drv = to_of_platform_driver(dev->driver);
+ struct platform_driver *drv = to_platform_driver(dev->driver);

if (dev->driver && drv->remove)
drv->remove(of_dev);
@@ -372,7 +370,7 @@ static int ibmebus_bus_device_remove(struct device *dev)
static void ibmebus_bus_device_shutdown(struct device *dev)
{
struct platform_device *of_dev = to_platform_device(dev);
- struct of_platform_driver *drv = to_of_platform_driver(dev->driver);
+ struct platform_driver *drv = to_platform_driver(dev->driver);

if (dev->driver && drv->shutdown)
drv->shutdown(of_dev);
@@ -419,7 +417,7 @@ struct device_attribute ibmebus_bus_device_attrs[] = {
static int ibmebus_bus_legacy_suspend(struct device *dev, pm_message_t mesg)
{
struct platform_device *of_dev = to_platform_device(dev);
- struct of_platform_driver *drv = to_of_platform_driver(dev->driver);
+ struct platform_driver *drv = to_platform_driver(dev->driver);
int ret = 0;

if (dev->driver && drv->suspend)
@@ -430,7 +428,7 @@ static int ibmebus_bus_legacy_suspend(struct device *dev, pm_message_t mesg)
static int ibmebus_bus_legacy_resume(struct device *dev)
{
struct platform_device *of_dev = to_platform_device(dev);
- struct of_platform_driver *drv = to_of_platform_driver(dev->driver);
+ struct platform_driver *drv = to_platform_driver(dev->driver);
int ret = 0;

if (dev->driver && drv->resume)
diff --git a/drivers/infiniband/hw/ehca/ehca_main.c b/drivers/infiniband/hw/ehca/ehca_main.c
index f8a6291..982e3ef 100644
--- a/drivers/infiniband/hw/ehca/ehca_main.c
+++ b/drivers/infiniband/hw/ehca/ehca_main.c
@@ -713,8 +713,7 @@ static struct attribute_group ehca_dev_attr_grp = {
.attrs = ehca_dev_attrs
};

-static int ehca_probe(struct platform_device *dev,
- const struct of_device_id *id)
+static int ehca_probe(struct platform_device *dev)
{
struct ehca_shca *shca;
const u64 *handle;
@@ -937,7 +936,7 @@ static struct of_device_id ehca_device_table[] =
};
MODULE_DEVICE_TABLE(of, ehca_device_table);

-static struct of_platform_driver ehca_driver = {
+static struct platform_driver ehca_driver = {
.probe = ehca_probe,
.remove = ehca_remove,
.driver = {
diff --git a/drivers/net/ethernet/ibm/ehea/ehea_main.c b/drivers/net/ethernet/ibm/ehea/ehea_main.c
index 328f47c..c6ecf70 100644
--- a/drivers/net/ethernet/ibm/ehea/ehea_main.c
+++ b/drivers/net/ethernet/ibm/ehea/ehea_main.c
@@ -98,8 +98,7 @@ static struct ehea_fw_handle_array ehea_fw_handles;
static struct ehea_bcmc_reg_array ehea_bcmc_regs;


-static int ehea_probe_adapter(struct platform_device *dev,
- const struct of_device_id *id);
+static int ehea_probe_adapter(struct platform_device *dev);

static int ehea_remove(struct platform_device *dev);

@@ -112,7 +111,7 @@ static struct of_device_id ehea_device_table[] = {
};
MODULE_DEVICE_TABLE(of, ehea_device_table);

-static struct of_platform_driver ehea_driver = {
+static struct platform_driver ehea_driver = {
.driver = {
.name = "ehea",
.owner = THIS_MODULE,
@@ -3255,8 +3254,7 @@ static void ehea_remove_device_sysfs(struct platform_device *dev)
device_remove_file(&dev->dev, &dev_attr_remove_port);
}

-static int ehea_probe_adapter(struct platform_device *dev,
- const struct of_device_id *id)
+static int ehea_probe_adapter(struct platform_device *dev)
{
struct ehea_adapter *adapter;
const u64 *adapter_handle;
--
1.7.10.4

2013-04-22 07:03:21

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH 2/5] driver core: move to_platform_driver to platform_device.h

On Monday 22 April 2013, Rob Herring wrote:
> From: Rob Herring <[email protected]>
>
> In converting the last remaining of_platform_driver (ibmebus) to a regular
> platform driver, to_platform_driver is needed to replace
> to_of_platform_driver.
>
> Signed-off-by: Rob Herring <[email protected]>
> Cc: Greg Kroah-Hartman <[email protected]>
> Cc: Grant Likely <[email protected]>

It sounds like this patch is needed first, so you should swap the first
two patches in the series.

Arnd

2013-04-22 07:04:21

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH 0/5] of_platform_driver and OF_DEVICE removal

On Monday 22 April 2013, Rob Herring wrote:
> From: Rob Herring <[email protected]>
>
> This series is a relatively straight-forward removal of the last remaining
> user of of_platform_driver (ibmebus) and removal of CONFIG_OF_DEVICE which
> is always enabled when CONFIG_OF is enabled.
>
> Compile tested on powerpc and sparc.
>

Acked-by: Arnd Bergmann <[email protected]>

2013-04-25 15:23:43

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH 1/5] ibmebus: convert of_platform_driver to platform_driver

On Sun, Apr 21, 2013 at 9:13 PM, Rob Herring <[email protected]> wrote:
> From: Rob Herring <[email protected]>
>
> ibmebus is the last remaining user of of_platform_driver and the
> conversion to a regular platform driver is trivial.
>
> Signed-off-by: Rob Herring <[email protected]>
> Cc: Benjamin Herrenschmidt <[email protected]>
> Cc: Paul Mackerras <[email protected]>
> Cc: Hoang-Nam Nguyen <[email protected]>
> Cc: Christoph Raisch <[email protected]>
> Cc: Roland Dreier <[email protected]>
> Cc: Sean Hefty <[email protected]>
> Cc: Hal Rosenstock <[email protected]>
> Cc: Thadeu Lima de Souza Cascardo <[email protected]>
> Cc: Grant Likely <[email protected]>
> Cc: [email protected]
> Cc: [email protected]
> Cc: [email protected]

Ben, Can I have your Ack for this? The change is straightforward and
neither of the 2 drivers used the id parameter that is removed.

Rob

> ---
> arch/powerpc/include/asm/ibmebus.h | 4 ++--
> arch/powerpc/kernel/ibmebus.c | 22 ++++++++++------------
> drivers/infiniband/hw/ehca/ehca_main.c | 5 ++---
> drivers/net/ethernet/ibm/ehea/ehea_main.c | 8 +++-----
> 4 files changed, 17 insertions(+), 22 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/ibmebus.h b/arch/powerpc/include/asm/ibmebus.h
> index 1a9d9ae..088f95b 100644
> --- a/arch/powerpc/include/asm/ibmebus.h
> +++ b/arch/powerpc/include/asm/ibmebus.h
> @@ -48,8 +48,8 @@
>
> extern struct bus_type ibmebus_bus_type;
>
> -int ibmebus_register_driver(struct of_platform_driver *drv);
> -void ibmebus_unregister_driver(struct of_platform_driver *drv);
> +int ibmebus_register_driver(struct platform_driver *drv);
> +void ibmebus_unregister_driver(struct platform_driver *drv);
>
> int ibmebus_request_irq(u32 ist, irq_handler_t handler,
> unsigned long irq_flags, const char *devname,
> diff --git a/arch/powerpc/kernel/ibmebus.c b/arch/powerpc/kernel/ibmebus.c
> index 8220baa..16a7c23 100644
> --- a/arch/powerpc/kernel/ibmebus.c
> +++ b/arch/powerpc/kernel/ibmebus.c
> @@ -205,7 +205,7 @@ static int ibmebus_create_devices(const struct of_device_id *matches)
> return ret;
> }
>
> -int ibmebus_register_driver(struct of_platform_driver *drv)
> +int ibmebus_register_driver(struct platform_driver *drv)
> {
> /* If the driver uses devices that ibmebus doesn't know, add them */
> ibmebus_create_devices(drv->driver.of_match_table);
> @@ -215,7 +215,7 @@ int ibmebus_register_driver(struct of_platform_driver *drv)
> }
> EXPORT_SYMBOL(ibmebus_register_driver);
>
> -void ibmebus_unregister_driver(struct of_platform_driver *drv)
> +void ibmebus_unregister_driver(struct platform_driver *drv)
> {
> driver_unregister(&drv->driver);
> }
> @@ -338,11 +338,10 @@ static int ibmebus_bus_bus_match(struct device *dev, struct device_driver *drv)
> static int ibmebus_bus_device_probe(struct device *dev)
> {
> int error = -ENODEV;
> - struct of_platform_driver *drv;
> + struct platform_driver *drv;
> struct platform_device *of_dev;
> - const struct of_device_id *match;
>
> - drv = to_of_platform_driver(dev->driver);
> + drv = to_platform_driver(dev->driver);
> of_dev = to_platform_device(dev);
>
> if (!drv->probe)
> @@ -350,9 +349,8 @@ static int ibmebus_bus_device_probe(struct device *dev)
>
> of_dev_get(of_dev);
>
> - match = of_match_device(drv->driver.of_match_table, dev);
> - if (match)
> - error = drv->probe(of_dev, match);
> + if (of_driver_match_device(dev, dev->driver))
> + error = drv->probe(of_dev);
> if (error)
> of_dev_put(of_dev);
>
> @@ -362,7 +360,7 @@ static int ibmebus_bus_device_probe(struct device *dev)
> static int ibmebus_bus_device_remove(struct device *dev)
> {
> struct platform_device *of_dev = to_platform_device(dev);
> - struct of_platform_driver *drv = to_of_platform_driver(dev->driver);
> + struct platform_driver *drv = to_platform_driver(dev->driver);
>
> if (dev->driver && drv->remove)
> drv->remove(of_dev);
> @@ -372,7 +370,7 @@ static int ibmebus_bus_device_remove(struct device *dev)
> static void ibmebus_bus_device_shutdown(struct device *dev)
> {
> struct platform_device *of_dev = to_platform_device(dev);
> - struct of_platform_driver *drv = to_of_platform_driver(dev->driver);
> + struct platform_driver *drv = to_platform_driver(dev->driver);
>
> if (dev->driver && drv->shutdown)
> drv->shutdown(of_dev);
> @@ -419,7 +417,7 @@ struct device_attribute ibmebus_bus_device_attrs[] = {
> static int ibmebus_bus_legacy_suspend(struct device *dev, pm_message_t mesg)
> {
> struct platform_device *of_dev = to_platform_device(dev);
> - struct of_platform_driver *drv = to_of_platform_driver(dev->driver);
> + struct platform_driver *drv = to_platform_driver(dev->driver);
> int ret = 0;
>
> if (dev->driver && drv->suspend)
> @@ -430,7 +428,7 @@ static int ibmebus_bus_legacy_suspend(struct device *dev, pm_message_t mesg)
> static int ibmebus_bus_legacy_resume(struct device *dev)
> {
> struct platform_device *of_dev = to_platform_device(dev);
> - struct of_platform_driver *drv = to_of_platform_driver(dev->driver);
> + struct platform_driver *drv = to_platform_driver(dev->driver);
> int ret = 0;
>
> if (dev->driver && drv->resume)
> diff --git a/drivers/infiniband/hw/ehca/ehca_main.c b/drivers/infiniband/hw/ehca/ehca_main.c
> index f8a6291..982e3ef 100644
> --- a/drivers/infiniband/hw/ehca/ehca_main.c
> +++ b/drivers/infiniband/hw/ehca/ehca_main.c
> @@ -713,8 +713,7 @@ static struct attribute_group ehca_dev_attr_grp = {
> .attrs = ehca_dev_attrs
> };
>
> -static int ehca_probe(struct platform_device *dev,
> - const struct of_device_id *id)
> +static int ehca_probe(struct platform_device *dev)
> {
> struct ehca_shca *shca;
> const u64 *handle;
> @@ -937,7 +936,7 @@ static struct of_device_id ehca_device_table[] =
> };
> MODULE_DEVICE_TABLE(of, ehca_device_table);
>
> -static struct of_platform_driver ehca_driver = {
> +static struct platform_driver ehca_driver = {
> .probe = ehca_probe,
> .remove = ehca_remove,
> .driver = {
> diff --git a/drivers/net/ethernet/ibm/ehea/ehea_main.c b/drivers/net/ethernet/ibm/ehea/ehea_main.c
> index 328f47c..c6ecf70 100644
> --- a/drivers/net/ethernet/ibm/ehea/ehea_main.c
> +++ b/drivers/net/ethernet/ibm/ehea/ehea_main.c
> @@ -98,8 +98,7 @@ static struct ehea_fw_handle_array ehea_fw_handles;
> static struct ehea_bcmc_reg_array ehea_bcmc_regs;
>
>
> -static int ehea_probe_adapter(struct platform_device *dev,
> - const struct of_device_id *id);
> +static int ehea_probe_adapter(struct platform_device *dev);
>
> static int ehea_remove(struct platform_device *dev);
>
> @@ -112,7 +111,7 @@ static struct of_device_id ehea_device_table[] = {
> };
> MODULE_DEVICE_TABLE(of, ehea_device_table);
>
> -static struct of_platform_driver ehea_driver = {
> +static struct platform_driver ehea_driver = {
> .driver = {
> .name = "ehea",
> .owner = THIS_MODULE,
> @@ -3255,8 +3254,7 @@ static void ehea_remove_device_sysfs(struct platform_device *dev)
> device_remove_file(&dev->dev, &dev_attr_remove_port);
> }
>
> -static int ehea_probe_adapter(struct platform_device *dev,
> - const struct of_device_id *id)
> +static int ehea_probe_adapter(struct platform_device *dev)
> {
> struct ehea_adapter *adapter;
> const u64 *adapter_handle;
> --
> 1.7.10.4
>

2013-04-25 17:36:20

by Benjamin Herrenschmidt

[permalink] [raw]
Subject: Re: [PATCH 1/5] ibmebus: convert of_platform_driver to platform_driver

On Thu, 2013-04-25 at 10:23 -0500, Rob Herring wrote:
> Ben, Can I have your Ack for this? The change is straightforward and
> neither of the 2 drivers used the id parameter that is removed.

Didn't you get my mail about a compile failure caused by this patch ?

Or did you send an update that I missed ?

(Copy of the original email below)

Cheers,
Ben.

----

On Sun, 2013-04-21 at 21:13 -0500, Rob Herring wrote:
> From: Rob Herring <[email protected]>
>
> ibmebus is the last remaining user of of_platform_driver and the
> conversion to a regular platform driver is trivial.

A quick build test leads to:

/home/benh/linux-powerpc-test/arch/powerpc/kernel/ibmebus.c: In function 'ibmebus_bus_device_probe':
/home/benh/linux-powerpc-test/arch/powerpc/kernel/ibmebus.c:344:2: error: implicit declaration of function 'to_platform_driver' [-Werror=implicit-function-declaration]
/home/benh/linux-powerpc-test/arch/powerpc/kernel/ibmebus.c:344:6: error: assignment makes pointer from integer without a cast [-Werror]
/home/benh/linux-powerpc-test/arch/powerpc/kernel/ibmebus.c: In function 'ibmebus_bus_device_remove':
/home/benh/linux-powerpc-test/arch/powerpc/kernel/ibmebus.c:363:32: error: initialization makes pointer from integer without a cast [-Werror]
/home/benh/linux-powerpc-test/arch/powerpc/kernel/ibmebus.c: In function 'ibmebus_bus_device_shutdown':
/home/benh/linux-powerpc-test/arch/powerpc/kernel/ibmebus.c:373:32: error: initialization makes pointer from integer without a cast [-Werror]
/home/benh/linux-powerpc-test/arch/powerpc/kernel/ibmebus.c: In function 'ibmebus_bus_legacy_suspend':
/home/benh/linux-powerpc-test/arch/powerpc/kernel/ibmebus.c:420:32: error: initialization makes pointer from integer without a cast [-Werror]
/home/benh/linux-powerpc-test/arch/powerpc/kernel/ibmebus.c: In function 'ibmebus_bus_legacy_resume':
/home/benh/linux-powerpc-test/arch/powerpc/kernel/ibmebus.c:431:32: error: initialization makes pointer from integer without a cast [-Werror]
cc1: all warnings being treated as errors
make[2]: *** [arch/powerpc/kernel/ibmebus.o] Error 1
make[2]: *** Waiting for unfinished jobs....

Haven't had a chance to look too closely today -EJETLAG :-)

2013-04-25 19:15:02

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH 1/5] ibmebus: convert of_platform_driver to platform_driver

On 04/25/2013 12:35 PM, Benjamin Herrenschmidt wrote:
> On Thu, 2013-04-25 at 10:23 -0500, Rob Herring wrote:
>> Ben, Can I have your Ack for this? The change is straightforward and
>> neither of the 2 drivers used the id parameter that is removed.
>
> Didn't you get my mail about a compile failure caused by this patch ?

No, and I can't find any evidence of a mail in my inbox or in the list
archives.

>
> A quick build test leads to:
>
> /home/benh/linux-powerpc-test/arch/powerpc/kernel/ibmebus.c: In function 'ibmebus_bus_device_probe':
> /home/benh/linux-powerpc-test/arch/powerpc/kernel/ibmebus.c:344:2: error: implicit declaration of function 'to_platform_driver' [-Werror=implicit-function-declaration]
> /home/benh/linux-powerpc-test/arch/powerpc/kernel/ibmebus.c:344:6: error: assignment makes pointer from integer without a cast [-Werror]
> /home/benh/linux-powerpc-test/arch/powerpc/kernel/ibmebus.c: In function 'ibmebus_bus_device_remove':
> /home/benh/linux-powerpc-test/arch/powerpc/kernel/ibmebus.c:363:32: error: initialization makes pointer from integer without a cast [-Werror]
> /home/benh/linux-powerpc-test/arch/powerpc/kernel/ibmebus.c: In function 'ibmebus_bus_device_shutdown':
> /home/benh/linux-powerpc-test/arch/powerpc/kernel/ibmebus.c:373:32: error: initialization makes pointer from integer without a cast [-Werror]
> /home/benh/linux-powerpc-test/arch/powerpc/kernel/ibmebus.c: In function 'ibmebus_bus_legacy_suspend':
> /home/benh/linux-powerpc-test/arch/powerpc/kernel/ibmebus.c:420:32: error: initialization makes pointer from integer without a cast [-Werror]
> /home/benh/linux-powerpc-test/arch/powerpc/kernel/ibmebus.c: In function 'ibmebus_bus_legacy_resume':
> /home/benh/linux-powerpc-test/arch/powerpc/kernel/ibmebus.c:431:32: error: initialization makes pointer from integer without a cast [-Werror]
> cc1: all warnings being treated as errors
> make[2]: *** [arch/powerpc/kernel/ibmebus.o] Error 1
> make[2]: *** Waiting for unfinished jobs....
>
> Haven't had a chance to look too closely today -EJETLAG :-)

You need patch 2 of this series to fix this:

driver core: move to_platform_driver to platform_device.h

which as Arnd pointed out needs to come first. I've fixed that in my
tree, but I don't think it warrants another post.

Rob

2013-04-25 20:13:18

by Benjamin Herrenschmidt

[permalink] [raw]
Subject: Re: [PATCH 1/5] ibmebus: convert of_platform_driver to platform_driver

On Thu, 2013-04-25 at 14:14 -0500, Rob Herring wrote:
> On 04/25/2013 12:35 PM, Benjamin Herrenschmidt wrote:
> > On Thu, 2013-04-25 at 10:23 -0500, Rob Herring wrote:
> >> Ben, Can I have your Ack for this? The change is straightforward and
> >> neither of the 2 drivers used the id parameter that is removed.
> >
> > Didn't you get my mail about a compile failure caused by this patch ?
>
> No, and I can't find any evidence of a mail in my inbox or in the list
> archives.

Odd...

> >
.../...

> You need patch 2 of this series to fix this:
>
> driver core: move to_platform_driver to platform_device.h
>
> which as Arnd pointed out needs to come first. I've fixed that in my
> tree, but I don't think it warrants another post.

Can I pull you tree from somewhere to test ?

Cheers,
Ben.

> Rob
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html

2013-04-25 20:45:11

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH 1/5] ibmebus: convert of_platform_driver to platform_driver

On 04/25/2013 03:12 PM, Benjamin Herrenschmidt wrote:
> On Thu, 2013-04-25 at 14:14 -0500, Rob Herring wrote:
>> On 04/25/2013 12:35 PM, Benjamin Herrenschmidt wrote:

[...]

>> You need patch 2 of this series to fix this:
>>
>> driver core: move to_platform_driver to platform_device.h
>>
>> which as Arnd pointed out needs to come first. I've fixed that in my
>> tree, but I don't think it warrants another post.
>
> Can I pull you tree from somewhere to test ?

Here you go:

git://sources.calxeda.com/kernel/linux.git of-platform-removal

Rob

2013-05-22 12:26:45

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH 1/5] ibmebus: convert of_platform_driver to platform_driver

On Thu, Apr 25, 2013 at 3:45 PM, Rob Herring <[email protected]> wrote:
> On 04/25/2013 03:12 PM, Benjamin Herrenschmidt wrote:
>> On Thu, 2013-04-25 at 14:14 -0500, Rob Herring wrote:
>>> On 04/25/2013 12:35 PM, Benjamin Herrenschmidt wrote:
>
> [...]
>
>>> You need patch 2 of this series to fix this:
>>>
>>> driver core: move to_platform_driver to platform_device.h
>>>
>>> which as Arnd pointed out needs to come first. I've fixed that in my
>>> tree, but I don't think it warrants another post.
>>
>> Can I pull you tree from somewhere to test ?
>
> Here you go:
>
> git://sources.calxeda.com/kernel/linux.git of-platform-removal

Ben,

Did you have a chance to test this? I want to get this into -next.

Rob

2013-05-22 12:32:48

by Benjamin Herrenschmidt

[permalink] [raw]
Subject: Re: [PATCH 1/5] ibmebus: convert of_platform_driver to platform_driver

On Wed, 2013-05-22 at 07:26 -0500, Rob Herring wrote:
> Did you have a chance to test this? I want to get this into -next.

Ah sorry, skipped out of my mind, I'll get to it asap...

Cheers,
Ben.

2013-06-12 05:30:27

by Benjamin Herrenschmidt

[permalink] [raw]
Subject: Re: [PATCH 1/5] ibmebus: convert of_platform_driver to platform_driver

On Wed, 2013-05-22 at 07:26 -0500, Rob Herring wrote:
> > git://sources.calxeda.com/kernel/linux.git of-platform-removal
>
> Ben,
>
> Did you have a chance to test this? I want to get this into -next.

I tested the one in for-next (sorry for the high latency). Works fine.

Ack.

Cheers,
Ben.

2013-06-12 11:40:50

by Grant Likely

[permalink] [raw]
Subject: Re: [PATCH 1/5] ibmebus: convert of_platform_driver to platform_driver

On Wed, 12 Jun 2013 15:29:38 +1000, Benjamin Herrenschmidt <[email protected]> wrote:
> On Wed, 2013-05-22 at 07:26 -0500, Rob Herring wrote:
> > > git://sources.calxeda.com/kernel/linux.git of-platform-removal
> >
> > Ben,
> >
> > Did you have a chance to test this? I want to get this into -next.
>
> I tested the one in for-next (sorry for the high latency). Works fine.
>
> Ack.

Added acks and applied to my for-next branch. Thanks!

g.