All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC/PATCH 00/32] usb: refactor gadget->dev registration
@ 2013-01-24 15:45 ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin, gregkh, dahlmann.thomas, nicolas.ferre,
	leoli, eric.y.miao, linux, haojian.zhuang, ben-linux, kgene.kim,
	kuninori.morimoto.gx, yoshihiro.shimoda.uh,
	Linux OMAP Mailing List, linux-geode, linux-arm-kernel,
	linuxppc-dev, linux-samsung-soc, Felipe Balbi

Hi folks,

Please comment on this series as I need help testing it
on all UDC controllers so we can send it for v3.10 merge
window.

NOTE: I will queue this series for v3.10 merge window, so
make sure to test and comment.

cheers

Felipe Balbi (32):
  usb: gadget: udc-core: allow udc class register gadget device
  usb: dwc3: gadget: let udc-core manage gadget->dev
  usb: musb: gadget: let udc-core manage gadget-dev
  usb: gadget: omap_udc: let udc-core manage gadget->dev
  usb: gadget: amd5536udc: let udc-core manage gadget->dev
  usb: gadget: at91_udc: let udc-core manage gadget->dev
  usb: gadget: atmel_usba_udc: let udc-core manage gadget->dev
  usb: gadget: bcm63xx_udc: let udc-core manage gadget->dev
  usb: gadget: dummy_hcd: let udc-core manage gadget->dev
  usb: gadget: fsl_qe_udc: let udc-core manage gadget->dev
  usb: gadget: fsl_udc_core: let udc-core manage gadget->dev
  usb: gadget: fusb300_udc: let udc-core manage gadget->dev
  usb: gadget: goku_udc: let udc-core manage gadget->dev
  usb: gadget: imx_udc: let udc-core manage gadget->dev
  usb: gadget: lpc32xx_udc: let udc-core manage gadget->dev
  usb: gadget: m66592-udc: let udc-core manage gadget->dev
  usb: gadget: mv_u3d_core: let udc-core manage gadget->dev
  usb: gadget: mv_u3d_core: fix a compile warning
  usb: gadget: mv_udc_core: let udc-core manage gadget->dev
  usb: gadget: net2272: let udc-core manage gadget->dev
  usb: gadget: net2280: let udc-core manage gadget->dev
  usb: gadget: pch_udc: let udc-core manage gadget->dev
  usb: gadget: r8a66597-udc: let udc-core manage gadget->dev
  usb: gadget: s3c-hsotg: let udc-core manage gadget->dev
  usb: gadget: s3c-hsudc: let udc-core manage gadget->dev
  usb: gadget: s3c2410_udc: let udc-core manage gadget->dev
  usb: renesas_usbhs: gadget: let udc-core manage gadget->dev
  usb: gadget: pxa25x_udc: let udc-core manage gadget->dev
  usb: gadget: pxa27x_udc: let udc-core manage gadget->dev
  usb: chipidea: register debugging syfs on our device
  usb: chipidea: let udc-core manage gadget->dev
  usb: gadget: drop now unnecessary flag

 drivers/usb/chipidea/udc.c             | 18 ++++--------------
 drivers/usb/dwc3/gadget.c              | 16 +---------------
 drivers/usb/gadget/amd5536udc.c        |  8 --------
 drivers/usb/gadget/at91_udc.c          | 12 +-----------
 drivers/usb/gadget/atmel_usba_udc.c    | 12 ------------
 drivers/usb/gadget/bcm63xx_udc.c       |  6 ------
 drivers/usb/gadget/dummy_hcd.c         |  9 ---------
 drivers/usb/gadget/fsl_qe_udc.c        | 14 +-------------
 drivers/usb/gadget/fsl_udc_core.c      |  8 +-------
 drivers/usb/gadget/fusb300_udc.c       | 13 -------------
 drivers/usb/gadget/goku_udc.c          |  9 ---------
 drivers/usb/gadget/goku_udc.h          |  3 +--
 drivers/usb/gadget/imx_udc.c           | 12 ------------
 drivers/usb/gadget/lpc32xx_udc.c       | 10 ----------
 drivers/usb/gadget/m66592-udc.c        | 12 ------------
 drivers/usb/gadget/mv_u3d_core.c       | 11 +----------
 drivers/usb/gadget/mv_udc_core.c       | 11 +----------
 drivers/usb/gadget/net2272.c           |  9 +--------
 drivers/usb/gadget/net2280.c           |  4 ----
 drivers/usb/gadget/omap_udc.c          | 11 +++--------
 drivers/usb/gadget/pch_udc.c           |  9 ---------
 drivers/usb/gadget/pxa25x_udc.c        |  9 ---------
 drivers/usb/gadget/pxa27x_udc.c        |  8 --------
 drivers/usb/gadget/r8a66597-udc.c      | 11 +----------
 drivers/usb/gadget/s3c-hsotg.c         | 13 -------------
 drivers/usb/gadget/s3c-hsudc.c         | 10 ----------
 drivers/usb/gadget/s3c2410_udc.c       |  9 ---------
 drivers/usb/gadget/udc-core.c          | 20 ++++++++++++++++----
 drivers/usb/musb/musb_gadget.c         |  9 ---------
 drivers/usb/renesas_usbhs/mod_gadget.c | 10 +---------
 30 files changed, 33 insertions(+), 283 deletions(-)

-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 00/32] usb: refactor gadget->dev registration
@ 2013-01-24 15:45 ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

Hi folks,

Please comment on this series as I need help testing it
on all UDC controllers so we can send it for v3.10 merge
window.

NOTE: I will queue this series for v3.10 merge window, so
make sure to test and comment.

cheers

Felipe Balbi (32):
  usb: gadget: udc-core: allow udc class register gadget device
  usb: dwc3: gadget: let udc-core manage gadget->dev
  usb: musb: gadget: let udc-core manage gadget-dev
  usb: gadget: omap_udc: let udc-core manage gadget->dev
  usb: gadget: amd5536udc: let udc-core manage gadget->dev
  usb: gadget: at91_udc: let udc-core manage gadget->dev
  usb: gadget: atmel_usba_udc: let udc-core manage gadget->dev
  usb: gadget: bcm63xx_udc: let udc-core manage gadget->dev
  usb: gadget: dummy_hcd: let udc-core manage gadget->dev
  usb: gadget: fsl_qe_udc: let udc-core manage gadget->dev
  usb: gadget: fsl_udc_core: let udc-core manage gadget->dev
  usb: gadget: fusb300_udc: let udc-core manage gadget->dev
  usb: gadget: goku_udc: let udc-core manage gadget->dev
  usb: gadget: imx_udc: let udc-core manage gadget->dev
  usb: gadget: lpc32xx_udc: let udc-core manage gadget->dev
  usb: gadget: m66592-udc: let udc-core manage gadget->dev
  usb: gadget: mv_u3d_core: let udc-core manage gadget->dev
  usb: gadget: mv_u3d_core: fix a compile warning
  usb: gadget: mv_udc_core: let udc-core manage gadget->dev
  usb: gadget: net2272: let udc-core manage gadget->dev
  usb: gadget: net2280: let udc-core manage gadget->dev
  usb: gadget: pch_udc: let udc-core manage gadget->dev
  usb: gadget: r8a66597-udc: let udc-core manage gadget->dev
  usb: gadget: s3c-hsotg: let udc-core manage gadget->dev
  usb: gadget: s3c-hsudc: let udc-core manage gadget->dev
  usb: gadget: s3c2410_udc: let udc-core manage gadget->dev
  usb: renesas_usbhs: gadget: let udc-core manage gadget->dev
  usb: gadget: pxa25x_udc: let udc-core manage gadget->dev
  usb: gadget: pxa27x_udc: let udc-core manage gadget->dev
  usb: chipidea: register debugging syfs on our device
  usb: chipidea: let udc-core manage gadget->dev
  usb: gadget: drop now unnecessary flag

 drivers/usb/chipidea/udc.c             | 18 ++++--------------
 drivers/usb/dwc3/gadget.c              | 16 +---------------
 drivers/usb/gadget/amd5536udc.c        |  8 --------
 drivers/usb/gadget/at91_udc.c          | 12 +-----------
 drivers/usb/gadget/atmel_usba_udc.c    | 12 ------------
 drivers/usb/gadget/bcm63xx_udc.c       |  6 ------
 drivers/usb/gadget/dummy_hcd.c         |  9 ---------
 drivers/usb/gadget/fsl_qe_udc.c        | 14 +-------------
 drivers/usb/gadget/fsl_udc_core.c      |  8 +-------
 drivers/usb/gadget/fusb300_udc.c       | 13 -------------
 drivers/usb/gadget/goku_udc.c          |  9 ---------
 drivers/usb/gadget/goku_udc.h          |  3 +--
 drivers/usb/gadget/imx_udc.c           | 12 ------------
 drivers/usb/gadget/lpc32xx_udc.c       | 10 ----------
 drivers/usb/gadget/m66592-udc.c        | 12 ------------
 drivers/usb/gadget/mv_u3d_core.c       | 11 +----------
 drivers/usb/gadget/mv_udc_core.c       | 11 +----------
 drivers/usb/gadget/net2272.c           |  9 +--------
 drivers/usb/gadget/net2280.c           |  4 ----
 drivers/usb/gadget/omap_udc.c          | 11 +++--------
 drivers/usb/gadget/pch_udc.c           |  9 ---------
 drivers/usb/gadget/pxa25x_udc.c        |  9 ---------
 drivers/usb/gadget/pxa27x_udc.c        |  8 --------
 drivers/usb/gadget/r8a66597-udc.c      | 11 +----------
 drivers/usb/gadget/s3c-hsotg.c         | 13 -------------
 drivers/usb/gadget/s3c-hsudc.c         | 10 ----------
 drivers/usb/gadget/s3c2410_udc.c       |  9 ---------
 drivers/usb/gadget/udc-core.c          | 20 ++++++++++++++++----
 drivers/usb/musb/musb_gadget.c         |  9 ---------
 drivers/usb/renesas_usbhs/mod_gadget.c | 10 +---------
 30 files changed, 33 insertions(+), 283 deletions(-)

-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 00/32] usb: refactor gadget->dev registration
@ 2013-01-24 15:45 ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: linux-arm-kernel

Hi folks,

Please comment on this series as I need help testing it
on all UDC controllers so we can send it for v3.10 merge
window.

NOTE: I will queue this series for v3.10 merge window, so
make sure to test and comment.

cheers

Felipe Balbi (32):
  usb: gadget: udc-core: allow udc class register gadget device
  usb: dwc3: gadget: let udc-core manage gadget->dev
  usb: musb: gadget: let udc-core manage gadget-dev
  usb: gadget: omap_udc: let udc-core manage gadget->dev
  usb: gadget: amd5536udc: let udc-core manage gadget->dev
  usb: gadget: at91_udc: let udc-core manage gadget->dev
  usb: gadget: atmel_usba_udc: let udc-core manage gadget->dev
  usb: gadget: bcm63xx_udc: let udc-core manage gadget->dev
  usb: gadget: dummy_hcd: let udc-core manage gadget->dev
  usb: gadget: fsl_qe_udc: let udc-core manage gadget->dev
  usb: gadget: fsl_udc_core: let udc-core manage gadget->dev
  usb: gadget: fusb300_udc: let udc-core manage gadget->dev
  usb: gadget: goku_udc: let udc-core manage gadget->dev
  usb: gadget: imx_udc: let udc-core manage gadget->dev
  usb: gadget: lpc32xx_udc: let udc-core manage gadget->dev
  usb: gadget: m66592-udc: let udc-core manage gadget->dev
  usb: gadget: mv_u3d_core: let udc-core manage gadget->dev
  usb: gadget: mv_u3d_core: fix a compile warning
  usb: gadget: mv_udc_core: let udc-core manage gadget->dev
  usb: gadget: net2272: let udc-core manage gadget->dev
  usb: gadget: net2280: let udc-core manage gadget->dev
  usb: gadget: pch_udc: let udc-core manage gadget->dev
  usb: gadget: r8a66597-udc: let udc-core manage gadget->dev
  usb: gadget: s3c-hsotg: let udc-core manage gadget->dev
  usb: gadget: s3c-hsudc: let udc-core manage gadget->dev
  usb: gadget: s3c2410_udc: let udc-core manage gadget->dev
  usb: renesas_usbhs: gadget: let udc-core manage gadget->dev
  usb: gadget: pxa25x_udc: let udc-core manage gadget->dev
  usb: gadget: pxa27x_udc: let udc-core manage gadget->dev
  usb: chipidea: register debugging syfs on our device
  usb: chipidea: let udc-core manage gadget->dev
  usb: gadget: drop now unnecessary flag

 drivers/usb/chipidea/udc.c             | 18 ++++--------------
 drivers/usb/dwc3/gadget.c              | 16 +---------------
 drivers/usb/gadget/amd5536udc.c        |  8 --------
 drivers/usb/gadget/at91_udc.c          | 12 +-----------
 drivers/usb/gadget/atmel_usba_udc.c    | 12 ------------
 drivers/usb/gadget/bcm63xx_udc.c       |  6 ------
 drivers/usb/gadget/dummy_hcd.c         |  9 ---------
 drivers/usb/gadget/fsl_qe_udc.c        | 14 +-------------
 drivers/usb/gadget/fsl_udc_core.c      |  8 +-------
 drivers/usb/gadget/fusb300_udc.c       | 13 -------------
 drivers/usb/gadget/goku_udc.c          |  9 ---------
 drivers/usb/gadget/goku_udc.h          |  3 +--
 drivers/usb/gadget/imx_udc.c           | 12 ------------
 drivers/usb/gadget/lpc32xx_udc.c       | 10 ----------
 drivers/usb/gadget/m66592-udc.c        | 12 ------------
 drivers/usb/gadget/mv_u3d_core.c       | 11 +----------
 drivers/usb/gadget/mv_udc_core.c       | 11 +----------
 drivers/usb/gadget/net2272.c           |  9 +--------
 drivers/usb/gadget/net2280.c           |  4 ----
 drivers/usb/gadget/omap_udc.c          | 11 +++--------
 drivers/usb/gadget/pch_udc.c           |  9 ---------
 drivers/usb/gadget/pxa25x_udc.c        |  9 ---------
 drivers/usb/gadget/pxa27x_udc.c        |  8 --------
 drivers/usb/gadget/r8a66597-udc.c      | 11 +----------
 drivers/usb/gadget/s3c-hsotg.c         | 13 -------------
 drivers/usb/gadget/s3c-hsudc.c         | 10 ----------
 drivers/usb/gadget/s3c2410_udc.c       |  9 ---------
 drivers/usb/gadget/udc-core.c          | 20 ++++++++++++++++----
 drivers/usb/musb/musb_gadget.c         |  9 ---------
 drivers/usb/renesas_usbhs/mod_gadget.c | 10 +---------
 30 files changed, 33 insertions(+), 283 deletions(-)

-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 01/32] usb: gadget: udc-core: allow udc class register gadget device
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:45   ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin, gregkh, dahlmann.thomas, nicolas.ferre,
	leoli, eric.y.miao, linux, haojian.zhuang, ben-linux, kgene.kim,
	kuninori.morimoto.gx, yoshihiro.shimoda.uh,
	Linux OMAP Mailing List, linux-geode, linux-arm-kernel,
	linuxppc-dev, linux-samsung-soc, Felipe Balbi

Currently all UDC drivers are calling
device_register() before calling
usb_add_gadget_udc(). In order to avoid
code duplication, we can allow udc-core.c
register that device.

However that would become a really large patch,
so to cope with the meanwhile and allow us
to write bite-sized patches, we're adding
a flag which will be set by UDC driver once
it removes the code for registering the
gadget device.

Once all are converted, the new flag will
be removed.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/udc-core.c | 23 +++++++++++++++++++----
 include/linux/usb/gadget.h    |  4 ++++
 2 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/drivers/usb/gadget/udc-core.c b/drivers/usb/gadget/udc-core.c
index 2a9cd36..9195054 100644
--- a/drivers/usb/gadget/udc-core.c
+++ b/drivers/usb/gadget/udc-core.c
@@ -173,6 +173,14 @@ int usb_add_gadget_udc(struct device *parent, struct usb_gadget *gadget)
 	if (!udc)
 		goto err1;
 
+	if (gadget->register_my_device) {
+		dev_set_name(&gadget->dev, "gadget");
+
+		ret = device_register(&gadget->dev);
+		if (ret)
+			goto err2;
+	}
+
 	device_initialize(&udc->dev);
 	udc->dev.release = usb_udc_release;
 	udc->dev.class = udc_class;
@@ -180,7 +188,7 @@ int usb_add_gadget_udc(struct device *parent, struct usb_gadget *gadget)
 	udc->dev.parent = parent;
 	ret = dev_set_name(&udc->dev, "%s", kobject_name(&parent->kobj));
 	if (ret)
-		goto err2;
+		goto err3;
 
 	udc->gadget = gadget;
 
@@ -189,18 +197,22 @@ int usb_add_gadget_udc(struct device *parent, struct usb_gadget *gadget)
 
 	ret = device_add(&udc->dev);
 	if (ret)
-		goto err3;
+		goto err4;
 
 	mutex_unlock(&udc_lock);
 
 	return 0;
-err3:
+
+err4:
 	list_del(&udc->list);
 	mutex_unlock(&udc_lock);
 
-err2:
+err3:
 	put_device(&udc->dev);
 
+err2:
+	if (gadget->register_my_device)
+		put_device(&gadget->dev);
 err1:
 	return ret;
 }
@@ -254,6 +266,9 @@ found:
 
 	kobject_uevent(&udc->dev.kobj, KOBJ_REMOVE);
 	device_unregister(&udc->dev);
+
+	if (gadget->register_my_device)
+		device_unregister(&gadget->dev);
 }
 EXPORT_SYMBOL_GPL(usb_del_gadget_udc);
 
diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
index 2e297e8..fcd9ef8 100644
--- a/include/linux/usb/gadget.h
+++ b/include/linux/usb/gadget.h
@@ -494,6 +494,9 @@ struct usb_gadget_ops {
  *	only supports HNP on a different root port.
  * @b_hnp_enable: OTG device feature flag, indicating that the A-Host
  *	enabled HNP support.
+ * @register_my_device: Flag telling udc-core that UDC driver didn't
+ *	register the gadget device to the driver model. Temporary until
+ *	all UDC drivers are fixed up properly.
  * @name: Identifies the controller hardware type.  Used in diagnostics
  *	and sometimes configuration.
  * @dev: Driver model state for this abstract device.
@@ -531,6 +534,7 @@ struct usb_gadget {
 	unsigned			b_hnp_enable:1;
 	unsigned			a_hnp_support:1;
 	unsigned			a_alt_hnp_support:1;
+	unsigned			register_my_device:1;
 	const char			*name;
 	struct device			dev;
 	unsigned			out_epnum;
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 01/32] usb: gadget: udc-core: allow udc class register gadget device
@ 2013-01-24 15:45   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

Currently all UDC drivers are calling
device_register() before calling
usb_add_gadget_udc(). In order to avoid
code duplication, we can allow udc-core.c
register that device.

However that would become a really large patch,
so to cope with the meanwhile and allow us
to write bite-sized patches, we're adding
a flag which will be set by UDC driver once
it removes the code for registering the
gadget device.

Once all are converted, the new flag will
be removed.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/udc-core.c | 23 +++++++++++++++++++----
 include/linux/usb/gadget.h    |  4 ++++
 2 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/drivers/usb/gadget/udc-core.c b/drivers/usb/gadget/udc-core.c
index 2a9cd36..9195054 100644
--- a/drivers/usb/gadget/udc-core.c
+++ b/drivers/usb/gadget/udc-core.c
@@ -173,6 +173,14 @@ int usb_add_gadget_udc(struct device *parent, struct usb_gadget *gadget)
 	if (!udc)
 		goto err1;
 
+	if (gadget->register_my_device) {
+		dev_set_name(&gadget->dev, "gadget");
+
+		ret = device_register(&gadget->dev);
+		if (ret)
+			goto err2;
+	}
+
 	device_initialize(&udc->dev);
 	udc->dev.release = usb_udc_release;
 	udc->dev.class = udc_class;
@@ -180,7 +188,7 @@ int usb_add_gadget_udc(struct device *parent, struct usb_gadget *gadget)
 	udc->dev.parent = parent;
 	ret = dev_set_name(&udc->dev, "%s", kobject_name(&parent->kobj));
 	if (ret)
-		goto err2;
+		goto err3;
 
 	udc->gadget = gadget;
 
@@ -189,18 +197,22 @@ int usb_add_gadget_udc(struct device *parent, struct usb_gadget *gadget)
 
 	ret = device_add(&udc->dev);
 	if (ret)
-		goto err3;
+		goto err4;
 
 	mutex_unlock(&udc_lock);
 
 	return 0;
-err3:
+
+err4:
 	list_del(&udc->list);
 	mutex_unlock(&udc_lock);
 
-err2:
+err3:
 	put_device(&udc->dev);
 
+err2:
+	if (gadget->register_my_device)
+		put_device(&gadget->dev);
 err1:
 	return ret;
 }
@@ -254,6 +266,9 @@ found:
 
 	kobject_uevent(&udc->dev.kobj, KOBJ_REMOVE);
 	device_unregister(&udc->dev);
+
+	if (gadget->register_my_device)
+		device_unregister(&gadget->dev);
 }
 EXPORT_SYMBOL_GPL(usb_del_gadget_udc);
 
diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
index 2e297e8..fcd9ef8 100644
--- a/include/linux/usb/gadget.h
+++ b/include/linux/usb/gadget.h
@@ -494,6 +494,9 @@ struct usb_gadget_ops {
  *	only supports HNP on a different root port.
  * @b_hnp_enable: OTG device feature flag, indicating that the A-Host
  *	enabled HNP support.
+ * @register_my_device: Flag telling udc-core that UDC driver didn't
+ *	register the gadget device to the driver model. Temporary until
+ *	all UDC drivers are fixed up properly.
  * @name: Identifies the controller hardware type.  Used in diagnostics
  *	and sometimes configuration.
  * @dev: Driver model state for this abstract device.
@@ -531,6 +534,7 @@ struct usb_gadget {
 	unsigned			b_hnp_enable:1;
 	unsigned			a_hnp_support:1;
 	unsigned			a_alt_hnp_support:1;
+	unsigned			register_my_device:1;
 	const char			*name;
 	struct device			dev;
 	unsigned			out_epnum;
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 01/32] usb: gadget: udc-core: allow udc class register gadget device
@ 2013-01-24 15:45   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: linux-arm-kernel

Currently all UDC drivers are calling
device_register() before calling
usb_add_gadget_udc(). In order to avoid
code duplication, we can allow udc-core.c
register that device.

However that would become a really large patch,
so to cope with the meanwhile and allow us
to write bite-sized patches, we're adding
a flag which will be set by UDC driver once
it removes the code for registering the
gadget device.

Once all are converted, the new flag will
be removed.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/udc-core.c | 23 +++++++++++++++++++----
 include/linux/usb/gadget.h    |  4 ++++
 2 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/drivers/usb/gadget/udc-core.c b/drivers/usb/gadget/udc-core.c
index 2a9cd36..9195054 100644
--- a/drivers/usb/gadget/udc-core.c
+++ b/drivers/usb/gadget/udc-core.c
@@ -173,6 +173,14 @@ int usb_add_gadget_udc(struct device *parent, struct usb_gadget *gadget)
 	if (!udc)
 		goto err1;
 
+	if (gadget->register_my_device) {
+		dev_set_name(&gadget->dev, "gadget");
+
+		ret = device_register(&gadget->dev);
+		if (ret)
+			goto err2;
+	}
+
 	device_initialize(&udc->dev);
 	udc->dev.release = usb_udc_release;
 	udc->dev.class = udc_class;
@@ -180,7 +188,7 @@ int usb_add_gadget_udc(struct device *parent, struct usb_gadget *gadget)
 	udc->dev.parent = parent;
 	ret = dev_set_name(&udc->dev, "%s", kobject_name(&parent->kobj));
 	if (ret)
-		goto err2;
+		goto err3;
 
 	udc->gadget = gadget;
 
@@ -189,18 +197,22 @@ int usb_add_gadget_udc(struct device *parent, struct usb_gadget *gadget)
 
 	ret = device_add(&udc->dev);
 	if (ret)
-		goto err3;
+		goto err4;
 
 	mutex_unlock(&udc_lock);
 
 	return 0;
-err3:
+
+err4:
 	list_del(&udc->list);
 	mutex_unlock(&udc_lock);
 
-err2:
+err3:
 	put_device(&udc->dev);
 
+err2:
+	if (gadget->register_my_device)
+		put_device(&gadget->dev);
 err1:
 	return ret;
 }
@@ -254,6 +266,9 @@ found:
 
 	kobject_uevent(&udc->dev.kobj, KOBJ_REMOVE);
 	device_unregister(&udc->dev);
+
+	if (gadget->register_my_device)
+		device_unregister(&gadget->dev);
 }
 EXPORT_SYMBOL_GPL(usb_del_gadget_udc);
 
diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
index 2e297e8..fcd9ef8 100644
--- a/include/linux/usb/gadget.h
+++ b/include/linux/usb/gadget.h
@@ -494,6 +494,9 @@ struct usb_gadget_ops {
  *	only supports HNP on a different root port.
  * @b_hnp_enable: OTG device feature flag, indicating that the A-Host
  *	enabled HNP support.
+ * @register_my_device: Flag telling udc-core that UDC driver didn't
+ *	register the gadget device to the driver model. Temporary until
+ *	all UDC drivers are fixed up properly.
  * @name: Identifies the controller hardware type.  Used in diagnostics
  *	and sometimes configuration.
  * @dev: Driver model state for this abstract device.
@@ -531,6 +534,7 @@ struct usb_gadget {
 	unsigned			b_hnp_enable:1;
 	unsigned			a_hnp_support:1;
 	unsigned			a_alt_hnp_support:1;
+	unsigned			register_my_device:1;
 	const char			*name;
 	struct device			dev;
 	unsigned			out_epnum;
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 02/32] usb: dwc3: gadget: let udc-core manage gadget->dev
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:45   ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin, gregkh, dahlmann.thomas, nicolas.ferre,
	leoli, eric.y.miao, linux, haojian.zhuang, ben-linux, kgene.kim,
	kuninori.morimoto.gx, yoshihiro.shimoda.uh,
	Linux OMAP Mailing List, linux-geode, linux-arm-kernel,
	linuxppc-dev, linux-samsung-soc, Felipe Balbi

We don't need to register that device ourselves
if we simply set gadget->register_my_device.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/dwc3/gadget.c | 17 ++---------------
 1 file changed, 2 insertions(+), 15 deletions(-)

diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 2e43b33..7002cf6 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -2412,8 +2412,6 @@ int dwc3_gadget_init(struct dwc3 *dwc)
 		goto err3;
 	}
 
-	dev_set_name(&dwc->gadget.dev, "gadget");
-
 	dwc->gadget.ops			= &dwc3_gadget_ops;
 	dwc->gadget.max_speed		= USB_SPEED_SUPER;
 	dwc->gadget.speed		= USB_SPEED_UNKNOWN;
@@ -2425,6 +2423,7 @@ int dwc3_gadget_init(struct dwc3 *dwc)
 	dwc->gadget.dev.dma_parms	= dwc->dev->dma_parms;
 	dwc->gadget.dev.dma_mask	= dwc->dev->dma_mask;
 	dwc->gadget.dev.release		= dwc3_gadget_release;
+	dwc->gadget.register_my_device	= true;
 	dwc->gadget.name		= "dwc3-gadget";
 
 	/*
@@ -2480,24 +2479,14 @@ int dwc3_gadget_init(struct dwc3 *dwc)
 		dwc3_gadget_usb3_phy_suspend(dwc, false);
 	}
 
-	ret = device_register(&dwc->gadget.dev);
-	if (ret) {
-		dev_err(dwc->dev, "failed to register gadget device\n");
-		put_device(&dwc->gadget.dev);
-		goto err6;
-	}
-
 	ret = usb_add_gadget_udc(dwc->dev, &dwc->gadget);
 	if (ret) {
 		dev_err(dwc->dev, "failed to register udc\n");
-		goto err7;
+		goto err6;
 	}
 
 	return 0;
 
-err7:
-	device_unregister(&dwc->gadget.dev);
-
 err6:
 	dwc3_writel(dwc->regs, DWC3_DEVTEN, 0x00);
 	free_irq(irq, dwc);
@@ -2546,6 +2535,4 @@ void dwc3_gadget_exit(struct dwc3 *dwc)
 
 	dma_free_coherent(dwc->dev, sizeof(*dwc->ctrl_req),
 			dwc->ctrl_req, dwc->ctrl_req_addr);
-
-	device_unregister(&dwc->gadget.dev);
 }
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 02/32] usb: dwc3: gadget: let udc-core manage gadget->dev
@ 2013-01-24 15:45   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

We don't need to register that device ourselves
if we simply set gadget->register_my_device.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/dwc3/gadget.c | 17 ++---------------
 1 file changed, 2 insertions(+), 15 deletions(-)

diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 2e43b33..7002cf6 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -2412,8 +2412,6 @@ int dwc3_gadget_init(struct dwc3 *dwc)
 		goto err3;
 	}
 
-	dev_set_name(&dwc->gadget.dev, "gadget");
-
 	dwc->gadget.ops			= &dwc3_gadget_ops;
 	dwc->gadget.max_speed		= USB_SPEED_SUPER;
 	dwc->gadget.speed		= USB_SPEED_UNKNOWN;
@@ -2425,6 +2423,7 @@ int dwc3_gadget_init(struct dwc3 *dwc)
 	dwc->gadget.dev.dma_parms	= dwc->dev->dma_parms;
 	dwc->gadget.dev.dma_mask	= dwc->dev->dma_mask;
 	dwc->gadget.dev.release		= dwc3_gadget_release;
+	dwc->gadget.register_my_device	= true;
 	dwc->gadget.name		= "dwc3-gadget";
 
 	/*
@@ -2480,24 +2479,14 @@ int dwc3_gadget_init(struct dwc3 *dwc)
 		dwc3_gadget_usb3_phy_suspend(dwc, false);
 	}
 
-	ret = device_register(&dwc->gadget.dev);
-	if (ret) {
-		dev_err(dwc->dev, "failed to register gadget device\n");
-		put_device(&dwc->gadget.dev);
-		goto err6;
-	}
-
 	ret = usb_add_gadget_udc(dwc->dev, &dwc->gadget);
 	if (ret) {
 		dev_err(dwc->dev, "failed to register udc\n");
-		goto err7;
+		goto err6;
 	}
 
 	return 0;
 
-err7:
-	device_unregister(&dwc->gadget.dev);
-
 err6:
 	dwc3_writel(dwc->regs, DWC3_DEVTEN, 0x00);
 	free_irq(irq, dwc);
@@ -2546,6 +2535,4 @@ void dwc3_gadget_exit(struct dwc3 *dwc)
 
 	dma_free_coherent(dwc->dev, sizeof(*dwc->ctrl_req),
 			dwc->ctrl_req, dwc->ctrl_req_addr);
-
-	device_unregister(&dwc->gadget.dev);
 }
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 02/32] usb: dwc3: gadget: let udc-core manage gadget->dev
@ 2013-01-24 15:45   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: linux-arm-kernel

We don't need to register that device ourselves
if we simply set gadget->register_my_device.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/dwc3/gadget.c | 17 ++---------------
 1 file changed, 2 insertions(+), 15 deletions(-)

diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 2e43b33..7002cf6 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -2412,8 +2412,6 @@ int dwc3_gadget_init(struct dwc3 *dwc)
 		goto err3;
 	}
 
-	dev_set_name(&dwc->gadget.dev, "gadget");
-
 	dwc->gadget.ops			= &dwc3_gadget_ops;
 	dwc->gadget.max_speed		= USB_SPEED_SUPER;
 	dwc->gadget.speed		= USB_SPEED_UNKNOWN;
@@ -2425,6 +2423,7 @@ int dwc3_gadget_init(struct dwc3 *dwc)
 	dwc->gadget.dev.dma_parms	= dwc->dev->dma_parms;
 	dwc->gadget.dev.dma_mask	= dwc->dev->dma_mask;
 	dwc->gadget.dev.release		= dwc3_gadget_release;
+	dwc->gadget.register_my_device	= true;
 	dwc->gadget.name		= "dwc3-gadget";
 
 	/*
@@ -2480,24 +2479,14 @@ int dwc3_gadget_init(struct dwc3 *dwc)
 		dwc3_gadget_usb3_phy_suspend(dwc, false);
 	}
 
-	ret = device_register(&dwc->gadget.dev);
-	if (ret) {
-		dev_err(dwc->dev, "failed to register gadget device\n");
-		put_device(&dwc->gadget.dev);
-		goto err6;
-	}
-
 	ret = usb_add_gadget_udc(dwc->dev, &dwc->gadget);
 	if (ret) {
 		dev_err(dwc->dev, "failed to register udc\n");
-		goto err7;
+		goto err6;
 	}
 
 	return 0;
 
-err7:
-	device_unregister(&dwc->gadget.dev);
-
 err6:
 	dwc3_writel(dwc->regs, DWC3_DEVTEN, 0x00);
 	free_irq(irq, dwc);
@@ -2546,6 +2535,4 @@ void dwc3_gadget_exit(struct dwc3 *dwc)
 
 	dma_free_coherent(dwc->dev, sizeof(*dwc->ctrl_req),
 			dwc->ctrl_req, dwc->ctrl_req_addr);
-
-	device_unregister(&dwc->gadget.dev);
 }
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 03/32] usb: musb: gadget: let udc-core manage gadget-dev
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:45     ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin-VuQAYsv1563Yd54FQh9/CA,
	gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	dahlmann.thomas-KvP5wT2u2U0,
	nicolas.ferre-AIFe0yeh4nAAvxtiuMwx3w,
	leoli-KZfg59tc24xl57MIdRCFDg, eric.y.miao-Re5JQEeQqe8AvxtiuMwx3w,
	linux-lFZ/pmaqli7XmaaqVzeoHQ,
	haojian.zhuang-Re5JQEeQqe8AvxtiuMwx3w,
	ben-linux-elnMNo+KYs3YtjvyW6yDsg,
	kgene.kim-Sze3O3UU22JBDgjK7y7TUQ,
	kuninori.morimoto.gx-zM6kxYcvzFBBDgjK7y7TUQ,
	yoshihiro.shimoda.uh-zM6kxYcvzFBBDgjK7y7TUQ,
	Linux OMAP Mailing List,
	linux-geode-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ,
	linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA, Felipe Balbi

By simply setting a flag, we can delete a little
boilerplate code.

Signed-off-by: Felipe Balbi <balbi-l0cyMroinI0@public.gmane.org>
---
 drivers/usb/musb/musb_gadget.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c
index 8767874..1c4a8e8 100644
--- a/drivers/usb/musb/musb_gadget.c
+++ b/drivers/usb/musb/musb_gadget.c
@@ -1871,12 +1871,11 @@ int musb_gadget_setup(struct musb *musb)
 	musb->g.speed = USB_SPEED_UNKNOWN;
 
 	/* this "gadget" abstracts/virtualizes the controller */
-	dev_set_name(&musb->g.dev, "gadget");
 	musb->g.dev.parent = musb->controller;
 	musb->g.dev.dma_mask = musb->controller->dma_mask;
 	musb->g.dev.release = musb_gadget_release;
 	musb->g.name = musb_driver_name;
-
+	musb->g.register_my_device = true;
 	musb->g.is_otg = 1;
 
 	musb_g_init_endpoints(musb);
@@ -1884,11 +1883,6 @@ int musb_gadget_setup(struct musb *musb)
 	musb->is_active = 0;
 	musb_platform_try_idle(musb, 0);
 
-	status = device_register(&musb->g.dev);
-	if (status != 0) {
-		put_device(&musb->g.dev);
-		return status;
-	}
 	status = usb_add_gadget_udc(musb->controller, &musb->g);
 	if (status)
 		goto err;
@@ -1903,8 +1897,6 @@ err:
 void musb_gadget_cleanup(struct musb *musb)
 {
 	usb_del_gadget_udc(&musb->g);
-	if (musb->g.dev.parent)
-		device_unregister(&musb->g.dev);
 }
 
 /*
-- 
1.8.1.rc1.5.g7e0651a

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* [RFC/PATCH 03/32] usb: musb: gadget: let udc-core manage gadget-dev
@ 2013-01-24 15:45     ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

By simply setting a flag, we can delete a little
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/musb/musb_gadget.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c
index 8767874..1c4a8e8 100644
--- a/drivers/usb/musb/musb_gadget.c
+++ b/drivers/usb/musb/musb_gadget.c
@@ -1871,12 +1871,11 @@ int musb_gadget_setup(struct musb *musb)
 	musb->g.speed = USB_SPEED_UNKNOWN;
 
 	/* this "gadget" abstracts/virtualizes the controller */
-	dev_set_name(&musb->g.dev, "gadget");
 	musb->g.dev.parent = musb->controller;
 	musb->g.dev.dma_mask = musb->controller->dma_mask;
 	musb->g.dev.release = musb_gadget_release;
 	musb->g.name = musb_driver_name;
-
+	musb->g.register_my_device = true;
 	musb->g.is_otg = 1;
 
 	musb_g_init_endpoints(musb);
@@ -1884,11 +1883,6 @@ int musb_gadget_setup(struct musb *musb)
 	musb->is_active = 0;
 	musb_platform_try_idle(musb, 0);
 
-	status = device_register(&musb->g.dev);
-	if (status != 0) {
-		put_device(&musb->g.dev);
-		return status;
-	}
 	status = usb_add_gadget_udc(musb->controller, &musb->g);
 	if (status)
 		goto err;
@@ -1903,8 +1897,6 @@ err:
 void musb_gadget_cleanup(struct musb *musb)
 {
 	usb_del_gadget_udc(&musb->g);
-	if (musb->g.dev.parent)
-		device_unregister(&musb->g.dev);
 }
 
 /*
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 03/32] usb: musb: gadget: let udc-core manage gadget-dev
@ 2013-01-24 15:45     ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: linux-arm-kernel

By simply setting a flag, we can delete a little
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/musb/musb_gadget.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c
index 8767874..1c4a8e8 100644
--- a/drivers/usb/musb/musb_gadget.c
+++ b/drivers/usb/musb/musb_gadget.c
@@ -1871,12 +1871,11 @@ int musb_gadget_setup(struct musb *musb)
 	musb->g.speed = USB_SPEED_UNKNOWN;
 
 	/* this "gadget" abstracts/virtualizes the controller */
-	dev_set_name(&musb->g.dev, "gadget");
 	musb->g.dev.parent = musb->controller;
 	musb->g.dev.dma_mask = musb->controller->dma_mask;
 	musb->g.dev.release = musb_gadget_release;
 	musb->g.name = musb_driver_name;
-
+	musb->g.register_my_device = true;
 	musb->g.is_otg = 1;
 
 	musb_g_init_endpoints(musb);
@@ -1884,11 +1883,6 @@ int musb_gadget_setup(struct musb *musb)
 	musb->is_active = 0;
 	musb_platform_try_idle(musb, 0);
 
-	status = device_register(&musb->g.dev);
-	if (status != 0) {
-		put_device(&musb->g.dev);
-		return status;
-	}
 	status = usb_add_gadget_udc(musb->controller, &musb->g);
 	if (status)
 		goto err;
@@ -1903,8 +1897,6 @@ err:
 void musb_gadget_cleanup(struct musb *musb)
 {
 	usb_del_gadget_udc(&musb->g);
-	if (musb->g.dev.parent)
-		device_unregister(&musb->g.dev);
 }
 
 /*
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 04/32] usb: gadget: omap_udc: let udc-core manage gadget->dev
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:45     ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin-VuQAYsv1563Yd54FQh9/CA,
	gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	dahlmann.thomas-KvP5wT2u2U0,
	nicolas.ferre-AIFe0yeh4nAAvxtiuMwx3w,
	leoli-KZfg59tc24xl57MIdRCFDg, eric.y.miao-Re5JQEeQqe8AvxtiuMwx3w,
	linux-lFZ/pmaqli7XmaaqVzeoHQ,
	haojian.zhuang-Re5JQEeQqe8AvxtiuMwx3w,
	ben-linux-elnMNo+KYs3YtjvyW6yDsg,
	kgene.kim-Sze3O3UU22JBDgjK7y7TUQ,
	kuninori.morimoto.gx-zM6kxYcvzFBBDgjK7y7TUQ,
	yoshihiro.shimoda.uh-zM6kxYcvzFBBDgjK7y7TUQ,
	Linux OMAP Mailing List,
	linux-geode-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ,
	linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA, Felipe Balbi

By simply setting a flag, we drop some boilerplate
code.

Signed-off-by: Felipe Balbi <balbi-l0cyMroinI0@public.gmane.org>
---
 drivers/usb/gadget/omap_udc.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/drivers/usb/gadget/omap_udc.c b/drivers/usb/gadget/omap_udc.c
index d0c87b1..234e82b 100644
--- a/drivers/usb/gadget/omap_udc.c
+++ b/drivers/usb/gadget/omap_udc.c
@@ -2631,10 +2631,9 @@ omap_udc_setup(struct platform_device *odev, struct usb_phy *xceiv)
 	udc->gadget.max_speed = USB_SPEED_FULL;
 	udc->gadget.name = driver_name;
 
-	device_initialize(&udc->gadget.dev);
-	dev_set_name(&udc->gadget.dev, "gadget");
 	udc->gadget.dev.release = omap_udc_release;
 	udc->gadget.dev.parent = &odev->dev;
+	udc->gadget.register_my_device = true;
 	if (use_dma)
 		udc->gadget.dev.dma_mask = odev->dev.dma_mask;
 
@@ -2911,14 +2910,12 @@ bad_on_1710:
 	}
 
 	create_proc_file();
-	status = device_add(&udc->gadget.dev);
+	status = usb_add_gadget_udc(&pdev->dev, &udc->gadget);
 	if (status)
 		goto cleanup4;
 
-	status = usb_add_gadget_udc(&pdev->dev, &udc->gadget);
-	if (!status)
-		return status;
-	/* If fail, fall through */
+	return 0;
+
 cleanup4:
 	remove_proc_file();
 
@@ -2989,7 +2986,6 @@ static int omap_udc_remove(struct platform_device *pdev)
 	release_mem_region(pdev->resource[0].start,
 			pdev->resource[0].end - pdev->resource[0].start + 1);
 
-	device_unregister(&udc->gadget.dev);
 	wait_for_completion(&done);
 
 	return 0;
-- 
1.8.1.rc1.5.g7e0651a

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* [RFC/PATCH 04/32] usb: gadget: omap_udc: let udc-core manage gadget->dev
@ 2013-01-24 15:45     ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

By simply setting a flag, we drop some boilerplate
code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/omap_udc.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/drivers/usb/gadget/omap_udc.c b/drivers/usb/gadget/omap_udc.c
index d0c87b1..234e82b 100644
--- a/drivers/usb/gadget/omap_udc.c
+++ b/drivers/usb/gadget/omap_udc.c
@@ -2631,10 +2631,9 @@ omap_udc_setup(struct platform_device *odev, struct usb_phy *xceiv)
 	udc->gadget.max_speed = USB_SPEED_FULL;
 	udc->gadget.name = driver_name;
 
-	device_initialize(&udc->gadget.dev);
-	dev_set_name(&udc->gadget.dev, "gadget");
 	udc->gadget.dev.release = omap_udc_release;
 	udc->gadget.dev.parent = &odev->dev;
+	udc->gadget.register_my_device = true;
 	if (use_dma)
 		udc->gadget.dev.dma_mask = odev->dev.dma_mask;
 
@@ -2911,14 +2910,12 @@ bad_on_1710:
 	}
 
 	create_proc_file();
-	status = device_add(&udc->gadget.dev);
+	status = usb_add_gadget_udc(&pdev->dev, &udc->gadget);
 	if (status)
 		goto cleanup4;
 
-	status = usb_add_gadget_udc(&pdev->dev, &udc->gadget);
-	if (!status)
-		return status;
-	/* If fail, fall through */
+	return 0;
+
 cleanup4:
 	remove_proc_file();
 
@@ -2989,7 +2986,6 @@ static int omap_udc_remove(struct platform_device *pdev)
 	release_mem_region(pdev->resource[0].start,
 			pdev->resource[0].end - pdev->resource[0].start + 1);
 
-	device_unregister(&udc->gadget.dev);
 	wait_for_completion(&done);
 
 	return 0;
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 04/32] usb: gadget: omap_udc: let udc-core manage gadget->dev
@ 2013-01-24 15:45     ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: linux-arm-kernel

By simply setting a flag, we drop some boilerplate
code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/omap_udc.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/drivers/usb/gadget/omap_udc.c b/drivers/usb/gadget/omap_udc.c
index d0c87b1..234e82b 100644
--- a/drivers/usb/gadget/omap_udc.c
+++ b/drivers/usb/gadget/omap_udc.c
@@ -2631,10 +2631,9 @@ omap_udc_setup(struct platform_device *odev, struct usb_phy *xceiv)
 	udc->gadget.max_speed = USB_SPEED_FULL;
 	udc->gadget.name = driver_name;
 
-	device_initialize(&udc->gadget.dev);
-	dev_set_name(&udc->gadget.dev, "gadget");
 	udc->gadget.dev.release = omap_udc_release;
 	udc->gadget.dev.parent = &odev->dev;
+	udc->gadget.register_my_device = true;
 	if (use_dma)
 		udc->gadget.dev.dma_mask = odev->dev.dma_mask;
 
@@ -2911,14 +2910,12 @@ bad_on_1710:
 	}
 
 	create_proc_file();
-	status = device_add(&udc->gadget.dev);
+	status = usb_add_gadget_udc(&pdev->dev, &udc->gadget);
 	if (status)
 		goto cleanup4;
 
-	status = usb_add_gadget_udc(&pdev->dev, &udc->gadget);
-	if (!status)
-		return status;
-	/* If fail, fall through */
+	return 0;
+
 cleanup4:
 	remove_proc_file();
 
@@ -2989,7 +2986,6 @@ static int omap_udc_remove(struct platform_device *pdev)
 	release_mem_region(pdev->resource[0].start,
 			pdev->resource[0].end - pdev->resource[0].start + 1);
 
-	device_unregister(&udc->gadget.dev);
 	wait_for_completion(&done);
 
 	return 0;
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 05/32] usb: gadget: amd5536udc: let udc-core manage gadget->dev
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:45   ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin, gregkh, dahlmann.thomas, nicolas.ferre,
	leoli, eric.y.miao, linux, haojian.zhuang, ben-linux, kgene.kim,
	kuninori.morimoto.gx, yoshihiro.shimoda.uh,
	Linux OMAP Mailing List, linux-geode, linux-arm-kernel,
	linuxppc-dev, linux-samsung-soc, Felipe Balbi

By simply setting a flag, we drop some boilerplate
code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/amd5536udc.c | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/drivers/usb/gadget/amd5536udc.c b/drivers/usb/gadget/amd5536udc.c
index 3dac001..1827d4c 100644
--- a/drivers/usb/gadget/amd5536udc.c
+++ b/drivers/usb/gadget/amd5536udc.c
@@ -3080,7 +3080,6 @@ static void udc_pci_remove(struct pci_dev *pdev)
 	if (dev->active)
 		pci_disable_device(pdev);
 
-	device_unregister(&dev->gadget.dev);
 	pci_set_drvdata(pdev, NULL);
 
 	udc_remove(dev);
@@ -3276,6 +3275,7 @@ static int udc_probe(struct udc *dev)
 	dev->gadget.dev.release = gadget_release;
 	dev->gadget.name = name;
 	dev->gadget.max_speed = USB_SPEED_HIGH;
+	dev->gadget.register_my_device = true;
 
 	/* init registers, interrupts, ... */
 	startup_registers(dev);
@@ -3301,13 +3301,6 @@ static int udc_probe(struct udc *dev)
 	if (retval)
 		goto finished;
 
-	retval = device_register(&dev->gadget.dev);
-	if (retval) {
-		usb_del_gadget_udc(&dev->gadget);
-		put_device(&dev->gadget.dev);
-		goto finished;
-	}
-
 	/* timer init */
 	init_timer(&udc_timer);
 	udc_timer.function = udc_timer_function;
-- 
1.8.1.rc1.5.g7e0651a


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

* [RFC/PATCH 05/32] usb: gadget: amd5536udc: let udc-core manage gadget->dev
@ 2013-01-24 15:45   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

By simply setting a flag, we drop some boilerplate
code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/amd5536udc.c | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/drivers/usb/gadget/amd5536udc.c b/drivers/usb/gadget/amd5536udc.c
index 3dac001..1827d4c 100644
--- a/drivers/usb/gadget/amd5536udc.c
+++ b/drivers/usb/gadget/amd5536udc.c
@@ -3080,7 +3080,6 @@ static void udc_pci_remove(struct pci_dev *pdev)
 	if (dev->active)
 		pci_disable_device(pdev);
 
-	device_unregister(&dev->gadget.dev);
 	pci_set_drvdata(pdev, NULL);
 
 	udc_remove(dev);
@@ -3276,6 +3275,7 @@ static int udc_probe(struct udc *dev)
 	dev->gadget.dev.release = gadget_release;
 	dev->gadget.name = name;
 	dev->gadget.max_speed = USB_SPEED_HIGH;
+	dev->gadget.register_my_device = true;
 
 	/* init registers, interrupts, ... */
 	startup_registers(dev);
@@ -3301,13 +3301,6 @@ static int udc_probe(struct udc *dev)
 	if (retval)
 		goto finished;
 
-	retval = device_register(&dev->gadget.dev);
-	if (retval) {
-		usb_del_gadget_udc(&dev->gadget);
-		put_device(&dev->gadget.dev);
-		goto finished;
-	}
-
 	/* timer init */
 	init_timer(&udc_timer);
 	udc_timer.function = udc_timer_function;
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 05/32] usb: gadget: amd5536udc: let udc-core manage gadget->dev
@ 2013-01-24 15:45   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: linux-arm-kernel

By simply setting a flag, we drop some boilerplate
code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/amd5536udc.c | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/drivers/usb/gadget/amd5536udc.c b/drivers/usb/gadget/amd5536udc.c
index 3dac001..1827d4c 100644
--- a/drivers/usb/gadget/amd5536udc.c
+++ b/drivers/usb/gadget/amd5536udc.c
@@ -3080,7 +3080,6 @@ static void udc_pci_remove(struct pci_dev *pdev)
 	if (dev->active)
 		pci_disable_device(pdev);
 
-	device_unregister(&dev->gadget.dev);
 	pci_set_drvdata(pdev, NULL);
 
 	udc_remove(dev);
@@ -3276,6 +3275,7 @@ static int udc_probe(struct udc *dev)
 	dev->gadget.dev.release = gadget_release;
 	dev->gadget.name = name;
 	dev->gadget.max_speed = USB_SPEED_HIGH;
+	dev->gadget.register_my_device = true;
 
 	/* init registers, interrupts, ... */
 	startup_registers(dev);
@@ -3301,13 +3301,6 @@ static int udc_probe(struct udc *dev)
 	if (retval)
 		goto finished;
 
-	retval = device_register(&dev->gadget.dev);
-	if (retval) {
-		usb_del_gadget_udc(&dev->gadget);
-		put_device(&dev->gadget.dev);
-		goto finished;
-	}
-
 	/* timer init */
 	init_timer(&udc_timer);
 	udc_timer.function = udc_timer_function;
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 06/32] usb: gadget: at91_udc: let udc-core manage gadget->dev
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:45   ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin, gregkh, dahlmann.thomas, nicolas.ferre,
	leoli, eric.y.miao, linux, haojian.zhuang, ben-linux, kgene.kim,
	kuninori.morimoto.gx, yoshihiro.shimoda.uh,
	Linux OMAP Mailing List, linux-geode, linux-arm-kernel,
	linuxppc-dev, linux-samsung-soc, Felipe Balbi

By simply setting a flag, we can remove some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/at91_udc.c | 13 ++-----------
 1 file changed, 2 insertions(+), 11 deletions(-)

diff --git a/drivers/usb/gadget/at91_udc.c b/drivers/usb/gadget/at91_udc.c
index 10f45fa..177b56d 100644
--- a/drivers/usb/gadget/at91_udc.c
+++ b/drivers/usb/gadget/at91_udc.c
@@ -1726,6 +1726,7 @@ static int at91udc_probe(struct platform_device *pdev)
 
 	/* init software state */
 	udc = &controller;
+	udc->gadget.register_my_device = true;
 	udc->gadget.dev.parent = dev;
 	if (pdev->dev.of_node)
 		at91udc_of_init(udc, pdev->dev.of_node);
@@ -1780,13 +1781,7 @@ static int at91udc_probe(struct platform_device *pdev)
 		DBG("clocks missing\n");
 		retval = -ENODEV;
 		/* NOTE: we "know" here that refcounts on these are NOPs */
-		goto fail0b;
-	}
-
-	retval = device_register(&udc->gadget.dev);
-	if (retval < 0) {
-		put_device(&udc->gadget.dev);
-		goto fail0b;
+		goto fail1;
 	}
 
 	/* don't do anything until we have both gadget driver and VBUS */
@@ -1857,8 +1852,6 @@ fail3:
 fail2:
 	free_irq(udc->udp_irq, udc);
 fail1:
-	device_unregister(&udc->gadget.dev);
-fail0b:
 	iounmap(udc->udp_baseaddr);
 fail0a:
 	if (cpu_is_at91rm9200())
@@ -1892,8 +1885,6 @@ static int __exit at91udc_remove(struct platform_device *pdev)
 		gpio_free(udc->board.vbus_pin);
 	}
 	free_irq(udc->udp_irq, udc);
-	device_unregister(&udc->gadget.dev);
-
 	iounmap(udc->udp_baseaddr);
 
 	if (cpu_is_at91rm9200())
-- 
1.8.1.rc1.5.g7e0651a


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

* [RFC/PATCH 06/32] usb: gadget: at91_udc: let udc-core manage gadget->dev
@ 2013-01-24 15:45   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

By simply setting a flag, we can remove some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/at91_udc.c | 13 ++-----------
 1 file changed, 2 insertions(+), 11 deletions(-)

diff --git a/drivers/usb/gadget/at91_udc.c b/drivers/usb/gadget/at91_udc.c
index 10f45fa..177b56d 100644
--- a/drivers/usb/gadget/at91_udc.c
+++ b/drivers/usb/gadget/at91_udc.c
@@ -1726,6 +1726,7 @@ static int at91udc_probe(struct platform_device *pdev)
 
 	/* init software state */
 	udc = &controller;
+	udc->gadget.register_my_device = true;
 	udc->gadget.dev.parent = dev;
 	if (pdev->dev.of_node)
 		at91udc_of_init(udc, pdev->dev.of_node);
@@ -1780,13 +1781,7 @@ static int at91udc_probe(struct platform_device *pdev)
 		DBG("clocks missing\n");
 		retval = -ENODEV;
 		/* NOTE: we "know" here that refcounts on these are NOPs */
-		goto fail0b;
-	}
-
-	retval = device_register(&udc->gadget.dev);
-	if (retval < 0) {
-		put_device(&udc->gadget.dev);
-		goto fail0b;
+		goto fail1;
 	}
 
 	/* don't do anything until we have both gadget driver and VBUS */
@@ -1857,8 +1852,6 @@ fail3:
 fail2:
 	free_irq(udc->udp_irq, udc);
 fail1:
-	device_unregister(&udc->gadget.dev);
-fail0b:
 	iounmap(udc->udp_baseaddr);
 fail0a:
 	if (cpu_is_at91rm9200())
@@ -1892,8 +1885,6 @@ static int __exit at91udc_remove(struct platform_device *pdev)
 		gpio_free(udc->board.vbus_pin);
 	}
 	free_irq(udc->udp_irq, udc);
-	device_unregister(&udc->gadget.dev);
-
 	iounmap(udc->udp_baseaddr);
 
 	if (cpu_is_at91rm9200())
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 06/32] usb: gadget: at91_udc: let udc-core manage gadget->dev
@ 2013-01-24 15:45   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: linux-arm-kernel

By simply setting a flag, we can remove some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/at91_udc.c | 13 ++-----------
 1 file changed, 2 insertions(+), 11 deletions(-)

diff --git a/drivers/usb/gadget/at91_udc.c b/drivers/usb/gadget/at91_udc.c
index 10f45fa..177b56d 100644
--- a/drivers/usb/gadget/at91_udc.c
+++ b/drivers/usb/gadget/at91_udc.c
@@ -1726,6 +1726,7 @@ static int at91udc_probe(struct platform_device *pdev)
 
 	/* init software state */
 	udc = &controller;
+	udc->gadget.register_my_device = true;
 	udc->gadget.dev.parent = dev;
 	if (pdev->dev.of_node)
 		at91udc_of_init(udc, pdev->dev.of_node);
@@ -1780,13 +1781,7 @@ static int at91udc_probe(struct platform_device *pdev)
 		DBG("clocks missing\n");
 		retval = -ENODEV;
 		/* NOTE: we "know" here that refcounts on these are NOPs */
-		goto fail0b;
-	}
-
-	retval = device_register(&udc->gadget.dev);
-	if (retval < 0) {
-		put_device(&udc->gadget.dev);
-		goto fail0b;
+		goto fail1;
 	}
 
 	/* don't do anything until we have both gadget driver and VBUS */
@@ -1857,8 +1852,6 @@ fail3:
 fail2:
 	free_irq(udc->udp_irq, udc);
 fail1:
-	device_unregister(&udc->gadget.dev);
-fail0b:
 	iounmap(udc->udp_baseaddr);
 fail0a:
 	if (cpu_is_at91rm9200())
@@ -1892,8 +1885,6 @@ static int __exit at91udc_remove(struct platform_device *pdev)
 		gpio_free(udc->board.vbus_pin);
 	}
 	free_irq(udc->udp_irq, udc);
-	device_unregister(&udc->gadget.dev);
-
 	iounmap(udc->udp_baseaddr);
 
 	if (cpu_is_at91rm9200())
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 07/32] usb: gadget: atmel_usba_udc: let udc-core manage gadget->dev
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:45   ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin, gregkh, dahlmann.thomas, nicolas.ferre,
	leoli, eric.y.miao, linux, haojian.zhuang, ben-linux, kgene.kim,
	kuninori.morimoto.gx, yoshihiro.shimoda.uh,
	Linux OMAP Mailing List, linux-geode, linux-arm-kernel,
	linuxppc-dev, linux-samsung-soc, Felipe Balbi

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/atmel_usba_udc.c | 13 +------------
 1 file changed, 1 insertion(+), 12 deletions(-)

diff --git a/drivers/usb/gadget/atmel_usba_udc.c b/drivers/usb/gadget/atmel_usba_udc.c
index a7aed84..f0f9423 100644
--- a/drivers/usb/gadget/atmel_usba_udc.c
+++ b/drivers/usb/gadget/atmel_usba_udc.c
@@ -1900,9 +1900,9 @@ static int __init usba_udc_probe(struct platform_device *pdev)
 	dev_info(&pdev->dev, "FIFO at 0x%08lx mapped at %p\n",
 		 (unsigned long)fifo->start, udc->fifo);
 
-	device_initialize(&udc->gadget.dev);
 	udc->gadget.dev.parent = &pdev->dev;
 	udc->gadget.dev.dma_mask = pdev->dev.dma_mask;
+	udc->gadget.register_my_device = true;
 
 	platform_set_drvdata(pdev, udc);
 
@@ -1962,12 +1962,6 @@ static int __init usba_udc_probe(struct platform_device *pdev)
 	}
 	udc->irq = irq;
 
-	ret = device_add(&udc->gadget.dev);
-	if (ret) {
-		dev_dbg(&pdev->dev, "Could not add gadget: %d\n", ret);
-		goto err_device_add;
-	}
-
 	if (gpio_is_valid(pdata->vbus_pin)) {
 		if (!gpio_request(pdata->vbus_pin, "atmel_usba_udc")) {
 			udc->vbus_pin = pdata->vbus_pin;
@@ -2007,9 +2001,6 @@ err_add_udc:
 		gpio_free(udc->vbus_pin);
 	}
 
-	device_unregister(&udc->gadget.dev);
-
-err_device_add:
 	free_irq(irq, udc);
 err_request_irq:
 	kfree(usba_ep);
@@ -2053,8 +2044,6 @@ static int __exit usba_udc_remove(struct platform_device *pdev)
 	clk_put(udc->hclk);
 	clk_put(udc->pclk);
 
-	device_unregister(&udc->gadget.dev);
-
 	return 0;
 }
 
-- 
1.8.1.rc1.5.g7e0651a


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

* [RFC/PATCH 07/32] usb: gadget: atmel_usba_udc: let udc-core manage gadget->dev
@ 2013-01-24 15:45   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/atmel_usba_udc.c | 13 +------------
 1 file changed, 1 insertion(+), 12 deletions(-)

diff --git a/drivers/usb/gadget/atmel_usba_udc.c b/drivers/usb/gadget/atmel_usba_udc.c
index a7aed84..f0f9423 100644
--- a/drivers/usb/gadget/atmel_usba_udc.c
+++ b/drivers/usb/gadget/atmel_usba_udc.c
@@ -1900,9 +1900,9 @@ static int __init usba_udc_probe(struct platform_device *pdev)
 	dev_info(&pdev->dev, "FIFO at 0x%08lx mapped at %p\n",
 		 (unsigned long)fifo->start, udc->fifo);
 
-	device_initialize(&udc->gadget.dev);
 	udc->gadget.dev.parent = &pdev->dev;
 	udc->gadget.dev.dma_mask = pdev->dev.dma_mask;
+	udc->gadget.register_my_device = true;
 
 	platform_set_drvdata(pdev, udc);
 
@@ -1962,12 +1962,6 @@ static int __init usba_udc_probe(struct platform_device *pdev)
 	}
 	udc->irq = irq;
 
-	ret = device_add(&udc->gadget.dev);
-	if (ret) {
-		dev_dbg(&pdev->dev, "Could not add gadget: %d\n", ret);
-		goto err_device_add;
-	}
-
 	if (gpio_is_valid(pdata->vbus_pin)) {
 		if (!gpio_request(pdata->vbus_pin, "atmel_usba_udc")) {
 			udc->vbus_pin = pdata->vbus_pin;
@@ -2007,9 +2001,6 @@ err_add_udc:
 		gpio_free(udc->vbus_pin);
 	}
 
-	device_unregister(&udc->gadget.dev);
-
-err_device_add:
 	free_irq(irq, udc);
 err_request_irq:
 	kfree(usba_ep);
@@ -2053,8 +2044,6 @@ static int __exit usba_udc_remove(struct platform_device *pdev)
 	clk_put(udc->hclk);
 	clk_put(udc->pclk);
 
-	device_unregister(&udc->gadget.dev);
-
 	return 0;
 }
 
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 07/32] usb: gadget: atmel_usba_udc: let udc-core manage gadget->dev
@ 2013-01-24 15:45   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/atmel_usba_udc.c | 13 +------------
 1 file changed, 1 insertion(+), 12 deletions(-)

diff --git a/drivers/usb/gadget/atmel_usba_udc.c b/drivers/usb/gadget/atmel_usba_udc.c
index a7aed84..f0f9423 100644
--- a/drivers/usb/gadget/atmel_usba_udc.c
+++ b/drivers/usb/gadget/atmel_usba_udc.c
@@ -1900,9 +1900,9 @@ static int __init usba_udc_probe(struct platform_device *pdev)
 	dev_info(&pdev->dev, "FIFO at 0x%08lx mapped at %p\n",
 		 (unsigned long)fifo->start, udc->fifo);
 
-	device_initialize(&udc->gadget.dev);
 	udc->gadget.dev.parent = &pdev->dev;
 	udc->gadget.dev.dma_mask = pdev->dev.dma_mask;
+	udc->gadget.register_my_device = true;
 
 	platform_set_drvdata(pdev, udc);
 
@@ -1962,12 +1962,6 @@ static int __init usba_udc_probe(struct platform_device *pdev)
 	}
 	udc->irq = irq;
 
-	ret = device_add(&udc->gadget.dev);
-	if (ret) {
-		dev_dbg(&pdev->dev, "Could not add gadget: %d\n", ret);
-		goto err_device_add;
-	}
-
 	if (gpio_is_valid(pdata->vbus_pin)) {
 		if (!gpio_request(pdata->vbus_pin, "atmel_usba_udc")) {
 			udc->vbus_pin = pdata->vbus_pin;
@@ -2007,9 +2001,6 @@ err_add_udc:
 		gpio_free(udc->vbus_pin);
 	}
 
-	device_unregister(&udc->gadget.dev);
-
-err_device_add:
 	free_irq(irq, udc);
 err_request_irq:
 	kfree(usba_ep);
@@ -2053,8 +2044,6 @@ static int __exit usba_udc_remove(struct platform_device *pdev)
 	clk_put(udc->hclk);
 	clk_put(udc->pclk);
 
-	device_unregister(&udc->gadget.dev);
-
 	return 0;
 }
 
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 08/32] usb: gadget: bcm63xx_udc: let udc-core manage gadget->dev
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:45   ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin, gregkh, dahlmann.thomas, nicolas.ferre,
	leoli, eric.y.miao, linux, haojian.zhuang, ben-linux, kgene.kim,
	kuninori.morimoto.gx, yoshihiro.shimoda.uh,
	Linux OMAP Mailing List, linux-geode, linux-arm-kernel,
	linuxppc-dev, linux-samsung-soc, Felipe Balbi

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/bcm63xx_udc.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/drivers/usb/gadget/bcm63xx_udc.c b/drivers/usb/gadget/bcm63xx_udc.c
index 47a4993..10b0475 100644
--- a/drivers/usb/gadget/bcm63xx_udc.c
+++ b/drivers/usb/gadget/bcm63xx_udc.c
@@ -2367,13 +2367,13 @@ static int bcm63xx_udc_probe(struct platform_device *pdev)
 
 	spin_lock_init(&udc->lock);
 	INIT_WORK(&udc->ep0_wq, bcm63xx_ep0_process);
-	dev_set_name(&udc->gadget.dev, "gadget");
 
 	udc->gadget.ops = &bcm63xx_udc_ops;
 	udc->gadget.name = dev_name(dev);
 	udc->gadget.dev.parent = dev;
 	udc->gadget.dev.release = bcm63xx_udc_gadget_release;
 	udc->gadget.dev.dma_mask = dev->dma_mask;
+	udc->gadget.register_my_device = true;
 
 	if (!pd->use_fullspeed && !use_fullspeed)
 		udc->gadget.max_speed = USB_SPEED_HIGH;
@@ -2413,10 +2413,6 @@ static int bcm63xx_udc_probe(struct platform_device *pdev)
 		}
 	}
 
-	rc = device_register(&udc->gadget.dev);
-	if (rc)
-		goto out_uninit;
-
 	bcm63xx_udc_init_debugfs(udc);
 	rc = usb_add_gadget_udc(dev, &udc->gadget);
 	if (!rc)
@@ -2439,7 +2435,6 @@ static int bcm63xx_udc_remove(struct platform_device *pdev)
 
 	bcm63xx_udc_cleanup_debugfs(udc);
 	usb_del_gadget_udc(&udc->gadget);
-	device_unregister(&udc->gadget.dev);
 	BUG_ON(udc->driver);
 
 	platform_set_drvdata(pdev, NULL);
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 08/32] usb: gadget: bcm63xx_udc: let udc-core manage gadget->dev
@ 2013-01-24 15:45   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/bcm63xx_udc.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/drivers/usb/gadget/bcm63xx_udc.c b/drivers/usb/gadget/bcm63xx_udc.c
index 47a4993..10b0475 100644
--- a/drivers/usb/gadget/bcm63xx_udc.c
+++ b/drivers/usb/gadget/bcm63xx_udc.c
@@ -2367,13 +2367,13 @@ static int bcm63xx_udc_probe(struct platform_device *pdev)
 
 	spin_lock_init(&udc->lock);
 	INIT_WORK(&udc->ep0_wq, bcm63xx_ep0_process);
-	dev_set_name(&udc->gadget.dev, "gadget");
 
 	udc->gadget.ops = &bcm63xx_udc_ops;
 	udc->gadget.name = dev_name(dev);
 	udc->gadget.dev.parent = dev;
 	udc->gadget.dev.release = bcm63xx_udc_gadget_release;
 	udc->gadget.dev.dma_mask = dev->dma_mask;
+	udc->gadget.register_my_device = true;
 
 	if (!pd->use_fullspeed && !use_fullspeed)
 		udc->gadget.max_speed = USB_SPEED_HIGH;
@@ -2413,10 +2413,6 @@ static int bcm63xx_udc_probe(struct platform_device *pdev)
 		}
 	}
 
-	rc = device_register(&udc->gadget.dev);
-	if (rc)
-		goto out_uninit;
-
 	bcm63xx_udc_init_debugfs(udc);
 	rc = usb_add_gadget_udc(dev, &udc->gadget);
 	if (!rc)
@@ -2439,7 +2435,6 @@ static int bcm63xx_udc_remove(struct platform_device *pdev)
 
 	bcm63xx_udc_cleanup_debugfs(udc);
 	usb_del_gadget_udc(&udc->gadget);
-	device_unregister(&udc->gadget.dev);
 	BUG_ON(udc->driver);
 
 	platform_set_drvdata(pdev, NULL);
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 08/32] usb: gadget: bcm63xx_udc: let udc-core manage gadget->dev
@ 2013-01-24 15:45   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/bcm63xx_udc.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/drivers/usb/gadget/bcm63xx_udc.c b/drivers/usb/gadget/bcm63xx_udc.c
index 47a4993..10b0475 100644
--- a/drivers/usb/gadget/bcm63xx_udc.c
+++ b/drivers/usb/gadget/bcm63xx_udc.c
@@ -2367,13 +2367,13 @@ static int bcm63xx_udc_probe(struct platform_device *pdev)
 
 	spin_lock_init(&udc->lock);
 	INIT_WORK(&udc->ep0_wq, bcm63xx_ep0_process);
-	dev_set_name(&udc->gadget.dev, "gadget");
 
 	udc->gadget.ops = &bcm63xx_udc_ops;
 	udc->gadget.name = dev_name(dev);
 	udc->gadget.dev.parent = dev;
 	udc->gadget.dev.release = bcm63xx_udc_gadget_release;
 	udc->gadget.dev.dma_mask = dev->dma_mask;
+	udc->gadget.register_my_device = true;
 
 	if (!pd->use_fullspeed && !use_fullspeed)
 		udc->gadget.max_speed = USB_SPEED_HIGH;
@@ -2413,10 +2413,6 @@ static int bcm63xx_udc_probe(struct platform_device *pdev)
 		}
 	}
 
-	rc = device_register(&udc->gadget.dev);
-	if (rc)
-		goto out_uninit;
-
 	bcm63xx_udc_init_debugfs(udc);
 	rc = usb_add_gadget_udc(dev, &udc->gadget);
 	if (!rc)
@@ -2439,7 +2435,6 @@ static int bcm63xx_udc_remove(struct platform_device *pdev)
 
 	bcm63xx_udc_cleanup_debugfs(udc);
 	usb_del_gadget_udc(&udc->gadget);
-	device_unregister(&udc->gadget.dev);
 	BUG_ON(udc->driver);
 
 	platform_set_drvdata(pdev, NULL);
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 09/32] usb: gadget: dummy_hcd: let udc-core manage gadget->dev
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:45   ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin, gregkh, dahlmann.thomas, nicolas.ferre,
	leoli, eric.y.miao, linux, haojian.zhuang, ben-linux, kgene.kim,
	kuninori.morimoto.gx, yoshihiro.shimoda.uh,
	Linux OMAP Mailing List, linux-geode, linux-arm-kernel,
	linuxppc-dev, linux-samsung-soc, Felipe Balbi

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/dummy_hcd.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/drivers/usb/gadget/dummy_hcd.c b/drivers/usb/gadget/dummy_hcd.c
index 95d584d..8155d4a 100644
--- a/drivers/usb/gadget/dummy_hcd.c
+++ b/drivers/usb/gadget/dummy_hcd.c
@@ -982,16 +982,10 @@ static int dummy_udc_probe(struct platform_device *pdev)
 	dum->gadget.name = gadget_name;
 	dum->gadget.ops = &dummy_ops;
 	dum->gadget.max_speed = USB_SPEED_SUPER;
+	dum->gadget.register_my_device = true;
 
-	dev_set_name(&dum->gadget.dev, "gadget");
 	dum->gadget.dev.parent = &pdev->dev;
 	dum->gadget.dev.release = dummy_gadget_release;
-	rc = device_register(&dum->gadget.dev);
-	if (rc < 0) {
-		put_device(&dum->gadget.dev);
-		return rc;
-	}
-
 	init_dummy_udc_hw(dum);
 
 	rc = usb_add_gadget_udc(&pdev->dev, &dum->gadget);
@@ -1007,7 +1001,6 @@ static int dummy_udc_probe(struct platform_device *pdev)
 err_dev:
 	usb_del_gadget_udc(&dum->gadget);
 err_udc:
-	device_unregister(&dum->gadget.dev);
 	return rc;
 }
 
@@ -1018,7 +1011,6 @@ static int dummy_udc_remove(struct platform_device *pdev)
 	usb_del_gadget_udc(&dum->gadget);
 	platform_set_drvdata(pdev, NULL);
 	device_remove_file(&dum->gadget.dev, &dev_attr_function);
-	device_unregister(&dum->gadget.dev);
 	return 0;
 }
 
-- 
1.8.1.rc1.5.g7e0651a


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

* [RFC/PATCH 09/32] usb: gadget: dummy_hcd: let udc-core manage gadget->dev
@ 2013-01-24 15:45   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/dummy_hcd.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/drivers/usb/gadget/dummy_hcd.c b/drivers/usb/gadget/dummy_hcd.c
index 95d584d..8155d4a 100644
--- a/drivers/usb/gadget/dummy_hcd.c
+++ b/drivers/usb/gadget/dummy_hcd.c
@@ -982,16 +982,10 @@ static int dummy_udc_probe(struct platform_device *pdev)
 	dum->gadget.name = gadget_name;
 	dum->gadget.ops = &dummy_ops;
 	dum->gadget.max_speed = USB_SPEED_SUPER;
+	dum->gadget.register_my_device = true;
 
-	dev_set_name(&dum->gadget.dev, "gadget");
 	dum->gadget.dev.parent = &pdev->dev;
 	dum->gadget.dev.release = dummy_gadget_release;
-	rc = device_register(&dum->gadget.dev);
-	if (rc < 0) {
-		put_device(&dum->gadget.dev);
-		return rc;
-	}
-
 	init_dummy_udc_hw(dum);
 
 	rc = usb_add_gadget_udc(&pdev->dev, &dum->gadget);
@@ -1007,7 +1001,6 @@ static int dummy_udc_probe(struct platform_device *pdev)
 err_dev:
 	usb_del_gadget_udc(&dum->gadget);
 err_udc:
-	device_unregister(&dum->gadget.dev);
 	return rc;
 }
 
@@ -1018,7 +1011,6 @@ static int dummy_udc_remove(struct platform_device *pdev)
 	usb_del_gadget_udc(&dum->gadget);
 	platform_set_drvdata(pdev, NULL);
 	device_remove_file(&dum->gadget.dev, &dev_attr_function);
-	device_unregister(&dum->gadget.dev);
 	return 0;
 }
 
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 09/32] usb: gadget: dummy_hcd: let udc-core manage gadget->dev
@ 2013-01-24 15:45   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/dummy_hcd.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/drivers/usb/gadget/dummy_hcd.c b/drivers/usb/gadget/dummy_hcd.c
index 95d584d..8155d4a 100644
--- a/drivers/usb/gadget/dummy_hcd.c
+++ b/drivers/usb/gadget/dummy_hcd.c
@@ -982,16 +982,10 @@ static int dummy_udc_probe(struct platform_device *pdev)
 	dum->gadget.name = gadget_name;
 	dum->gadget.ops = &dummy_ops;
 	dum->gadget.max_speed = USB_SPEED_SUPER;
+	dum->gadget.register_my_device = true;
 
-	dev_set_name(&dum->gadget.dev, "gadget");
 	dum->gadget.dev.parent = &pdev->dev;
 	dum->gadget.dev.release = dummy_gadget_release;
-	rc = device_register(&dum->gadget.dev);
-	if (rc < 0) {
-		put_device(&dum->gadget.dev);
-		return rc;
-	}
-
 	init_dummy_udc_hw(dum);
 
 	rc = usb_add_gadget_udc(&pdev->dev, &dum->gadget);
@@ -1007,7 +1001,6 @@ static int dummy_udc_probe(struct platform_device *pdev)
 err_dev:
 	usb_del_gadget_udc(&dum->gadget);
 err_udc:
-	device_unregister(&dum->gadget.dev);
 	return rc;
 }
 
@@ -1018,7 +1011,6 @@ static int dummy_udc_remove(struct platform_device *pdev)
 	usb_del_gadget_udc(&dum->gadget);
 	platform_set_drvdata(pdev, NULL);
 	device_remove_file(&dum->gadget.dev, &dev_attr_function);
-	device_unregister(&dum->gadget.dev);
 	return 0;
 }
 
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 10/32] usb: gadget: fsl_qe_udc: let udc-core manage gadget->dev
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:45     ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin-VuQAYsv1563Yd54FQh9/CA,
	gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	dahlmann.thomas-KvP5wT2u2U0,
	nicolas.ferre-AIFe0yeh4nAAvxtiuMwx3w,
	leoli-KZfg59tc24xl57MIdRCFDg, eric.y.miao-Re5JQEeQqe8AvxtiuMwx3w,
	linux-lFZ/pmaqli7XmaaqVzeoHQ,
	haojian.zhuang-Re5JQEeQqe8AvxtiuMwx3w,
	ben-linux-elnMNo+KYs3YtjvyW6yDsg,
	kgene.kim-Sze3O3UU22JBDgjK7y7TUQ,
	kuninori.morimoto.gx-zM6kxYcvzFBBDgjK7y7TUQ,
	yoshihiro.shimoda.uh-zM6kxYcvzFBBDgjK7y7TUQ,
	Linux OMAP Mailing List,
	linux-geode-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ,
	linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA, Felipe Balbi

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi-l0cyMroinI0@public.gmane.org>
---
 drivers/usb/gadget/fsl_qe_udc.c | 15 ++-------------
 1 file changed, 2 insertions(+), 13 deletions(-)

diff --git a/drivers/usb/gadget/fsl_qe_udc.c b/drivers/usb/gadget/fsl_qe_udc.c
index ec50f18..08c8432 100644
--- a/drivers/usb/gadget/fsl_qe_udc.c
+++ b/drivers/usb/gadget/fsl_qe_udc.c
@@ -2523,13 +2523,9 @@ static int qe_udc_probe(struct platform_device *ofdev)
 
 	/* name: Identifies the controller hardware type. */
 	udc->gadget.name = driver_name;
-
-	device_initialize(&udc->gadget.dev);
-
-	dev_set_name(&udc->gadget.dev, "gadget");
-
 	udc->gadget.dev.release = qe_udc_release;
 	udc->gadget.dev.parent = &ofdev->dev;
+	udc->gadget.register_my_device = true;
 
 	/* initialize qe_ep struct */
 	for (i = 0; i < USB_MAX_ENDPOINTS ; i++) {
@@ -2592,13 +2588,9 @@ static int qe_udc_probe(struct platform_device *ofdev)
 		goto err5;
 	}
 
-	ret = device_add(&udc->gadget.dev);
-	if (ret)
-		goto err6;
-
 	ret = usb_add_gadget_udc(&ofdev->dev, &udc->gadget);
 	if (ret)
-		goto err7;
+		goto err6;
 
 	dev_set_drvdata(&ofdev->dev, udc);
 	dev_info(udc->dev,
@@ -2606,8 +2598,6 @@ static int qe_udc_probe(struct platform_device *ofdev)
 			(udc->soc_type == PORT_QE) ? "QE" : "CPM");
 	return 0;
 
-err7:
-	device_unregister(&udc->gadget.dev);
 err6:
 	free_irq(udc->usb_irq, udc);
 err5:
@@ -2702,7 +2692,6 @@ static int qe_udc_remove(struct platform_device *ofdev)
 
 	iounmap(udc->usb_regs);
 
-	device_unregister(&udc->gadget.dev);
 	/* wait for release() of gadget.dev to free udc */
 	wait_for_completion(&done);
 
-- 
1.8.1.rc1.5.g7e0651a

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* [RFC/PATCH 10/32] usb: gadget: fsl_qe_udc: let udc-core manage gadget->dev
@ 2013-01-24 15:45     ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/fsl_qe_udc.c | 15 ++-------------
 1 file changed, 2 insertions(+), 13 deletions(-)

diff --git a/drivers/usb/gadget/fsl_qe_udc.c b/drivers/usb/gadget/fsl_qe_udc.c
index ec50f18..08c8432 100644
--- a/drivers/usb/gadget/fsl_qe_udc.c
+++ b/drivers/usb/gadget/fsl_qe_udc.c
@@ -2523,13 +2523,9 @@ static int qe_udc_probe(struct platform_device *ofdev)
 
 	/* name: Identifies the controller hardware type. */
 	udc->gadget.name = driver_name;
-
-	device_initialize(&udc->gadget.dev);
-
-	dev_set_name(&udc->gadget.dev, "gadget");
-
 	udc->gadget.dev.release = qe_udc_release;
 	udc->gadget.dev.parent = &ofdev->dev;
+	udc->gadget.register_my_device = true;
 
 	/* initialize qe_ep struct */
 	for (i = 0; i < USB_MAX_ENDPOINTS ; i++) {
@@ -2592,13 +2588,9 @@ static int qe_udc_probe(struct platform_device *ofdev)
 		goto err5;
 	}
 
-	ret = device_add(&udc->gadget.dev);
-	if (ret)
-		goto err6;
-
 	ret = usb_add_gadget_udc(&ofdev->dev, &udc->gadget);
 	if (ret)
-		goto err7;
+		goto err6;
 
 	dev_set_drvdata(&ofdev->dev, udc);
 	dev_info(udc->dev,
@@ -2606,8 +2598,6 @@ static int qe_udc_probe(struct platform_device *ofdev)
 			(udc->soc_type == PORT_QE) ? "QE" : "CPM");
 	return 0;
 
-err7:
-	device_unregister(&udc->gadget.dev);
 err6:
 	free_irq(udc->usb_irq, udc);
 err5:
@@ -2702,7 +2692,6 @@ static int qe_udc_remove(struct platform_device *ofdev)
 
 	iounmap(udc->usb_regs);
 
-	device_unregister(&udc->gadget.dev);
 	/* wait for release() of gadget.dev to free udc */
 	wait_for_completion(&done);
 
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 10/32] usb: gadget: fsl_qe_udc: let udc-core manage gadget->dev
@ 2013-01-24 15:45     ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/fsl_qe_udc.c | 15 ++-------------
 1 file changed, 2 insertions(+), 13 deletions(-)

diff --git a/drivers/usb/gadget/fsl_qe_udc.c b/drivers/usb/gadget/fsl_qe_udc.c
index ec50f18..08c8432 100644
--- a/drivers/usb/gadget/fsl_qe_udc.c
+++ b/drivers/usb/gadget/fsl_qe_udc.c
@@ -2523,13 +2523,9 @@ static int qe_udc_probe(struct platform_device *ofdev)
 
 	/* name: Identifies the controller hardware type. */
 	udc->gadget.name = driver_name;
-
-	device_initialize(&udc->gadget.dev);
-
-	dev_set_name(&udc->gadget.dev, "gadget");
-
 	udc->gadget.dev.release = qe_udc_release;
 	udc->gadget.dev.parent = &ofdev->dev;
+	udc->gadget.register_my_device = true;
 
 	/* initialize qe_ep struct */
 	for (i = 0; i < USB_MAX_ENDPOINTS ; i++) {
@@ -2592,13 +2588,9 @@ static int qe_udc_probe(struct platform_device *ofdev)
 		goto err5;
 	}
 
-	ret = device_add(&udc->gadget.dev);
-	if (ret)
-		goto err6;
-
 	ret = usb_add_gadget_udc(&ofdev->dev, &udc->gadget);
 	if (ret)
-		goto err7;
+		goto err6;
 
 	dev_set_drvdata(&ofdev->dev, udc);
 	dev_info(udc->dev,
@@ -2606,8 +2598,6 @@ static int qe_udc_probe(struct platform_device *ofdev)
 			(udc->soc_type == PORT_QE) ? "QE" : "CPM");
 	return 0;
 
-err7:
-	device_unregister(&udc->gadget.dev);
 err6:
 	free_irq(udc->usb_irq, udc);
 err5:
@@ -2702,7 +2692,6 @@ static int qe_udc_remove(struct platform_device *ofdev)
 
 	iounmap(udc->usb_regs);
 
-	device_unregister(&udc->gadget.dev);
 	/* wait for release() of gadget.dev to free udc */
 	wait_for_completion(&done);
 
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 11/32] usb: gadget: fsl_udc_core: let udc-core manage gadget->dev
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:45     ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin-VuQAYsv1563Yd54FQh9/CA,
	gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	dahlmann.thomas-KvP5wT2u2U0,
	nicolas.ferre-AIFe0yeh4nAAvxtiuMwx3w,
	leoli-KZfg59tc24xl57MIdRCFDg, eric.y.miao-Re5JQEeQqe8AvxtiuMwx3w,
	linux-lFZ/pmaqli7XmaaqVzeoHQ,
	haojian.zhuang-Re5JQEeQqe8AvxtiuMwx3w,
	ben-linux-elnMNo+KYs3YtjvyW6yDsg,
	kgene.kim-Sze3O3UU22JBDgjK7y7TUQ,
	kuninori.morimoto.gx-zM6kxYcvzFBBDgjK7y7TUQ,
	yoshihiro.shimoda.uh-zM6kxYcvzFBBDgjK7y7TUQ,
	Linux OMAP Mailing List,
	linux-geode-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ,
	linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA, Felipe Balbi

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi-l0cyMroinI0@public.gmane.org>
---
 drivers/usb/gadget/fsl_udc_core.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/drivers/usb/gadget/fsl_udc_core.c b/drivers/usb/gadget/fsl_udc_core.c
index 49642d4..b78b734 100644
--- a/drivers/usb/gadget/fsl_udc_core.c
+++ b/drivers/usb/gadget/fsl_udc_core.c
@@ -2526,9 +2526,7 @@ static int __init fsl_udc_probe(struct platform_device *pdev)
 	udc_controller->gadget.dev.release = fsl_udc_release;
 	udc_controller->gadget.dev.parent = &pdev->dev;
 	udc_controller->gadget.dev.of_node = pdev->dev.of_node;
-	ret = device_register(&udc_controller->gadget.dev);
-	if (ret < 0)
-		goto err_free_irq;
+	udc_controller->gadget.register_my_device = true;
 
 	if (!IS_ERR_OR_NULL(udc_controller->transceiver))
 		udc_controller->gadget.is_otg = 1;
@@ -2561,7 +2559,7 @@ static int __init fsl_udc_probe(struct platform_device *pdev)
 			DTD_ALIGNMENT, UDC_DMA_BOUNDARY);
 	if (udc_controller->td_pool == NULL) {
 		ret = -ENOMEM;
-		goto err_unregister;
+		goto err_free_irq;
 	}
 
 	ret = usb_add_gadget_udc(&pdev->dev, &udc_controller->gadget);
@@ -2573,8 +2571,6 @@ static int __init fsl_udc_probe(struct platform_device *pdev)
 
 err_del_udc:
 	dma_pool_destroy(udc_controller->td_pool);
-err_unregister:
-	device_unregister(&udc_controller->gadget.dev);
 err_free_irq:
 	free_irq(udc_controller->irq, udc_controller);
 err_iounmap:
@@ -2624,7 +2620,6 @@ static int __exit fsl_udc_remove(struct platform_device *pdev)
 	if (pdata->operating_mode == FSL_USB2_DR_DEVICE)
 		release_mem_region(res->start, resource_size(res));
 
-	device_unregister(&udc_controller->gadget.dev);
 	/* free udc --wait for the release() finished */
 	wait_for_completion(&done);
 
-- 
1.8.1.rc1.5.g7e0651a

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* [RFC/PATCH 11/32] usb: gadget: fsl_udc_core: let udc-core manage gadget->dev
@ 2013-01-24 15:45     ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/fsl_udc_core.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/drivers/usb/gadget/fsl_udc_core.c b/drivers/usb/gadget/fsl_udc_core.c
index 49642d4..b78b734 100644
--- a/drivers/usb/gadget/fsl_udc_core.c
+++ b/drivers/usb/gadget/fsl_udc_core.c
@@ -2526,9 +2526,7 @@ static int __init fsl_udc_probe(struct platform_device *pdev)
 	udc_controller->gadget.dev.release = fsl_udc_release;
 	udc_controller->gadget.dev.parent = &pdev->dev;
 	udc_controller->gadget.dev.of_node = pdev->dev.of_node;
-	ret = device_register(&udc_controller->gadget.dev);
-	if (ret < 0)
-		goto err_free_irq;
+	udc_controller->gadget.register_my_device = true;
 
 	if (!IS_ERR_OR_NULL(udc_controller->transceiver))
 		udc_controller->gadget.is_otg = 1;
@@ -2561,7 +2559,7 @@ static int __init fsl_udc_probe(struct platform_device *pdev)
 			DTD_ALIGNMENT, UDC_DMA_BOUNDARY);
 	if (udc_controller->td_pool == NULL) {
 		ret = -ENOMEM;
-		goto err_unregister;
+		goto err_free_irq;
 	}
 
 	ret = usb_add_gadget_udc(&pdev->dev, &udc_controller->gadget);
@@ -2573,8 +2571,6 @@ static int __init fsl_udc_probe(struct platform_device *pdev)
 
 err_del_udc:
 	dma_pool_destroy(udc_controller->td_pool);
-err_unregister:
-	device_unregister(&udc_controller->gadget.dev);
 err_free_irq:
 	free_irq(udc_controller->irq, udc_controller);
 err_iounmap:
@@ -2624,7 +2620,6 @@ static int __exit fsl_udc_remove(struct platform_device *pdev)
 	if (pdata->operating_mode == FSL_USB2_DR_DEVICE)
 		release_mem_region(res->start, resource_size(res));
 
-	device_unregister(&udc_controller->gadget.dev);
 	/* free udc --wait for the release() finished */
 	wait_for_completion(&done);
 
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 11/32] usb: gadget: fsl_udc_core: let udc-core manage gadget->dev
@ 2013-01-24 15:45     ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/fsl_udc_core.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/drivers/usb/gadget/fsl_udc_core.c b/drivers/usb/gadget/fsl_udc_core.c
index 49642d4..b78b734 100644
--- a/drivers/usb/gadget/fsl_udc_core.c
+++ b/drivers/usb/gadget/fsl_udc_core.c
@@ -2526,9 +2526,7 @@ static int __init fsl_udc_probe(struct platform_device *pdev)
 	udc_controller->gadget.dev.release = fsl_udc_release;
 	udc_controller->gadget.dev.parent = &pdev->dev;
 	udc_controller->gadget.dev.of_node = pdev->dev.of_node;
-	ret = device_register(&udc_controller->gadget.dev);
-	if (ret < 0)
-		goto err_free_irq;
+	udc_controller->gadget.register_my_device = true;
 
 	if (!IS_ERR_OR_NULL(udc_controller->transceiver))
 		udc_controller->gadget.is_otg = 1;
@@ -2561,7 +2559,7 @@ static int __init fsl_udc_probe(struct platform_device *pdev)
 			DTD_ALIGNMENT, UDC_DMA_BOUNDARY);
 	if (udc_controller->td_pool == NULL) {
 		ret = -ENOMEM;
-		goto err_unregister;
+		goto err_free_irq;
 	}
 
 	ret = usb_add_gadget_udc(&pdev->dev, &udc_controller->gadget);
@@ -2573,8 +2571,6 @@ static int __init fsl_udc_probe(struct platform_device *pdev)
 
 err_del_udc:
 	dma_pool_destroy(udc_controller->td_pool);
-err_unregister:
-	device_unregister(&udc_controller->gadget.dev);
 err_free_irq:
 	free_irq(udc_controller->irq, udc_controller);
 err_iounmap:
@@ -2624,7 +2620,6 @@ static int __exit fsl_udc_remove(struct platform_device *pdev)
 	if (pdata->operating_mode == FSL_USB2_DR_DEVICE)
 		release_mem_region(res->start, resource_size(res));
 
-	device_unregister(&udc_controller->gadget.dev);
 	/* free udc --wait for the release() finished */
 	wait_for_completion(&done);
 
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 12/32] usb: gadget: fusb300_udc: let udc-core manage gadget->dev
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:45   ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin, gregkh, dahlmann.thomas, nicolas.ferre,
	leoli, eric.y.miao, linux, haojian.zhuang, ben-linux, kgene.kim,
	kuninori.morimoto.gx, yoshihiro.shimoda.uh,
	Linux OMAP Mailing List, linux-geode, linux-arm-kernel,
	linuxppc-dev, linux-samsung-soc, Felipe Balbi

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/fusb300_udc.c | 14 +-------------
 1 file changed, 1 insertion(+), 13 deletions(-)

diff --git a/drivers/usb/gadget/fusb300_udc.c b/drivers/usb/gadget/fusb300_udc.c
index 8c2372f..798a25b 100644
--- a/drivers/usb/gadget/fusb300_udc.c
+++ b/drivers/usb/gadget/fusb300_udc.c
@@ -1422,15 +1422,12 @@ static int __init fusb300_probe(struct platform_device *pdev)
 
 	fusb300->gadget.ops = &fusb300_gadget_ops;
 
-	device_initialize(&fusb300->gadget.dev);
-
-	dev_set_name(&fusb300->gadget.dev, "gadget");
-
 	fusb300->gadget.max_speed = USB_SPEED_HIGH;
 	fusb300->gadget.dev.parent = &pdev->dev;
 	fusb300->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	fusb300->gadget.dev.release = pdev->dev.release;
 	fusb300->gadget.name = udc_name;
+	fusb300->gadget.register_my_device = true;
 	fusb300->reg = reg;
 
 	ret = request_irq(ires->start, fusb300_irq, IRQF_SHARED,
@@ -1478,19 +1475,10 @@ static int __init fusb300_probe(struct platform_device *pdev)
 	if (ret)
 		goto err_add_udc;
 
-	ret = device_add(&fusb300->gadget.dev);
-	if (ret) {
-		pr_err("device_add error (%d)\n", ret);
-		goto err_add_device;
-	}
-
 	dev_info(&pdev->dev, "version %s\n", DRIVER_VERSION);
 
 	return 0;
 
-err_add_device:
-	usb_del_gadget_udc(&fusb300->gadget);
-
 err_add_udc:
 	fusb300_free_request(&fusb300->ep[0]->ep, fusb300->ep0_req);
 
-- 
1.8.1.rc1.5.g7e0651a


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

* [RFC/PATCH 12/32] usb: gadget: fusb300_udc: let udc-core manage gadget->dev
@ 2013-01-24 15:45   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/fusb300_udc.c | 14 +-------------
 1 file changed, 1 insertion(+), 13 deletions(-)

diff --git a/drivers/usb/gadget/fusb300_udc.c b/drivers/usb/gadget/fusb300_udc.c
index 8c2372f..798a25b 100644
--- a/drivers/usb/gadget/fusb300_udc.c
+++ b/drivers/usb/gadget/fusb300_udc.c
@@ -1422,15 +1422,12 @@ static int __init fusb300_probe(struct platform_device *pdev)
 
 	fusb300->gadget.ops = &fusb300_gadget_ops;
 
-	device_initialize(&fusb300->gadget.dev);
-
-	dev_set_name(&fusb300->gadget.dev, "gadget");
-
 	fusb300->gadget.max_speed = USB_SPEED_HIGH;
 	fusb300->gadget.dev.parent = &pdev->dev;
 	fusb300->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	fusb300->gadget.dev.release = pdev->dev.release;
 	fusb300->gadget.name = udc_name;
+	fusb300->gadget.register_my_device = true;
 	fusb300->reg = reg;
 
 	ret = request_irq(ires->start, fusb300_irq, IRQF_SHARED,
@@ -1478,19 +1475,10 @@ static int __init fusb300_probe(struct platform_device *pdev)
 	if (ret)
 		goto err_add_udc;
 
-	ret = device_add(&fusb300->gadget.dev);
-	if (ret) {
-		pr_err("device_add error (%d)\n", ret);
-		goto err_add_device;
-	}
-
 	dev_info(&pdev->dev, "version %s\n", DRIVER_VERSION);
 
 	return 0;
 
-err_add_device:
-	usb_del_gadget_udc(&fusb300->gadget);
-
 err_add_udc:
 	fusb300_free_request(&fusb300->ep[0]->ep, fusb300->ep0_req);
 
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 12/32] usb: gadget: fusb300_udc: let udc-core manage gadget->dev
@ 2013-01-24 15:45   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/fusb300_udc.c | 14 +-------------
 1 file changed, 1 insertion(+), 13 deletions(-)

diff --git a/drivers/usb/gadget/fusb300_udc.c b/drivers/usb/gadget/fusb300_udc.c
index 8c2372f..798a25b 100644
--- a/drivers/usb/gadget/fusb300_udc.c
+++ b/drivers/usb/gadget/fusb300_udc.c
@@ -1422,15 +1422,12 @@ static int __init fusb300_probe(struct platform_device *pdev)
 
 	fusb300->gadget.ops = &fusb300_gadget_ops;
 
-	device_initialize(&fusb300->gadget.dev);
-
-	dev_set_name(&fusb300->gadget.dev, "gadget");
-
 	fusb300->gadget.max_speed = USB_SPEED_HIGH;
 	fusb300->gadget.dev.parent = &pdev->dev;
 	fusb300->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	fusb300->gadget.dev.release = pdev->dev.release;
 	fusb300->gadget.name = udc_name;
+	fusb300->gadget.register_my_device = true;
 	fusb300->reg = reg;
 
 	ret = request_irq(ires->start, fusb300_irq, IRQF_SHARED,
@@ -1478,19 +1475,10 @@ static int __init fusb300_probe(struct platform_device *pdev)
 	if (ret)
 		goto err_add_udc;
 
-	ret = device_add(&fusb300->gadget.dev);
-	if (ret) {
-		pr_err("device_add error (%d)\n", ret);
-		goto err_add_device;
-	}
-
 	dev_info(&pdev->dev, "version %s\n", DRIVER_VERSION);
 
 	return 0;
 
-err_add_device:
-	usb_del_gadget_udc(&fusb300->gadget);
-
 err_add_udc:
 	fusb300_free_request(&fusb300->ep[0]->ep, fusb300->ep0_req);
 
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 13/32] usb: gadget: goku_udc: let udc-core manage gadget->dev
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:45   ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin, gregkh, dahlmann.thomas, nicolas.ferre,
	leoli, eric.y.miao, linux, haojian.zhuang, ben-linux, kgene.kim,
	kuninori.morimoto.gx, yoshihiro.shimoda.uh,
	Linux OMAP Mailing List, linux-geode, linux-arm-kernel,
	linuxppc-dev, linux-samsung-soc, Felipe Balbi

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/goku_udc.c | 10 +---------
 drivers/usb/gadget/goku_udc.h |  3 +--
 2 files changed, 2 insertions(+), 11 deletions(-)

diff --git a/drivers/usb/gadget/goku_udc.c b/drivers/usb/gadget/goku_udc.c
index 85742d4..b4ea2cf 100644
--- a/drivers/usb/gadget/goku_udc.c
+++ b/drivers/usb/gadget/goku_udc.c
@@ -1716,8 +1716,6 @@ static void goku_remove(struct pci_dev *pdev)
 				pci_resource_len (pdev, 0));
 	if (dev->enabled)
 		pci_disable_device(pdev);
-	if (dev->registered)
-		device_unregister(&dev->gadget.dev);
 
 	pci_set_drvdata(pdev, NULL);
 	dev->regs = NULL;
@@ -1756,11 +1754,11 @@ static int goku_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 	dev->gadget.max_speed = USB_SPEED_FULL;
 
 	/* the "gadget" abstracts/virtualizes the controller */
-	dev_set_name(&dev->gadget.dev, "gadget");
 	dev->gadget.dev.parent = &pdev->dev;
 	dev->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	dev->gadget.dev.release = gadget_release;
 	dev->gadget.name = driver_name;
+	dev->gadget.register_my_device = true;
 
 	/* now all the pci goodies ... */
 	retval = pci_enable_device(pdev);
@@ -1810,12 +1808,6 @@ static int goku_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 	create_proc_read_entry(proc_node_name, 0, NULL, udc_proc_read, dev);
 #endif
 
-	retval = device_register(&dev->gadget.dev);
-	if (retval) {
-		put_device(&dev->gadget.dev);
-		goto err;
-	}
-	dev->registered = 1;
 	retval = usb_add_gadget_udc(&pdev->dev, &dev->gadget);
 	if (retval)
 		goto err;
diff --git a/drivers/usb/gadget/goku_udc.h b/drivers/usb/gadget/goku_udc.h
index b4470d2..86d2ada 100644
--- a/drivers/usb/gadget/goku_udc.h
+++ b/drivers/usb/gadget/goku_udc.h
@@ -250,8 +250,7 @@ struct goku_udc {
 					got_region:1,
 					req_config:1,
 					configured:1,
-					enabled:1,
-					registered:1;
+					enabled:1;
 
 	/* pci state used to access those endpoints */
 	struct pci_dev			*pdev;
-- 
1.8.1.rc1.5.g7e0651a


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

* [RFC/PATCH 13/32] usb: gadget: goku_udc: let udc-core manage gadget->dev
@ 2013-01-24 15:45   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/goku_udc.c | 10 +---------
 drivers/usb/gadget/goku_udc.h |  3 +--
 2 files changed, 2 insertions(+), 11 deletions(-)

diff --git a/drivers/usb/gadget/goku_udc.c b/drivers/usb/gadget/goku_udc.c
index 85742d4..b4ea2cf 100644
--- a/drivers/usb/gadget/goku_udc.c
+++ b/drivers/usb/gadget/goku_udc.c
@@ -1716,8 +1716,6 @@ static void goku_remove(struct pci_dev *pdev)
 				pci_resource_len (pdev, 0));
 	if (dev->enabled)
 		pci_disable_device(pdev);
-	if (dev->registered)
-		device_unregister(&dev->gadget.dev);
 
 	pci_set_drvdata(pdev, NULL);
 	dev->regs = NULL;
@@ -1756,11 +1754,11 @@ static int goku_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 	dev->gadget.max_speed = USB_SPEED_FULL;
 
 	/* the "gadget" abstracts/virtualizes the controller */
-	dev_set_name(&dev->gadget.dev, "gadget");
 	dev->gadget.dev.parent = &pdev->dev;
 	dev->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	dev->gadget.dev.release = gadget_release;
 	dev->gadget.name = driver_name;
+	dev->gadget.register_my_device = true;
 
 	/* now all the pci goodies ... */
 	retval = pci_enable_device(pdev);
@@ -1810,12 +1808,6 @@ static int goku_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 	create_proc_read_entry(proc_node_name, 0, NULL, udc_proc_read, dev);
 #endif
 
-	retval = device_register(&dev->gadget.dev);
-	if (retval) {
-		put_device(&dev->gadget.dev);
-		goto err;
-	}
-	dev->registered = 1;
 	retval = usb_add_gadget_udc(&pdev->dev, &dev->gadget);
 	if (retval)
 		goto err;
diff --git a/drivers/usb/gadget/goku_udc.h b/drivers/usb/gadget/goku_udc.h
index b4470d2..86d2ada 100644
--- a/drivers/usb/gadget/goku_udc.h
+++ b/drivers/usb/gadget/goku_udc.h
@@ -250,8 +250,7 @@ struct goku_udc {
 					got_region:1,
 					req_config:1,
 					configured:1,
-					enabled:1,
-					registered:1;
+					enabled:1;
 
 	/* pci state used to access those endpoints */
 	struct pci_dev			*pdev;
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 13/32] usb: gadget: goku_udc: let udc-core manage gadget->dev
@ 2013-01-24 15:45   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/goku_udc.c | 10 +---------
 drivers/usb/gadget/goku_udc.h |  3 +--
 2 files changed, 2 insertions(+), 11 deletions(-)

diff --git a/drivers/usb/gadget/goku_udc.c b/drivers/usb/gadget/goku_udc.c
index 85742d4..b4ea2cf 100644
--- a/drivers/usb/gadget/goku_udc.c
+++ b/drivers/usb/gadget/goku_udc.c
@@ -1716,8 +1716,6 @@ static void goku_remove(struct pci_dev *pdev)
 				pci_resource_len (pdev, 0));
 	if (dev->enabled)
 		pci_disable_device(pdev);
-	if (dev->registered)
-		device_unregister(&dev->gadget.dev);
 
 	pci_set_drvdata(pdev, NULL);
 	dev->regs = NULL;
@@ -1756,11 +1754,11 @@ static int goku_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 	dev->gadget.max_speed = USB_SPEED_FULL;
 
 	/* the "gadget" abstracts/virtualizes the controller */
-	dev_set_name(&dev->gadget.dev, "gadget");
 	dev->gadget.dev.parent = &pdev->dev;
 	dev->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	dev->gadget.dev.release = gadget_release;
 	dev->gadget.name = driver_name;
+	dev->gadget.register_my_device = true;
 
 	/* now all the pci goodies ... */
 	retval = pci_enable_device(pdev);
@@ -1810,12 +1808,6 @@ static int goku_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 	create_proc_read_entry(proc_node_name, 0, NULL, udc_proc_read, dev);
 #endif
 
-	retval = device_register(&dev->gadget.dev);
-	if (retval) {
-		put_device(&dev->gadget.dev);
-		goto err;
-	}
-	dev->registered = 1;
 	retval = usb_add_gadget_udc(&pdev->dev, &dev->gadget);
 	if (retval)
 		goto err;
diff --git a/drivers/usb/gadget/goku_udc.h b/drivers/usb/gadget/goku_udc.h
index b4470d2..86d2ada 100644
--- a/drivers/usb/gadget/goku_udc.h
+++ b/drivers/usb/gadget/goku_udc.h
@@ -250,8 +250,7 @@ struct goku_udc {
 					got_region:1,
 					req_config:1,
 					configured:1,
-					enabled:1,
-					registered:1;
+					enabled:1;
 
 	/* pci state used to access those endpoints */
 	struct pci_dev			*pdev;
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 14/32] usb: gadget: imx_udc: let udc-core manage gadget->dev
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:45   ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin, gregkh, dahlmann.thomas, nicolas.ferre,
	leoli, eric.y.miao, linux, haojian.zhuang, ben-linux, kgene.kim,
	kuninori.morimoto.gx, yoshihiro.shimoda.uh,
	Linux OMAP Mailing List, linux-geode, linux-arm-kernel,
	linuxppc-dev, linux-samsung-soc, Felipe Balbi

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/imx_udc.c | 13 +------------
 1 file changed, 1 insertion(+), 12 deletions(-)

diff --git a/drivers/usb/gadget/imx_udc.c b/drivers/usb/gadget/imx_udc.c
index a0eb857..c8b5da3 100644
--- a/drivers/usb/gadget/imx_udc.c
+++ b/drivers/usb/gadget/imx_udc.c
@@ -1341,20 +1341,12 @@ static int imx_udc_start(struct usb_gadget *gadget,
 	imx_usb->driver = driver;
 	imx_usb->gadget.dev.driver = &driver->driver;
 
-	retval = device_add(&imx_usb->gadget.dev);
-	if (retval)
-		goto fail;
-
 	D_INI(imx_usb->dev, "<%s> registered gadget driver '%s'\n",
 		__func__, driver->driver.name);
 
 	imx_udc_enable(imx_usb);
 
 	return 0;
-fail:
-	imx_usb->driver = NULL;
-	imx_usb->gadget.dev.driver = NULL;
-	return retval;
 }
 
 static int imx_udc_stop(struct usb_gadget *gadget,
@@ -1370,8 +1362,6 @@ static int imx_udc_stop(struct usb_gadget *gadget,
 	imx_usb->gadget.dev.driver = NULL;
 	imx_usb->driver = NULL;
 
-	device_del(&imx_usb->gadget.dev);
-
 	D_INI(imx_usb->dev, "<%s> unregistered gadget driver '%s'\n",
 		__func__, driver->driver.name);
 
@@ -1472,8 +1462,7 @@ static int __init imx_udc_probe(struct platform_device *pdev)
 	imx_usb->clk = clk;
 	imx_usb->dev = &pdev->dev;
 
-	device_initialize(&imx_usb->gadget.dev);
-
+	imx_usb->gadget.register_my_device = true;
 	imx_usb->gadget.dev.parent = &pdev->dev;
 	imx_usb->gadget.dev.dma_mask = pdev->dev.dma_mask;
 
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 14/32] usb: gadget: imx_udc: let udc-core manage gadget->dev
@ 2013-01-24 15:45   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/imx_udc.c | 13 +------------
 1 file changed, 1 insertion(+), 12 deletions(-)

diff --git a/drivers/usb/gadget/imx_udc.c b/drivers/usb/gadget/imx_udc.c
index a0eb857..c8b5da3 100644
--- a/drivers/usb/gadget/imx_udc.c
+++ b/drivers/usb/gadget/imx_udc.c
@@ -1341,20 +1341,12 @@ static int imx_udc_start(struct usb_gadget *gadget,
 	imx_usb->driver = driver;
 	imx_usb->gadget.dev.driver = &driver->driver;
 
-	retval = device_add(&imx_usb->gadget.dev);
-	if (retval)
-		goto fail;
-
 	D_INI(imx_usb->dev, "<%s> registered gadget driver '%s'\n",
 		__func__, driver->driver.name);
 
 	imx_udc_enable(imx_usb);
 
 	return 0;
-fail:
-	imx_usb->driver = NULL;
-	imx_usb->gadget.dev.driver = NULL;
-	return retval;
 }
 
 static int imx_udc_stop(struct usb_gadget *gadget,
@@ -1370,8 +1362,6 @@ static int imx_udc_stop(struct usb_gadget *gadget,
 	imx_usb->gadget.dev.driver = NULL;
 	imx_usb->driver = NULL;
 
-	device_del(&imx_usb->gadget.dev);
-
 	D_INI(imx_usb->dev, "<%s> unregistered gadget driver '%s'\n",
 		__func__, driver->driver.name);
 
@@ -1472,8 +1462,7 @@ static int __init imx_udc_probe(struct platform_device *pdev)
 	imx_usb->clk = clk;
 	imx_usb->dev = &pdev->dev;
 
-	device_initialize(&imx_usb->gadget.dev);
-
+	imx_usb->gadget.register_my_device = true;
 	imx_usb->gadget.dev.parent = &pdev->dev;
 	imx_usb->gadget.dev.dma_mask = pdev->dev.dma_mask;
 
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 14/32] usb: gadget: imx_udc: let udc-core manage gadget->dev
@ 2013-01-24 15:45   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/imx_udc.c | 13 +------------
 1 file changed, 1 insertion(+), 12 deletions(-)

diff --git a/drivers/usb/gadget/imx_udc.c b/drivers/usb/gadget/imx_udc.c
index a0eb857..c8b5da3 100644
--- a/drivers/usb/gadget/imx_udc.c
+++ b/drivers/usb/gadget/imx_udc.c
@@ -1341,20 +1341,12 @@ static int imx_udc_start(struct usb_gadget *gadget,
 	imx_usb->driver = driver;
 	imx_usb->gadget.dev.driver = &driver->driver;
 
-	retval = device_add(&imx_usb->gadget.dev);
-	if (retval)
-		goto fail;
-
 	D_INI(imx_usb->dev, "<%s> registered gadget driver '%s'\n",
 		__func__, driver->driver.name);
 
 	imx_udc_enable(imx_usb);
 
 	return 0;
-fail:
-	imx_usb->driver = NULL;
-	imx_usb->gadget.dev.driver = NULL;
-	return retval;
 }
 
 static int imx_udc_stop(struct usb_gadget *gadget,
@@ -1370,8 +1362,6 @@ static int imx_udc_stop(struct usb_gadget *gadget,
 	imx_usb->gadget.dev.driver = NULL;
 	imx_usb->driver = NULL;
 
-	device_del(&imx_usb->gadget.dev);
-
 	D_INI(imx_usb->dev, "<%s> unregistered gadget driver '%s'\n",
 		__func__, driver->driver.name);
 
@@ -1472,8 +1462,7 @@ static int __init imx_udc_probe(struct platform_device *pdev)
 	imx_usb->clk = clk;
 	imx_usb->dev = &pdev->dev;
 
-	device_initialize(&imx_usb->gadget.dev);
-
+	imx_usb->gadget.register_my_device = true;
 	imx_usb->gadget.dev.parent = &pdev->dev;
 	imx_usb->gadget.dev.dma_mask = pdev->dev.dma_mask;
 
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 15/32] usb: gadget: lpc32xx_udc: let udc-core manage gadget->dev
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:45     ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin-VuQAYsv1563Yd54FQh9/CA,
	gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	dahlmann.thomas-KvP5wT2u2U0,
	nicolas.ferre-AIFe0yeh4nAAvxtiuMwx3w,
	leoli-KZfg59tc24xl57MIdRCFDg, eric.y.miao-Re5JQEeQqe8AvxtiuMwx3w,
	linux-lFZ/pmaqli7XmaaqVzeoHQ,
	haojian.zhuang-Re5JQEeQqe8AvxtiuMwx3w,
	ben-linux-elnMNo+KYs3YtjvyW6yDsg,
	kgene.kim-Sze3O3UU22JBDgjK7y7TUQ,
	kuninori.morimoto.gx-zM6kxYcvzFBBDgjK7y7TUQ,
	yoshihiro.shimoda.uh-zM6kxYcvzFBBDgjK7y7TUQ,
	Linux OMAP Mailing List,
	linux-geode-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ,
	linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA, Felipe Balbi

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi-l0cyMroinI0@public.gmane.org>
---
 drivers/usb/gadget/lpc32xx_udc.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

diff --git a/drivers/usb/gadget/lpc32xx_udc.c b/drivers/usb/gadget/lpc32xx_udc.c
index dd1c9b1..077e021 100644
--- a/drivers/usb/gadget/lpc32xx_udc.c
+++ b/drivers/usb/gadget/lpc32xx_udc.c
@@ -3090,6 +3090,7 @@ static int __init lpc32xx_udc_probe(struct platform_device *pdev)
 
 	/* init software state */
 	udc->gadget.dev.parent = dev;
+	udc->gadget.register_my_device = true;
 	udc->pdev = pdev;
 	udc->dev = &pdev->dev;
 	udc->enabled = 0;
@@ -3248,12 +3249,6 @@ static int __init lpc32xx_udc_probe(struct platform_device *pdev)
 	udc_disable(udc);
 	udc_reinit(udc);
 
-	retval = device_register(&udc->gadget.dev);
-	if (retval < 0) {
-		dev_err(udc->dev, "Device registration failure\n");
-		goto dev_register_fail;
-	}
-
 	/* Request IRQs - low and high priority USB device IRQs are routed to
 	 * the same handler, while the DMA interrupt is routed elsewhere */
 	retval = request_irq(udc->udp_irq[IRQ_USB_LP], lpc32xx_usb_lp_irq,
@@ -3320,8 +3315,6 @@ irq_dev_fail:
 irq_hp_fail:
 	free_irq(udc->udp_irq[IRQ_USB_LP], udc);
 irq_lp_fail:
-	device_unregister(&udc->gadget.dev);
-dev_register_fail:
 	dma_pool_destroy(udc->dd_cache);
 dma_alloc_fail:
 	dma_free_coherent(&pdev->dev, UDCA_BUFF_SIZE,
@@ -3376,8 +3369,6 @@ static int lpc32xx_udc_remove(struct platform_device *pdev)
 	free_irq(udc->udp_irq[IRQ_USB_HP], udc);
 	free_irq(udc->udp_irq[IRQ_USB_LP], udc);
 
-	device_unregister(&udc->gadget.dev);

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

* [RFC/PATCH 15/32] usb: gadget: lpc32xx_udc: let udc-core manage gadget->dev
@ 2013-01-24 15:45     ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/lpc32xx_udc.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

diff --git a/drivers/usb/gadget/lpc32xx_udc.c b/drivers/usb/gadget/lpc32xx_udc.c
index dd1c9b1..077e021 100644
--- a/drivers/usb/gadget/lpc32xx_udc.c
+++ b/drivers/usb/gadget/lpc32xx_udc.c
@@ -3090,6 +3090,7 @@ static int __init lpc32xx_udc_probe(struct platform_device *pdev)
 
 	/* init software state */
 	udc->gadget.dev.parent = dev;
+	udc->gadget.register_my_device = true;
 	udc->pdev = pdev;
 	udc->dev = &pdev->dev;
 	udc->enabled = 0;
@@ -3248,12 +3249,6 @@ static int __init lpc32xx_udc_probe(struct platform_device *pdev)
 	udc_disable(udc);
 	udc_reinit(udc);
 
-	retval = device_register(&udc->gadget.dev);
-	if (retval < 0) {
-		dev_err(udc->dev, "Device registration failure\n");
-		goto dev_register_fail;
-	}
-
 	/* Request IRQs - low and high priority USB device IRQs are routed to
 	 * the same handler, while the DMA interrupt is routed elsewhere */
 	retval = request_irq(udc->udp_irq[IRQ_USB_LP], lpc32xx_usb_lp_irq,
@@ -3320,8 +3315,6 @@ irq_dev_fail:
 irq_hp_fail:
 	free_irq(udc->udp_irq[IRQ_USB_LP], udc);
 irq_lp_fail:
-	device_unregister(&udc->gadget.dev);
-dev_register_fail:
 	dma_pool_destroy(udc->dd_cache);
 dma_alloc_fail:
 	dma_free_coherent(&pdev->dev, UDCA_BUFF_SIZE,
@@ -3376,8 +3369,6 @@ static int lpc32xx_udc_remove(struct platform_device *pdev)
 	free_irq(udc->udp_irq[IRQ_USB_HP], udc);
 	free_irq(udc->udp_irq[IRQ_USB_LP], udc);
 
-	device_unregister(&udc->gadget.dev);
-
 	clk_disable(udc->usb_otg_clk);
 	clk_put(udc->usb_otg_clk);
 	clk_disable(udc->usb_slv_clk);
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 15/32] usb: gadget: lpc32xx_udc: let udc-core manage gadget->dev
@ 2013-01-24 15:45     ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/lpc32xx_udc.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

diff --git a/drivers/usb/gadget/lpc32xx_udc.c b/drivers/usb/gadget/lpc32xx_udc.c
index dd1c9b1..077e021 100644
--- a/drivers/usb/gadget/lpc32xx_udc.c
+++ b/drivers/usb/gadget/lpc32xx_udc.c
@@ -3090,6 +3090,7 @@ static int __init lpc32xx_udc_probe(struct platform_device *pdev)
 
 	/* init software state */
 	udc->gadget.dev.parent = dev;
+	udc->gadget.register_my_device = true;
 	udc->pdev = pdev;
 	udc->dev = &pdev->dev;
 	udc->enabled = 0;
@@ -3248,12 +3249,6 @@ static int __init lpc32xx_udc_probe(struct platform_device *pdev)
 	udc_disable(udc);
 	udc_reinit(udc);
 
-	retval = device_register(&udc->gadget.dev);
-	if (retval < 0) {
-		dev_err(udc->dev, "Device registration failure\n");
-		goto dev_register_fail;
-	}
-
 	/* Request IRQs - low and high priority USB device IRQs are routed to
 	 * the same handler, while the DMA interrupt is routed elsewhere */
 	retval = request_irq(udc->udp_irq[IRQ_USB_LP], lpc32xx_usb_lp_irq,
@@ -3320,8 +3315,6 @@ irq_dev_fail:
 irq_hp_fail:
 	free_irq(udc->udp_irq[IRQ_USB_LP], udc);
 irq_lp_fail:
-	device_unregister(&udc->gadget.dev);
-dev_register_fail:
 	dma_pool_destroy(udc->dd_cache);
 dma_alloc_fail:
 	dma_free_coherent(&pdev->dev, UDCA_BUFF_SIZE,
@@ -3376,8 +3369,6 @@ static int lpc32xx_udc_remove(struct platform_device *pdev)
 	free_irq(udc->udp_irq[IRQ_USB_HP], udc);
 	free_irq(udc->udp_irq[IRQ_USB_LP], udc);
 
-	device_unregister(&udc->gadget.dev);
-
 	clk_disable(udc->usb_otg_clk);
 	clk_put(udc->usb_otg_clk);
 	clk_disable(udc->usb_slv_clk);
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 16/32] usb: gadget: m66592-udc: let udc-core manage gadget->dev
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:45   ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin, gregkh, dahlmann.thomas, nicolas.ferre,
	leoli, eric.y.miao, linux, haojian.zhuang, ben-linux, kgene.kim,
	kuninori.morimoto.gx, yoshihiro.shimoda.uh,
	Linux OMAP Mailing List, linux-geode, linux-arm-kernel,
	linuxppc-dev, linux-samsung-soc, Felipe Balbi

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/m66592-udc.c | 13 +------------
 1 file changed, 1 insertion(+), 12 deletions(-)

diff --git a/drivers/usb/gadget/m66592-udc.c b/drivers/usb/gadget/m66592-udc.c
index 0a35db1..c5d1b39 100644
--- a/drivers/usb/gadget/m66592-udc.c
+++ b/drivers/usb/gadget/m66592-udc.c
@@ -1538,7 +1538,6 @@ static int __exit m66592_remove(struct platform_device *pdev)
 	struct m66592		*m66592 = dev_get_drvdata(&pdev->dev);
 
 	usb_del_gadget_udc(&m66592->gadget);
-	device_del(&m66592->gadget.dev);
 
 	del_timer_sync(&m66592->timer);
 	iounmap(m66592->reg);
@@ -1608,13 +1607,12 @@ static int __init m66592_probe(struct platform_device *pdev)
 	dev_set_drvdata(&pdev->dev, m66592);
 
 	m66592->gadget.ops = &m66592_gadget_ops;
-	device_initialize(&m66592->gadget.dev);
-	dev_set_name(&m66592->gadget.dev, "gadget");
 	m66592->gadget.max_speed = USB_SPEED_HIGH;
 	m66592->gadget.dev.parent = &pdev->dev;
 	m66592->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	m66592->gadget.dev.release = pdev->dev.release;
 	m66592->gadget.name = udc_name;
+	m66592->gadget.register_my_device = true;
 
 	init_timer(&m66592->timer);
 	m66592->timer.function = m66592_timer;
@@ -1674,12 +1672,6 @@ static int __init m66592_probe(struct platform_device *pdev)
 
 	init_controller(m66592);
 
-	ret = device_add(&m66592->gadget.dev);
-	if (ret) {
-		pr_err("device_add error (%d)\n", ret);
-		goto err_device_add;
-	}
-
 	ret = usb_add_gadget_udc(&pdev->dev, &m66592->gadget);
 	if (ret)
 		goto err_add_udc;
@@ -1688,9 +1680,6 @@ static int __init m66592_probe(struct platform_device *pdev)
 	return 0;
 
 err_add_udc:
-	device_del(&m66592->gadget.dev);
-
-err_device_add:
 	m66592_free_request(&m66592->ep[0].ep, m66592->ep0_req);
 
 clean_up3:
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 16/32] usb: gadget: m66592-udc: let udc-core manage gadget->dev
@ 2013-01-24 15:45   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/m66592-udc.c | 13 +------------
 1 file changed, 1 insertion(+), 12 deletions(-)

diff --git a/drivers/usb/gadget/m66592-udc.c b/drivers/usb/gadget/m66592-udc.c
index 0a35db1..c5d1b39 100644
--- a/drivers/usb/gadget/m66592-udc.c
+++ b/drivers/usb/gadget/m66592-udc.c
@@ -1538,7 +1538,6 @@ static int __exit m66592_remove(struct platform_device *pdev)
 	struct m66592		*m66592 = dev_get_drvdata(&pdev->dev);
 
 	usb_del_gadget_udc(&m66592->gadget);
-	device_del(&m66592->gadget.dev);
 
 	del_timer_sync(&m66592->timer);
 	iounmap(m66592->reg);
@@ -1608,13 +1607,12 @@ static int __init m66592_probe(struct platform_device *pdev)
 	dev_set_drvdata(&pdev->dev, m66592);
 
 	m66592->gadget.ops = &m66592_gadget_ops;
-	device_initialize(&m66592->gadget.dev);
-	dev_set_name(&m66592->gadget.dev, "gadget");
 	m66592->gadget.max_speed = USB_SPEED_HIGH;
 	m66592->gadget.dev.parent = &pdev->dev;
 	m66592->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	m66592->gadget.dev.release = pdev->dev.release;
 	m66592->gadget.name = udc_name;
+	m66592->gadget.register_my_device = true;
 
 	init_timer(&m66592->timer);
 	m66592->timer.function = m66592_timer;
@@ -1674,12 +1672,6 @@ static int __init m66592_probe(struct platform_device *pdev)
 
 	init_controller(m66592);
 
-	ret = device_add(&m66592->gadget.dev);
-	if (ret) {
-		pr_err("device_add error (%d)\n", ret);
-		goto err_device_add;
-	}
-
 	ret = usb_add_gadget_udc(&pdev->dev, &m66592->gadget);
 	if (ret)
 		goto err_add_udc;
@@ -1688,9 +1680,6 @@ static int __init m66592_probe(struct platform_device *pdev)
 	return 0;
 
 err_add_udc:
-	device_del(&m66592->gadget.dev);
-
-err_device_add:
 	m66592_free_request(&m66592->ep[0].ep, m66592->ep0_req);
 
 clean_up3:
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 16/32] usb: gadget: m66592-udc: let udc-core manage gadget->dev
@ 2013-01-24 15:45   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/m66592-udc.c | 13 +------------
 1 file changed, 1 insertion(+), 12 deletions(-)

diff --git a/drivers/usb/gadget/m66592-udc.c b/drivers/usb/gadget/m66592-udc.c
index 0a35db1..c5d1b39 100644
--- a/drivers/usb/gadget/m66592-udc.c
+++ b/drivers/usb/gadget/m66592-udc.c
@@ -1538,7 +1538,6 @@ static int __exit m66592_remove(struct platform_device *pdev)
 	struct m66592		*m66592 = dev_get_drvdata(&pdev->dev);
 
 	usb_del_gadget_udc(&m66592->gadget);
-	device_del(&m66592->gadget.dev);
 
 	del_timer_sync(&m66592->timer);
 	iounmap(m66592->reg);
@@ -1608,13 +1607,12 @@ static int __init m66592_probe(struct platform_device *pdev)
 	dev_set_drvdata(&pdev->dev, m66592);
 
 	m66592->gadget.ops = &m66592_gadget_ops;
-	device_initialize(&m66592->gadget.dev);
-	dev_set_name(&m66592->gadget.dev, "gadget");
 	m66592->gadget.max_speed = USB_SPEED_HIGH;
 	m66592->gadget.dev.parent = &pdev->dev;
 	m66592->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	m66592->gadget.dev.release = pdev->dev.release;
 	m66592->gadget.name = udc_name;
+	m66592->gadget.register_my_device = true;
 
 	init_timer(&m66592->timer);
 	m66592->timer.function = m66592_timer;
@@ -1674,12 +1672,6 @@ static int __init m66592_probe(struct platform_device *pdev)
 
 	init_controller(m66592);
 
-	ret = device_add(&m66592->gadget.dev);
-	if (ret) {
-		pr_err("device_add error (%d)\n", ret);
-		goto err_device_add;
-	}
-
 	ret = usb_add_gadget_udc(&pdev->dev, &m66592->gadget);
 	if (ret)
 		goto err_add_udc;
@@ -1688,9 +1680,6 @@ static int __init m66592_probe(struct platform_device *pdev)
 	return 0;
 
 err_add_udc:
-	device_del(&m66592->gadget.dev);
-
-err_device_add:
 	m66592_free_request(&m66592->ep[0].ep, m66592->ep0_req);
 
 clean_up3:
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 17/32] usb: gadget: mv_u3d_core: let udc-core manage gadget->dev
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:45     ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin-VuQAYsv1563Yd54FQh9/CA,
	gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	dahlmann.thomas-KvP5wT2u2U0,
	nicolas.ferre-AIFe0yeh4nAAvxtiuMwx3w,
	leoli-KZfg59tc24xl57MIdRCFDg, eric.y.miao-Re5JQEeQqe8AvxtiuMwx3w,
	linux-lFZ/pmaqli7XmaaqVzeoHQ,
	haojian.zhuang-Re5JQEeQqe8AvxtiuMwx3w,
	ben-linux-elnMNo+KYs3YtjvyW6yDsg,
	kgene.kim-Sze3O3UU22JBDgjK7y7TUQ,
	kuninori.morimoto.gx-zM6kxYcvzFBBDgjK7y7TUQ,
	yoshihiro.shimoda.uh-zM6kxYcvzFBBDgjK7y7TUQ,
	Linux OMAP Mailing List,
	linux-geode-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ,
	linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA, Felipe Balbi

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi-l0cyMroinI0@public.gmane.org>
---
 drivers/usb/gadget/mv_u3d_core.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/drivers/usb/gadget/mv_u3d_core.c b/drivers/usb/gadget/mv_u3d_core.c
index b5cea27..565addc 100644
--- a/drivers/usb/gadget/mv_u3d_core.c
+++ b/drivers/usb/gadget/mv_u3d_core.c
@@ -1792,8 +1792,6 @@ static int mv_u3d_remove(struct platform_device *dev)
 
 	clk_put(u3d->clk);
 
-	device_unregister(&u3d->gadget.dev);
-
 	platform_set_drvdata(dev, NULL);
 
 	kfree(u3d);
@@ -1957,15 +1955,11 @@ static int mv_u3d_probe(struct platform_device *dev)
 	u3d->gadget.speed = USB_SPEED_UNKNOWN;	/* speed */
 
 	/* the "gadget" abstracts/virtualizes the controller */
-	dev_set_name(&u3d->gadget.dev, "gadget");
 	u3d->gadget.dev.parent = &dev->dev;
 	u3d->gadget.dev.dma_mask = dev->dev.dma_mask;
 	u3d->gadget.dev.release = mv_u3d_gadget_release;
 	u3d->gadget.name = driver_name;		/* gadget name */

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

* [RFC/PATCH 17/32] usb: gadget: mv_u3d_core: let udc-core manage gadget->dev
@ 2013-01-24 15:45     ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/mv_u3d_core.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/drivers/usb/gadget/mv_u3d_core.c b/drivers/usb/gadget/mv_u3d_core.c
index b5cea27..565addc 100644
--- a/drivers/usb/gadget/mv_u3d_core.c
+++ b/drivers/usb/gadget/mv_u3d_core.c
@@ -1792,8 +1792,6 @@ static int mv_u3d_remove(struct platform_device *dev)
 
 	clk_put(u3d->clk);
 
-	device_unregister(&u3d->gadget.dev);
-
 	platform_set_drvdata(dev, NULL);
 
 	kfree(u3d);
@@ -1957,15 +1955,11 @@ static int mv_u3d_probe(struct platform_device *dev)
 	u3d->gadget.speed = USB_SPEED_UNKNOWN;	/* speed */
 
 	/* the "gadget" abstracts/virtualizes the controller */
-	dev_set_name(&u3d->gadget.dev, "gadget");
 	u3d->gadget.dev.parent = &dev->dev;
 	u3d->gadget.dev.dma_mask = dev->dev.dma_mask;
 	u3d->gadget.dev.release = mv_u3d_gadget_release;
 	u3d->gadget.name = driver_name;		/* gadget name */
-
-	retval = device_register(&u3d->gadget.dev);
-	if (retval)
-		goto err_register_gadget_device;
+	u3d->gadget.register_my_device = true;
 
 	mv_u3d_eps_init(u3d);
 
@@ -1991,8 +1985,6 @@ static int mv_u3d_probe(struct platform_device *dev)
 	return 0;
 
 err_unregister:
-	device_unregister(&u3d->gadget.dev);
-err_register_gadget_device:
 	free_irq(u3d->irq, &dev->dev);
 err_request_irq:
 err_get_irq:
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 17/32] usb: gadget: mv_u3d_core: let udc-core manage gadget->dev
@ 2013-01-24 15:45     ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/mv_u3d_core.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/drivers/usb/gadget/mv_u3d_core.c b/drivers/usb/gadget/mv_u3d_core.c
index b5cea27..565addc 100644
--- a/drivers/usb/gadget/mv_u3d_core.c
+++ b/drivers/usb/gadget/mv_u3d_core.c
@@ -1792,8 +1792,6 @@ static int mv_u3d_remove(struct platform_device *dev)
 
 	clk_put(u3d->clk);
 
-	device_unregister(&u3d->gadget.dev);
-
 	platform_set_drvdata(dev, NULL);
 
 	kfree(u3d);
@@ -1957,15 +1955,11 @@ static int mv_u3d_probe(struct platform_device *dev)
 	u3d->gadget.speed = USB_SPEED_UNKNOWN;	/* speed */
 
 	/* the "gadget" abstracts/virtualizes the controller */
-	dev_set_name(&u3d->gadget.dev, "gadget");
 	u3d->gadget.dev.parent = &dev->dev;
 	u3d->gadget.dev.dma_mask = dev->dev.dma_mask;
 	u3d->gadget.dev.release = mv_u3d_gadget_release;
 	u3d->gadget.name = driver_name;		/* gadget name */
-
-	retval = device_register(&u3d->gadget.dev);
-	if (retval)
-		goto err_register_gadget_device;
+	u3d->gadget.register_my_device = true;
 
 	mv_u3d_eps_init(u3d);
 
@@ -1991,8 +1985,6 @@ static int mv_u3d_probe(struct platform_device *dev)
 	return 0;
 
 err_unregister:
-	device_unregister(&u3d->gadget.dev);
-err_register_gadget_device:
 	free_irq(u3d->irq, &dev->dev);
 err_request_irq:
 err_get_irq:
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 18/32] usb: gadget: mv_u3d_core: fix a compile warning
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:45   ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin, gregkh, dahlmann.thomas, nicolas.ferre,
	leoli, eric.y.miao, linux, haojian.zhuang, ben-linux, kgene.kim,
	kuninori.morimoto.gx, yoshihiro.shimoda.uh,
	Linux OMAP Mailing List, linux-geode, linux-arm-kernel,
	linuxppc-dev, linux-samsung-soc, Felipe Balbi

Fix the following compile warning:

mv_u3d_core.c:1766:12: warning: 'mv_u3d_remove' \
	defined but not used [-Wunused-function]

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/mv_u3d_core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/gadget/mv_u3d_core.c b/drivers/usb/gadget/mv_u3d_core.c
index 565addc..734ade1 100644
--- a/drivers/usb/gadget/mv_u3d_core.c
+++ b/drivers/usb/gadget/mv_u3d_core.c
@@ -2072,7 +2072,7 @@ static void mv_u3d_shutdown(struct platform_device *dev)
 
 static struct platform_driver mv_u3d_driver = {
 	.probe		= mv_u3d_probe,
-	.remove		= __exit_p(mv_u3d_remove),
+	.remove		= mv_u3d_remove,
 	.shutdown	= mv_u3d_shutdown,
 	.driver		= {
 		.owner	= THIS_MODULE,
-- 
1.8.1.rc1.5.g7e0651a


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

* [RFC/PATCH 18/32] usb: gadget: mv_u3d_core: fix a compile warning
@ 2013-01-24 15:45   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

Fix the following compile warning:

mv_u3d_core.c:1766:12: warning: 'mv_u3d_remove' \
	defined but not used [-Wunused-function]

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/mv_u3d_core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/gadget/mv_u3d_core.c b/drivers/usb/gadget/mv_u3d_core.c
index 565addc..734ade1 100644
--- a/drivers/usb/gadget/mv_u3d_core.c
+++ b/drivers/usb/gadget/mv_u3d_core.c
@@ -2072,7 +2072,7 @@ static void mv_u3d_shutdown(struct platform_device *dev)
 
 static struct platform_driver mv_u3d_driver = {
 	.probe		= mv_u3d_probe,
-	.remove		= __exit_p(mv_u3d_remove),
+	.remove		= mv_u3d_remove,
 	.shutdown	= mv_u3d_shutdown,
 	.driver		= {
 		.owner	= THIS_MODULE,
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 18/32] usb: gadget: mv_u3d_core: fix a compile warning
@ 2013-01-24 15:45   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: linux-arm-kernel

Fix the following compile warning:

mv_u3d_core.c:1766:12: warning: 'mv_u3d_remove' \
	defined but not used [-Wunused-function]

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/mv_u3d_core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/gadget/mv_u3d_core.c b/drivers/usb/gadget/mv_u3d_core.c
index 565addc..734ade1 100644
--- a/drivers/usb/gadget/mv_u3d_core.c
+++ b/drivers/usb/gadget/mv_u3d_core.c
@@ -2072,7 +2072,7 @@ static void mv_u3d_shutdown(struct platform_device *dev)
 
 static struct platform_driver mv_u3d_driver = {
 	.probe		= mv_u3d_probe,
-	.remove		= __exit_p(mv_u3d_remove),
+	.remove		= mv_u3d_remove,
 	.shutdown	= mv_u3d_shutdown,
 	.driver		= {
 		.owner	= THIS_MODULE,
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 19/32] usb: gadget: mv_udc_core: let udc-core manage gadget->dev
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:45     ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin-VuQAYsv1563Yd54FQh9/CA,
	gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	dahlmann.thomas-KvP5wT2u2U0,
	nicolas.ferre-AIFe0yeh4nAAvxtiuMwx3w,
	leoli-KZfg59tc24xl57MIdRCFDg, eric.y.miao-Re5JQEeQqe8AvxtiuMwx3w,
	linux-lFZ/pmaqli7XmaaqVzeoHQ,
	haojian.zhuang-Re5JQEeQqe8AvxtiuMwx3w,
	ben-linux-elnMNo+KYs3YtjvyW6yDsg,
	kgene.kim-Sze3O3UU22JBDgjK7y7TUQ,
	kuninori.morimoto.gx-zM6kxYcvzFBBDgjK7y7TUQ,
	yoshihiro.shimoda.uh-zM6kxYcvzFBBDgjK7y7TUQ,
	Linux OMAP Mailing List,
	linux-geode-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ,
	linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA, Felipe Balbi

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi-l0cyMroinI0@public.gmane.org>
---
 drivers/usb/gadget/mv_udc_core.c | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/drivers/usb/gadget/mv_udc_core.c b/drivers/usb/gadget/mv_udc_core.c
index 67d72f9..60741af 100644
--- a/drivers/usb/gadget/mv_udc_core.c
+++ b/drivers/usb/gadget/mv_udc_core.c
@@ -2138,8 +2138,6 @@ static int mv_udc_remove(struct platform_device *pdev)
 
 	mv_udc_disable(udc);
 
-	device_unregister(&udc->gadget.dev);
-
 	/* free dev, wait for the release() finished */
 	wait_for_completion(udc->done);
 
@@ -2311,15 +2309,11 @@ static int mv_udc_probe(struct platform_device *pdev)
 	udc->gadget.max_speed = USB_SPEED_HIGH;	/* support dual speed */
 
 	/* the "gadget" abstracts/virtualizes the controller */
-	dev_set_name(&udc->gadget.dev, "gadget");
 	udc->gadget.dev.parent = &pdev->dev;
 	udc->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	udc->gadget.dev.release = gadget_release;
 	udc->gadget.name = driver_name;		/* gadget name */
-
-	retval = device_register(&udc->gadget.dev);
-	if (retval)
-		goto err_destroy_dma;
+	udc->gadget.register_my_device = true;
 
 	eps_init(udc);
 
@@ -2342,7 +2336,7 @@ static int mv_udc_probe(struct platform_device *pdev)
 		if (!udc->qwork) {
 			dev_err(&pdev->dev, "cannot create workqueue\n");
 			retval = -ENOMEM;
-			goto err_unregister;
+			goto err_destroy_dma;
 		}
 
 		INIT_WORK(&udc->vbus_work, mv_udc_vbus_work);
@@ -2370,8 +2364,6 @@ static int mv_udc_probe(struct platform_device *pdev)
 
 err_create_workqueue:
 	destroy_workqueue(udc->qwork);
-err_unregister:
-	device_unregister(&udc->gadget.dev);
 err_destroy_dma:
 	dma_pool_destroy(udc->dtd_pool);
 err_free_dma:
-- 
1.8.1.rc1.5.g7e0651a

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* [RFC/PATCH 19/32] usb: gadget: mv_udc_core: let udc-core manage gadget->dev
@ 2013-01-24 15:45     ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/mv_udc_core.c | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/drivers/usb/gadget/mv_udc_core.c b/drivers/usb/gadget/mv_udc_core.c
index 67d72f9..60741af 100644
--- a/drivers/usb/gadget/mv_udc_core.c
+++ b/drivers/usb/gadget/mv_udc_core.c
@@ -2138,8 +2138,6 @@ static int mv_udc_remove(struct platform_device *pdev)
 
 	mv_udc_disable(udc);
 
-	device_unregister(&udc->gadget.dev);
-
 	/* free dev, wait for the release() finished */
 	wait_for_completion(udc->done);
 
@@ -2311,15 +2309,11 @@ static int mv_udc_probe(struct platform_device *pdev)
 	udc->gadget.max_speed = USB_SPEED_HIGH;	/* support dual speed */
 
 	/* the "gadget" abstracts/virtualizes the controller */
-	dev_set_name(&udc->gadget.dev, "gadget");
 	udc->gadget.dev.parent = &pdev->dev;
 	udc->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	udc->gadget.dev.release = gadget_release;
 	udc->gadget.name = driver_name;		/* gadget name */
-
-	retval = device_register(&udc->gadget.dev);
-	if (retval)
-		goto err_destroy_dma;
+	udc->gadget.register_my_device = true;
 
 	eps_init(udc);
 
@@ -2342,7 +2336,7 @@ static int mv_udc_probe(struct platform_device *pdev)
 		if (!udc->qwork) {
 			dev_err(&pdev->dev, "cannot create workqueue\n");
 			retval = -ENOMEM;
-			goto err_unregister;
+			goto err_destroy_dma;
 		}
 
 		INIT_WORK(&udc->vbus_work, mv_udc_vbus_work);
@@ -2370,8 +2364,6 @@ static int mv_udc_probe(struct platform_device *pdev)
 
 err_create_workqueue:
 	destroy_workqueue(udc->qwork);
-err_unregister:
-	device_unregister(&udc->gadget.dev);
 err_destroy_dma:
 	dma_pool_destroy(udc->dtd_pool);
 err_free_dma:
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 19/32] usb: gadget: mv_udc_core: let udc-core manage gadget->dev
@ 2013-01-24 15:45     ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/mv_udc_core.c | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/drivers/usb/gadget/mv_udc_core.c b/drivers/usb/gadget/mv_udc_core.c
index 67d72f9..60741af 100644
--- a/drivers/usb/gadget/mv_udc_core.c
+++ b/drivers/usb/gadget/mv_udc_core.c
@@ -2138,8 +2138,6 @@ static int mv_udc_remove(struct platform_device *pdev)
 
 	mv_udc_disable(udc);
 
-	device_unregister(&udc->gadget.dev);
-
 	/* free dev, wait for the release() finished */
 	wait_for_completion(udc->done);
 
@@ -2311,15 +2309,11 @@ static int mv_udc_probe(struct platform_device *pdev)
 	udc->gadget.max_speed = USB_SPEED_HIGH;	/* support dual speed */
 
 	/* the "gadget" abstracts/virtualizes the controller */
-	dev_set_name(&udc->gadget.dev, "gadget");
 	udc->gadget.dev.parent = &pdev->dev;
 	udc->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	udc->gadget.dev.release = gadget_release;
 	udc->gadget.name = driver_name;		/* gadget name */
-
-	retval = device_register(&udc->gadget.dev);
-	if (retval)
-		goto err_destroy_dma;
+	udc->gadget.register_my_device = true;
 
 	eps_init(udc);
 
@@ -2342,7 +2336,7 @@ static int mv_udc_probe(struct platform_device *pdev)
 		if (!udc->qwork) {
 			dev_err(&pdev->dev, "cannot create workqueue\n");
 			retval = -ENOMEM;
-			goto err_unregister;
+			goto err_destroy_dma;
 		}
 
 		INIT_WORK(&udc->vbus_work, mv_udc_vbus_work);
@@ -2370,8 +2364,6 @@ static int mv_udc_probe(struct platform_device *pdev)
 
 err_create_workqueue:
 	destroy_workqueue(udc->qwork);
-err_unregister:
-	device_unregister(&udc->gadget.dev);
 err_destroy_dma:
 	dma_pool_destroy(udc->dtd_pool);
 err_free_dma:
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 20/32] usb: gadget: net2272: let udc-core manage gadget->dev
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:45     ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin-VuQAYsv1563Yd54FQh9/CA,
	gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	dahlmann.thomas-KvP5wT2u2U0,
	nicolas.ferre-AIFe0yeh4nAAvxtiuMwx3w,
	leoli-KZfg59tc24xl57MIdRCFDg, eric.y.miao-Re5JQEeQqe8AvxtiuMwx3w,
	linux-lFZ/pmaqli7XmaaqVzeoHQ,
	haojian.zhuang-Re5JQEeQqe8AvxtiuMwx3w,
	ben-linux-elnMNo+KYs3YtjvyW6yDsg,
	kgene.kim-Sze3O3UU22JBDgjK7y7TUQ,
	kuninori.morimoto.gx-zM6kxYcvzFBBDgjK7y7TUQ,
	yoshihiro.shimoda.uh-zM6kxYcvzFBBDgjK7y7TUQ,
	Linux OMAP Mailing List,
	linux-geode-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ,
	linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA, Felipe Balbi

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi-l0cyMroinI0@public.gmane.org>
---
 drivers/usb/gadget/net2272.c | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/drivers/usb/gadget/net2272.c b/drivers/usb/gadget/net2272.c
index d226058..635248f 100644
--- a/drivers/usb/gadget/net2272.c
+++ b/drivers/usb/gadget/net2272.c
@@ -2209,7 +2209,6 @@ net2272_remove(struct net2272 *dev)
 	free_irq(dev->irq, dev);
 	iounmap(dev->base_addr);
 
-	device_unregister(&dev->gadget.dev);
 	device_remove_file(dev->dev, &dev_attr_registers);
 
 	dev_info(dev->dev, "unbind\n");
@@ -2236,11 +2235,11 @@ static struct net2272 *net2272_probe_init(struct device *dev, unsigned int irq)
 	ret->gadget.max_speed = USB_SPEED_HIGH;
 
 	/* the "gadget" abstracts/virtualizes the controller */
-	dev_set_name(&ret->gadget.dev, "gadget");
 	ret->gadget.dev.parent = dev;
 	ret->gadget.dev.dma_mask = dev->dma_mask;
 	ret->gadget.dev.release = net2272_gadget_release;
 	ret->gadget.name = driver_name;
+	ret->gadget.register_my_device = true;
 
 	return ret;
 }
@@ -2275,12 +2274,9 @@ net2272_probe_fin(struct net2272 *dev, unsigned int irqflags)
 		dma_mode_string());
 	dev_info(dev->dev, "version: %s\n", driver_vers);
 
-	ret = device_register(&dev->gadget.dev);
-	if (ret)
-		goto err_irq;
 	ret = device_create_file(dev->dev, &dev_attr_registers);
 	if (ret)
-		goto err_dev_reg;
+		goto err_irq;
 
 	ret = usb_add_gadget_udc(dev->dev, &dev->gadget);
 	if (ret)
@@ -2290,8 +2286,6 @@ net2272_probe_fin(struct net2272 *dev, unsigned int irqflags)
 
 err_add_udc:
 	device_remove_file(dev->dev, &dev_attr_registers);
- err_dev_reg:
-	device_unregister(&dev->gadget.dev);
  err_irq:
 	free_irq(dev->irq, dev);
  err:
-- 
1.8.1.rc1.5.g7e0651a

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* [RFC/PATCH 20/32] usb: gadget: net2272: let udc-core manage gadget->dev
@ 2013-01-24 15:45     ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/net2272.c | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/drivers/usb/gadget/net2272.c b/drivers/usb/gadget/net2272.c
index d226058..635248f 100644
--- a/drivers/usb/gadget/net2272.c
+++ b/drivers/usb/gadget/net2272.c
@@ -2209,7 +2209,6 @@ net2272_remove(struct net2272 *dev)
 	free_irq(dev->irq, dev);
 	iounmap(dev->base_addr);
 
-	device_unregister(&dev->gadget.dev);
 	device_remove_file(dev->dev, &dev_attr_registers);
 
 	dev_info(dev->dev, "unbind\n");
@@ -2236,11 +2235,11 @@ static struct net2272 *net2272_probe_init(struct device *dev, unsigned int irq)
 	ret->gadget.max_speed = USB_SPEED_HIGH;
 
 	/* the "gadget" abstracts/virtualizes the controller */
-	dev_set_name(&ret->gadget.dev, "gadget");
 	ret->gadget.dev.parent = dev;
 	ret->gadget.dev.dma_mask = dev->dma_mask;
 	ret->gadget.dev.release = net2272_gadget_release;
 	ret->gadget.name = driver_name;
+	ret->gadget.register_my_device = true;
 
 	return ret;
 }
@@ -2275,12 +2274,9 @@ net2272_probe_fin(struct net2272 *dev, unsigned int irqflags)
 		dma_mode_string());
 	dev_info(dev->dev, "version: %s\n", driver_vers);
 
-	ret = device_register(&dev->gadget.dev);
-	if (ret)
-		goto err_irq;
 	ret = device_create_file(dev->dev, &dev_attr_registers);
 	if (ret)
-		goto err_dev_reg;
+		goto err_irq;
 
 	ret = usb_add_gadget_udc(dev->dev, &dev->gadget);
 	if (ret)
@@ -2290,8 +2286,6 @@ net2272_probe_fin(struct net2272 *dev, unsigned int irqflags)
 
 err_add_udc:
 	device_remove_file(dev->dev, &dev_attr_registers);
- err_dev_reg:
-	device_unregister(&dev->gadget.dev);
  err_irq:
 	free_irq(dev->irq, dev);
  err:
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 20/32] usb: gadget: net2272: let udc-core manage gadget->dev
@ 2013-01-24 15:45     ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/net2272.c | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/drivers/usb/gadget/net2272.c b/drivers/usb/gadget/net2272.c
index d226058..635248f 100644
--- a/drivers/usb/gadget/net2272.c
+++ b/drivers/usb/gadget/net2272.c
@@ -2209,7 +2209,6 @@ net2272_remove(struct net2272 *dev)
 	free_irq(dev->irq, dev);
 	iounmap(dev->base_addr);
 
-	device_unregister(&dev->gadget.dev);
 	device_remove_file(dev->dev, &dev_attr_registers);
 
 	dev_info(dev->dev, "unbind\n");
@@ -2236,11 +2235,11 @@ static struct net2272 *net2272_probe_init(struct device *dev, unsigned int irq)
 	ret->gadget.max_speed = USB_SPEED_HIGH;
 
 	/* the "gadget" abstracts/virtualizes the controller */
-	dev_set_name(&ret->gadget.dev, "gadget");
 	ret->gadget.dev.parent = dev;
 	ret->gadget.dev.dma_mask = dev->dma_mask;
 	ret->gadget.dev.release = net2272_gadget_release;
 	ret->gadget.name = driver_name;
+	ret->gadget.register_my_device = true;
 
 	return ret;
 }
@@ -2275,12 +2274,9 @@ net2272_probe_fin(struct net2272 *dev, unsigned int irqflags)
 		dma_mode_string());
 	dev_info(dev->dev, "version: %s\n", driver_vers);
 
-	ret = device_register(&dev->gadget.dev);
-	if (ret)
-		goto err_irq;
 	ret = device_create_file(dev->dev, &dev_attr_registers);
 	if (ret)
-		goto err_dev_reg;
+		goto err_irq;
 
 	ret = usb_add_gadget_udc(dev->dev, &dev->gadget);
 	if (ret)
@@ -2290,8 +2286,6 @@ net2272_probe_fin(struct net2272 *dev, unsigned int irqflags)
 
 err_add_udc:
 	device_remove_file(dev->dev, &dev_attr_registers);
- err_dev_reg:
-	device_unregister(&dev->gadget.dev);
  err_irq:
 	free_irq(dev->irq, dev);
  err:
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 21/32] usb: gadget: net2280: let udc-core manage gadget->dev
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:45   ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin, gregkh, dahlmann.thomas, nicolas.ferre,
	leoli, eric.y.miao, linux, haojian.zhuang, ben-linux, kgene.kim,
	kuninori.morimoto.gx, yoshihiro.shimoda.uh,
	Linux OMAP Mailing List, linux-geode, linux-arm-kernel,
	linuxppc-dev, linux-samsung-soc, Felipe Balbi

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/net2280.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/usb/gadget/net2280.c b/drivers/usb/gadget/net2280.c
index 708c0b5..630f715 100644
--- a/drivers/usb/gadget/net2280.c
+++ b/drivers/usb/gadget/net2280.c
@@ -2667,7 +2667,6 @@ static void net2280_remove (struct pci_dev *pdev)
 				pci_resource_len (pdev, 0));
 	if (dev->enabled)
 		pci_disable_device (pdev);
-	device_unregister (&dev->gadget.dev);
 	device_remove_file (&pdev->dev, &dev_attr_registers);
 	pci_set_drvdata (pdev, NULL);
 
@@ -2699,11 +2698,11 @@ static int net2280_probe (struct pci_dev *pdev, const struct pci_device_id *id)
 	dev->gadget.max_speed = USB_SPEED_HIGH;
 
 	/* the "gadget" abstracts/virtualizes the controller */
-	dev_set_name(&dev->gadget.dev, "gadget");
 	dev->gadget.dev.parent = &pdev->dev;
 	dev->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	dev->gadget.dev.release = gadget_release;
 	dev->gadget.name = driver_name;
+	dev->gadget.register_my_device = true;
 
 	/* now all the pci goodies ... */
 	if (pci_enable_device (pdev) < 0) {
@@ -2811,8 +2810,6 @@ static int net2280_probe (struct pci_dev *pdev, const struct pci_device_id *id)
 			use_dma
 				? (use_dma_chaining ? "chaining" : "enabled")
 				: "disabled");
-	retval = device_register (&dev->gadget.dev);
-	if (retval) goto done;
 	retval = device_create_file (&pdev->dev, &dev_attr_registers);
 	if (retval) goto done;
 
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 21/32] usb: gadget: net2280: let udc-core manage gadget->dev
@ 2013-01-24 15:45   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/net2280.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/usb/gadget/net2280.c b/drivers/usb/gadget/net2280.c
index 708c0b5..630f715 100644
--- a/drivers/usb/gadget/net2280.c
+++ b/drivers/usb/gadget/net2280.c
@@ -2667,7 +2667,6 @@ static void net2280_remove (struct pci_dev *pdev)
 				pci_resource_len (pdev, 0));
 	if (dev->enabled)
 		pci_disable_device (pdev);
-	device_unregister (&dev->gadget.dev);
 	device_remove_file (&pdev->dev, &dev_attr_registers);
 	pci_set_drvdata (pdev, NULL);
 
@@ -2699,11 +2698,11 @@ static int net2280_probe (struct pci_dev *pdev, const struct pci_device_id *id)
 	dev->gadget.max_speed = USB_SPEED_HIGH;
 
 	/* the "gadget" abstracts/virtualizes the controller */
-	dev_set_name(&dev->gadget.dev, "gadget");
 	dev->gadget.dev.parent = &pdev->dev;
 	dev->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	dev->gadget.dev.release = gadget_release;
 	dev->gadget.name = driver_name;
+	dev->gadget.register_my_device = true;
 
 	/* now all the pci goodies ... */
 	if (pci_enable_device (pdev) < 0) {
@@ -2811,8 +2810,6 @@ static int net2280_probe (struct pci_dev *pdev, const struct pci_device_id *id)
 			use_dma
 				? (use_dma_chaining ? "chaining" : "enabled")
 				: "disabled");
-	retval = device_register (&dev->gadget.dev);
-	if (retval) goto done;
 	retval = device_create_file (&pdev->dev, &dev_attr_registers);
 	if (retval) goto done;
 
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 21/32] usb: gadget: net2280: let udc-core manage gadget->dev
@ 2013-01-24 15:45   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:45 UTC (permalink / raw)
  To: linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/net2280.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/usb/gadget/net2280.c b/drivers/usb/gadget/net2280.c
index 708c0b5..630f715 100644
--- a/drivers/usb/gadget/net2280.c
+++ b/drivers/usb/gadget/net2280.c
@@ -2667,7 +2667,6 @@ static void net2280_remove (struct pci_dev *pdev)
 				pci_resource_len (pdev, 0));
 	if (dev->enabled)
 		pci_disable_device (pdev);
-	device_unregister (&dev->gadget.dev);
 	device_remove_file (&pdev->dev, &dev_attr_registers);
 	pci_set_drvdata (pdev, NULL);
 
@@ -2699,11 +2698,11 @@ static int net2280_probe (struct pci_dev *pdev, const struct pci_device_id *id)
 	dev->gadget.max_speed = USB_SPEED_HIGH;
 
 	/* the "gadget" abstracts/virtualizes the controller */
-	dev_set_name(&dev->gadget.dev, "gadget");
 	dev->gadget.dev.parent = &pdev->dev;
 	dev->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	dev->gadget.dev.release = gadget_release;
 	dev->gadget.name = driver_name;
+	dev->gadget.register_my_device = true;
 
 	/* now all the pci goodies ... */
 	if (pci_enable_device (pdev) < 0) {
@@ -2811,8 +2810,6 @@ static int net2280_probe (struct pci_dev *pdev, const struct pci_device_id *id)
 			use_dma
 				? (use_dma_chaining ? "chaining" : "enabled")
 				: "disabled");
-	retval = device_register (&dev->gadget.dev);
-	if (retval) goto done;
 	retval = device_create_file (&pdev->dev, &dev_attr_registers);
 	if (retval) goto done;
 
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 22/32] usb: gadget: pch_udc: let udc-core manage gadget->dev
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:46   ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin, gregkh, dahlmann.thomas, nicolas.ferre,
	leoli, eric.y.miao, linux, haojian.zhuang, ben-linux, kgene.kim,
	kuninori.morimoto.gx, yoshihiro.shimoda.uh,
	Linux OMAP Mailing List, linux-geode, linux-arm-kernel,
	linuxppc-dev, linux-samsung-soc, Felipe Balbi

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/pch_udc.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/drivers/usb/gadget/pch_udc.c b/drivers/usb/gadget/pch_udc.c
index a787a8e..7032145 100644
--- a/drivers/usb/gadget/pch_udc.c
+++ b/drivers/usb/gadget/pch_udc.c
@@ -358,7 +358,6 @@ struct pch_udc_dev {
 			prot_stall:1,
 			irq_registered:1,
 			mem_region:1,
-			registered:1,
 			suspended:1,
 			connected:1,
 			vbus_session:1,
@@ -3078,8 +3077,6 @@ static void pch_udc_remove(struct pci_dev *pdev)
 				   pci_resource_len(pdev, PCH_UDC_PCI_BAR));
 	if (dev->active)
 		pci_disable_device(pdev);
-	if (dev->registered)
-		device_unregister(&dev->gadget.dev);
 	kfree(dev);
 	pci_set_drvdata(pdev, NULL);
 }
@@ -3196,17 +3193,12 @@ static int pch_udc_probe(struct pci_dev *pdev,
 	if (retval)
 		goto finished;
 
-	dev_set_name(&dev->gadget.dev, "gadget");
 	dev->gadget.dev.parent = &pdev->dev;
 	dev->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	dev->gadget.dev.release = gadget_release;
 	dev->gadget.name = KBUILD_MODNAME;
 	dev->gadget.max_speed = USB_SPEED_HIGH;
-
-	retval = device_register(&dev->gadget.dev);
-	if (retval)
-		goto finished;
-	dev->registered = 1;
+	dev->gadget.register_my_device = true;
 
 	/* Put the device in disconnected state till a driver is bound */
 	pch_udc_set_disconnect(dev);
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 22/32] usb: gadget: pch_udc: let udc-core manage gadget->dev
@ 2013-01-24 15:46   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/pch_udc.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/drivers/usb/gadget/pch_udc.c b/drivers/usb/gadget/pch_udc.c
index a787a8e..7032145 100644
--- a/drivers/usb/gadget/pch_udc.c
+++ b/drivers/usb/gadget/pch_udc.c
@@ -358,7 +358,6 @@ struct pch_udc_dev {
 			prot_stall:1,
 			irq_registered:1,
 			mem_region:1,
-			registered:1,
 			suspended:1,
 			connected:1,
 			vbus_session:1,
@@ -3078,8 +3077,6 @@ static void pch_udc_remove(struct pci_dev *pdev)
 				   pci_resource_len(pdev, PCH_UDC_PCI_BAR));
 	if (dev->active)
 		pci_disable_device(pdev);
-	if (dev->registered)
-		device_unregister(&dev->gadget.dev);
 	kfree(dev);
 	pci_set_drvdata(pdev, NULL);
 }
@@ -3196,17 +3193,12 @@ static int pch_udc_probe(struct pci_dev *pdev,
 	if (retval)
 		goto finished;
 
-	dev_set_name(&dev->gadget.dev, "gadget");
 	dev->gadget.dev.parent = &pdev->dev;
 	dev->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	dev->gadget.dev.release = gadget_release;
 	dev->gadget.name = KBUILD_MODNAME;
 	dev->gadget.max_speed = USB_SPEED_HIGH;
-
-	retval = device_register(&dev->gadget.dev);
-	if (retval)
-		goto finished;
-	dev->registered = 1;
+	dev->gadget.register_my_device = true;
 
 	/* Put the device in disconnected state till a driver is bound */
 	pch_udc_set_disconnect(dev);
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 22/32] usb: gadget: pch_udc: let udc-core manage gadget->dev
@ 2013-01-24 15:46   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/pch_udc.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/drivers/usb/gadget/pch_udc.c b/drivers/usb/gadget/pch_udc.c
index a787a8e..7032145 100644
--- a/drivers/usb/gadget/pch_udc.c
+++ b/drivers/usb/gadget/pch_udc.c
@@ -358,7 +358,6 @@ struct pch_udc_dev {
 			prot_stall:1,
 			irq_registered:1,
 			mem_region:1,
-			registered:1,
 			suspended:1,
 			connected:1,
 			vbus_session:1,
@@ -3078,8 +3077,6 @@ static void pch_udc_remove(struct pci_dev *pdev)
 				   pci_resource_len(pdev, PCH_UDC_PCI_BAR));
 	if (dev->active)
 		pci_disable_device(pdev);
-	if (dev->registered)
-		device_unregister(&dev->gadget.dev);
 	kfree(dev);
 	pci_set_drvdata(pdev, NULL);
 }
@@ -3196,17 +3193,12 @@ static int pch_udc_probe(struct pci_dev *pdev,
 	if (retval)
 		goto finished;
 
-	dev_set_name(&dev->gadget.dev, "gadget");
 	dev->gadget.dev.parent = &pdev->dev;
 	dev->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	dev->gadget.dev.release = gadget_release;
 	dev->gadget.name = KBUILD_MODNAME;
 	dev->gadget.max_speed = USB_SPEED_HIGH;
-
-	retval = device_register(&dev->gadget.dev);
-	if (retval)
-		goto finished;
-	dev->registered = 1;
+	dev->gadget.register_my_device = true;
 
 	/* Put the device in disconnected state till a driver is bound */
 	pch_udc_set_disconnect(dev);
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 23/32] usb: gadget: r8a66597-udc: let udc-core manage gadget->dev
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:46   ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin, gregkh, dahlmann.thomas, nicolas.ferre,
	leoli, eric.y.miao, linux, haojian.zhuang, ben-linux, kgene.kim,
	kuninori.morimoto.gx, yoshihiro.shimoda.uh,
	Linux OMAP Mailing List, linux-geode, linux-arm-kernel,
	linuxppc-dev, linux-samsung-soc, Felipe Balbi

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/r8a66597-udc.c | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/drivers/usb/gadget/r8a66597-udc.c b/drivers/usb/gadget/r8a66597-udc.c
index 5a80751..40ef4bd 100644
--- a/drivers/usb/gadget/r8a66597-udc.c
+++ b/drivers/usb/gadget/r8a66597-udc.c
@@ -1837,7 +1837,6 @@ static int __exit r8a66597_remove(struct platform_device *pdev)
 		clk_put(r8a66597->clk);
 	}
 
-	device_unregister(&r8a66597->gadget.dev);
 	kfree(r8a66597);
 	return 0;
 }
@@ -1915,17 +1914,12 @@ static int __init r8a66597_probe(struct platform_device *pdev)
 	r8a66597->irq_sense_low = irq_trigger == IRQF_TRIGGER_LOW;
 
 	r8a66597->gadget.ops = &r8a66597_gadget_ops;
-	dev_set_name(&r8a66597->gadget.dev, "gadget");
 	r8a66597->gadget.max_speed = USB_SPEED_HIGH;
 	r8a66597->gadget.dev.parent = &pdev->dev;
 	r8a66597->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	r8a66597->gadget.dev.release = pdev->dev.release;
 	r8a66597->gadget.name = udc_name;
-	ret = device_register(&r8a66597->gadget.dev);
-	if (ret < 0) {
-		dev_err(&pdev->dev, "device_register failed\n");
-		goto clean_up;
-	}
+	r8a66597->gadget.register_my_device = true;
 
 	init_timer(&r8a66597->timer);
 	r8a66597->timer.function = r8a66597_timer;
@@ -1939,7 +1933,7 @@ static int __init r8a66597_probe(struct platform_device *pdev)
 			dev_err(&pdev->dev, "cannot get clock \"%s\"\n",
 				clk_name);
 			ret = PTR_ERR(r8a66597->clk);
-			goto clean_up_dev;
+			goto clean_up;
 		}
 		clk_enable(r8a66597->clk);
 	}
@@ -2007,8 +2001,6 @@ clean_up2:
 		clk_disable(r8a66597->clk);
 		clk_put(r8a66597->clk);
 	}
-clean_up_dev:
-	device_unregister(&r8a66597->gadget.dev);
 clean_up:
 	if (r8a66597) {
 		if (r8a66597->sudmac_reg)
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 23/32] usb: gadget: r8a66597-udc: let udc-core manage gadget->dev
@ 2013-01-24 15:46   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/r8a66597-udc.c | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/drivers/usb/gadget/r8a66597-udc.c b/drivers/usb/gadget/r8a66597-udc.c
index 5a80751..40ef4bd 100644
--- a/drivers/usb/gadget/r8a66597-udc.c
+++ b/drivers/usb/gadget/r8a66597-udc.c
@@ -1837,7 +1837,6 @@ static int __exit r8a66597_remove(struct platform_device *pdev)
 		clk_put(r8a66597->clk);
 	}
 
-	device_unregister(&r8a66597->gadget.dev);
 	kfree(r8a66597);
 	return 0;
 }
@@ -1915,17 +1914,12 @@ static int __init r8a66597_probe(struct platform_device *pdev)
 	r8a66597->irq_sense_low = irq_trigger == IRQF_TRIGGER_LOW;
 
 	r8a66597->gadget.ops = &r8a66597_gadget_ops;
-	dev_set_name(&r8a66597->gadget.dev, "gadget");
 	r8a66597->gadget.max_speed = USB_SPEED_HIGH;
 	r8a66597->gadget.dev.parent = &pdev->dev;
 	r8a66597->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	r8a66597->gadget.dev.release = pdev->dev.release;
 	r8a66597->gadget.name = udc_name;
-	ret = device_register(&r8a66597->gadget.dev);
-	if (ret < 0) {
-		dev_err(&pdev->dev, "device_register failed\n");
-		goto clean_up;
-	}
+	r8a66597->gadget.register_my_device = true;
 
 	init_timer(&r8a66597->timer);
 	r8a66597->timer.function = r8a66597_timer;
@@ -1939,7 +1933,7 @@ static int __init r8a66597_probe(struct platform_device *pdev)
 			dev_err(&pdev->dev, "cannot get clock \"%s\"\n",
 				clk_name);
 			ret = PTR_ERR(r8a66597->clk);
-			goto clean_up_dev;
+			goto clean_up;
 		}
 		clk_enable(r8a66597->clk);
 	}
@@ -2007,8 +2001,6 @@ clean_up2:
 		clk_disable(r8a66597->clk);
 		clk_put(r8a66597->clk);
 	}
-clean_up_dev:
-	device_unregister(&r8a66597->gadget.dev);
 clean_up:
 	if (r8a66597) {
 		if (r8a66597->sudmac_reg)
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 23/32] usb: gadget: r8a66597-udc: let udc-core manage gadget->dev
@ 2013-01-24 15:46   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/r8a66597-udc.c | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/drivers/usb/gadget/r8a66597-udc.c b/drivers/usb/gadget/r8a66597-udc.c
index 5a80751..40ef4bd 100644
--- a/drivers/usb/gadget/r8a66597-udc.c
+++ b/drivers/usb/gadget/r8a66597-udc.c
@@ -1837,7 +1837,6 @@ static int __exit r8a66597_remove(struct platform_device *pdev)
 		clk_put(r8a66597->clk);
 	}
 
-	device_unregister(&r8a66597->gadget.dev);
 	kfree(r8a66597);
 	return 0;
 }
@@ -1915,17 +1914,12 @@ static int __init r8a66597_probe(struct platform_device *pdev)
 	r8a66597->irq_sense_low = irq_trigger == IRQF_TRIGGER_LOW;
 
 	r8a66597->gadget.ops = &r8a66597_gadget_ops;
-	dev_set_name(&r8a66597->gadget.dev, "gadget");
 	r8a66597->gadget.max_speed = USB_SPEED_HIGH;
 	r8a66597->gadget.dev.parent = &pdev->dev;
 	r8a66597->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	r8a66597->gadget.dev.release = pdev->dev.release;
 	r8a66597->gadget.name = udc_name;
-	ret = device_register(&r8a66597->gadget.dev);
-	if (ret < 0) {
-		dev_err(&pdev->dev, "device_register failed\n");
-		goto clean_up;
-	}
+	r8a66597->gadget.register_my_device = true;
 
 	init_timer(&r8a66597->timer);
 	r8a66597->timer.function = r8a66597_timer;
@@ -1939,7 +1933,7 @@ static int __init r8a66597_probe(struct platform_device *pdev)
 			dev_err(&pdev->dev, "cannot get clock \"%s\"\n",
 				clk_name);
 			ret = PTR_ERR(r8a66597->clk);
-			goto clean_up_dev;
+			goto clean_up;
 		}
 		clk_enable(r8a66597->clk);
 	}
@@ -2007,8 +2001,6 @@ clean_up2:
 		clk_disable(r8a66597->clk);
 		clk_put(r8a66597->clk);
 	}
-clean_up_dev:
-	device_unregister(&r8a66597->gadget.dev);
 clean_up:
 	if (r8a66597) {
 		if (r8a66597->sudmac_reg)
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 24/32] usb: gadget: s3c-hsotg: let udc-core manage gadget->dev
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:46   ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin, gregkh, dahlmann.thomas, nicolas.ferre,
	leoli, eric.y.miao, linux, haojian.zhuang, ben-linux, kgene.kim,
	kuninori.morimoto.gx, yoshihiro.shimoda.uh,
	Linux OMAP Mailing List, linux-geode, linux-arm-kernel,
	linuxppc-dev, linux-samsung-soc, Felipe Balbi

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/s3c-hsotg.c | 14 +-------------
 1 file changed, 1 insertion(+), 13 deletions(-)

diff --git a/drivers/usb/gadget/s3c-hsotg.c b/drivers/usb/gadget/s3c-hsotg.c
index 833d85b..bd8292d 100644
--- a/drivers/usb/gadget/s3c-hsotg.c
+++ b/drivers/usb/gadget/s3c-hsotg.c
@@ -3552,17 +3552,13 @@ static int s3c_hsotg_probe(struct platform_device *pdev)
 
 	dev_info(dev, "regs %p, irq %d\n", hsotg->regs, hsotg->irq);
 
-	device_initialize(&hsotg->gadget.dev);
-
-	dev_set_name(&hsotg->gadget.dev, "gadget");
-
 	hsotg->gadget.max_speed = USB_SPEED_HIGH;
 	hsotg->gadget.ops = &s3c_hsotg_gadget_ops;
 	hsotg->gadget.name = dev_name(dev);
-
 	hsotg->gadget.dev.parent = dev;
 	hsotg->gadget.dev.dma_mask = dev->dma_mask;
 	hsotg->gadget.dev.release = s3c_hsotg_release;
+	hsotg->gadget.register_my_device = true;
 
 	/* reset the system */
 
@@ -3643,12 +3639,6 @@ static int s3c_hsotg_probe(struct platform_device *pdev)
 
 	s3c_hsotg_phy_disable(hsotg);
 
-	ret = device_add(&hsotg->gadget.dev);
-	if (ret) {
-		put_device(&hsotg->gadget.dev);
-		goto err_ep_mem;
-	}
-
 	ret = usb_add_gadget_udc(&pdev->dev, &hsotg->gadget);
 	if (ret)
 		goto err_ep_mem;
@@ -3687,10 +3677,8 @@ static int s3c_hsotg_remove(struct platform_device *pdev)
 	}
 
 	s3c_hsotg_phy_disable(hsotg);
-
 	clk_disable_unprepare(hsotg->clk);
 
-	device_unregister(&hsotg->gadget.dev);
 	return 0;
 }
 
-- 
1.8.1.rc1.5.g7e0651a


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

* [RFC/PATCH 24/32] usb: gadget: s3c-hsotg: let udc-core manage gadget->dev
@ 2013-01-24 15:46   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/s3c-hsotg.c | 14 +-------------
 1 file changed, 1 insertion(+), 13 deletions(-)

diff --git a/drivers/usb/gadget/s3c-hsotg.c b/drivers/usb/gadget/s3c-hsotg.c
index 833d85b..bd8292d 100644
--- a/drivers/usb/gadget/s3c-hsotg.c
+++ b/drivers/usb/gadget/s3c-hsotg.c
@@ -3552,17 +3552,13 @@ static int s3c_hsotg_probe(struct platform_device *pdev)
 
 	dev_info(dev, "regs %p, irq %d\n", hsotg->regs, hsotg->irq);
 
-	device_initialize(&hsotg->gadget.dev);
-
-	dev_set_name(&hsotg->gadget.dev, "gadget");
-
 	hsotg->gadget.max_speed = USB_SPEED_HIGH;
 	hsotg->gadget.ops = &s3c_hsotg_gadget_ops;
 	hsotg->gadget.name = dev_name(dev);
-
 	hsotg->gadget.dev.parent = dev;
 	hsotg->gadget.dev.dma_mask = dev->dma_mask;
 	hsotg->gadget.dev.release = s3c_hsotg_release;
+	hsotg->gadget.register_my_device = true;
 
 	/* reset the system */
 
@@ -3643,12 +3639,6 @@ static int s3c_hsotg_probe(struct platform_device *pdev)
 
 	s3c_hsotg_phy_disable(hsotg);
 
-	ret = device_add(&hsotg->gadget.dev);
-	if (ret) {
-		put_device(&hsotg->gadget.dev);
-		goto err_ep_mem;
-	}
-
 	ret = usb_add_gadget_udc(&pdev->dev, &hsotg->gadget);
 	if (ret)
 		goto err_ep_mem;
@@ -3687,10 +3677,8 @@ static int s3c_hsotg_remove(struct platform_device *pdev)
 	}
 
 	s3c_hsotg_phy_disable(hsotg);
-
 	clk_disable_unprepare(hsotg->clk);
 
-	device_unregister(&hsotg->gadget.dev);
 	return 0;
 }
 
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 24/32] usb: gadget: s3c-hsotg: let udc-core manage gadget->dev
@ 2013-01-24 15:46   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/s3c-hsotg.c | 14 +-------------
 1 file changed, 1 insertion(+), 13 deletions(-)

diff --git a/drivers/usb/gadget/s3c-hsotg.c b/drivers/usb/gadget/s3c-hsotg.c
index 833d85b..bd8292d 100644
--- a/drivers/usb/gadget/s3c-hsotg.c
+++ b/drivers/usb/gadget/s3c-hsotg.c
@@ -3552,17 +3552,13 @@ static int s3c_hsotg_probe(struct platform_device *pdev)
 
 	dev_info(dev, "regs %p, irq %d\n", hsotg->regs, hsotg->irq);
 
-	device_initialize(&hsotg->gadget.dev);
-
-	dev_set_name(&hsotg->gadget.dev, "gadget");
-
 	hsotg->gadget.max_speed = USB_SPEED_HIGH;
 	hsotg->gadget.ops = &s3c_hsotg_gadget_ops;
 	hsotg->gadget.name = dev_name(dev);
-
 	hsotg->gadget.dev.parent = dev;
 	hsotg->gadget.dev.dma_mask = dev->dma_mask;
 	hsotg->gadget.dev.release = s3c_hsotg_release;
+	hsotg->gadget.register_my_device = true;
 
 	/* reset the system */
 
@@ -3643,12 +3639,6 @@ static int s3c_hsotg_probe(struct platform_device *pdev)
 
 	s3c_hsotg_phy_disable(hsotg);
 
-	ret = device_add(&hsotg->gadget.dev);
-	if (ret) {
-		put_device(&hsotg->gadget.dev);
-		goto err_ep_mem;
-	}
-
 	ret = usb_add_gadget_udc(&pdev->dev, &hsotg->gadget);
 	if (ret)
 		goto err_ep_mem;
@@ -3687,10 +3677,8 @@ static int s3c_hsotg_remove(struct platform_device *pdev)
 	}
 
 	s3c_hsotg_phy_disable(hsotg);
-
 	clk_disable_unprepare(hsotg->clk);
 
-	device_unregister(&hsotg->gadget.dev);
 	return 0;
 }
 
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 25/32] usb: gadget: s3c-hsudc: let udc-core manage gadget->dev
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:46   ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin, gregkh, dahlmann.thomas, nicolas.ferre,
	leoli, eric.y.miao, linux, haojian.zhuang, ben-linux, kgene.kim,
	kuninori.morimoto.gx, yoshihiro.shimoda.uh,
	Linux OMAP Mailing List, linux-geode, linux-arm-kernel,
	linuxppc-dev, linux-samsung-soc, Felipe Balbi

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/s3c-hsudc.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

diff --git a/drivers/usb/gadget/s3c-hsudc.c b/drivers/usb/gadget/s3c-hsudc.c
index 4a3d620..dee6810 100644
--- a/drivers/usb/gadget/s3c-hsudc.c
+++ b/drivers/usb/gadget/s3c-hsudc.c
@@ -1304,18 +1304,16 @@ static int s3c_hsudc_probe(struct platform_device *pdev)
 
 	spin_lock_init(&hsudc->lock);
 
-	dev_set_name(&hsudc->gadget.dev, "gadget");
-
 	hsudc->gadget.max_speed = USB_SPEED_HIGH;
 	hsudc->gadget.ops = &s3c_hsudc_gadget_ops;
 	hsudc->gadget.name = dev_name(dev);
 	hsudc->gadget.dev.parent = dev;
 	hsudc->gadget.dev.dma_mask = dev->dma_mask;
 	hsudc->gadget.ep0 = &hsudc->ep[0].ep;
-
 	hsudc->gadget.is_otg = 0;
 	hsudc->gadget.is_a_peripheral = 0;
 	hsudc->gadget.speed = USB_SPEED_UNKNOWN;
+	hsudc->gadget.register_my_device = true;
 
 	s3c_hsudc_setup_ep(hsudc);
 
@@ -1346,12 +1344,6 @@ static int s3c_hsudc_probe(struct platform_device *pdev)
 	disable_irq(hsudc->irq);
 	local_irq_enable();
 
-	ret = device_register(&hsudc->gadget.dev);
-	if (ret) {
-		put_device(&hsudc->gadget.dev);
-		goto err_add_device;
-	}
-
 	ret = usb_add_gadget_udc(&pdev->dev, &hsudc->gadget);
 	if (ret)
 		goto err_add_udc;
@@ -1360,7 +1352,6 @@ static int s3c_hsudc_probe(struct platform_device *pdev)
 
 	return 0;
 err_add_udc:
-	device_unregister(&hsudc->gadget.dev);
 err_add_device:
 	clk_disable(hsudc->uclk);
 err_res:
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 25/32] usb: gadget: s3c-hsudc: let udc-core manage gadget->dev
@ 2013-01-24 15:46   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/s3c-hsudc.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

diff --git a/drivers/usb/gadget/s3c-hsudc.c b/drivers/usb/gadget/s3c-hsudc.c
index 4a3d620..dee6810 100644
--- a/drivers/usb/gadget/s3c-hsudc.c
+++ b/drivers/usb/gadget/s3c-hsudc.c
@@ -1304,18 +1304,16 @@ static int s3c_hsudc_probe(struct platform_device *pdev)
 
 	spin_lock_init(&hsudc->lock);
 
-	dev_set_name(&hsudc->gadget.dev, "gadget");
-
 	hsudc->gadget.max_speed = USB_SPEED_HIGH;
 	hsudc->gadget.ops = &s3c_hsudc_gadget_ops;
 	hsudc->gadget.name = dev_name(dev);
 	hsudc->gadget.dev.parent = dev;
 	hsudc->gadget.dev.dma_mask = dev->dma_mask;
 	hsudc->gadget.ep0 = &hsudc->ep[0].ep;
-
 	hsudc->gadget.is_otg = 0;
 	hsudc->gadget.is_a_peripheral = 0;
 	hsudc->gadget.speed = USB_SPEED_UNKNOWN;
+	hsudc->gadget.register_my_device = true;
 
 	s3c_hsudc_setup_ep(hsudc);
 
@@ -1346,12 +1344,6 @@ static int s3c_hsudc_probe(struct platform_device *pdev)
 	disable_irq(hsudc->irq);
 	local_irq_enable();
 
-	ret = device_register(&hsudc->gadget.dev);
-	if (ret) {
-		put_device(&hsudc->gadget.dev);
-		goto err_add_device;
-	}
-
 	ret = usb_add_gadget_udc(&pdev->dev, &hsudc->gadget);
 	if (ret)
 		goto err_add_udc;
@@ -1360,7 +1352,6 @@ static int s3c_hsudc_probe(struct platform_device *pdev)
 
 	return 0;
 err_add_udc:
-	device_unregister(&hsudc->gadget.dev);
 err_add_device:
 	clk_disable(hsudc->uclk);
 err_res:
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 25/32] usb: gadget: s3c-hsudc: let udc-core manage gadget->dev
@ 2013-01-24 15:46   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/s3c-hsudc.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

diff --git a/drivers/usb/gadget/s3c-hsudc.c b/drivers/usb/gadget/s3c-hsudc.c
index 4a3d620..dee6810 100644
--- a/drivers/usb/gadget/s3c-hsudc.c
+++ b/drivers/usb/gadget/s3c-hsudc.c
@@ -1304,18 +1304,16 @@ static int s3c_hsudc_probe(struct platform_device *pdev)
 
 	spin_lock_init(&hsudc->lock);
 
-	dev_set_name(&hsudc->gadget.dev, "gadget");
-
 	hsudc->gadget.max_speed = USB_SPEED_HIGH;
 	hsudc->gadget.ops = &s3c_hsudc_gadget_ops;
 	hsudc->gadget.name = dev_name(dev);
 	hsudc->gadget.dev.parent = dev;
 	hsudc->gadget.dev.dma_mask = dev->dma_mask;
 	hsudc->gadget.ep0 = &hsudc->ep[0].ep;
-
 	hsudc->gadget.is_otg = 0;
 	hsudc->gadget.is_a_peripheral = 0;
 	hsudc->gadget.speed = USB_SPEED_UNKNOWN;
+	hsudc->gadget.register_my_device = true;
 
 	s3c_hsudc_setup_ep(hsudc);
 
@@ -1346,12 +1344,6 @@ static int s3c_hsudc_probe(struct platform_device *pdev)
 	disable_irq(hsudc->irq);
 	local_irq_enable();
 
-	ret = device_register(&hsudc->gadget.dev);
-	if (ret) {
-		put_device(&hsudc->gadget.dev);
-		goto err_add_device;
-	}
-
 	ret = usb_add_gadget_udc(&pdev->dev, &hsudc->gadget);
 	if (ret)
 		goto err_add_udc;
@@ -1360,7 +1352,6 @@ static int s3c_hsudc_probe(struct platform_device *pdev)
 
 	return 0;
 err_add_udc:
-	device_unregister(&hsudc->gadget.dev);
 err_add_device:
 	clk_disable(hsudc->uclk);
 err_res:
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 26/32] usb: gadget: s3c2410_udc: let udc-core manage gadget->dev
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:46   ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin, gregkh, dahlmann.thomas, nicolas.ferre,
	leoli, eric.y.miao, linux, haojian.zhuang, ben-linux, kgene.kim,
	kuninori.morimoto.gx, yoshihiro.shimoda.uh,
	Linux OMAP Mailing List, linux-geode, linux-arm-kernel,
	linuxppc-dev, linux-samsung-soc, Felipe Balbi

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/s3c2410_udc.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/drivers/usb/gadget/s3c2410_udc.c b/drivers/usb/gadget/s3c2410_udc.c
index fc07b43..302e137 100644
--- a/drivers/usb/gadget/s3c2410_udc.c
+++ b/drivers/usb/gadget/s3c2410_udc.c
@@ -1677,13 +1677,6 @@ static int s3c2410_udc_start(struct usb_gadget *g,
 	udc->driver = driver;
 	udc->gadget.dev.driver = &driver->driver;
 
-	/* Bind the driver */
-	retval = device_add(&udc->gadget.dev);
-	if (retval) {
-		dev_err(&udc->gadget.dev, "Error in device_add() : %d\n", retval);
-		goto register_error;
-	}
-
 	/* Enable udc */
 	s3c2410_udc_enable(udc);
 
@@ -1700,7 +1693,6 @@ static int s3c2410_udc_stop(struct usb_gadget *g,
 {
 	struct s3c2410_udc *udc = to_s3c2410(g);
 
-	device_del(&udc->gadget.dev);
 	udc->driver = NULL;
 
 	/* Disable udc */
@@ -1838,9 +1830,9 @@ static int s3c2410_udc_probe(struct platform_device *pdev)
 		goto err_mem;
 	}
 
-	device_initialize(&udc->gadget.dev);
 	udc->gadget.dev.parent = &pdev->dev;
 	udc->gadget.dev.dma_mask = pdev->dev.dma_mask;
+	udc->gadget.register_my_device = true;
 
 	the_controller = udc;
 	platform_set_drvdata(pdev, udc);
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 26/32] usb: gadget: s3c2410_udc: let udc-core manage gadget->dev
@ 2013-01-24 15:46   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/s3c2410_udc.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/drivers/usb/gadget/s3c2410_udc.c b/drivers/usb/gadget/s3c2410_udc.c
index fc07b43..302e137 100644
--- a/drivers/usb/gadget/s3c2410_udc.c
+++ b/drivers/usb/gadget/s3c2410_udc.c
@@ -1677,13 +1677,6 @@ static int s3c2410_udc_start(struct usb_gadget *g,
 	udc->driver = driver;
 	udc->gadget.dev.driver = &driver->driver;
 
-	/* Bind the driver */
-	retval = device_add(&udc->gadget.dev);
-	if (retval) {
-		dev_err(&udc->gadget.dev, "Error in device_add() : %d\n", retval);
-		goto register_error;
-	}
-
 	/* Enable udc */
 	s3c2410_udc_enable(udc);
 
@@ -1700,7 +1693,6 @@ static int s3c2410_udc_stop(struct usb_gadget *g,
 {
 	struct s3c2410_udc *udc = to_s3c2410(g);
 
-	device_del(&udc->gadget.dev);
 	udc->driver = NULL;
 
 	/* Disable udc */
@@ -1838,9 +1830,9 @@ static int s3c2410_udc_probe(struct platform_device *pdev)
 		goto err_mem;
 	}
 
-	device_initialize(&udc->gadget.dev);
 	udc->gadget.dev.parent = &pdev->dev;
 	udc->gadget.dev.dma_mask = pdev->dev.dma_mask;
+	udc->gadget.register_my_device = true;
 
 	the_controller = udc;
 	platform_set_drvdata(pdev, udc);
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 26/32] usb: gadget: s3c2410_udc: let udc-core manage gadget->dev
@ 2013-01-24 15:46   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/s3c2410_udc.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/drivers/usb/gadget/s3c2410_udc.c b/drivers/usb/gadget/s3c2410_udc.c
index fc07b43..302e137 100644
--- a/drivers/usb/gadget/s3c2410_udc.c
+++ b/drivers/usb/gadget/s3c2410_udc.c
@@ -1677,13 +1677,6 @@ static int s3c2410_udc_start(struct usb_gadget *g,
 	udc->driver = driver;
 	udc->gadget.dev.driver = &driver->driver;
 
-	/* Bind the driver */
-	retval = device_add(&udc->gadget.dev);
-	if (retval) {
-		dev_err(&udc->gadget.dev, "Error in device_add() : %d\n", retval);
-		goto register_error;
-	}
-
 	/* Enable udc */
 	s3c2410_udc_enable(udc);
 
@@ -1700,7 +1693,6 @@ static int s3c2410_udc_stop(struct usb_gadget *g,
 {
 	struct s3c2410_udc *udc = to_s3c2410(g);
 
-	device_del(&udc->gadget.dev);
 	udc->driver = NULL;
 
 	/* Disable udc */
@@ -1838,9 +1830,9 @@ static int s3c2410_udc_probe(struct platform_device *pdev)
 		goto err_mem;
 	}
 
-	device_initialize(&udc->gadget.dev);
 	udc->gadget.dev.parent = &pdev->dev;
 	udc->gadget.dev.dma_mask = pdev->dev.dma_mask;
+	udc->gadget.register_my_device = true;
 
 	the_controller = udc;
 	platform_set_drvdata(pdev, udc);
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 27/32] usb: renesas_usbhs: gadget: let udc-core manage gadget->dev
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:46     ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin-VuQAYsv1563Yd54FQh9/CA,
	gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	dahlmann.thomas-KvP5wT2u2U0,
	nicolas.ferre-AIFe0yeh4nAAvxtiuMwx3w,
	leoli-KZfg59tc24xl57MIdRCFDg, eric.y.miao-Re5JQEeQqe8AvxtiuMwx3w,
	linux-lFZ/pmaqli7XmaaqVzeoHQ,
	haojian.zhuang-Re5JQEeQqe8AvxtiuMwx3w,
	ben-linux-elnMNo+KYs3YtjvyW6yDsg,
	kgene.kim-Sze3O3UU22JBDgjK7y7TUQ,
	kuninori.morimoto.gx-zM6kxYcvzFBBDgjK7y7TUQ,
	yoshihiro.shimoda.uh-zM6kxYcvzFBBDgjK7y7TUQ,
	Linux OMAP Mailing List,
	linux-geode-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ,
	linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA, Felipe Balbi

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi-l0cyMroinI0@public.gmane.org>
---
 drivers/usb/renesas_usbhs/mod_gadget.c | 11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/drivers/usb/renesas_usbhs/mod_gadget.c b/drivers/usb/renesas_usbhs/mod_gadget.c
index dd41f61..b42d81d 100644
--- a/drivers/usb/renesas_usbhs/mod_gadget.c
+++ b/drivers/usb/renesas_usbhs/mod_gadget.c
@@ -981,15 +981,12 @@ int usbhs_mod_gadget_probe(struct usbhs_priv *priv)
 	/*
 	 * init gadget
 	 */
-	dev_set_name(&gpriv->gadget.dev, "gadget");
 	gpriv->gadget.dev.parent	= dev;
 	gpriv->gadget.dev.release	= usbhs_mod_gadget_release;
 	gpriv->gadget.name		= "renesas_usbhs_udc";
 	gpriv->gadget.ops		= &usbhsg_gadget_ops;
 	gpriv->gadget.max_speed		= USB_SPEED_HIGH;
-	ret = device_register(&gpriv->gadget.dev);
-	if (ret < 0)
-		goto err_add_udc;
+	gpriv->gadget.register_my_device = true;
 
 	INIT_LIST_HEAD(&gpriv->gadget.ep_list);
 
@@ -1018,15 +1015,13 @@ int usbhs_mod_gadget_probe(struct usbhs_priv *priv)
 
 	ret = usb_add_gadget_udc(dev, &gpriv->gadget);
 	if (ret)
-		goto err_register;
+		goto err_add_udc;
 
 
 	dev_info(dev, "gadget probed\n");
 
 	return 0;
 
-err_register:
-	device_unregister(&gpriv->gadget.dev);
 err_add_udc:
 	kfree(gpriv->uep);
 
@@ -1042,8 +1037,6 @@ void usbhs_mod_gadget_remove(struct usbhs_priv *priv)
 
 	usb_del_gadget_udc(&gpriv->gadget);
 
-	device_unregister(&gpriv->gadget.dev);

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

* [RFC/PATCH 27/32] usb: renesas_usbhs: gadget: let udc-core manage gadget->dev
@ 2013-01-24 15:46     ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/renesas_usbhs/mod_gadget.c | 11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/drivers/usb/renesas_usbhs/mod_gadget.c b/drivers/usb/renesas_usbhs/mod_gadget.c
index dd41f61..b42d81d 100644
--- a/drivers/usb/renesas_usbhs/mod_gadget.c
+++ b/drivers/usb/renesas_usbhs/mod_gadget.c
@@ -981,15 +981,12 @@ int usbhs_mod_gadget_probe(struct usbhs_priv *priv)
 	/*
 	 * init gadget
 	 */
-	dev_set_name(&gpriv->gadget.dev, "gadget");
 	gpriv->gadget.dev.parent	= dev;
 	gpriv->gadget.dev.release	= usbhs_mod_gadget_release;
 	gpriv->gadget.name		= "renesas_usbhs_udc";
 	gpriv->gadget.ops		= &usbhsg_gadget_ops;
 	gpriv->gadget.max_speed		= USB_SPEED_HIGH;
-	ret = device_register(&gpriv->gadget.dev);
-	if (ret < 0)
-		goto err_add_udc;
+	gpriv->gadget.register_my_device = true;
 
 	INIT_LIST_HEAD(&gpriv->gadget.ep_list);
 
@@ -1018,15 +1015,13 @@ int usbhs_mod_gadget_probe(struct usbhs_priv *priv)
 
 	ret = usb_add_gadget_udc(dev, &gpriv->gadget);
 	if (ret)
-		goto err_register;
+		goto err_add_udc;
 
 
 	dev_info(dev, "gadget probed\n");
 
 	return 0;
 
-err_register:
-	device_unregister(&gpriv->gadget.dev);
 err_add_udc:
 	kfree(gpriv->uep);
 
@@ -1042,8 +1037,6 @@ void usbhs_mod_gadget_remove(struct usbhs_priv *priv)
 
 	usb_del_gadget_udc(&gpriv->gadget);
 
-	device_unregister(&gpriv->gadget.dev);
-
 	kfree(gpriv->uep);
 	kfree(gpriv);
 }
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 27/32] usb: renesas_usbhs: gadget: let udc-core manage gadget->dev
@ 2013-01-24 15:46     ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/renesas_usbhs/mod_gadget.c | 11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/drivers/usb/renesas_usbhs/mod_gadget.c b/drivers/usb/renesas_usbhs/mod_gadget.c
index dd41f61..b42d81d 100644
--- a/drivers/usb/renesas_usbhs/mod_gadget.c
+++ b/drivers/usb/renesas_usbhs/mod_gadget.c
@@ -981,15 +981,12 @@ int usbhs_mod_gadget_probe(struct usbhs_priv *priv)
 	/*
 	 * init gadget
 	 */
-	dev_set_name(&gpriv->gadget.dev, "gadget");
 	gpriv->gadget.dev.parent	= dev;
 	gpriv->gadget.dev.release	= usbhs_mod_gadget_release;
 	gpriv->gadget.name		= "renesas_usbhs_udc";
 	gpriv->gadget.ops		= &usbhsg_gadget_ops;
 	gpriv->gadget.max_speed		= USB_SPEED_HIGH;
-	ret = device_register(&gpriv->gadget.dev);
-	if (ret < 0)
-		goto err_add_udc;
+	gpriv->gadget.register_my_device = true;
 
 	INIT_LIST_HEAD(&gpriv->gadget.ep_list);
 
@@ -1018,15 +1015,13 @@ int usbhs_mod_gadget_probe(struct usbhs_priv *priv)
 
 	ret = usb_add_gadget_udc(dev, &gpriv->gadget);
 	if (ret)
-		goto err_register;
+		goto err_add_udc;
 
 
 	dev_info(dev, "gadget probed\n");
 
 	return 0;
 
-err_register:
-	device_unregister(&gpriv->gadget.dev);
 err_add_udc:
 	kfree(gpriv->uep);
 
@@ -1042,8 +1037,6 @@ void usbhs_mod_gadget_remove(struct usbhs_priv *priv)
 
 	usb_del_gadget_udc(&gpriv->gadget);
 
-	device_unregister(&gpriv->gadget.dev);
-
 	kfree(gpriv->uep);
 	kfree(gpriv);
 }
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 28/32] usb: gadget: pxa25x_udc: let udc-core manage gadget->dev
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:46   ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin, gregkh, dahlmann.thomas, nicolas.ferre,
	leoli, eric.y.miao, linux, haojian.zhuang, ben-linux, kgene.kim,
	kuninori.morimoto.gx, yoshihiro.shimoda.uh,
	Linux OMAP Mailing List, linux-geode, linux-arm-kernel,
	linuxppc-dev, linux-samsung-soc, Felipe Balbi

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/pxa25x_udc.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/drivers/usb/gadget/pxa25x_udc.c b/drivers/usb/gadget/pxa25x_udc.c
index fa9c344..9deffd3 100644
--- a/drivers/usb/gadget/pxa25x_udc.c
+++ b/drivers/usb/gadget/pxa25x_udc.c
@@ -1266,13 +1266,6 @@ static int pxa25x_udc_start(struct usb_gadget *g,
 	dev->gadget.dev.driver = &driver->driver;
 	dev->pullup = 1;
 
-	retval = device_add (&dev->gadget.dev);
-	if (retval) {
-		dev->driver = NULL;
-		dev->gadget.dev.driver = NULL;
-		return retval;
-	}
-
 	/* ... then enable host detection and ep0; and we're ready
 	 * for set_configuration as well as eventual disconnect.
 	 */
@@ -1331,7 +1324,6 @@ static int pxa25x_udc_stop(struct usb_gadget*g,
 	dev->gadget.dev.driver = NULL;
 	dev->driver = NULL;
 
-	device_del (&dev->gadget.dev);
 	dump_state(dev);
 
 	return 0;
@@ -2140,9 +2132,9 @@ static int __init pxa25x_udc_probe(struct platform_device *pdev)
 	dev->timer.function = udc_watchdog;
 	dev->timer.data = (unsigned long) dev;
 
-	device_initialize(&dev->gadget.dev);
 	dev->gadget.dev.parent = &pdev->dev;
 	dev->gadget.dev.dma_mask = pdev->dev.dma_mask;
+	dev->gadget.register_my_device = true;
 
 	the_controller = dev;
 	platform_set_drvdata(pdev, dev);
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 28/32] usb: gadget: pxa25x_udc: let udc-core manage gadget->dev
@ 2013-01-24 15:46   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/pxa25x_udc.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/drivers/usb/gadget/pxa25x_udc.c b/drivers/usb/gadget/pxa25x_udc.c
index fa9c344..9deffd3 100644
--- a/drivers/usb/gadget/pxa25x_udc.c
+++ b/drivers/usb/gadget/pxa25x_udc.c
@@ -1266,13 +1266,6 @@ static int pxa25x_udc_start(struct usb_gadget *g,
 	dev->gadget.dev.driver = &driver->driver;
 	dev->pullup = 1;
 
-	retval = device_add (&dev->gadget.dev);
-	if (retval) {
-		dev->driver = NULL;
-		dev->gadget.dev.driver = NULL;
-		return retval;
-	}
-
 	/* ... then enable host detection and ep0; and we're ready
 	 * for set_configuration as well as eventual disconnect.
 	 */
@@ -1331,7 +1324,6 @@ static int pxa25x_udc_stop(struct usb_gadget*g,
 	dev->gadget.dev.driver = NULL;
 	dev->driver = NULL;
 
-	device_del (&dev->gadget.dev);
 	dump_state(dev);
 
 	return 0;
@@ -2140,9 +2132,9 @@ static int __init pxa25x_udc_probe(struct platform_device *pdev)
 	dev->timer.function = udc_watchdog;
 	dev->timer.data = (unsigned long) dev;
 
-	device_initialize(&dev->gadget.dev);
 	dev->gadget.dev.parent = &pdev->dev;
 	dev->gadget.dev.dma_mask = pdev->dev.dma_mask;
+	dev->gadget.register_my_device = true;
 
 	the_controller = dev;
 	platform_set_drvdata(pdev, dev);
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 28/32] usb: gadget: pxa25x_udc: let udc-core manage gadget->dev
@ 2013-01-24 15:46   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/pxa25x_udc.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/drivers/usb/gadget/pxa25x_udc.c b/drivers/usb/gadget/pxa25x_udc.c
index fa9c344..9deffd3 100644
--- a/drivers/usb/gadget/pxa25x_udc.c
+++ b/drivers/usb/gadget/pxa25x_udc.c
@@ -1266,13 +1266,6 @@ static int pxa25x_udc_start(struct usb_gadget *g,
 	dev->gadget.dev.driver = &driver->driver;
 	dev->pullup = 1;
 
-	retval = device_add (&dev->gadget.dev);
-	if (retval) {
-		dev->driver = NULL;
-		dev->gadget.dev.driver = NULL;
-		return retval;
-	}
-
 	/* ... then enable host detection and ep0; and we're ready
 	 * for set_configuration as well as eventual disconnect.
 	 */
@@ -1331,7 +1324,6 @@ static int pxa25x_udc_stop(struct usb_gadget*g,
 	dev->gadget.dev.driver = NULL;
 	dev->driver = NULL;
 
-	device_del (&dev->gadget.dev);
 	dump_state(dev);
 
 	return 0;
@@ -2140,9 +2132,9 @@ static int __init pxa25x_udc_probe(struct platform_device *pdev)
 	dev->timer.function = udc_watchdog;
 	dev->timer.data = (unsigned long) dev;
 
-	device_initialize(&dev->gadget.dev);
 	dev->gadget.dev.parent = &pdev->dev;
 	dev->gadget.dev.dma_mask = pdev->dev.dma_mask;
+	dev->gadget.register_my_device = true;
 
 	the_controller = dev;
 	platform_set_drvdata(pdev, dev);
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 29/32] usb: gadget: pxa27x_udc: let udc-core manage gadget->dev
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:46   ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin, gregkh, dahlmann.thomas, nicolas.ferre,
	leoli, eric.y.miao, linux, haojian.zhuang, ben-linux, kgene.kim,
	kuninori.morimoto.gx, yoshihiro.shimoda.uh,
	Linux OMAP Mailing List, linux-geode, linux-arm-kernel,
	linuxppc-dev, linux-samsung-soc, Felipe Balbi

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/pxa27x_udc.c | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/drivers/usb/gadget/pxa27x_udc.c b/drivers/usb/gadget/pxa27x_udc.c
index f7d2579..23a3eed 100644
--- a/drivers/usb/gadget/pxa27x_udc.c
+++ b/drivers/usb/gadget/pxa27x_udc.c
@@ -1814,11 +1814,6 @@ static int pxa27x_udc_start(struct usb_gadget *g,
 	udc->gadget.dev.driver = &driver->driver;
 	dplus_pullup(udc, 1);
 
-	retval = device_add(&udc->gadget.dev);
-	if (retval) {
-		dev_err(udc->dev, "device_add error %d\n", retval);
-		goto fail;
-	}
 	if (!IS_ERR_OR_NULL(udc->transceiver)) {
 		retval = otg_set_peripheral(udc->transceiver->otg,
 						&udc->gadget);
@@ -1876,8 +1871,6 @@ static int pxa27x_udc_stop(struct usb_gadget *g,
 
 	udc->driver = NULL;
 
-	device_del(&udc->gadget.dev);
-
 	if (!IS_ERR_OR_NULL(udc->transceiver))
 		return otg_set_peripheral(udc->transceiver->otg, NULL);
 	return 0;
@@ -2462,9 +2455,9 @@ static int __init pxa_udc_probe(struct platform_device *pdev)
 		goto err_map;
 	}
 
-	device_initialize(&udc->gadget.dev);
 	udc->gadget.dev.parent = &pdev->dev;
 	udc->gadget.dev.dma_mask = NULL;
+	udc->gadget.register_my_device = true;
 	udc->vbus_sensed = 0;
 
 	the_controller = udc;
-- 
1.8.1.rc1.5.g7e0651a


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

* [RFC/PATCH 29/32] usb: gadget: pxa27x_udc: let udc-core manage gadget->dev
@ 2013-01-24 15:46   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/pxa27x_udc.c | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/drivers/usb/gadget/pxa27x_udc.c b/drivers/usb/gadget/pxa27x_udc.c
index f7d2579..23a3eed 100644
--- a/drivers/usb/gadget/pxa27x_udc.c
+++ b/drivers/usb/gadget/pxa27x_udc.c
@@ -1814,11 +1814,6 @@ static int pxa27x_udc_start(struct usb_gadget *g,
 	udc->gadget.dev.driver = &driver->driver;
 	dplus_pullup(udc, 1);
 
-	retval = device_add(&udc->gadget.dev);
-	if (retval) {
-		dev_err(udc->dev, "device_add error %d\n", retval);
-		goto fail;
-	}
 	if (!IS_ERR_OR_NULL(udc->transceiver)) {
 		retval = otg_set_peripheral(udc->transceiver->otg,
 						&udc->gadget);
@@ -1876,8 +1871,6 @@ static int pxa27x_udc_stop(struct usb_gadget *g,
 
 	udc->driver = NULL;
 
-	device_del(&udc->gadget.dev);
-
 	if (!IS_ERR_OR_NULL(udc->transceiver))
 		return otg_set_peripheral(udc->transceiver->otg, NULL);
 	return 0;
@@ -2462,9 +2455,9 @@ static int __init pxa_udc_probe(struct platform_device *pdev)
 		goto err_map;
 	}
 
-	device_initialize(&udc->gadget.dev);
 	udc->gadget.dev.parent = &pdev->dev;
 	udc->gadget.dev.dma_mask = NULL;
+	udc->gadget.register_my_device = true;
 	udc->vbus_sensed = 0;
 
 	the_controller = udc;
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 29/32] usb: gadget: pxa27x_udc: let udc-core manage gadget->dev
@ 2013-01-24 15:46   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/gadget/pxa27x_udc.c | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/drivers/usb/gadget/pxa27x_udc.c b/drivers/usb/gadget/pxa27x_udc.c
index f7d2579..23a3eed 100644
--- a/drivers/usb/gadget/pxa27x_udc.c
+++ b/drivers/usb/gadget/pxa27x_udc.c
@@ -1814,11 +1814,6 @@ static int pxa27x_udc_start(struct usb_gadget *g,
 	udc->gadget.dev.driver = &driver->driver;
 	dplus_pullup(udc, 1);
 
-	retval = device_add(&udc->gadget.dev);
-	if (retval) {
-		dev_err(udc->dev, "device_add error %d\n", retval);
-		goto fail;
-	}
 	if (!IS_ERR_OR_NULL(udc->transceiver)) {
 		retval = otg_set_peripheral(udc->transceiver->otg,
 						&udc->gadget);
@@ -1876,8 +1871,6 @@ static int pxa27x_udc_stop(struct usb_gadget *g,
 
 	udc->driver = NULL;
 
-	device_del(&udc->gadget.dev);
-
 	if (!IS_ERR_OR_NULL(udc->transceiver))
 		return otg_set_peripheral(udc->transceiver->otg, NULL);
 	return 0;
@@ -2462,9 +2455,9 @@ static int __init pxa_udc_probe(struct platform_device *pdev)
 		goto err_map;
 	}
 
-	device_initialize(&udc->gadget.dev);
 	udc->gadget.dev.parent = &pdev->dev;
 	udc->gadget.dev.dma_mask = NULL;
+	udc->gadget.register_my_device = true;
 	udc->vbus_sensed = 0;
 
 	the_controller = udc;
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 30/32] usb: chipidea: register debugging syfs on our device
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:46   ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin, gregkh, dahlmann.thomas, nicolas.ferre,
	leoli, eric.y.miao, linux, haojian.zhuang, ben-linux, kgene.kim,
	kuninori.morimoto.gx, yoshihiro.shimoda.uh,
	Linux OMAP Mailing List, linux-geode, linux-arm-kernel,
	linuxppc-dev, linux-samsung-soc, Felipe Balbi

Don't register anything non-generic under
the gadget's device as we don't really *own*
it.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/chipidea/udc.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c
index 2f45bba..f64fbea 100644
--- a/drivers/usb/chipidea/udc.c
+++ b/drivers/usb/chipidea/udc.c
@@ -1767,7 +1767,7 @@ static int udc_start(struct ci13xxx *ci)
 		goto put_transceiver;
 	}
 
-	retval = dbg_create_files(&ci->gadget.dev);
+	retval = dbg_create_files(ci->dev);
 	if (retval)
 		goto unreg_device;
 
@@ -1796,7 +1796,7 @@ remove_trans:
 
 	dev_err(dev, "error = %i\n", retval);
 remove_dbg:
-	dbg_remove_files(&ci->gadget.dev);
+	dbg_remove_files(ci->dev);
 unreg_device:
 	device_unregister(&ci->gadget.dev);
 put_transceiver:
@@ -1836,7 +1836,7 @@ static void udc_stop(struct ci13xxx *ci)
 		if (ci->global_phy)
 			usb_put_phy(ci->transceiver);
 	}
-	dbg_remove_files(&ci->gadget.dev);
+	dbg_remove_files(ci->dev);
 	device_unregister(&ci->gadget.dev);
 	/* my kobject is dynamic, I swear! */
 	memset(&ci->gadget, 0, sizeof(ci->gadget));
-- 
1.8.1.rc1.5.g7e0651a


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

* [RFC/PATCH 30/32] usb: chipidea: register debugging syfs on our device
@ 2013-01-24 15:46   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

Don't register anything non-generic under
the gadget's device as we don't really *own*
it.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/chipidea/udc.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c
index 2f45bba..f64fbea 100644
--- a/drivers/usb/chipidea/udc.c
+++ b/drivers/usb/chipidea/udc.c
@@ -1767,7 +1767,7 @@ static int udc_start(struct ci13xxx *ci)
 		goto put_transceiver;
 	}
 
-	retval = dbg_create_files(&ci->gadget.dev);
+	retval = dbg_create_files(ci->dev);
 	if (retval)
 		goto unreg_device;
 
@@ -1796,7 +1796,7 @@ remove_trans:
 
 	dev_err(dev, "error = %i\n", retval);
 remove_dbg:
-	dbg_remove_files(&ci->gadget.dev);
+	dbg_remove_files(ci->dev);
 unreg_device:
 	device_unregister(&ci->gadget.dev);
 put_transceiver:
@@ -1836,7 +1836,7 @@ static void udc_stop(struct ci13xxx *ci)
 		if (ci->global_phy)
 			usb_put_phy(ci->transceiver);
 	}
-	dbg_remove_files(&ci->gadget.dev);
+	dbg_remove_files(ci->dev);
 	device_unregister(&ci->gadget.dev);
 	/* my kobject is dynamic, I swear! */
 	memset(&ci->gadget, 0, sizeof(ci->gadget));
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 30/32] usb: chipidea: register debugging syfs on our device
@ 2013-01-24 15:46   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: linux-arm-kernel

Don't register anything non-generic under
the gadget's device as we don't really *own*
it.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/chipidea/udc.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c
index 2f45bba..f64fbea 100644
--- a/drivers/usb/chipidea/udc.c
+++ b/drivers/usb/chipidea/udc.c
@@ -1767,7 +1767,7 @@ static int udc_start(struct ci13xxx *ci)
 		goto put_transceiver;
 	}
 
-	retval = dbg_create_files(&ci->gadget.dev);
+	retval = dbg_create_files(ci->dev);
 	if (retval)
 		goto unreg_device;
 
@@ -1796,7 +1796,7 @@ remove_trans:
 
 	dev_err(dev, "error = %i\n", retval);
 remove_dbg:
-	dbg_remove_files(&ci->gadget.dev);
+	dbg_remove_files(ci->dev);
 unreg_device:
 	device_unregister(&ci->gadget.dev);
 put_transceiver:
@@ -1836,7 +1836,7 @@ static void udc_stop(struct ci13xxx *ci)
 		if (ci->global_phy)
 			usb_put_phy(ci->transceiver);
 	}
-	dbg_remove_files(&ci->gadget.dev);
+	dbg_remove_files(ci->dev);
 	device_unregister(&ci->gadget.dev);
 	/* my kobject is dynamic, I swear! */
 	memset(&ci->gadget, 0, sizeof(ci->gadget));
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 31/32] usb: chipidea: let udc-core manage gadget->dev
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:46   ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin, gregkh, dahlmann.thomas, nicolas.ferre,
	leoli, eric.y.miao, linux, haojian.zhuang, ben-linux, kgene.kim,
	kuninori.morimoto.gx, yoshihiro.shimoda.uh,
	Linux OMAP Mailing List, linux-geode, linux-arm-kernel,
	linuxppc-dev, linux-samsung-soc, Felipe Balbi

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/chipidea/udc.c | 13 ++-----------
 1 file changed, 2 insertions(+), 11 deletions(-)

diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c
index f64fbea..e95e8bb 100644
--- a/drivers/usb/chipidea/udc.c
+++ b/drivers/usb/chipidea/udc.c
@@ -1717,11 +1717,11 @@ static int udc_start(struct ci13xxx *ci)
 
 	INIT_LIST_HEAD(&ci->gadget.ep_list);
 
-	dev_set_name(&ci->gadget.dev, "gadget");
 	ci->gadget.dev.dma_mask = dev->dma_mask;
 	ci->gadget.dev.coherent_dma_mask = dev->coherent_dma_mask;
 	ci->gadget.dev.parent   = dev;
 	ci->gadget.dev.release  = udc_release;
+	ci->gadget.register_my_device = true;
 
 	/* alloc resources */
 	ci->qh_pool = dma_pool_create("ci13xxx_qh", dev,
@@ -1761,15 +1761,9 @@ static int udc_start(struct ci13xxx *ci)
 		hw_enable_vbus_intr(ci);
 	}
 
-	retval = device_register(&ci->gadget.dev);
-	if (retval) {
-		put_device(&ci->gadget.dev);
-		goto put_transceiver;
-	}
-
 	retval = dbg_create_files(ci->dev);
 	if (retval)
-		goto unreg_device;
+		goto put_transceiver;
 
 	if (!IS_ERR_OR_NULL(ci->transceiver)) {
 		retval = otg_set_peripheral(ci->transceiver->otg,
@@ -1797,8 +1791,6 @@ remove_trans:
 	dev_err(dev, "error = %i\n", retval);
 remove_dbg:
 	dbg_remove_files(ci->dev);
-unreg_device:
-	device_unregister(&ci->gadget.dev);
 put_transceiver:
 	if (!IS_ERR_OR_NULL(ci->transceiver) && ci->global_phy)
 		usb_put_phy(ci->transceiver);
@@ -1837,7 +1829,6 @@ static void udc_stop(struct ci13xxx *ci)
 			usb_put_phy(ci->transceiver);
 	}
 	dbg_remove_files(ci->dev);
-	device_unregister(&ci->gadget.dev);
 	/* my kobject is dynamic, I swear! */
 	memset(&ci->gadget, 0, sizeof(ci->gadget));
 }
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 31/32] usb: chipidea: let udc-core manage gadget->dev
@ 2013-01-24 15:46   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/chipidea/udc.c | 13 ++-----------
 1 file changed, 2 insertions(+), 11 deletions(-)

diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c
index f64fbea..e95e8bb 100644
--- a/drivers/usb/chipidea/udc.c
+++ b/drivers/usb/chipidea/udc.c
@@ -1717,11 +1717,11 @@ static int udc_start(struct ci13xxx *ci)
 
 	INIT_LIST_HEAD(&ci->gadget.ep_list);
 
-	dev_set_name(&ci->gadget.dev, "gadget");
 	ci->gadget.dev.dma_mask = dev->dma_mask;
 	ci->gadget.dev.coherent_dma_mask = dev->coherent_dma_mask;
 	ci->gadget.dev.parent   = dev;
 	ci->gadget.dev.release  = udc_release;
+	ci->gadget.register_my_device = true;
 
 	/* alloc resources */
 	ci->qh_pool = dma_pool_create("ci13xxx_qh", dev,
@@ -1761,15 +1761,9 @@ static int udc_start(struct ci13xxx *ci)
 		hw_enable_vbus_intr(ci);
 	}
 
-	retval = device_register(&ci->gadget.dev);
-	if (retval) {
-		put_device(&ci->gadget.dev);
-		goto put_transceiver;
-	}
-
 	retval = dbg_create_files(ci->dev);
 	if (retval)
-		goto unreg_device;
+		goto put_transceiver;
 
 	if (!IS_ERR_OR_NULL(ci->transceiver)) {
 		retval = otg_set_peripheral(ci->transceiver->otg,
@@ -1797,8 +1791,6 @@ remove_trans:
 	dev_err(dev, "error = %i\n", retval);
 remove_dbg:
 	dbg_remove_files(ci->dev);
-unreg_device:
-	device_unregister(&ci->gadget.dev);
 put_transceiver:
 	if (!IS_ERR_OR_NULL(ci->transceiver) && ci->global_phy)
 		usb_put_phy(ci->transceiver);
@@ -1837,7 +1829,6 @@ static void udc_stop(struct ci13xxx *ci)
 			usb_put_phy(ci->transceiver);
 	}
 	dbg_remove_files(ci->dev);
-	device_unregister(&ci->gadget.dev);
 	/* my kobject is dynamic, I swear! */
 	memset(&ci->gadget, 0, sizeof(ci->gadget));
 }
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 31/32] usb: chipidea: let udc-core manage gadget->dev
@ 2013-01-24 15:46   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: linux-arm-kernel

By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/chipidea/udc.c | 13 ++-----------
 1 file changed, 2 insertions(+), 11 deletions(-)

diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c
index f64fbea..e95e8bb 100644
--- a/drivers/usb/chipidea/udc.c
+++ b/drivers/usb/chipidea/udc.c
@@ -1717,11 +1717,11 @@ static int udc_start(struct ci13xxx *ci)
 
 	INIT_LIST_HEAD(&ci->gadget.ep_list);
 
-	dev_set_name(&ci->gadget.dev, "gadget");
 	ci->gadget.dev.dma_mask = dev->dma_mask;
 	ci->gadget.dev.coherent_dma_mask = dev->coherent_dma_mask;
 	ci->gadget.dev.parent   = dev;
 	ci->gadget.dev.release  = udc_release;
+	ci->gadget.register_my_device = true;
 
 	/* alloc resources */
 	ci->qh_pool = dma_pool_create("ci13xxx_qh", dev,
@@ -1761,15 +1761,9 @@ static int udc_start(struct ci13xxx *ci)
 		hw_enable_vbus_intr(ci);
 	}
 
-	retval = device_register(&ci->gadget.dev);
-	if (retval) {
-		put_device(&ci->gadget.dev);
-		goto put_transceiver;
-	}
-
 	retval = dbg_create_files(ci->dev);
 	if (retval)
-		goto unreg_device;
+		goto put_transceiver;
 
 	if (!IS_ERR_OR_NULL(ci->transceiver)) {
 		retval = otg_set_peripheral(ci->transceiver->otg,
@@ -1797,8 +1791,6 @@ remove_trans:
 	dev_err(dev, "error = %i\n", retval);
 remove_dbg:
 	dbg_remove_files(ci->dev);
-unreg_device:
-	device_unregister(&ci->gadget.dev);
 put_transceiver:
 	if (!IS_ERR_OR_NULL(ci->transceiver) && ci->global_phy)
 		usb_put_phy(ci->transceiver);
@@ -1837,7 +1829,6 @@ static void udc_stop(struct ci13xxx *ci)
 			usb_put_phy(ci->transceiver);
 	}
 	dbg_remove_files(ci->dev);
-	device_unregister(&ci->gadget.dev);
 	/* my kobject is dynamic, I swear! */
 	memset(&ci->gadget, 0, sizeof(ci->gadget));
 }
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 32/32] usb: gadget: drop now unnecessary flag
  2013-01-24 15:45 ` Felipe Balbi
  (?)
@ 2013-01-24 15:46   ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: alexander.shishkin, gregkh, dahlmann.thomas, nicolas.ferre,
	leoli, eric.y.miao, linux, haojian.zhuang, ben-linux, kgene.kim,
	kuninori.morimoto.gx, yoshihiro.shimoda.uh,
	Linux OMAP Mailing List, linux-geode, linux-arm-kernel,
	linuxppc-dev, linux-samsung-soc, Felipe Balbi

We don't need the ->register_my_device flag
anymore because all UDC drivers have been
properly converted.

Let's remove every history of it.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/chipidea/udc.c             | 1 -
 drivers/usb/dwc3/gadget.c              | 1 -
 drivers/usb/gadget/amd5536udc.c        | 1 -
 drivers/usb/gadget/at91_udc.c          | 1 -
 drivers/usb/gadget/atmel_usba_udc.c    | 1 -
 drivers/usb/gadget/bcm63xx_udc.c       | 1 -
 drivers/usb/gadget/dummy_hcd.c         | 1 -
 drivers/usb/gadget/fsl_qe_udc.c        | 1 -
 drivers/usb/gadget/fsl_udc_core.c      | 1 -
 drivers/usb/gadget/fusb300_udc.c       | 1 -
 drivers/usb/gadget/goku_udc.c          | 1 -
 drivers/usb/gadget/imx_udc.c           | 1 -
 drivers/usb/gadget/lpc32xx_udc.c       | 1 -
 drivers/usb/gadget/m66592-udc.c        | 1 -
 drivers/usb/gadget/mv_u3d_core.c       | 1 -
 drivers/usb/gadget/mv_udc_core.c       | 1 -
 drivers/usb/gadget/net2272.c           | 1 -
 drivers/usb/gadget/net2280.c           | 1 -
 drivers/usb/gadget/omap_udc.c          | 1 -
 drivers/usb/gadget/pch_udc.c           | 1 -
 drivers/usb/gadget/pxa25x_udc.c        | 1 -
 drivers/usb/gadget/pxa27x_udc.c        | 1 -
 drivers/usb/gadget/r8a66597-udc.c      | 1 -
 drivers/usb/gadget/s3c-hsotg.c         | 1 -
 drivers/usb/gadget/s3c-hsudc.c         | 1 -
 drivers/usb/gadget/s3c2410_udc.c       | 1 -
 drivers/usb/gadget/udc-core.c          | 3 ---
 drivers/usb/musb/musb_gadget.c         | 1 -
 drivers/usb/renesas_usbhs/mod_gadget.c | 1 -
 include/linux/usb/gadget.h             | 4 ----
 30 files changed, 35 deletions(-)

diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c
index e95e8bb..1b65ac8 100644
--- a/drivers/usb/chipidea/udc.c
+++ b/drivers/usb/chipidea/udc.c
@@ -1721,7 +1721,6 @@ static int udc_start(struct ci13xxx *ci)
 	ci->gadget.dev.coherent_dma_mask = dev->coherent_dma_mask;
 	ci->gadget.dev.parent   = dev;
 	ci->gadget.dev.release  = udc_release;
-	ci->gadget.register_my_device = true;
 
 	/* alloc resources */
 	ci->qh_pool = dma_pool_create("ci13xxx_qh", dev,
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 7002cf6..067ba6ad 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -2423,7 +2423,6 @@ int dwc3_gadget_init(struct dwc3 *dwc)
 	dwc->gadget.dev.dma_parms	= dwc->dev->dma_parms;
 	dwc->gadget.dev.dma_mask	= dwc->dev->dma_mask;
 	dwc->gadget.dev.release		= dwc3_gadget_release;
-	dwc->gadget.register_my_device	= true;
 	dwc->gadget.name		= "dwc3-gadget";
 
 	/*
diff --git a/drivers/usb/gadget/amd5536udc.c b/drivers/usb/gadget/amd5536udc.c
index 1827d4c..35ab5d3 100644
--- a/drivers/usb/gadget/amd5536udc.c
+++ b/drivers/usb/gadget/amd5536udc.c
@@ -3275,7 +3275,6 @@ static int udc_probe(struct udc *dev)
 	dev->gadget.dev.release = gadget_release;
 	dev->gadget.name = name;
 	dev->gadget.max_speed = USB_SPEED_HIGH;
-	dev->gadget.register_my_device = true;
 
 	/* init registers, interrupts, ... */
 	startup_registers(dev);
diff --git a/drivers/usb/gadget/at91_udc.c b/drivers/usb/gadget/at91_udc.c
index 177b56d..dc3682c 100644
--- a/drivers/usb/gadget/at91_udc.c
+++ b/drivers/usb/gadget/at91_udc.c
@@ -1726,7 +1726,6 @@ static int at91udc_probe(struct platform_device *pdev)
 
 	/* init software state */
 	udc = &controller;
-	udc->gadget.register_my_device = true;
 	udc->gadget.dev.parent = dev;
 	if (pdev->dev.of_node)
 		at91udc_of_init(udc, pdev->dev.of_node);
diff --git a/drivers/usb/gadget/atmel_usba_udc.c b/drivers/usb/gadget/atmel_usba_udc.c
index f0f9423..b197b75 100644
--- a/drivers/usb/gadget/atmel_usba_udc.c
+++ b/drivers/usb/gadget/atmel_usba_udc.c
@@ -1902,7 +1902,6 @@ static int __init usba_udc_probe(struct platform_device *pdev)
 
 	udc->gadget.dev.parent = &pdev->dev;
 	udc->gadget.dev.dma_mask = pdev->dev.dma_mask;
-	udc->gadget.register_my_device = true;
 
 	platform_set_drvdata(pdev, udc);
 
diff --git a/drivers/usb/gadget/bcm63xx_udc.c b/drivers/usb/gadget/bcm63xx_udc.c
index 10b0475..96a585ee 100644
--- a/drivers/usb/gadget/bcm63xx_udc.c
+++ b/drivers/usb/gadget/bcm63xx_udc.c
@@ -2373,7 +2373,6 @@ static int bcm63xx_udc_probe(struct platform_device *pdev)
 	udc->gadget.dev.parent = dev;
 	udc->gadget.dev.release = bcm63xx_udc_gadget_release;
 	udc->gadget.dev.dma_mask = dev->dma_mask;
-	udc->gadget.register_my_device = true;
 
 	if (!pd->use_fullspeed && !use_fullspeed)
 		udc->gadget.max_speed = USB_SPEED_HIGH;
diff --git a/drivers/usb/gadget/dummy_hcd.c b/drivers/usb/gadget/dummy_hcd.c
index 8155d4a..7fe600f 100644
--- a/drivers/usb/gadget/dummy_hcd.c
+++ b/drivers/usb/gadget/dummy_hcd.c
@@ -982,7 +982,6 @@ static int dummy_udc_probe(struct platform_device *pdev)
 	dum->gadget.name = gadget_name;
 	dum->gadget.ops = &dummy_ops;
 	dum->gadget.max_speed = USB_SPEED_SUPER;
-	dum->gadget.register_my_device = true;
 
 	dum->gadget.dev.parent = &pdev->dev;
 	dum->gadget.dev.release = dummy_gadget_release;
diff --git a/drivers/usb/gadget/fsl_qe_udc.c b/drivers/usb/gadget/fsl_qe_udc.c
index 08c8432..010e216 100644
--- a/drivers/usb/gadget/fsl_qe_udc.c
+++ b/drivers/usb/gadget/fsl_qe_udc.c
@@ -2525,7 +2525,6 @@ static int qe_udc_probe(struct platform_device *ofdev)
 	udc->gadget.name = driver_name;
 	udc->gadget.dev.release = qe_udc_release;
 	udc->gadget.dev.parent = &ofdev->dev;
-	udc->gadget.register_my_device = true;
 
 	/* initialize qe_ep struct */
 	for (i = 0; i < USB_MAX_ENDPOINTS ; i++) {
diff --git a/drivers/usb/gadget/fsl_udc_core.c b/drivers/usb/gadget/fsl_udc_core.c
index b78b734..449bf13 100644
--- a/drivers/usb/gadget/fsl_udc_core.c
+++ b/drivers/usb/gadget/fsl_udc_core.c
@@ -2526,7 +2526,6 @@ static int __init fsl_udc_probe(struct platform_device *pdev)
 	udc_controller->gadget.dev.release = fsl_udc_release;
 	udc_controller->gadget.dev.parent = &pdev->dev;
 	udc_controller->gadget.dev.of_node = pdev->dev.of_node;
-	udc_controller->gadget.register_my_device = true;
 
 	if (!IS_ERR_OR_NULL(udc_controller->transceiver))
 		udc_controller->gadget.is_otg = 1;
diff --git a/drivers/usb/gadget/fusb300_udc.c b/drivers/usb/gadget/fusb300_udc.c
index 798a25b..093e6c6 100644
--- a/drivers/usb/gadget/fusb300_udc.c
+++ b/drivers/usb/gadget/fusb300_udc.c
@@ -1427,7 +1427,6 @@ static int __init fusb300_probe(struct platform_device *pdev)
 	fusb300->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	fusb300->gadget.dev.release = pdev->dev.release;
 	fusb300->gadget.name = udc_name;
-	fusb300->gadget.register_my_device = true;
 	fusb300->reg = reg;
 
 	ret = request_irq(ires->start, fusb300_irq, IRQF_SHARED,
diff --git a/drivers/usb/gadget/goku_udc.c b/drivers/usb/gadget/goku_udc.c
index b4ea2cf..8a6c666 100644
--- a/drivers/usb/gadget/goku_udc.c
+++ b/drivers/usb/gadget/goku_udc.c
@@ -1758,7 +1758,6 @@ static int goku_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 	dev->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	dev->gadget.dev.release = gadget_release;
 	dev->gadget.name = driver_name;
-	dev->gadget.register_my_device = true;
 
 	/* now all the pci goodies ... */
 	retval = pci_enable_device(pdev);
diff --git a/drivers/usb/gadget/imx_udc.c b/drivers/usb/gadget/imx_udc.c
index c8b5da3..4cc8a92 100644
--- a/drivers/usb/gadget/imx_udc.c
+++ b/drivers/usb/gadget/imx_udc.c
@@ -1462,7 +1462,6 @@ static int __init imx_udc_probe(struct platform_device *pdev)
 	imx_usb->clk = clk;
 	imx_usb->dev = &pdev->dev;
 
-	imx_usb->gadget.register_my_device = true;
 	imx_usb->gadget.dev.parent = &pdev->dev;
 	imx_usb->gadget.dev.dma_mask = pdev->dev.dma_mask;
 
diff --git a/drivers/usb/gadget/lpc32xx_udc.c b/drivers/usb/gadget/lpc32xx_udc.c
index 077e021..0ad78cd 100644
--- a/drivers/usb/gadget/lpc32xx_udc.c
+++ b/drivers/usb/gadget/lpc32xx_udc.c
@@ -3090,7 +3090,6 @@ static int __init lpc32xx_udc_probe(struct platform_device *pdev)
 
 	/* init software state */
 	udc->gadget.dev.parent = dev;
-	udc->gadget.register_my_device = true;
 	udc->pdev = pdev;
 	udc->dev = &pdev->dev;
 	udc->enabled = 0;
diff --git a/drivers/usb/gadget/m66592-udc.c b/drivers/usb/gadget/m66592-udc.c
index c5d1b39..5ba712f 100644
--- a/drivers/usb/gadget/m66592-udc.c
+++ b/drivers/usb/gadget/m66592-udc.c
@@ -1612,7 +1612,6 @@ static int __init m66592_probe(struct platform_device *pdev)
 	m66592->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	m66592->gadget.dev.release = pdev->dev.release;
 	m66592->gadget.name = udc_name;
-	m66592->gadget.register_my_device = true;
 
 	init_timer(&m66592->timer);
 	m66592->timer.function = m66592_timer;
diff --git a/drivers/usb/gadget/mv_u3d_core.c b/drivers/usb/gadget/mv_u3d_core.c
index 734ade1..e5735fc 100644
--- a/drivers/usb/gadget/mv_u3d_core.c
+++ b/drivers/usb/gadget/mv_u3d_core.c
@@ -1959,7 +1959,6 @@ static int mv_u3d_probe(struct platform_device *dev)
 	u3d->gadget.dev.dma_mask = dev->dev.dma_mask;
 	u3d->gadget.dev.release = mv_u3d_gadget_release;
 	u3d->gadget.name = driver_name;		/* gadget name */
-	u3d->gadget.register_my_device = true;
 
 	mv_u3d_eps_init(u3d);
 
diff --git a/drivers/usb/gadget/mv_udc_core.c b/drivers/usb/gadget/mv_udc_core.c
index 60741af..73b90f9 100644
--- a/drivers/usb/gadget/mv_udc_core.c
+++ b/drivers/usb/gadget/mv_udc_core.c
@@ -2313,7 +2313,6 @@ static int mv_udc_probe(struct platform_device *pdev)
 	udc->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	udc->gadget.dev.release = gadget_release;
 	udc->gadget.name = driver_name;		/* gadget name */
-	udc->gadget.register_my_device = true;
 
 	eps_init(udc);
 
diff --git a/drivers/usb/gadget/net2272.c b/drivers/usb/gadget/net2272.c
index 635248f..78c8bb5 100644
--- a/drivers/usb/gadget/net2272.c
+++ b/drivers/usb/gadget/net2272.c
@@ -2239,7 +2239,6 @@ static struct net2272 *net2272_probe_init(struct device *dev, unsigned int irq)
 	ret->gadget.dev.dma_mask = dev->dma_mask;
 	ret->gadget.dev.release = net2272_gadget_release;
 	ret->gadget.name = driver_name;
-	ret->gadget.register_my_device = true;
 
 	return ret;
 }
diff --git a/drivers/usb/gadget/net2280.c b/drivers/usb/gadget/net2280.c
index 630f715..5da1ffc 100644
--- a/drivers/usb/gadget/net2280.c
+++ b/drivers/usb/gadget/net2280.c
@@ -2702,7 +2702,6 @@ static int net2280_probe (struct pci_dev *pdev, const struct pci_device_id *id)
 	dev->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	dev->gadget.dev.release = gadget_release;
 	dev->gadget.name = driver_name;
-	dev->gadget.register_my_device = true;
 
 	/* now all the pci goodies ... */
 	if (pci_enable_device (pdev) < 0) {
diff --git a/drivers/usb/gadget/omap_udc.c b/drivers/usb/gadget/omap_udc.c
index 234e82b..3faa50e 100644
--- a/drivers/usb/gadget/omap_udc.c
+++ b/drivers/usb/gadget/omap_udc.c
@@ -2633,7 +2633,6 @@ omap_udc_setup(struct platform_device *odev, struct usb_phy *xceiv)
 
 	udc->gadget.dev.release = omap_udc_release;
 	udc->gadget.dev.parent = &odev->dev;
-	udc->gadget.register_my_device = true;
 	if (use_dma)
 		udc->gadget.dev.dma_mask = odev->dev.dma_mask;
 
diff --git a/drivers/usb/gadget/pch_udc.c b/drivers/usb/gadget/pch_udc.c
index 7032145..e8c9afd 100644
--- a/drivers/usb/gadget/pch_udc.c
+++ b/drivers/usb/gadget/pch_udc.c
@@ -3198,7 +3198,6 @@ static int pch_udc_probe(struct pci_dev *pdev,
 	dev->gadget.dev.release = gadget_release;
 	dev->gadget.name = KBUILD_MODNAME;
 	dev->gadget.max_speed = USB_SPEED_HIGH;
-	dev->gadget.register_my_device = true;
 
 	/* Put the device in disconnected state till a driver is bound */
 	pch_udc_set_disconnect(dev);
diff --git a/drivers/usb/gadget/pxa25x_udc.c b/drivers/usb/gadget/pxa25x_udc.c
index 9deffd3..b19e2bb 100644
--- a/drivers/usb/gadget/pxa25x_udc.c
+++ b/drivers/usb/gadget/pxa25x_udc.c
@@ -2134,7 +2134,6 @@ static int __init pxa25x_udc_probe(struct platform_device *pdev)
 
 	dev->gadget.dev.parent = &pdev->dev;
 	dev->gadget.dev.dma_mask = pdev->dev.dma_mask;
-	dev->gadget.register_my_device = true;
 
 	the_controller = dev;
 	platform_set_drvdata(pdev, dev);
diff --git a/drivers/usb/gadget/pxa27x_udc.c b/drivers/usb/gadget/pxa27x_udc.c
index 23a3eed..bc67ba7 100644
--- a/drivers/usb/gadget/pxa27x_udc.c
+++ b/drivers/usb/gadget/pxa27x_udc.c
@@ -2457,7 +2457,6 @@ static int __init pxa_udc_probe(struct platform_device *pdev)
 
 	udc->gadget.dev.parent = &pdev->dev;
 	udc->gadget.dev.dma_mask = NULL;
-	udc->gadget.register_my_device = true;
 	udc->vbus_sensed = 0;
 
 	the_controller = udc;
diff --git a/drivers/usb/gadget/r8a66597-udc.c b/drivers/usb/gadget/r8a66597-udc.c
index 40ef4bd..bdadbbe 100644
--- a/drivers/usb/gadget/r8a66597-udc.c
+++ b/drivers/usb/gadget/r8a66597-udc.c
@@ -1919,7 +1919,6 @@ static int __init r8a66597_probe(struct platform_device *pdev)
 	r8a66597->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	r8a66597->gadget.dev.release = pdev->dev.release;
 	r8a66597->gadget.name = udc_name;
-	r8a66597->gadget.register_my_device = true;
 
 	init_timer(&r8a66597->timer);
 	r8a66597->timer.function = r8a66597_timer;
diff --git a/drivers/usb/gadget/s3c-hsotg.c b/drivers/usb/gadget/s3c-hsotg.c
index bd8292d..3adc5bf 100644
--- a/drivers/usb/gadget/s3c-hsotg.c
+++ b/drivers/usb/gadget/s3c-hsotg.c
@@ -3558,7 +3558,6 @@ static int s3c_hsotg_probe(struct platform_device *pdev)
 	hsotg->gadget.dev.parent = dev;
 	hsotg->gadget.dev.dma_mask = dev->dma_mask;
 	hsotg->gadget.dev.release = s3c_hsotg_release;
-	hsotg->gadget.register_my_device = true;
 
 	/* reset the system */
 
diff --git a/drivers/usb/gadget/s3c-hsudc.c b/drivers/usb/gadget/s3c-hsudc.c
index dee6810..d1c3b1b 100644
--- a/drivers/usb/gadget/s3c-hsudc.c
+++ b/drivers/usb/gadget/s3c-hsudc.c
@@ -1313,7 +1313,6 @@ static int s3c_hsudc_probe(struct platform_device *pdev)
 	hsudc->gadget.is_otg = 0;
 	hsudc->gadget.is_a_peripheral = 0;
 	hsudc->gadget.speed = USB_SPEED_UNKNOWN;
-	hsudc->gadget.register_my_device = true;
 
 	s3c_hsudc_setup_ep(hsudc);
 
diff --git a/drivers/usb/gadget/s3c2410_udc.c b/drivers/usb/gadget/s3c2410_udc.c
index 302e137..dbe6125 100644
--- a/drivers/usb/gadget/s3c2410_udc.c
+++ b/drivers/usb/gadget/s3c2410_udc.c
@@ -1832,7 +1832,6 @@ static int s3c2410_udc_probe(struct platform_device *pdev)
 
 	udc->gadget.dev.parent = &pdev->dev;
 	udc->gadget.dev.dma_mask = pdev->dev.dma_mask;
-	udc->gadget.register_my_device = true;
 
 	the_controller = udc;
 	platform_set_drvdata(pdev, udc);
diff --git a/drivers/usb/gadget/udc-core.c b/drivers/usb/gadget/udc-core.c
index 9195054..4ee0efc 100644
--- a/drivers/usb/gadget/udc-core.c
+++ b/drivers/usb/gadget/udc-core.c
@@ -173,7 +173,6 @@ int usb_add_gadget_udc(struct device *parent, struct usb_gadget *gadget)
 	if (!udc)
 		goto err1;
 
-	if (gadget->register_my_device) {
 		dev_set_name(&gadget->dev, "gadget");
 
 		ret = device_register(&gadget->dev);
@@ -211,7 +210,6 @@ err3:
 	put_device(&udc->dev);
 
 err2:
-	if (gadget->register_my_device)
 		put_device(&gadget->dev);
 err1:
 	return ret;
@@ -267,7 +265,6 @@ found:
 	kobject_uevent(&udc->dev.kobj, KOBJ_REMOVE);
 	device_unregister(&udc->dev);
 
-	if (gadget->register_my_device)
 		device_unregister(&gadget->dev);
 }
 EXPORT_SYMBOL_GPL(usb_del_gadget_udc);
diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c
index 1c4a8e8..af88e27 100644
--- a/drivers/usb/musb/musb_gadget.c
+++ b/drivers/usb/musb/musb_gadget.c
@@ -1875,7 +1875,6 @@ int musb_gadget_setup(struct musb *musb)
 	musb->g.dev.dma_mask = musb->controller->dma_mask;
 	musb->g.dev.release = musb_gadget_release;
 	musb->g.name = musb_driver_name;
-	musb->g.register_my_device = true;
 	musb->g.is_otg = 1;
 
 	musb_g_init_endpoints(musb);
diff --git a/drivers/usb/renesas_usbhs/mod_gadget.c b/drivers/usb/renesas_usbhs/mod_gadget.c
index b42d81d..853271e 100644
--- a/drivers/usb/renesas_usbhs/mod_gadget.c
+++ b/drivers/usb/renesas_usbhs/mod_gadget.c
@@ -986,7 +986,6 @@ int usbhs_mod_gadget_probe(struct usbhs_priv *priv)
 	gpriv->gadget.name		= "renesas_usbhs_udc";
 	gpriv->gadget.ops		= &usbhsg_gadget_ops;
 	gpriv->gadget.max_speed		= USB_SPEED_HIGH;
-	gpriv->gadget.register_my_device = true;
 
 	INIT_LIST_HEAD(&gpriv->gadget.ep_list);
 
diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
index fcd9ef8..2e297e8 100644
--- a/include/linux/usb/gadget.h
+++ b/include/linux/usb/gadget.h
@@ -494,9 +494,6 @@ struct usb_gadget_ops {
  *	only supports HNP on a different root port.
  * @b_hnp_enable: OTG device feature flag, indicating that the A-Host
  *	enabled HNP support.
- * @register_my_device: Flag telling udc-core that UDC driver didn't
- *	register the gadget device to the driver model. Temporary until
- *	all UDC drivers are fixed up properly.
  * @name: Identifies the controller hardware type.  Used in diagnostics
  *	and sometimes configuration.
  * @dev: Driver model state for this abstract device.
@@ -534,7 +531,6 @@ struct usb_gadget {
 	unsigned			b_hnp_enable:1;
 	unsigned			a_hnp_support:1;
 	unsigned			a_alt_hnp_support:1;
-	unsigned			register_my_device:1;
 	const char			*name;
 	struct device			dev;
 	unsigned			out_epnum;
-- 
1.8.1.rc1.5.g7e0651a


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

* [RFC/PATCH 32/32] usb: gadget: drop now unnecessary flag
@ 2013-01-24 15:46   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: Linux USB Mailing List
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, nicolas.ferre, linux-geode,
	haojian.zhuang, Linux OMAP Mailing List, linux-samsung-soc,
	Felipe Balbi, ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

We don't need the ->register_my_device flag
anymore because all UDC drivers have been
properly converted.

Let's remove every history of it.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/chipidea/udc.c             | 1 -
 drivers/usb/dwc3/gadget.c              | 1 -
 drivers/usb/gadget/amd5536udc.c        | 1 -
 drivers/usb/gadget/at91_udc.c          | 1 -
 drivers/usb/gadget/atmel_usba_udc.c    | 1 -
 drivers/usb/gadget/bcm63xx_udc.c       | 1 -
 drivers/usb/gadget/dummy_hcd.c         | 1 -
 drivers/usb/gadget/fsl_qe_udc.c        | 1 -
 drivers/usb/gadget/fsl_udc_core.c      | 1 -
 drivers/usb/gadget/fusb300_udc.c       | 1 -
 drivers/usb/gadget/goku_udc.c          | 1 -
 drivers/usb/gadget/imx_udc.c           | 1 -
 drivers/usb/gadget/lpc32xx_udc.c       | 1 -
 drivers/usb/gadget/m66592-udc.c        | 1 -
 drivers/usb/gadget/mv_u3d_core.c       | 1 -
 drivers/usb/gadget/mv_udc_core.c       | 1 -
 drivers/usb/gadget/net2272.c           | 1 -
 drivers/usb/gadget/net2280.c           | 1 -
 drivers/usb/gadget/omap_udc.c          | 1 -
 drivers/usb/gadget/pch_udc.c           | 1 -
 drivers/usb/gadget/pxa25x_udc.c        | 1 -
 drivers/usb/gadget/pxa27x_udc.c        | 1 -
 drivers/usb/gadget/r8a66597-udc.c      | 1 -
 drivers/usb/gadget/s3c-hsotg.c         | 1 -
 drivers/usb/gadget/s3c-hsudc.c         | 1 -
 drivers/usb/gadget/s3c2410_udc.c       | 1 -
 drivers/usb/gadget/udc-core.c          | 3 ---
 drivers/usb/musb/musb_gadget.c         | 1 -
 drivers/usb/renesas_usbhs/mod_gadget.c | 1 -
 include/linux/usb/gadget.h             | 4 ----
 30 files changed, 35 deletions(-)

diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c
index e95e8bb..1b65ac8 100644
--- a/drivers/usb/chipidea/udc.c
+++ b/drivers/usb/chipidea/udc.c
@@ -1721,7 +1721,6 @@ static int udc_start(struct ci13xxx *ci)
 	ci->gadget.dev.coherent_dma_mask = dev->coherent_dma_mask;
 	ci->gadget.dev.parent   = dev;
 	ci->gadget.dev.release  = udc_release;
-	ci->gadget.register_my_device = true;
 
 	/* alloc resources */
 	ci->qh_pool = dma_pool_create("ci13xxx_qh", dev,
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 7002cf6..067ba6ad 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -2423,7 +2423,6 @@ int dwc3_gadget_init(struct dwc3 *dwc)
 	dwc->gadget.dev.dma_parms	= dwc->dev->dma_parms;
 	dwc->gadget.dev.dma_mask	= dwc->dev->dma_mask;
 	dwc->gadget.dev.release		= dwc3_gadget_release;
-	dwc->gadget.register_my_device	= true;
 	dwc->gadget.name		= "dwc3-gadget";
 
 	/*
diff --git a/drivers/usb/gadget/amd5536udc.c b/drivers/usb/gadget/amd5536udc.c
index 1827d4c..35ab5d3 100644
--- a/drivers/usb/gadget/amd5536udc.c
+++ b/drivers/usb/gadget/amd5536udc.c
@@ -3275,7 +3275,6 @@ static int udc_probe(struct udc *dev)
 	dev->gadget.dev.release = gadget_release;
 	dev->gadget.name = name;
 	dev->gadget.max_speed = USB_SPEED_HIGH;
-	dev->gadget.register_my_device = true;
 
 	/* init registers, interrupts, ... */
 	startup_registers(dev);
diff --git a/drivers/usb/gadget/at91_udc.c b/drivers/usb/gadget/at91_udc.c
index 177b56d..dc3682c 100644
--- a/drivers/usb/gadget/at91_udc.c
+++ b/drivers/usb/gadget/at91_udc.c
@@ -1726,7 +1726,6 @@ static int at91udc_probe(struct platform_device *pdev)
 
 	/* init software state */
 	udc = &controller;
-	udc->gadget.register_my_device = true;
 	udc->gadget.dev.parent = dev;
 	if (pdev->dev.of_node)
 		at91udc_of_init(udc, pdev->dev.of_node);
diff --git a/drivers/usb/gadget/atmel_usba_udc.c b/drivers/usb/gadget/atmel_usba_udc.c
index f0f9423..b197b75 100644
--- a/drivers/usb/gadget/atmel_usba_udc.c
+++ b/drivers/usb/gadget/atmel_usba_udc.c
@@ -1902,7 +1902,6 @@ static int __init usba_udc_probe(struct platform_device *pdev)
 
 	udc->gadget.dev.parent = &pdev->dev;
 	udc->gadget.dev.dma_mask = pdev->dev.dma_mask;
-	udc->gadget.register_my_device = true;
 
 	platform_set_drvdata(pdev, udc);
 
diff --git a/drivers/usb/gadget/bcm63xx_udc.c b/drivers/usb/gadget/bcm63xx_udc.c
index 10b0475..96a585ee 100644
--- a/drivers/usb/gadget/bcm63xx_udc.c
+++ b/drivers/usb/gadget/bcm63xx_udc.c
@@ -2373,7 +2373,6 @@ static int bcm63xx_udc_probe(struct platform_device *pdev)
 	udc->gadget.dev.parent = dev;
 	udc->gadget.dev.release = bcm63xx_udc_gadget_release;
 	udc->gadget.dev.dma_mask = dev->dma_mask;
-	udc->gadget.register_my_device = true;
 
 	if (!pd->use_fullspeed && !use_fullspeed)
 		udc->gadget.max_speed = USB_SPEED_HIGH;
diff --git a/drivers/usb/gadget/dummy_hcd.c b/drivers/usb/gadget/dummy_hcd.c
index 8155d4a..7fe600f 100644
--- a/drivers/usb/gadget/dummy_hcd.c
+++ b/drivers/usb/gadget/dummy_hcd.c
@@ -982,7 +982,6 @@ static int dummy_udc_probe(struct platform_device *pdev)
 	dum->gadget.name = gadget_name;
 	dum->gadget.ops = &dummy_ops;
 	dum->gadget.max_speed = USB_SPEED_SUPER;
-	dum->gadget.register_my_device = true;
 
 	dum->gadget.dev.parent = &pdev->dev;
 	dum->gadget.dev.release = dummy_gadget_release;
diff --git a/drivers/usb/gadget/fsl_qe_udc.c b/drivers/usb/gadget/fsl_qe_udc.c
index 08c8432..010e216 100644
--- a/drivers/usb/gadget/fsl_qe_udc.c
+++ b/drivers/usb/gadget/fsl_qe_udc.c
@@ -2525,7 +2525,6 @@ static int qe_udc_probe(struct platform_device *ofdev)
 	udc->gadget.name = driver_name;
 	udc->gadget.dev.release = qe_udc_release;
 	udc->gadget.dev.parent = &ofdev->dev;
-	udc->gadget.register_my_device = true;
 
 	/* initialize qe_ep struct */
 	for (i = 0; i < USB_MAX_ENDPOINTS ; i++) {
diff --git a/drivers/usb/gadget/fsl_udc_core.c b/drivers/usb/gadget/fsl_udc_core.c
index b78b734..449bf13 100644
--- a/drivers/usb/gadget/fsl_udc_core.c
+++ b/drivers/usb/gadget/fsl_udc_core.c
@@ -2526,7 +2526,6 @@ static int __init fsl_udc_probe(struct platform_device *pdev)
 	udc_controller->gadget.dev.release = fsl_udc_release;
 	udc_controller->gadget.dev.parent = &pdev->dev;
 	udc_controller->gadget.dev.of_node = pdev->dev.of_node;
-	udc_controller->gadget.register_my_device = true;
 
 	if (!IS_ERR_OR_NULL(udc_controller->transceiver))
 		udc_controller->gadget.is_otg = 1;
diff --git a/drivers/usb/gadget/fusb300_udc.c b/drivers/usb/gadget/fusb300_udc.c
index 798a25b..093e6c6 100644
--- a/drivers/usb/gadget/fusb300_udc.c
+++ b/drivers/usb/gadget/fusb300_udc.c
@@ -1427,7 +1427,6 @@ static int __init fusb300_probe(struct platform_device *pdev)
 	fusb300->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	fusb300->gadget.dev.release = pdev->dev.release;
 	fusb300->gadget.name = udc_name;
-	fusb300->gadget.register_my_device = true;
 	fusb300->reg = reg;
 
 	ret = request_irq(ires->start, fusb300_irq, IRQF_SHARED,
diff --git a/drivers/usb/gadget/goku_udc.c b/drivers/usb/gadget/goku_udc.c
index b4ea2cf..8a6c666 100644
--- a/drivers/usb/gadget/goku_udc.c
+++ b/drivers/usb/gadget/goku_udc.c
@@ -1758,7 +1758,6 @@ static int goku_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 	dev->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	dev->gadget.dev.release = gadget_release;
 	dev->gadget.name = driver_name;
-	dev->gadget.register_my_device = true;
 
 	/* now all the pci goodies ... */
 	retval = pci_enable_device(pdev);
diff --git a/drivers/usb/gadget/imx_udc.c b/drivers/usb/gadget/imx_udc.c
index c8b5da3..4cc8a92 100644
--- a/drivers/usb/gadget/imx_udc.c
+++ b/drivers/usb/gadget/imx_udc.c
@@ -1462,7 +1462,6 @@ static int __init imx_udc_probe(struct platform_device *pdev)
 	imx_usb->clk = clk;
 	imx_usb->dev = &pdev->dev;
 
-	imx_usb->gadget.register_my_device = true;
 	imx_usb->gadget.dev.parent = &pdev->dev;
 	imx_usb->gadget.dev.dma_mask = pdev->dev.dma_mask;
 
diff --git a/drivers/usb/gadget/lpc32xx_udc.c b/drivers/usb/gadget/lpc32xx_udc.c
index 077e021..0ad78cd 100644
--- a/drivers/usb/gadget/lpc32xx_udc.c
+++ b/drivers/usb/gadget/lpc32xx_udc.c
@@ -3090,7 +3090,6 @@ static int __init lpc32xx_udc_probe(struct platform_device *pdev)
 
 	/* init software state */
 	udc->gadget.dev.parent = dev;
-	udc->gadget.register_my_device = true;
 	udc->pdev = pdev;
 	udc->dev = &pdev->dev;
 	udc->enabled = 0;
diff --git a/drivers/usb/gadget/m66592-udc.c b/drivers/usb/gadget/m66592-udc.c
index c5d1b39..5ba712f 100644
--- a/drivers/usb/gadget/m66592-udc.c
+++ b/drivers/usb/gadget/m66592-udc.c
@@ -1612,7 +1612,6 @@ static int __init m66592_probe(struct platform_device *pdev)
 	m66592->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	m66592->gadget.dev.release = pdev->dev.release;
 	m66592->gadget.name = udc_name;
-	m66592->gadget.register_my_device = true;
 
 	init_timer(&m66592->timer);
 	m66592->timer.function = m66592_timer;
diff --git a/drivers/usb/gadget/mv_u3d_core.c b/drivers/usb/gadget/mv_u3d_core.c
index 734ade1..e5735fc 100644
--- a/drivers/usb/gadget/mv_u3d_core.c
+++ b/drivers/usb/gadget/mv_u3d_core.c
@@ -1959,7 +1959,6 @@ static int mv_u3d_probe(struct platform_device *dev)
 	u3d->gadget.dev.dma_mask = dev->dev.dma_mask;
 	u3d->gadget.dev.release = mv_u3d_gadget_release;
 	u3d->gadget.name = driver_name;		/* gadget name */
-	u3d->gadget.register_my_device = true;
 
 	mv_u3d_eps_init(u3d);
 
diff --git a/drivers/usb/gadget/mv_udc_core.c b/drivers/usb/gadget/mv_udc_core.c
index 60741af..73b90f9 100644
--- a/drivers/usb/gadget/mv_udc_core.c
+++ b/drivers/usb/gadget/mv_udc_core.c
@@ -2313,7 +2313,6 @@ static int mv_udc_probe(struct platform_device *pdev)
 	udc->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	udc->gadget.dev.release = gadget_release;
 	udc->gadget.name = driver_name;		/* gadget name */
-	udc->gadget.register_my_device = true;
 
 	eps_init(udc);
 
diff --git a/drivers/usb/gadget/net2272.c b/drivers/usb/gadget/net2272.c
index 635248f..78c8bb5 100644
--- a/drivers/usb/gadget/net2272.c
+++ b/drivers/usb/gadget/net2272.c
@@ -2239,7 +2239,6 @@ static struct net2272 *net2272_probe_init(struct device *dev, unsigned int irq)
 	ret->gadget.dev.dma_mask = dev->dma_mask;
 	ret->gadget.dev.release = net2272_gadget_release;
 	ret->gadget.name = driver_name;
-	ret->gadget.register_my_device = true;
 
 	return ret;
 }
diff --git a/drivers/usb/gadget/net2280.c b/drivers/usb/gadget/net2280.c
index 630f715..5da1ffc 100644
--- a/drivers/usb/gadget/net2280.c
+++ b/drivers/usb/gadget/net2280.c
@@ -2702,7 +2702,6 @@ static int net2280_probe (struct pci_dev *pdev, const struct pci_device_id *id)
 	dev->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	dev->gadget.dev.release = gadget_release;
 	dev->gadget.name = driver_name;
-	dev->gadget.register_my_device = true;
 
 	/* now all the pci goodies ... */
 	if (pci_enable_device (pdev) < 0) {
diff --git a/drivers/usb/gadget/omap_udc.c b/drivers/usb/gadget/omap_udc.c
index 234e82b..3faa50e 100644
--- a/drivers/usb/gadget/omap_udc.c
+++ b/drivers/usb/gadget/omap_udc.c
@@ -2633,7 +2633,6 @@ omap_udc_setup(struct platform_device *odev, struct usb_phy *xceiv)
 
 	udc->gadget.dev.release = omap_udc_release;
 	udc->gadget.dev.parent = &odev->dev;
-	udc->gadget.register_my_device = true;
 	if (use_dma)
 		udc->gadget.dev.dma_mask = odev->dev.dma_mask;
 
diff --git a/drivers/usb/gadget/pch_udc.c b/drivers/usb/gadget/pch_udc.c
index 7032145..e8c9afd 100644
--- a/drivers/usb/gadget/pch_udc.c
+++ b/drivers/usb/gadget/pch_udc.c
@@ -3198,7 +3198,6 @@ static int pch_udc_probe(struct pci_dev *pdev,
 	dev->gadget.dev.release = gadget_release;
 	dev->gadget.name = KBUILD_MODNAME;
 	dev->gadget.max_speed = USB_SPEED_HIGH;
-	dev->gadget.register_my_device = true;
 
 	/* Put the device in disconnected state till a driver is bound */
 	pch_udc_set_disconnect(dev);
diff --git a/drivers/usb/gadget/pxa25x_udc.c b/drivers/usb/gadget/pxa25x_udc.c
index 9deffd3..b19e2bb 100644
--- a/drivers/usb/gadget/pxa25x_udc.c
+++ b/drivers/usb/gadget/pxa25x_udc.c
@@ -2134,7 +2134,6 @@ static int __init pxa25x_udc_probe(struct platform_device *pdev)
 
 	dev->gadget.dev.parent = &pdev->dev;
 	dev->gadget.dev.dma_mask = pdev->dev.dma_mask;
-	dev->gadget.register_my_device = true;
 
 	the_controller = dev;
 	platform_set_drvdata(pdev, dev);
diff --git a/drivers/usb/gadget/pxa27x_udc.c b/drivers/usb/gadget/pxa27x_udc.c
index 23a3eed..bc67ba7 100644
--- a/drivers/usb/gadget/pxa27x_udc.c
+++ b/drivers/usb/gadget/pxa27x_udc.c
@@ -2457,7 +2457,6 @@ static int __init pxa_udc_probe(struct platform_device *pdev)
 
 	udc->gadget.dev.parent = &pdev->dev;
 	udc->gadget.dev.dma_mask = NULL;
-	udc->gadget.register_my_device = true;
 	udc->vbus_sensed = 0;
 
 	the_controller = udc;
diff --git a/drivers/usb/gadget/r8a66597-udc.c b/drivers/usb/gadget/r8a66597-udc.c
index 40ef4bd..bdadbbe 100644
--- a/drivers/usb/gadget/r8a66597-udc.c
+++ b/drivers/usb/gadget/r8a66597-udc.c
@@ -1919,7 +1919,6 @@ static int __init r8a66597_probe(struct platform_device *pdev)
 	r8a66597->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	r8a66597->gadget.dev.release = pdev->dev.release;
 	r8a66597->gadget.name = udc_name;
-	r8a66597->gadget.register_my_device = true;
 
 	init_timer(&r8a66597->timer);
 	r8a66597->timer.function = r8a66597_timer;
diff --git a/drivers/usb/gadget/s3c-hsotg.c b/drivers/usb/gadget/s3c-hsotg.c
index bd8292d..3adc5bf 100644
--- a/drivers/usb/gadget/s3c-hsotg.c
+++ b/drivers/usb/gadget/s3c-hsotg.c
@@ -3558,7 +3558,6 @@ static int s3c_hsotg_probe(struct platform_device *pdev)
 	hsotg->gadget.dev.parent = dev;
 	hsotg->gadget.dev.dma_mask = dev->dma_mask;
 	hsotg->gadget.dev.release = s3c_hsotg_release;
-	hsotg->gadget.register_my_device = true;
 
 	/* reset the system */
 
diff --git a/drivers/usb/gadget/s3c-hsudc.c b/drivers/usb/gadget/s3c-hsudc.c
index dee6810..d1c3b1b 100644
--- a/drivers/usb/gadget/s3c-hsudc.c
+++ b/drivers/usb/gadget/s3c-hsudc.c
@@ -1313,7 +1313,6 @@ static int s3c_hsudc_probe(struct platform_device *pdev)
 	hsudc->gadget.is_otg = 0;
 	hsudc->gadget.is_a_peripheral = 0;
 	hsudc->gadget.speed = USB_SPEED_UNKNOWN;
-	hsudc->gadget.register_my_device = true;
 
 	s3c_hsudc_setup_ep(hsudc);
 
diff --git a/drivers/usb/gadget/s3c2410_udc.c b/drivers/usb/gadget/s3c2410_udc.c
index 302e137..dbe6125 100644
--- a/drivers/usb/gadget/s3c2410_udc.c
+++ b/drivers/usb/gadget/s3c2410_udc.c
@@ -1832,7 +1832,6 @@ static int s3c2410_udc_probe(struct platform_device *pdev)
 
 	udc->gadget.dev.parent = &pdev->dev;
 	udc->gadget.dev.dma_mask = pdev->dev.dma_mask;
-	udc->gadget.register_my_device = true;
 
 	the_controller = udc;
 	platform_set_drvdata(pdev, udc);
diff --git a/drivers/usb/gadget/udc-core.c b/drivers/usb/gadget/udc-core.c
index 9195054..4ee0efc 100644
--- a/drivers/usb/gadget/udc-core.c
+++ b/drivers/usb/gadget/udc-core.c
@@ -173,7 +173,6 @@ int usb_add_gadget_udc(struct device *parent, struct usb_gadget *gadget)
 	if (!udc)
 		goto err1;
 
-	if (gadget->register_my_device) {
 		dev_set_name(&gadget->dev, "gadget");
 
 		ret = device_register(&gadget->dev);
@@ -211,7 +210,6 @@ err3:
 	put_device(&udc->dev);
 
 err2:
-	if (gadget->register_my_device)
 		put_device(&gadget->dev);
 err1:
 	return ret;
@@ -267,7 +265,6 @@ found:
 	kobject_uevent(&udc->dev.kobj, KOBJ_REMOVE);
 	device_unregister(&udc->dev);
 
-	if (gadget->register_my_device)
 		device_unregister(&gadget->dev);
 }
 EXPORT_SYMBOL_GPL(usb_del_gadget_udc);
diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c
index 1c4a8e8..af88e27 100644
--- a/drivers/usb/musb/musb_gadget.c
+++ b/drivers/usb/musb/musb_gadget.c
@@ -1875,7 +1875,6 @@ int musb_gadget_setup(struct musb *musb)
 	musb->g.dev.dma_mask = musb->controller->dma_mask;
 	musb->g.dev.release = musb_gadget_release;
 	musb->g.name = musb_driver_name;
-	musb->g.register_my_device = true;
 	musb->g.is_otg = 1;
 
 	musb_g_init_endpoints(musb);
diff --git a/drivers/usb/renesas_usbhs/mod_gadget.c b/drivers/usb/renesas_usbhs/mod_gadget.c
index b42d81d..853271e 100644
--- a/drivers/usb/renesas_usbhs/mod_gadget.c
+++ b/drivers/usb/renesas_usbhs/mod_gadget.c
@@ -986,7 +986,6 @@ int usbhs_mod_gadget_probe(struct usbhs_priv *priv)
 	gpriv->gadget.name		= "renesas_usbhs_udc";
 	gpriv->gadget.ops		= &usbhsg_gadget_ops;
 	gpriv->gadget.max_speed		= USB_SPEED_HIGH;
-	gpriv->gadget.register_my_device = true;
 
 	INIT_LIST_HEAD(&gpriv->gadget.ep_list);
 
diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
index fcd9ef8..2e297e8 100644
--- a/include/linux/usb/gadget.h
+++ b/include/linux/usb/gadget.h
@@ -494,9 +494,6 @@ struct usb_gadget_ops {
  *	only supports HNP on a different root port.
  * @b_hnp_enable: OTG device feature flag, indicating that the A-Host
  *	enabled HNP support.
- * @register_my_device: Flag telling udc-core that UDC driver didn't
- *	register the gadget device to the driver model. Temporary until
- *	all UDC drivers are fixed up properly.
  * @name: Identifies the controller hardware type.  Used in diagnostics
  *	and sometimes configuration.
  * @dev: Driver model state for this abstract device.
@@ -534,7 +531,6 @@ struct usb_gadget {
 	unsigned			b_hnp_enable:1;
 	unsigned			a_hnp_support:1;
 	unsigned			a_alt_hnp_support:1;
-	unsigned			register_my_device:1;
 	const char			*name;
 	struct device			dev;
 	unsigned			out_epnum;
-- 
1.8.1.rc1.5.g7e0651a

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

* [RFC/PATCH 32/32] usb: gadget: drop now unnecessary flag
@ 2013-01-24 15:46   ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 15:46 UTC (permalink / raw)
  To: linux-arm-kernel

We don't need the ->register_my_device flag
anymore because all UDC drivers have been
properly converted.

Let's remove every history of it.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/chipidea/udc.c             | 1 -
 drivers/usb/dwc3/gadget.c              | 1 -
 drivers/usb/gadget/amd5536udc.c        | 1 -
 drivers/usb/gadget/at91_udc.c          | 1 -
 drivers/usb/gadget/atmel_usba_udc.c    | 1 -
 drivers/usb/gadget/bcm63xx_udc.c       | 1 -
 drivers/usb/gadget/dummy_hcd.c         | 1 -
 drivers/usb/gadget/fsl_qe_udc.c        | 1 -
 drivers/usb/gadget/fsl_udc_core.c      | 1 -
 drivers/usb/gadget/fusb300_udc.c       | 1 -
 drivers/usb/gadget/goku_udc.c          | 1 -
 drivers/usb/gadget/imx_udc.c           | 1 -
 drivers/usb/gadget/lpc32xx_udc.c       | 1 -
 drivers/usb/gadget/m66592-udc.c        | 1 -
 drivers/usb/gadget/mv_u3d_core.c       | 1 -
 drivers/usb/gadget/mv_udc_core.c       | 1 -
 drivers/usb/gadget/net2272.c           | 1 -
 drivers/usb/gadget/net2280.c           | 1 -
 drivers/usb/gadget/omap_udc.c          | 1 -
 drivers/usb/gadget/pch_udc.c           | 1 -
 drivers/usb/gadget/pxa25x_udc.c        | 1 -
 drivers/usb/gadget/pxa27x_udc.c        | 1 -
 drivers/usb/gadget/r8a66597-udc.c      | 1 -
 drivers/usb/gadget/s3c-hsotg.c         | 1 -
 drivers/usb/gadget/s3c-hsudc.c         | 1 -
 drivers/usb/gadget/s3c2410_udc.c       | 1 -
 drivers/usb/gadget/udc-core.c          | 3 ---
 drivers/usb/musb/musb_gadget.c         | 1 -
 drivers/usb/renesas_usbhs/mod_gadget.c | 1 -
 include/linux/usb/gadget.h             | 4 ----
 30 files changed, 35 deletions(-)

diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c
index e95e8bb..1b65ac8 100644
--- a/drivers/usb/chipidea/udc.c
+++ b/drivers/usb/chipidea/udc.c
@@ -1721,7 +1721,6 @@ static int udc_start(struct ci13xxx *ci)
 	ci->gadget.dev.coherent_dma_mask = dev->coherent_dma_mask;
 	ci->gadget.dev.parent   = dev;
 	ci->gadget.dev.release  = udc_release;
-	ci->gadget.register_my_device = true;
 
 	/* alloc resources */
 	ci->qh_pool = dma_pool_create("ci13xxx_qh", dev,
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 7002cf6..067ba6ad 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -2423,7 +2423,6 @@ int dwc3_gadget_init(struct dwc3 *dwc)
 	dwc->gadget.dev.dma_parms	= dwc->dev->dma_parms;
 	dwc->gadget.dev.dma_mask	= dwc->dev->dma_mask;
 	dwc->gadget.dev.release		= dwc3_gadget_release;
-	dwc->gadget.register_my_device	= true;
 	dwc->gadget.name		= "dwc3-gadget";
 
 	/*
diff --git a/drivers/usb/gadget/amd5536udc.c b/drivers/usb/gadget/amd5536udc.c
index 1827d4c..35ab5d3 100644
--- a/drivers/usb/gadget/amd5536udc.c
+++ b/drivers/usb/gadget/amd5536udc.c
@@ -3275,7 +3275,6 @@ static int udc_probe(struct udc *dev)
 	dev->gadget.dev.release = gadget_release;
 	dev->gadget.name = name;
 	dev->gadget.max_speed = USB_SPEED_HIGH;
-	dev->gadget.register_my_device = true;
 
 	/* init registers, interrupts, ... */
 	startup_registers(dev);
diff --git a/drivers/usb/gadget/at91_udc.c b/drivers/usb/gadget/at91_udc.c
index 177b56d..dc3682c 100644
--- a/drivers/usb/gadget/at91_udc.c
+++ b/drivers/usb/gadget/at91_udc.c
@@ -1726,7 +1726,6 @@ static int at91udc_probe(struct platform_device *pdev)
 
 	/* init software state */
 	udc = &controller;
-	udc->gadget.register_my_device = true;
 	udc->gadget.dev.parent = dev;
 	if (pdev->dev.of_node)
 		at91udc_of_init(udc, pdev->dev.of_node);
diff --git a/drivers/usb/gadget/atmel_usba_udc.c b/drivers/usb/gadget/atmel_usba_udc.c
index f0f9423..b197b75 100644
--- a/drivers/usb/gadget/atmel_usba_udc.c
+++ b/drivers/usb/gadget/atmel_usba_udc.c
@@ -1902,7 +1902,6 @@ static int __init usba_udc_probe(struct platform_device *pdev)
 
 	udc->gadget.dev.parent = &pdev->dev;
 	udc->gadget.dev.dma_mask = pdev->dev.dma_mask;
-	udc->gadget.register_my_device = true;
 
 	platform_set_drvdata(pdev, udc);
 
diff --git a/drivers/usb/gadget/bcm63xx_udc.c b/drivers/usb/gadget/bcm63xx_udc.c
index 10b0475..96a585ee 100644
--- a/drivers/usb/gadget/bcm63xx_udc.c
+++ b/drivers/usb/gadget/bcm63xx_udc.c
@@ -2373,7 +2373,6 @@ static int bcm63xx_udc_probe(struct platform_device *pdev)
 	udc->gadget.dev.parent = dev;
 	udc->gadget.dev.release = bcm63xx_udc_gadget_release;
 	udc->gadget.dev.dma_mask = dev->dma_mask;
-	udc->gadget.register_my_device = true;
 
 	if (!pd->use_fullspeed && !use_fullspeed)
 		udc->gadget.max_speed = USB_SPEED_HIGH;
diff --git a/drivers/usb/gadget/dummy_hcd.c b/drivers/usb/gadget/dummy_hcd.c
index 8155d4a..7fe600f 100644
--- a/drivers/usb/gadget/dummy_hcd.c
+++ b/drivers/usb/gadget/dummy_hcd.c
@@ -982,7 +982,6 @@ static int dummy_udc_probe(struct platform_device *pdev)
 	dum->gadget.name = gadget_name;
 	dum->gadget.ops = &dummy_ops;
 	dum->gadget.max_speed = USB_SPEED_SUPER;
-	dum->gadget.register_my_device = true;
 
 	dum->gadget.dev.parent = &pdev->dev;
 	dum->gadget.dev.release = dummy_gadget_release;
diff --git a/drivers/usb/gadget/fsl_qe_udc.c b/drivers/usb/gadget/fsl_qe_udc.c
index 08c8432..010e216 100644
--- a/drivers/usb/gadget/fsl_qe_udc.c
+++ b/drivers/usb/gadget/fsl_qe_udc.c
@@ -2525,7 +2525,6 @@ static int qe_udc_probe(struct platform_device *ofdev)
 	udc->gadget.name = driver_name;
 	udc->gadget.dev.release = qe_udc_release;
 	udc->gadget.dev.parent = &ofdev->dev;
-	udc->gadget.register_my_device = true;
 
 	/* initialize qe_ep struct */
 	for (i = 0; i < USB_MAX_ENDPOINTS ; i++) {
diff --git a/drivers/usb/gadget/fsl_udc_core.c b/drivers/usb/gadget/fsl_udc_core.c
index b78b734..449bf13 100644
--- a/drivers/usb/gadget/fsl_udc_core.c
+++ b/drivers/usb/gadget/fsl_udc_core.c
@@ -2526,7 +2526,6 @@ static int __init fsl_udc_probe(struct platform_device *pdev)
 	udc_controller->gadget.dev.release = fsl_udc_release;
 	udc_controller->gadget.dev.parent = &pdev->dev;
 	udc_controller->gadget.dev.of_node = pdev->dev.of_node;
-	udc_controller->gadget.register_my_device = true;
 
 	if (!IS_ERR_OR_NULL(udc_controller->transceiver))
 		udc_controller->gadget.is_otg = 1;
diff --git a/drivers/usb/gadget/fusb300_udc.c b/drivers/usb/gadget/fusb300_udc.c
index 798a25b..093e6c6 100644
--- a/drivers/usb/gadget/fusb300_udc.c
+++ b/drivers/usb/gadget/fusb300_udc.c
@@ -1427,7 +1427,6 @@ static int __init fusb300_probe(struct platform_device *pdev)
 	fusb300->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	fusb300->gadget.dev.release = pdev->dev.release;
 	fusb300->gadget.name = udc_name;
-	fusb300->gadget.register_my_device = true;
 	fusb300->reg = reg;
 
 	ret = request_irq(ires->start, fusb300_irq, IRQF_SHARED,
diff --git a/drivers/usb/gadget/goku_udc.c b/drivers/usb/gadget/goku_udc.c
index b4ea2cf..8a6c666 100644
--- a/drivers/usb/gadget/goku_udc.c
+++ b/drivers/usb/gadget/goku_udc.c
@@ -1758,7 +1758,6 @@ static int goku_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 	dev->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	dev->gadget.dev.release = gadget_release;
 	dev->gadget.name = driver_name;
-	dev->gadget.register_my_device = true;
 
 	/* now all the pci goodies ... */
 	retval = pci_enable_device(pdev);
diff --git a/drivers/usb/gadget/imx_udc.c b/drivers/usb/gadget/imx_udc.c
index c8b5da3..4cc8a92 100644
--- a/drivers/usb/gadget/imx_udc.c
+++ b/drivers/usb/gadget/imx_udc.c
@@ -1462,7 +1462,6 @@ static int __init imx_udc_probe(struct platform_device *pdev)
 	imx_usb->clk = clk;
 	imx_usb->dev = &pdev->dev;
 
-	imx_usb->gadget.register_my_device = true;
 	imx_usb->gadget.dev.parent = &pdev->dev;
 	imx_usb->gadget.dev.dma_mask = pdev->dev.dma_mask;
 
diff --git a/drivers/usb/gadget/lpc32xx_udc.c b/drivers/usb/gadget/lpc32xx_udc.c
index 077e021..0ad78cd 100644
--- a/drivers/usb/gadget/lpc32xx_udc.c
+++ b/drivers/usb/gadget/lpc32xx_udc.c
@@ -3090,7 +3090,6 @@ static int __init lpc32xx_udc_probe(struct platform_device *pdev)
 
 	/* init software state */
 	udc->gadget.dev.parent = dev;
-	udc->gadget.register_my_device = true;
 	udc->pdev = pdev;
 	udc->dev = &pdev->dev;
 	udc->enabled = 0;
diff --git a/drivers/usb/gadget/m66592-udc.c b/drivers/usb/gadget/m66592-udc.c
index c5d1b39..5ba712f 100644
--- a/drivers/usb/gadget/m66592-udc.c
+++ b/drivers/usb/gadget/m66592-udc.c
@@ -1612,7 +1612,6 @@ static int __init m66592_probe(struct platform_device *pdev)
 	m66592->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	m66592->gadget.dev.release = pdev->dev.release;
 	m66592->gadget.name = udc_name;
-	m66592->gadget.register_my_device = true;
 
 	init_timer(&m66592->timer);
 	m66592->timer.function = m66592_timer;
diff --git a/drivers/usb/gadget/mv_u3d_core.c b/drivers/usb/gadget/mv_u3d_core.c
index 734ade1..e5735fc 100644
--- a/drivers/usb/gadget/mv_u3d_core.c
+++ b/drivers/usb/gadget/mv_u3d_core.c
@@ -1959,7 +1959,6 @@ static int mv_u3d_probe(struct platform_device *dev)
 	u3d->gadget.dev.dma_mask = dev->dev.dma_mask;
 	u3d->gadget.dev.release = mv_u3d_gadget_release;
 	u3d->gadget.name = driver_name;		/* gadget name */
-	u3d->gadget.register_my_device = true;
 
 	mv_u3d_eps_init(u3d);
 
diff --git a/drivers/usb/gadget/mv_udc_core.c b/drivers/usb/gadget/mv_udc_core.c
index 60741af..73b90f9 100644
--- a/drivers/usb/gadget/mv_udc_core.c
+++ b/drivers/usb/gadget/mv_udc_core.c
@@ -2313,7 +2313,6 @@ static int mv_udc_probe(struct platform_device *pdev)
 	udc->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	udc->gadget.dev.release = gadget_release;
 	udc->gadget.name = driver_name;		/* gadget name */
-	udc->gadget.register_my_device = true;
 
 	eps_init(udc);
 
diff --git a/drivers/usb/gadget/net2272.c b/drivers/usb/gadget/net2272.c
index 635248f..78c8bb5 100644
--- a/drivers/usb/gadget/net2272.c
+++ b/drivers/usb/gadget/net2272.c
@@ -2239,7 +2239,6 @@ static struct net2272 *net2272_probe_init(struct device *dev, unsigned int irq)
 	ret->gadget.dev.dma_mask = dev->dma_mask;
 	ret->gadget.dev.release = net2272_gadget_release;
 	ret->gadget.name = driver_name;
-	ret->gadget.register_my_device = true;
 
 	return ret;
 }
diff --git a/drivers/usb/gadget/net2280.c b/drivers/usb/gadget/net2280.c
index 630f715..5da1ffc 100644
--- a/drivers/usb/gadget/net2280.c
+++ b/drivers/usb/gadget/net2280.c
@@ -2702,7 +2702,6 @@ static int net2280_probe (struct pci_dev *pdev, const struct pci_device_id *id)
 	dev->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	dev->gadget.dev.release = gadget_release;
 	dev->gadget.name = driver_name;
-	dev->gadget.register_my_device = true;
 
 	/* now all the pci goodies ... */
 	if (pci_enable_device (pdev) < 0) {
diff --git a/drivers/usb/gadget/omap_udc.c b/drivers/usb/gadget/omap_udc.c
index 234e82b..3faa50e 100644
--- a/drivers/usb/gadget/omap_udc.c
+++ b/drivers/usb/gadget/omap_udc.c
@@ -2633,7 +2633,6 @@ omap_udc_setup(struct platform_device *odev, struct usb_phy *xceiv)
 
 	udc->gadget.dev.release = omap_udc_release;
 	udc->gadget.dev.parent = &odev->dev;
-	udc->gadget.register_my_device = true;
 	if (use_dma)
 		udc->gadget.dev.dma_mask = odev->dev.dma_mask;
 
diff --git a/drivers/usb/gadget/pch_udc.c b/drivers/usb/gadget/pch_udc.c
index 7032145..e8c9afd 100644
--- a/drivers/usb/gadget/pch_udc.c
+++ b/drivers/usb/gadget/pch_udc.c
@@ -3198,7 +3198,6 @@ static int pch_udc_probe(struct pci_dev *pdev,
 	dev->gadget.dev.release = gadget_release;
 	dev->gadget.name = KBUILD_MODNAME;
 	dev->gadget.max_speed = USB_SPEED_HIGH;
-	dev->gadget.register_my_device = true;
 
 	/* Put the device in disconnected state till a driver is bound */
 	pch_udc_set_disconnect(dev);
diff --git a/drivers/usb/gadget/pxa25x_udc.c b/drivers/usb/gadget/pxa25x_udc.c
index 9deffd3..b19e2bb 100644
--- a/drivers/usb/gadget/pxa25x_udc.c
+++ b/drivers/usb/gadget/pxa25x_udc.c
@@ -2134,7 +2134,6 @@ static int __init pxa25x_udc_probe(struct platform_device *pdev)
 
 	dev->gadget.dev.parent = &pdev->dev;
 	dev->gadget.dev.dma_mask = pdev->dev.dma_mask;
-	dev->gadget.register_my_device = true;
 
 	the_controller = dev;
 	platform_set_drvdata(pdev, dev);
diff --git a/drivers/usb/gadget/pxa27x_udc.c b/drivers/usb/gadget/pxa27x_udc.c
index 23a3eed..bc67ba7 100644
--- a/drivers/usb/gadget/pxa27x_udc.c
+++ b/drivers/usb/gadget/pxa27x_udc.c
@@ -2457,7 +2457,6 @@ static int __init pxa_udc_probe(struct platform_device *pdev)
 
 	udc->gadget.dev.parent = &pdev->dev;
 	udc->gadget.dev.dma_mask = NULL;
-	udc->gadget.register_my_device = true;
 	udc->vbus_sensed = 0;
 
 	the_controller = udc;
diff --git a/drivers/usb/gadget/r8a66597-udc.c b/drivers/usb/gadget/r8a66597-udc.c
index 40ef4bd..bdadbbe 100644
--- a/drivers/usb/gadget/r8a66597-udc.c
+++ b/drivers/usb/gadget/r8a66597-udc.c
@@ -1919,7 +1919,6 @@ static int __init r8a66597_probe(struct platform_device *pdev)
 	r8a66597->gadget.dev.dma_mask = pdev->dev.dma_mask;
 	r8a66597->gadget.dev.release = pdev->dev.release;
 	r8a66597->gadget.name = udc_name;
-	r8a66597->gadget.register_my_device = true;
 
 	init_timer(&r8a66597->timer);
 	r8a66597->timer.function = r8a66597_timer;
diff --git a/drivers/usb/gadget/s3c-hsotg.c b/drivers/usb/gadget/s3c-hsotg.c
index bd8292d..3adc5bf 100644
--- a/drivers/usb/gadget/s3c-hsotg.c
+++ b/drivers/usb/gadget/s3c-hsotg.c
@@ -3558,7 +3558,6 @@ static int s3c_hsotg_probe(struct platform_device *pdev)
 	hsotg->gadget.dev.parent = dev;
 	hsotg->gadget.dev.dma_mask = dev->dma_mask;
 	hsotg->gadget.dev.release = s3c_hsotg_release;
-	hsotg->gadget.register_my_device = true;
 
 	/* reset the system */
 
diff --git a/drivers/usb/gadget/s3c-hsudc.c b/drivers/usb/gadget/s3c-hsudc.c
index dee6810..d1c3b1b 100644
--- a/drivers/usb/gadget/s3c-hsudc.c
+++ b/drivers/usb/gadget/s3c-hsudc.c
@@ -1313,7 +1313,6 @@ static int s3c_hsudc_probe(struct platform_device *pdev)
 	hsudc->gadget.is_otg = 0;
 	hsudc->gadget.is_a_peripheral = 0;
 	hsudc->gadget.speed = USB_SPEED_UNKNOWN;
-	hsudc->gadget.register_my_device = true;
 
 	s3c_hsudc_setup_ep(hsudc);
 
diff --git a/drivers/usb/gadget/s3c2410_udc.c b/drivers/usb/gadget/s3c2410_udc.c
index 302e137..dbe6125 100644
--- a/drivers/usb/gadget/s3c2410_udc.c
+++ b/drivers/usb/gadget/s3c2410_udc.c
@@ -1832,7 +1832,6 @@ static int s3c2410_udc_probe(struct platform_device *pdev)
 
 	udc->gadget.dev.parent = &pdev->dev;
 	udc->gadget.dev.dma_mask = pdev->dev.dma_mask;
-	udc->gadget.register_my_device = true;
 
 	the_controller = udc;
 	platform_set_drvdata(pdev, udc);
diff --git a/drivers/usb/gadget/udc-core.c b/drivers/usb/gadget/udc-core.c
index 9195054..4ee0efc 100644
--- a/drivers/usb/gadget/udc-core.c
+++ b/drivers/usb/gadget/udc-core.c
@@ -173,7 +173,6 @@ int usb_add_gadget_udc(struct device *parent, struct usb_gadget *gadget)
 	if (!udc)
 		goto err1;
 
-	if (gadget->register_my_device) {
 		dev_set_name(&gadget->dev, "gadget");
 
 		ret = device_register(&gadget->dev);
@@ -211,7 +210,6 @@ err3:
 	put_device(&udc->dev);
 
 err2:
-	if (gadget->register_my_device)
 		put_device(&gadget->dev);
 err1:
 	return ret;
@@ -267,7 +265,6 @@ found:
 	kobject_uevent(&udc->dev.kobj, KOBJ_REMOVE);
 	device_unregister(&udc->dev);
 
-	if (gadget->register_my_device)
 		device_unregister(&gadget->dev);
 }
 EXPORT_SYMBOL_GPL(usb_del_gadget_udc);
diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c
index 1c4a8e8..af88e27 100644
--- a/drivers/usb/musb/musb_gadget.c
+++ b/drivers/usb/musb/musb_gadget.c
@@ -1875,7 +1875,6 @@ int musb_gadget_setup(struct musb *musb)
 	musb->g.dev.dma_mask = musb->controller->dma_mask;
 	musb->g.dev.release = musb_gadget_release;
 	musb->g.name = musb_driver_name;
-	musb->g.register_my_device = true;
 	musb->g.is_otg = 1;
 
 	musb_g_init_endpoints(musb);
diff --git a/drivers/usb/renesas_usbhs/mod_gadget.c b/drivers/usb/renesas_usbhs/mod_gadget.c
index b42d81d..853271e 100644
--- a/drivers/usb/renesas_usbhs/mod_gadget.c
+++ b/drivers/usb/renesas_usbhs/mod_gadget.c
@@ -986,7 +986,6 @@ int usbhs_mod_gadget_probe(struct usbhs_priv *priv)
 	gpriv->gadget.name		= "renesas_usbhs_udc";
 	gpriv->gadget.ops		= &usbhsg_gadget_ops;
 	gpriv->gadget.max_speed		= USB_SPEED_HIGH;
-	gpriv->gadget.register_my_device = true;
 
 	INIT_LIST_HEAD(&gpriv->gadget.ep_list);
 
diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
index fcd9ef8..2e297e8 100644
--- a/include/linux/usb/gadget.h
+++ b/include/linux/usb/gadget.h
@@ -494,9 +494,6 @@ struct usb_gadget_ops {
  *	only supports HNP on a different root port.
  * @b_hnp_enable: OTG device feature flag, indicating that the A-Host
  *	enabled HNP support.
- * @register_my_device: Flag telling udc-core that UDC driver didn't
- *	register the gadget device to the driver model. Temporary until
- *	all UDC drivers are fixed up properly.
  * @name: Identifies the controller hardware type.  Used in diagnostics
  *	and sometimes configuration.
  * @dev: Driver model state for this abstract device.
@@ -534,7 +531,6 @@ struct usb_gadget {
 	unsigned			b_hnp_enable:1;
 	unsigned			a_hnp_support:1;
 	unsigned			a_alt_hnp_support:1;
-	unsigned			register_my_device:1;
 	const char			*name;
 	struct device			dev;
 	unsigned			out_epnum;
-- 
1.8.1.rc1.5.g7e0651a

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

* Re: [RFC/PATCH 32/32] usb: gadget: drop now unnecessary flag
  2013-01-24 15:46   ` Felipe Balbi
  (?)
@ 2013-01-24 18:52     ` Tomasz Figa
  -1 siblings, 0 replies; 117+ messages in thread
From: Tomasz Figa @ 2013-01-24 18:52 UTC (permalink / raw)
  To: Felipe Balbi
  Cc: Linux USB Mailing List, alexander.shishkin, gregkh,
	dahlmann.thomas, nicolas.ferre, leoli, eric.y.miao, linux,
	haojian.zhuang, ben-linux, kgene.kim, kuninori.morimoto.gx,
	yoshihiro.shimoda.uh, Linux OMAP Mailing List, linux-geode,
	linux-arm-kernel, linuxppc-dev, linux-samsung-soc

Hi Felipe,

On Thursday 24 of January 2013 17:46:10 Felipe Balbi wrote:
> We don't need the ->register_my_device flag
> anymore because all UDC drivers have been
> properly converted.
> 
> Let's remove every history of it.
> 
> Signed-off-by: Felipe Balbi <balbi@ti.com>
> ---
>  drivers/usb/chipidea/udc.c             | 1 -
>  drivers/usb/dwc3/gadget.c              | 1 -
>  drivers/usb/gadget/amd5536udc.c        | 1 -
>  drivers/usb/gadget/at91_udc.c          | 1 -
>  drivers/usb/gadget/atmel_usba_udc.c    | 1 -
>  drivers/usb/gadget/bcm63xx_udc.c       | 1 -
>  drivers/usb/gadget/dummy_hcd.c         | 1 -
>  drivers/usb/gadget/fsl_qe_udc.c        | 1 -
>  drivers/usb/gadget/fsl_udc_core.c      | 1 -
>  drivers/usb/gadget/fusb300_udc.c       | 1 -
>  drivers/usb/gadget/goku_udc.c          | 1 -
>  drivers/usb/gadget/imx_udc.c           | 1 -
>  drivers/usb/gadget/lpc32xx_udc.c       | 1 -
>  drivers/usb/gadget/m66592-udc.c        | 1 -
>  drivers/usb/gadget/mv_u3d_core.c       | 1 -
>  drivers/usb/gadget/mv_udc_core.c       | 1 -
>  drivers/usb/gadget/net2272.c           | 1 -
>  drivers/usb/gadget/net2280.c           | 1 -
>  drivers/usb/gadget/omap_udc.c          | 1 -
>  drivers/usb/gadget/pch_udc.c           | 1 -
>  drivers/usb/gadget/pxa25x_udc.c        | 1 -
>  drivers/usb/gadget/pxa27x_udc.c        | 1 -
>  drivers/usb/gadget/r8a66597-udc.c      | 1 -
>  drivers/usb/gadget/s3c-hsotg.c         | 1 -
>  drivers/usb/gadget/s3c-hsudc.c         | 1 -
>  drivers/usb/gadget/s3c2410_udc.c       | 1 -
>  drivers/usb/gadget/udc-core.c          | 3 ---
>  drivers/usb/musb/musb_gadget.c         | 1 -
>  drivers/usb/renesas_usbhs/mod_gadget.c | 1 -
>  include/linux/usb/gadget.h             | 4 ----
>  30 files changed, 35 deletions(-)
> 
[snip]
> diff --git a/drivers/usb/gadget/udc-core.c
> b/drivers/usb/gadget/udc-core.c index 9195054..4ee0efc 100644
> --- a/drivers/usb/gadget/udc-core.c
> +++ b/drivers/usb/gadget/udc-core.c
> @@ -173,7 +173,6 @@ int usb_add_gadget_udc(struct device *parent, struct
> usb_gadget *gadget) if (!udc)
>  		goto err1;
> 
> -	if (gadget->register_my_device) {
>  		dev_set_name(&gadget->dev, "gadget");
> 
>  		ret = device_register(&gadget->dev);
> @@ -211,7 +210,6 @@ err3:
>  	put_device(&udc->dev);
> 
>  err2:
> -	if (gadget->register_my_device)
>  		put_device(&gadget->dev);
>  err1:
>  	return ret;
> @@ -267,7 +265,6 @@ found:
>  	kobject_uevent(&udc->dev.kobj, KOBJ_REMOVE);
>  	device_unregister(&udc->dev);
> 
> -	if (gadget->register_my_device)
>  		device_unregister(&gadget->dev);

Correct me if I am wrong, but doesn't this patch leave us with incorrect 
indentation?

Otherwise looks good.

Best regards,
Tomasz Figa


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

* Re: [RFC/PATCH 32/32] usb: gadget: drop now unnecessary flag
@ 2013-01-24 18:52     ` Tomasz Figa
  0 siblings, 0 replies; 117+ messages in thread
From: Tomasz Figa @ 2013-01-24 18:52 UTC (permalink / raw)
  To: Felipe Balbi
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, Linux USB Mailing List,
	nicolas.ferre, linux-geode, haojian.zhuang,
	Linux OMAP Mailing List, linux-samsung-soc, ben-linux,
	dahlmann.thomas, linux, linuxppc-dev, linux-arm-kernel

Hi Felipe,

On Thursday 24 of January 2013 17:46:10 Felipe Balbi wrote:
> We don't need the ->register_my_device flag
> anymore because all UDC drivers have been
> properly converted.
> 
> Let's remove every history of it.
> 
> Signed-off-by: Felipe Balbi <balbi@ti.com>
> ---
>  drivers/usb/chipidea/udc.c             | 1 -
>  drivers/usb/dwc3/gadget.c              | 1 -
>  drivers/usb/gadget/amd5536udc.c        | 1 -
>  drivers/usb/gadget/at91_udc.c          | 1 -
>  drivers/usb/gadget/atmel_usba_udc.c    | 1 -
>  drivers/usb/gadget/bcm63xx_udc.c       | 1 -
>  drivers/usb/gadget/dummy_hcd.c         | 1 -
>  drivers/usb/gadget/fsl_qe_udc.c        | 1 -
>  drivers/usb/gadget/fsl_udc_core.c      | 1 -
>  drivers/usb/gadget/fusb300_udc.c       | 1 -
>  drivers/usb/gadget/goku_udc.c          | 1 -
>  drivers/usb/gadget/imx_udc.c           | 1 -
>  drivers/usb/gadget/lpc32xx_udc.c       | 1 -
>  drivers/usb/gadget/m66592-udc.c        | 1 -
>  drivers/usb/gadget/mv_u3d_core.c       | 1 -
>  drivers/usb/gadget/mv_udc_core.c       | 1 -
>  drivers/usb/gadget/net2272.c           | 1 -
>  drivers/usb/gadget/net2280.c           | 1 -
>  drivers/usb/gadget/omap_udc.c          | 1 -
>  drivers/usb/gadget/pch_udc.c           | 1 -
>  drivers/usb/gadget/pxa25x_udc.c        | 1 -
>  drivers/usb/gadget/pxa27x_udc.c        | 1 -
>  drivers/usb/gadget/r8a66597-udc.c      | 1 -
>  drivers/usb/gadget/s3c-hsotg.c         | 1 -
>  drivers/usb/gadget/s3c-hsudc.c         | 1 -
>  drivers/usb/gadget/s3c2410_udc.c       | 1 -
>  drivers/usb/gadget/udc-core.c          | 3 ---
>  drivers/usb/musb/musb_gadget.c         | 1 -
>  drivers/usb/renesas_usbhs/mod_gadget.c | 1 -
>  include/linux/usb/gadget.h             | 4 ----
>  30 files changed, 35 deletions(-)
> 
[snip]
> diff --git a/drivers/usb/gadget/udc-core.c
> b/drivers/usb/gadget/udc-core.c index 9195054..4ee0efc 100644
> --- a/drivers/usb/gadget/udc-core.c
> +++ b/drivers/usb/gadget/udc-core.c
> @@ -173,7 +173,6 @@ int usb_add_gadget_udc(struct device *parent, struct
> usb_gadget *gadget) if (!udc)
>  		goto err1;
> 
> -	if (gadget->register_my_device) {
>  		dev_set_name(&gadget->dev, "gadget");
> 
>  		ret = device_register(&gadget->dev);
> @@ -211,7 +210,6 @@ err3:
>  	put_device(&udc->dev);
> 
>  err2:
> -	if (gadget->register_my_device)
>  		put_device(&gadget->dev);
>  err1:
>  	return ret;
> @@ -267,7 +265,6 @@ found:
>  	kobject_uevent(&udc->dev.kobj, KOBJ_REMOVE);
>  	device_unregister(&udc->dev);
> 
> -	if (gadget->register_my_device)
>  		device_unregister(&gadget->dev);

Correct me if I am wrong, but doesn't this patch leave us with incorrect 
indentation?

Otherwise looks good.

Best regards,
Tomasz Figa

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

* [RFC/PATCH 32/32] usb: gadget: drop now unnecessary flag
@ 2013-01-24 18:52     ` Tomasz Figa
  0 siblings, 0 replies; 117+ messages in thread
From: Tomasz Figa @ 2013-01-24 18:52 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Felipe,

On Thursday 24 of January 2013 17:46:10 Felipe Balbi wrote:
> We don't need the ->register_my_device flag
> anymore because all UDC drivers have been
> properly converted.
> 
> Let's remove every history of it.
> 
> Signed-off-by: Felipe Balbi <balbi@ti.com>
> ---
>  drivers/usb/chipidea/udc.c             | 1 -
>  drivers/usb/dwc3/gadget.c              | 1 -
>  drivers/usb/gadget/amd5536udc.c        | 1 -
>  drivers/usb/gadget/at91_udc.c          | 1 -
>  drivers/usb/gadget/atmel_usba_udc.c    | 1 -
>  drivers/usb/gadget/bcm63xx_udc.c       | 1 -
>  drivers/usb/gadget/dummy_hcd.c         | 1 -
>  drivers/usb/gadget/fsl_qe_udc.c        | 1 -
>  drivers/usb/gadget/fsl_udc_core.c      | 1 -
>  drivers/usb/gadget/fusb300_udc.c       | 1 -
>  drivers/usb/gadget/goku_udc.c          | 1 -
>  drivers/usb/gadget/imx_udc.c           | 1 -
>  drivers/usb/gadget/lpc32xx_udc.c       | 1 -
>  drivers/usb/gadget/m66592-udc.c        | 1 -
>  drivers/usb/gadget/mv_u3d_core.c       | 1 -
>  drivers/usb/gadget/mv_udc_core.c       | 1 -
>  drivers/usb/gadget/net2272.c           | 1 -
>  drivers/usb/gadget/net2280.c           | 1 -
>  drivers/usb/gadget/omap_udc.c          | 1 -
>  drivers/usb/gadget/pch_udc.c           | 1 -
>  drivers/usb/gadget/pxa25x_udc.c        | 1 -
>  drivers/usb/gadget/pxa27x_udc.c        | 1 -
>  drivers/usb/gadget/r8a66597-udc.c      | 1 -
>  drivers/usb/gadget/s3c-hsotg.c         | 1 -
>  drivers/usb/gadget/s3c-hsudc.c         | 1 -
>  drivers/usb/gadget/s3c2410_udc.c       | 1 -
>  drivers/usb/gadget/udc-core.c          | 3 ---
>  drivers/usb/musb/musb_gadget.c         | 1 -
>  drivers/usb/renesas_usbhs/mod_gadget.c | 1 -
>  include/linux/usb/gadget.h             | 4 ----
>  30 files changed, 35 deletions(-)
> 
[snip]
> diff --git a/drivers/usb/gadget/udc-core.c
> b/drivers/usb/gadget/udc-core.c index 9195054..4ee0efc 100644
> --- a/drivers/usb/gadget/udc-core.c
> +++ b/drivers/usb/gadget/udc-core.c
> @@ -173,7 +173,6 @@ int usb_add_gadget_udc(struct device *parent, struct
> usb_gadget *gadget) if (!udc)
>  		goto err1;
> 
> -	if (gadget->register_my_device) {
>  		dev_set_name(&gadget->dev, "gadget");
> 
>  		ret = device_register(&gadget->dev);
> @@ -211,7 +210,6 @@ err3:
>  	put_device(&udc->dev);
> 
>  err2:
> -	if (gadget->register_my_device)
>  		put_device(&gadget->dev);
>  err1:
>  	return ret;
> @@ -267,7 +265,6 @@ found:
>  	kobject_uevent(&udc->dev.kobj, KOBJ_REMOVE);
>  	device_unregister(&udc->dev);
> 
> -	if (gadget->register_my_device)
>  		device_unregister(&gadget->dev);

Correct me if I am wrong, but doesn't this patch leave us with incorrect 
indentation?

Otherwise looks good.

Best regards,
Tomasz Figa

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

* Re: [RFC/PATCH 01/32] usb: gadget: udc-core: allow udc class register gadget device
  2013-01-24 15:45   ` Felipe Balbi
  (?)
@ 2013-01-24 18:57     ` Tomasz Figa
  -1 siblings, 0 replies; 117+ messages in thread
From: Tomasz Figa @ 2013-01-24 18:57 UTC (permalink / raw)
  To: Felipe Balbi
  Cc: Linux USB Mailing List, alexander.shishkin, gregkh,
	dahlmann.thomas, nicolas.ferre, leoli, eric.y.miao, linux,
	haojian.zhuang, ben-linux, kgene.kim, kuninori.morimoto.gx,
	yoshihiro.shimoda.uh, Linux OMAP Mailing List, linux-geode,
	linux-arm-kernel, linuxppc-dev, linux-samsung-soc

Hi Felipe,

On Thursday 24 of January 2013 17:45:39 Felipe Balbi wrote:
> Currently all UDC drivers are calling
> device_register() before calling
> usb_add_gadget_udc(). In order to avoid
> code duplication, we can allow udc-core.c
> register that device.
> 
> However that would become a really large patch,
> so to cope with the meanwhile and allow us
> to write bite-sized patches, we're adding
> a flag which will be set by UDC driver once
> it removes the code for registering the
> gadget device.
> 
> Once all are converted, the new flag will
> be removed.
> 
> Signed-off-by: Felipe Balbi <balbi@ti.com>
> ---
>  drivers/usb/gadget/udc-core.c | 23 +++++++++++++++++++----
>  include/linux/usb/gadget.h    |  4 ++++
>  2 files changed, 23 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/usb/gadget/udc-core.c
> b/drivers/usb/gadget/udc-core.c index 2a9cd36..9195054 100644
> --- a/drivers/usb/gadget/udc-core.c
> +++ b/drivers/usb/gadget/udc-core.c
> @@ -173,6 +173,14 @@ int usb_add_gadget_udc(struct device *parent,
> struct usb_gadget *gadget) if (!udc)
>  		goto err1;
> 
> +	if (gadget->register_my_device) {
> +		dev_set_name(&gadget->dev, "gadget");
> +
> +		ret = device_register(&gadget->dev);
> +		if (ret)
> +			goto err2;
> +	}
> +
>  	device_initialize(&udc->dev);
>  	udc->dev.release = usb_udc_release;
>  	udc->dev.class = udc_class;
> @@ -180,7 +188,7 @@ int usb_add_gadget_udc(struct device *parent, struct
> usb_gadget *gadget) udc->dev.parent = parent;
>  	ret = dev_set_name(&udc->dev, "%s", kobject_name(&parent->kobj));
>  	if (ret)
> -		goto err2;
> +		goto err3;

Just a nitpick: If you are at changing labels of error path, wouldn't it 
be better to give them some meaningful names? Like err_del_unlock, 
err_put_udc, err_put_gadget, err_ret.

Otherwise looks good. Nice idea.

Reviewed-by: Tomasz Figa <tomasz.figa@gmail.com>

Best regards,
Tomasz Figa

>  	udc->gadget = gadget;
> 
> @@ -189,18 +197,22 @@ int usb_add_gadget_udc(struct device *parent,
> struct usb_gadget *gadget)
> 
>  	ret = device_add(&udc->dev);
>  	if (ret)
> -		goto err3;
> +		goto err4;
> 
>  	mutex_unlock(&udc_lock);
> 
>  	return 0;
> -err3:
> +
> +err4:
>  	list_del(&udc->list);
>  	mutex_unlock(&udc_lock);
> 
> -err2:
> +err3:
>  	put_device(&udc->dev);
> 
> +err2:
> +	if (gadget->register_my_device)
> +		put_device(&gadget->dev);
>  err1:
>  	return ret;
>  }
> @@ -254,6 +266,9 @@ found:
> 
>  	kobject_uevent(&udc->dev.kobj, KOBJ_REMOVE);
>  	device_unregister(&udc->dev);
> +
> +	if (gadget->register_my_device)
> +		device_unregister(&gadget->dev);
>  }
>  EXPORT_SYMBOL_GPL(usb_del_gadget_udc);
> 
> diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
> index 2e297e8..fcd9ef8 100644
> --- a/include/linux/usb/gadget.h
> +++ b/include/linux/usb/gadget.h
> @@ -494,6 +494,9 @@ struct usb_gadget_ops {
>   *	only supports HNP on a different root port.
>   * @b_hnp_enable: OTG device feature flag, indicating that the A-Host
>   *	enabled HNP support.
> + * @register_my_device: Flag telling udc-core that UDC driver didn't
> + *	register the gadget device to the driver model. Temporary until
> + *	all UDC drivers are fixed up properly.
>   * @name: Identifies the controller hardware type.  Used in diagnostics
> *	and sometimes configuration.
>   * @dev: Driver model state for this abstract device.
> @@ -531,6 +534,7 @@ struct usb_gadget {
>  	unsigned			b_hnp_enable:1;
>  	unsigned			a_hnp_support:1;
>  	unsigned			a_alt_hnp_support:1;
> +	unsigned			register_my_device:1;
>  	const char			*name;
>  	struct device			dev;
>  	unsigned			out_epnum;

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

* Re: [RFC/PATCH 01/32] usb: gadget: udc-core: allow udc class register gadget device
@ 2013-01-24 18:57     ` Tomasz Figa
  0 siblings, 0 replies; 117+ messages in thread
From: Tomasz Figa @ 2013-01-24 18:57 UTC (permalink / raw)
  To: Felipe Balbi
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, Linux USB Mailing List,
	nicolas.ferre, linux-geode, haojian.zhuang,
	Linux OMAP Mailing List, linux-samsung-soc, ben-linux,
	dahlmann.thomas, linux, linuxppc-dev, linux-arm-kernel

Hi Felipe,

On Thursday 24 of January 2013 17:45:39 Felipe Balbi wrote:
> Currently all UDC drivers are calling
> device_register() before calling
> usb_add_gadget_udc(). In order to avoid
> code duplication, we can allow udc-core.c
> register that device.
> 
> However that would become a really large patch,
> so to cope with the meanwhile and allow us
> to write bite-sized patches, we're adding
> a flag which will be set by UDC driver once
> it removes the code for registering the
> gadget device.
> 
> Once all are converted, the new flag will
> be removed.
> 
> Signed-off-by: Felipe Balbi <balbi@ti.com>
> ---
>  drivers/usb/gadget/udc-core.c | 23 +++++++++++++++++++----
>  include/linux/usb/gadget.h    |  4 ++++
>  2 files changed, 23 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/usb/gadget/udc-core.c
> b/drivers/usb/gadget/udc-core.c index 2a9cd36..9195054 100644
> --- a/drivers/usb/gadget/udc-core.c
> +++ b/drivers/usb/gadget/udc-core.c
> @@ -173,6 +173,14 @@ int usb_add_gadget_udc(struct device *parent,
> struct usb_gadget *gadget) if (!udc)
>  		goto err1;
> 
> +	if (gadget->register_my_device) {
> +		dev_set_name(&gadget->dev, "gadget");
> +
> +		ret = device_register(&gadget->dev);
> +		if (ret)
> +			goto err2;
> +	}
> +
>  	device_initialize(&udc->dev);
>  	udc->dev.release = usb_udc_release;
>  	udc->dev.class = udc_class;
> @@ -180,7 +188,7 @@ int usb_add_gadget_udc(struct device *parent, struct
> usb_gadget *gadget) udc->dev.parent = parent;
>  	ret = dev_set_name(&udc->dev, "%s", kobject_name(&parent->kobj));
>  	if (ret)
> -		goto err2;
> +		goto err3;

Just a nitpick: If you are at changing labels of error path, wouldn't it 
be better to give them some meaningful names? Like err_del_unlock, 
err_put_udc, err_put_gadget, err_ret.

Otherwise looks good. Nice idea.

Reviewed-by: Tomasz Figa <tomasz.figa@gmail.com>

Best regards,
Tomasz Figa

>  	udc->gadget = gadget;
> 
> @@ -189,18 +197,22 @@ int usb_add_gadget_udc(struct device *parent,
> struct usb_gadget *gadget)
> 
>  	ret = device_add(&udc->dev);
>  	if (ret)
> -		goto err3;
> +		goto err4;
> 
>  	mutex_unlock(&udc_lock);
> 
>  	return 0;
> -err3:
> +
> +err4:
>  	list_del(&udc->list);
>  	mutex_unlock(&udc_lock);
> 
> -err2:
> +err3:
>  	put_device(&udc->dev);
> 
> +err2:
> +	if (gadget->register_my_device)
> +		put_device(&gadget->dev);
>  err1:
>  	return ret;
>  }
> @@ -254,6 +266,9 @@ found:
> 
>  	kobject_uevent(&udc->dev.kobj, KOBJ_REMOVE);
>  	device_unregister(&udc->dev);
> +
> +	if (gadget->register_my_device)
> +		device_unregister(&gadget->dev);
>  }
>  EXPORT_SYMBOL_GPL(usb_del_gadget_udc);
> 
> diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
> index 2e297e8..fcd9ef8 100644
> --- a/include/linux/usb/gadget.h
> +++ b/include/linux/usb/gadget.h
> @@ -494,6 +494,9 @@ struct usb_gadget_ops {
>   *	only supports HNP on a different root port.
>   * @b_hnp_enable: OTG device feature flag, indicating that the A-Host
>   *	enabled HNP support.
> + * @register_my_device: Flag telling udc-core that UDC driver didn't
> + *	register the gadget device to the driver model. Temporary until
> + *	all UDC drivers are fixed up properly.
>   * @name: Identifies the controller hardware type.  Used in diagnostics
> *	and sometimes configuration.
>   * @dev: Driver model state for this abstract device.
> @@ -531,6 +534,7 @@ struct usb_gadget {
>  	unsigned			b_hnp_enable:1;
>  	unsigned			a_hnp_support:1;
>  	unsigned			a_alt_hnp_support:1;
> +	unsigned			register_my_device:1;
>  	const char			*name;
>  	struct device			dev;
>  	unsigned			out_epnum;

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

* [RFC/PATCH 01/32] usb: gadget: udc-core: allow udc class register gadget device
@ 2013-01-24 18:57     ` Tomasz Figa
  0 siblings, 0 replies; 117+ messages in thread
From: Tomasz Figa @ 2013-01-24 18:57 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Felipe,

On Thursday 24 of January 2013 17:45:39 Felipe Balbi wrote:
> Currently all UDC drivers are calling
> device_register() before calling
> usb_add_gadget_udc(). In order to avoid
> code duplication, we can allow udc-core.c
> register that device.
> 
> However that would become a really large patch,
> so to cope with the meanwhile and allow us
> to write bite-sized patches, we're adding
> a flag which will be set by UDC driver once
> it removes the code for registering the
> gadget device.
> 
> Once all are converted, the new flag will
> be removed.
> 
> Signed-off-by: Felipe Balbi <balbi@ti.com>
> ---
>  drivers/usb/gadget/udc-core.c | 23 +++++++++++++++++++----
>  include/linux/usb/gadget.h    |  4 ++++
>  2 files changed, 23 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/usb/gadget/udc-core.c
> b/drivers/usb/gadget/udc-core.c index 2a9cd36..9195054 100644
> --- a/drivers/usb/gadget/udc-core.c
> +++ b/drivers/usb/gadget/udc-core.c
> @@ -173,6 +173,14 @@ int usb_add_gadget_udc(struct device *parent,
> struct usb_gadget *gadget) if (!udc)
>  		goto err1;
> 
> +	if (gadget->register_my_device) {
> +		dev_set_name(&gadget->dev, "gadget");
> +
> +		ret = device_register(&gadget->dev);
> +		if (ret)
> +			goto err2;
> +	}
> +
>  	device_initialize(&udc->dev);
>  	udc->dev.release = usb_udc_release;
>  	udc->dev.class = udc_class;
> @@ -180,7 +188,7 @@ int usb_add_gadget_udc(struct device *parent, struct
> usb_gadget *gadget) udc->dev.parent = parent;
>  	ret = dev_set_name(&udc->dev, "%s", kobject_name(&parent->kobj));
>  	if (ret)
> -		goto err2;
> +		goto err3;

Just a nitpick: If you are at changing labels of error path, wouldn't it 
be better to give them some meaningful names? Like err_del_unlock, 
err_put_udc, err_put_gadget, err_ret.

Otherwise looks good. Nice idea.

Reviewed-by: Tomasz Figa <tomasz.figa@gmail.com>

Best regards,
Tomasz Figa

>  	udc->gadget = gadget;
> 
> @@ -189,18 +197,22 @@ int usb_add_gadget_udc(struct device *parent,
> struct usb_gadget *gadget)
> 
>  	ret = device_add(&udc->dev);
>  	if (ret)
> -		goto err3;
> +		goto err4;
> 
>  	mutex_unlock(&udc_lock);
> 
>  	return 0;
> -err3:
> +
> +err4:
>  	list_del(&udc->list);
>  	mutex_unlock(&udc_lock);
> 
> -err2:
> +err3:
>  	put_device(&udc->dev);
> 
> +err2:
> +	if (gadget->register_my_device)
> +		put_device(&gadget->dev);
>  err1:
>  	return ret;
>  }
> @@ -254,6 +266,9 @@ found:
> 
>  	kobject_uevent(&udc->dev.kobj, KOBJ_REMOVE);
>  	device_unregister(&udc->dev);
> +
> +	if (gadget->register_my_device)
> +		device_unregister(&gadget->dev);
>  }
>  EXPORT_SYMBOL_GPL(usb_del_gadget_udc);
> 
> diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
> index 2e297e8..fcd9ef8 100644
> --- a/include/linux/usb/gadget.h
> +++ b/include/linux/usb/gadget.h
> @@ -494,6 +494,9 @@ struct usb_gadget_ops {
>   *	only supports HNP on a different root port.
>   * @b_hnp_enable: OTG device feature flag, indicating that the A-Host
>   *	enabled HNP support.
> + * @register_my_device: Flag telling udc-core that UDC driver didn't
> + *	register the gadget device to the driver model. Temporary until
> + *	all UDC drivers are fixed up properly.
>   * @name: Identifies the controller hardware type.  Used in diagnostics
> *	and sometimes configuration.
>   * @dev: Driver model state for this abstract device.
> @@ -531,6 +534,7 @@ struct usb_gadget {
>  	unsigned			b_hnp_enable:1;
>  	unsigned			a_hnp_support:1;
>  	unsigned			a_alt_hnp_support:1;
> +	unsigned			register_my_device:1;
>  	const char			*name;
>  	struct device			dev;
>  	unsigned			out_epnum;

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

* Re: [RFC/PATCH 24/32] usb: gadget: s3c-hsotg: let udc-core manage gadget->dev
  2013-01-24 15:46   ` Felipe Balbi
  (?)
@ 2013-01-24 19:00       ` Tomasz Figa
  -1 siblings, 0 replies; 117+ messages in thread
From: Tomasz Figa @ 2013-01-24 19:00 UTC (permalink / raw)
  To: Felipe Balbi
  Cc: Linux USB Mailing List,
	alexander.shishkin-VuQAYsv1563Yd54FQh9/CA,
	gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	dahlmann.thomas-KvP5wT2u2U0,
	nicolas.ferre-AIFe0yeh4nAAvxtiuMwx3w,
	leoli-KZfg59tc24xl57MIdRCFDg, eric.y.miao-Re5JQEeQqe8AvxtiuMwx3w,
	linux-lFZ/pmaqli7XmaaqVzeoHQ,
	haojian.zhuang-Re5JQEeQqe8AvxtiuMwx3w,
	ben-linux-elnMNo+KYs3YtjvyW6yDsg,
	kgene.kim-Sze3O3UU22JBDgjK7y7TUQ,
	kuninori.morimoto.gx-zM6kxYcvzFBBDgjK7y7TUQ,
	yoshihiro.shimoda.uh-zM6kxYcvzFBBDgjK7y7TUQ,
	Linux OMAP Mailing List,
	linux-geode-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ,
	linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA

Hi Felipe,

On Thursday 24 of January 2013 17:46:02 Felipe Balbi wrote:
> By simply setting a flag, we can drop some
> boilerplate code.
> 
> Signed-off-by: Felipe Balbi <balbi-l0cyMroinI0@public.gmane.org>
> ---
>  drivers/usb/gadget/s3c-hsotg.c | 14 +-------------
>  1 file changed, 1 insertion(+), 13 deletions(-)
> 
> diff --git a/drivers/usb/gadget/s3c-hsotg.c
> b/drivers/usb/gadget/s3c-hsotg.c index 833d85b..bd8292d 100644
> --- a/drivers/usb/gadget/s3c-hsotg.c
> +++ b/drivers/usb/gadget/s3c-hsotg.c
> @@ -3552,17 +3552,13 @@ static int s3c_hsotg_probe(struct
> platform_device *pdev)
> 
>  	dev_info(dev, "regs %p, irq %d\n", hsotg->regs, hsotg->irq);
> 
> -	device_initialize(&hsotg->gadget.dev);
> -
> -	dev_set_name(&hsotg->gadget.dev, "gadget");
> -
>  	hsotg->gadget.max_speed = USB_SPEED_HIGH;
>  	hsotg->gadget.ops = &s3c_hsotg_gadget_ops;
>  	hsotg->gadget.name = dev_name(dev);
> -
>  	hsotg->gadget.dev.parent = dev;
>  	hsotg->gadget.dev.dma_mask = dev->dma_mask;
>  	hsotg->gadget.dev.release = s3c_hsotg_release;
> +	hsotg->gadget.register_my_device = true;
> 
>  	/* reset the system */
> 
> @@ -3643,12 +3639,6 @@ static int s3c_hsotg_probe(struct platform_device
> *pdev)
> 
>  	s3c_hsotg_phy_disable(hsotg);
> 
> -	ret = device_add(&hsotg->gadget.dev);
> -	if (ret) {
> -		put_device(&hsotg->gadget.dev);
> -		goto err_ep_mem;
> -	}
> -
>  	ret = usb_add_gadget_udc(&pdev->dev, &hsotg->gadget);
>  	if (ret)
>  		goto err_ep_mem;
> @@ -3687,10 +3677,8 @@ static int s3c_hsotg_remove(struct
> platform_device *pdev) }
> 
>  	s3c_hsotg_phy_disable(hsotg);
> -
>  	clk_disable_unprepare(hsotg->clk);
> 
> -	device_unregister(&hsotg->gadget.dev);
>  	return 0;
>  }

Looks good.

Reviewed-by: Tomasz Figa <tomasz.figa-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

Best regards,
Tomasz Figa

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [RFC/PATCH 24/32] usb: gadget: s3c-hsotg: let udc-core manage gadget->dev
@ 2013-01-24 19:00       ` Tomasz Figa
  0 siblings, 0 replies; 117+ messages in thread
From: Tomasz Figa @ 2013-01-24 19:00 UTC (permalink / raw)
  To: Felipe Balbi
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, Linux USB Mailing List,
	nicolas.ferre, linux-geode, haojian.zhuang,
	Linux OMAP Mailing List, linux-samsung-soc, ben-linux,
	dahlmann.thomas, linux, linuxppc-dev, linux-arm-kernel

Hi Felipe,

On Thursday 24 of January 2013 17:46:02 Felipe Balbi wrote:
> By simply setting a flag, we can drop some
> boilerplate code.
> 
> Signed-off-by: Felipe Balbi <balbi@ti.com>
> ---
>  drivers/usb/gadget/s3c-hsotg.c | 14 +-------------
>  1 file changed, 1 insertion(+), 13 deletions(-)
> 
> diff --git a/drivers/usb/gadget/s3c-hsotg.c
> b/drivers/usb/gadget/s3c-hsotg.c index 833d85b..bd8292d 100644
> --- a/drivers/usb/gadget/s3c-hsotg.c
> +++ b/drivers/usb/gadget/s3c-hsotg.c
> @@ -3552,17 +3552,13 @@ static int s3c_hsotg_probe(struct
> platform_device *pdev)
> 
>  	dev_info(dev, "regs %p, irq %d\n", hsotg->regs, hsotg->irq);
> 
> -	device_initialize(&hsotg->gadget.dev);
> -
> -	dev_set_name(&hsotg->gadget.dev, "gadget");
> -
>  	hsotg->gadget.max_speed = USB_SPEED_HIGH;
>  	hsotg->gadget.ops = &s3c_hsotg_gadget_ops;
>  	hsotg->gadget.name = dev_name(dev);
> -
>  	hsotg->gadget.dev.parent = dev;
>  	hsotg->gadget.dev.dma_mask = dev->dma_mask;
>  	hsotg->gadget.dev.release = s3c_hsotg_release;
> +	hsotg->gadget.register_my_device = true;
> 
>  	/* reset the system */
> 
> @@ -3643,12 +3639,6 @@ static int s3c_hsotg_probe(struct platform_device
> *pdev)
> 
>  	s3c_hsotg_phy_disable(hsotg);
> 
> -	ret = device_add(&hsotg->gadget.dev);
> -	if (ret) {
> -		put_device(&hsotg->gadget.dev);
> -		goto err_ep_mem;
> -	}
> -
>  	ret = usb_add_gadget_udc(&pdev->dev, &hsotg->gadget);
>  	if (ret)
>  		goto err_ep_mem;
> @@ -3687,10 +3677,8 @@ static int s3c_hsotg_remove(struct
> platform_device *pdev) }
> 
>  	s3c_hsotg_phy_disable(hsotg);
> -
>  	clk_disable_unprepare(hsotg->clk);
> 
> -	device_unregister(&hsotg->gadget.dev);
>  	return 0;
>  }

Looks good.

Reviewed-by: Tomasz Figa <tomasz.figa@gmail.com>

Best regards,
Tomasz Figa

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

* [RFC/PATCH 24/32] usb: gadget: s3c-hsotg: let udc-core manage gadget->dev
@ 2013-01-24 19:00       ` Tomasz Figa
  0 siblings, 0 replies; 117+ messages in thread
From: Tomasz Figa @ 2013-01-24 19:00 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Felipe,

On Thursday 24 of January 2013 17:46:02 Felipe Balbi wrote:
> By simply setting a flag, we can drop some
> boilerplate code.
> 
> Signed-off-by: Felipe Balbi <balbi@ti.com>
> ---
>  drivers/usb/gadget/s3c-hsotg.c | 14 +-------------
>  1 file changed, 1 insertion(+), 13 deletions(-)
> 
> diff --git a/drivers/usb/gadget/s3c-hsotg.c
> b/drivers/usb/gadget/s3c-hsotg.c index 833d85b..bd8292d 100644
> --- a/drivers/usb/gadget/s3c-hsotg.c
> +++ b/drivers/usb/gadget/s3c-hsotg.c
> @@ -3552,17 +3552,13 @@ static int s3c_hsotg_probe(struct
> platform_device *pdev)
> 
>  	dev_info(dev, "regs %p, irq %d\n", hsotg->regs, hsotg->irq);
> 
> -	device_initialize(&hsotg->gadget.dev);
> -
> -	dev_set_name(&hsotg->gadget.dev, "gadget");
> -
>  	hsotg->gadget.max_speed = USB_SPEED_HIGH;
>  	hsotg->gadget.ops = &s3c_hsotg_gadget_ops;
>  	hsotg->gadget.name = dev_name(dev);
> -
>  	hsotg->gadget.dev.parent = dev;
>  	hsotg->gadget.dev.dma_mask = dev->dma_mask;
>  	hsotg->gadget.dev.release = s3c_hsotg_release;
> +	hsotg->gadget.register_my_device = true;
> 
>  	/* reset the system */
> 
> @@ -3643,12 +3639,6 @@ static int s3c_hsotg_probe(struct platform_device
> *pdev)
> 
>  	s3c_hsotg_phy_disable(hsotg);
> 
> -	ret = device_add(&hsotg->gadget.dev);
> -	if (ret) {
> -		put_device(&hsotg->gadget.dev);
> -		goto err_ep_mem;
> -	}
> -
>  	ret = usb_add_gadget_udc(&pdev->dev, &hsotg->gadget);
>  	if (ret)
>  		goto err_ep_mem;
> @@ -3687,10 +3677,8 @@ static int s3c_hsotg_remove(struct
> platform_device *pdev) }
> 
>  	s3c_hsotg_phy_disable(hsotg);
> -
>  	clk_disable_unprepare(hsotg->clk);
> 
> -	device_unregister(&hsotg->gadget.dev);
>  	return 0;
>  }

Looks good.

Reviewed-by: Tomasz Figa <tomasz.figa@gmail.com>

Best regards,
Tomasz Figa

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

* Re: [RFC/PATCH 32/32] usb: gadget: drop now unnecessary flag
  2013-01-24 18:52     ` Tomasz Figa
  (?)
@ 2013-01-24 19:09       ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 19:09 UTC (permalink / raw)
  To: Tomasz Figa
  Cc: Felipe Balbi, Linux USB Mailing List, alexander.shishkin, gregkh,
	dahlmann.thomas, nicolas.ferre, leoli, eric.y.miao, linux,
	haojian.zhuang, ben-linux, kgene.kim, kuninori.morimoto.gx,
	yoshihiro.shimoda.uh, Linux OMAP Mailing List, linux-geode,
	linux-arm-kernel, linuxppc-dev, linux-samsung-soc

[-- Attachment #1: Type: text/plain, Size: 3177 bytes --]

On Thu, Jan 24, 2013 at 07:52:52PM +0100, Tomasz Figa wrote:
> Hi Felipe,
> 
> On Thursday 24 of January 2013 17:46:10 Felipe Balbi wrote:
> > We don't need the ->register_my_device flag
> > anymore because all UDC drivers have been
> > properly converted.
> > 
> > Let's remove every history of it.
> > 
> > Signed-off-by: Felipe Balbi <balbi@ti.com>
> > ---
> >  drivers/usb/chipidea/udc.c             | 1 -
> >  drivers/usb/dwc3/gadget.c              | 1 -
> >  drivers/usb/gadget/amd5536udc.c        | 1 -
> >  drivers/usb/gadget/at91_udc.c          | 1 -
> >  drivers/usb/gadget/atmel_usba_udc.c    | 1 -
> >  drivers/usb/gadget/bcm63xx_udc.c       | 1 -
> >  drivers/usb/gadget/dummy_hcd.c         | 1 -
> >  drivers/usb/gadget/fsl_qe_udc.c        | 1 -
> >  drivers/usb/gadget/fsl_udc_core.c      | 1 -
> >  drivers/usb/gadget/fusb300_udc.c       | 1 -
> >  drivers/usb/gadget/goku_udc.c          | 1 -
> >  drivers/usb/gadget/imx_udc.c           | 1 -
> >  drivers/usb/gadget/lpc32xx_udc.c       | 1 -
> >  drivers/usb/gadget/m66592-udc.c        | 1 -
> >  drivers/usb/gadget/mv_u3d_core.c       | 1 -
> >  drivers/usb/gadget/mv_udc_core.c       | 1 -
> >  drivers/usb/gadget/net2272.c           | 1 -
> >  drivers/usb/gadget/net2280.c           | 1 -
> >  drivers/usb/gadget/omap_udc.c          | 1 -
> >  drivers/usb/gadget/pch_udc.c           | 1 -
> >  drivers/usb/gadget/pxa25x_udc.c        | 1 -
> >  drivers/usb/gadget/pxa27x_udc.c        | 1 -
> >  drivers/usb/gadget/r8a66597-udc.c      | 1 -
> >  drivers/usb/gadget/s3c-hsotg.c         | 1 -
> >  drivers/usb/gadget/s3c-hsudc.c         | 1 -
> >  drivers/usb/gadget/s3c2410_udc.c       | 1 -
> >  drivers/usb/gadget/udc-core.c          | 3 ---
> >  drivers/usb/musb/musb_gadget.c         | 1 -
> >  drivers/usb/renesas_usbhs/mod_gadget.c | 1 -
> >  include/linux/usb/gadget.h             | 4 ----
> >  30 files changed, 35 deletions(-)
> > 
> [snip]
> > diff --git a/drivers/usb/gadget/udc-core.c
> > b/drivers/usb/gadget/udc-core.c index 9195054..4ee0efc 100644
> > --- a/drivers/usb/gadget/udc-core.c
> > +++ b/drivers/usb/gadget/udc-core.c
> > @@ -173,7 +173,6 @@ int usb_add_gadget_udc(struct device *parent, struct
> > usb_gadget *gadget) if (!udc)
> >  		goto err1;
> > 
> > -	if (gadget->register_my_device) {
> >  		dev_set_name(&gadget->dev, "gadget");
> > 
> >  		ret = device_register(&gadget->dev);
> > @@ -211,7 +210,6 @@ err3:
> >  	put_device(&udc->dev);
> > 
> >  err2:
> > -	if (gadget->register_my_device)
> >  		put_device(&gadget->dev);
> >  err1:
> >  	return ret;
> > @@ -267,7 +265,6 @@ found:
> >  	kobject_uevent(&udc->dev.kobj, KOBJ_REMOVE);
> >  	device_unregister(&udc->dev);
> > 
> > -	if (gadget->register_my_device)
> >  		device_unregister(&gadget->dev);
> 
> Correct me if I am wrong, but doesn't this patch leave us with incorrect 
> indentation?

right, I fixed it up on my branch, see [1]. That was me trusting my poor
sed skills and not verifying the result ;-)

[1] http://git.kernel.org/?p=linux/kernel/git/balbi/usb.git;a=commitdiff;h=d0bdf2970dd68677c65671be9bd56759593cfaf1

-- 
balbi

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

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

* Re: [RFC/PATCH 32/32] usb: gadget: drop now unnecessary flag
@ 2013-01-24 19:09       ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 19:09 UTC (permalink / raw)
  To: Tomasz Figa
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, Linux USB Mailing List,
	nicolas.ferre, linux-geode, Felipe Balbi,
	Linux OMAP Mailing List, linux-samsung-soc, haojian.zhuang,
	ben-linux, dahlmann.thomas, linux, linuxppc-dev,
	linux-arm-kernel

[-- Attachment #1: Type: text/plain, Size: 3177 bytes --]

On Thu, Jan 24, 2013 at 07:52:52PM +0100, Tomasz Figa wrote:
> Hi Felipe,
> 
> On Thursday 24 of January 2013 17:46:10 Felipe Balbi wrote:
> > We don't need the ->register_my_device flag
> > anymore because all UDC drivers have been
> > properly converted.
> > 
> > Let's remove every history of it.
> > 
> > Signed-off-by: Felipe Balbi <balbi@ti.com>
> > ---
> >  drivers/usb/chipidea/udc.c             | 1 -
> >  drivers/usb/dwc3/gadget.c              | 1 -
> >  drivers/usb/gadget/amd5536udc.c        | 1 -
> >  drivers/usb/gadget/at91_udc.c          | 1 -
> >  drivers/usb/gadget/atmel_usba_udc.c    | 1 -
> >  drivers/usb/gadget/bcm63xx_udc.c       | 1 -
> >  drivers/usb/gadget/dummy_hcd.c         | 1 -
> >  drivers/usb/gadget/fsl_qe_udc.c        | 1 -
> >  drivers/usb/gadget/fsl_udc_core.c      | 1 -
> >  drivers/usb/gadget/fusb300_udc.c       | 1 -
> >  drivers/usb/gadget/goku_udc.c          | 1 -
> >  drivers/usb/gadget/imx_udc.c           | 1 -
> >  drivers/usb/gadget/lpc32xx_udc.c       | 1 -
> >  drivers/usb/gadget/m66592-udc.c        | 1 -
> >  drivers/usb/gadget/mv_u3d_core.c       | 1 -
> >  drivers/usb/gadget/mv_udc_core.c       | 1 -
> >  drivers/usb/gadget/net2272.c           | 1 -
> >  drivers/usb/gadget/net2280.c           | 1 -
> >  drivers/usb/gadget/omap_udc.c          | 1 -
> >  drivers/usb/gadget/pch_udc.c           | 1 -
> >  drivers/usb/gadget/pxa25x_udc.c        | 1 -
> >  drivers/usb/gadget/pxa27x_udc.c        | 1 -
> >  drivers/usb/gadget/r8a66597-udc.c      | 1 -
> >  drivers/usb/gadget/s3c-hsotg.c         | 1 -
> >  drivers/usb/gadget/s3c-hsudc.c         | 1 -
> >  drivers/usb/gadget/s3c2410_udc.c       | 1 -
> >  drivers/usb/gadget/udc-core.c          | 3 ---
> >  drivers/usb/musb/musb_gadget.c         | 1 -
> >  drivers/usb/renesas_usbhs/mod_gadget.c | 1 -
> >  include/linux/usb/gadget.h             | 4 ----
> >  30 files changed, 35 deletions(-)
> > 
> [snip]
> > diff --git a/drivers/usb/gadget/udc-core.c
> > b/drivers/usb/gadget/udc-core.c index 9195054..4ee0efc 100644
> > --- a/drivers/usb/gadget/udc-core.c
> > +++ b/drivers/usb/gadget/udc-core.c
> > @@ -173,7 +173,6 @@ int usb_add_gadget_udc(struct device *parent, struct
> > usb_gadget *gadget) if (!udc)
> >  		goto err1;
> > 
> > -	if (gadget->register_my_device) {
> >  		dev_set_name(&gadget->dev, "gadget");
> > 
> >  		ret = device_register(&gadget->dev);
> > @@ -211,7 +210,6 @@ err3:
> >  	put_device(&udc->dev);
> > 
> >  err2:
> > -	if (gadget->register_my_device)
> >  		put_device(&gadget->dev);
> >  err1:
> >  	return ret;
> > @@ -267,7 +265,6 @@ found:
> >  	kobject_uevent(&udc->dev.kobj, KOBJ_REMOVE);
> >  	device_unregister(&udc->dev);
> > 
> > -	if (gadget->register_my_device)
> >  		device_unregister(&gadget->dev);
> 
> Correct me if I am wrong, but doesn't this patch leave us with incorrect 
> indentation?

right, I fixed it up on my branch, see [1]. That was me trusting my poor
sed skills and not verifying the result ;-)

[1] http://git.kernel.org/?p=linux/kernel/git/balbi/usb.git;a=commitdiff;h=d0bdf2970dd68677c65671be9bd56759593cfaf1

-- 
balbi

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

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

* [RFC/PATCH 32/32] usb: gadget: drop now unnecessary flag
@ 2013-01-24 19:09       ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-01-24 19:09 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Jan 24, 2013 at 07:52:52PM +0100, Tomasz Figa wrote:
> Hi Felipe,
> 
> On Thursday 24 of January 2013 17:46:10 Felipe Balbi wrote:
> > We don't need the ->register_my_device flag
> > anymore because all UDC drivers have been
> > properly converted.
> > 
> > Let's remove every history of it.
> > 
> > Signed-off-by: Felipe Balbi <balbi@ti.com>
> > ---
> >  drivers/usb/chipidea/udc.c             | 1 -
> >  drivers/usb/dwc3/gadget.c              | 1 -
> >  drivers/usb/gadget/amd5536udc.c        | 1 -
> >  drivers/usb/gadget/at91_udc.c          | 1 -
> >  drivers/usb/gadget/atmel_usba_udc.c    | 1 -
> >  drivers/usb/gadget/bcm63xx_udc.c       | 1 -
> >  drivers/usb/gadget/dummy_hcd.c         | 1 -
> >  drivers/usb/gadget/fsl_qe_udc.c        | 1 -
> >  drivers/usb/gadget/fsl_udc_core.c      | 1 -
> >  drivers/usb/gadget/fusb300_udc.c       | 1 -
> >  drivers/usb/gadget/goku_udc.c          | 1 -
> >  drivers/usb/gadget/imx_udc.c           | 1 -
> >  drivers/usb/gadget/lpc32xx_udc.c       | 1 -
> >  drivers/usb/gadget/m66592-udc.c        | 1 -
> >  drivers/usb/gadget/mv_u3d_core.c       | 1 -
> >  drivers/usb/gadget/mv_udc_core.c       | 1 -
> >  drivers/usb/gadget/net2272.c           | 1 -
> >  drivers/usb/gadget/net2280.c           | 1 -
> >  drivers/usb/gadget/omap_udc.c          | 1 -
> >  drivers/usb/gadget/pch_udc.c           | 1 -
> >  drivers/usb/gadget/pxa25x_udc.c        | 1 -
> >  drivers/usb/gadget/pxa27x_udc.c        | 1 -
> >  drivers/usb/gadget/r8a66597-udc.c      | 1 -
> >  drivers/usb/gadget/s3c-hsotg.c         | 1 -
> >  drivers/usb/gadget/s3c-hsudc.c         | 1 -
> >  drivers/usb/gadget/s3c2410_udc.c       | 1 -
> >  drivers/usb/gadget/udc-core.c          | 3 ---
> >  drivers/usb/musb/musb_gadget.c         | 1 -
> >  drivers/usb/renesas_usbhs/mod_gadget.c | 1 -
> >  include/linux/usb/gadget.h             | 4 ----
> >  30 files changed, 35 deletions(-)
> > 
> [snip]
> > diff --git a/drivers/usb/gadget/udc-core.c
> > b/drivers/usb/gadget/udc-core.c index 9195054..4ee0efc 100644
> > --- a/drivers/usb/gadget/udc-core.c
> > +++ b/drivers/usb/gadget/udc-core.c
> > @@ -173,7 +173,6 @@ int usb_add_gadget_udc(struct device *parent, struct
> > usb_gadget *gadget) if (!udc)
> >  		goto err1;
> > 
> > -	if (gadget->register_my_device) {
> >  		dev_set_name(&gadget->dev, "gadget");
> > 
> >  		ret = device_register(&gadget->dev);
> > @@ -211,7 +210,6 @@ err3:
> >  	put_device(&udc->dev);
> > 
> >  err2:
> > -	if (gadget->register_my_device)
> >  		put_device(&gadget->dev);
> >  err1:
> >  	return ret;
> > @@ -267,7 +265,6 @@ found:
> >  	kobject_uevent(&udc->dev.kobj, KOBJ_REMOVE);
> >  	device_unregister(&udc->dev);
> > 
> > -	if (gadget->register_my_device)
> >  		device_unregister(&gadget->dev);
> 
> Correct me if I am wrong, but doesn't this patch leave us with incorrect 
> indentation?

right, I fixed it up on my branch, see [1]. That was me trusting my poor
sed skills and not verifying the result ;-)

[1] http://git.kernel.org/?p=linux/kernel/git/balbi/usb.git;a=commitdiff;h=d0bdf2970dd68677c65671be9bd56759593cfaf1

-- 
balbi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20130124/16277568/attachment.sig>

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

* Re: [RFC/PATCH 29/32] usb: gadget: pxa27x_udc: let udc-core manage gadget->dev
  2013-01-24 15:46   ` Felipe Balbi
  (?)
@ 2013-01-28 20:18     ` Robert Jarzmik
  -1 siblings, 0 replies; 117+ messages in thread
From: Robert Jarzmik @ 2013-01-28 20:18 UTC (permalink / raw)
  To: Felipe Balbi
  Cc: Linux USB Mailing List, kgene.kim, eric.y.miao,
	kuninori.morimoto.gx, alexander.shishkin, gregkh,
	yoshihiro.shimoda.uh, nicolas.ferre, linux-geode, haojian.zhuang,
	Linux OMAP Mailing List, linux-samsung-soc, ben-linux,
	dahlmann.thomas, linux, leoli, linuxppc-dev, linux-arm-kernel

Felipe Balbi <balbi@ti.com> writes:

> By simply setting a flag, we can drop some
> boilerplate code.
>
> Signed-off-by: Felipe Balbi <balbi@ti.com>
> ---
>  drivers/usb/gadget/pxa27x_udc.c | 9 +--------
Acked-by: Robert Jarzmik <robert.jarzmik@free.fr>

And I tested also your patch and it works in my environment. For next patches
I'd like to be CCed for pxa27x_udc stuff as I'm maintaining that one since its
beginning (and yes, I know, I didn't put that in MAINTAINERS ...).

Cheers.

--
Robert

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

* Re: [RFC/PATCH 29/32] usb: gadget: pxa27x_udc: let udc-core manage gadget->dev
@ 2013-01-28 20:18     ` Robert Jarzmik
  0 siblings, 0 replies; 117+ messages in thread
From: Robert Jarzmik @ 2013-01-28 20:18 UTC (permalink / raw)
  To: Felipe Balbi
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, Linux USB Mailing List,
	nicolas.ferre, linux-geode, haojian.zhuang, linux-samsung-soc,
	ben-linux, dahlmann.thomas, linux, Linux OMAP Mailing List,
	linuxppc-dev, linux-arm-kernel

Felipe Balbi <balbi@ti.com> writes:

> By simply setting a flag, we can drop some
> boilerplate code.
>
> Signed-off-by: Felipe Balbi <balbi@ti.com>
> ---
>  drivers/usb/gadget/pxa27x_udc.c | 9 +--------
Acked-by: Robert Jarzmik <robert.jarzmik@free.fr>

And I tested also your patch and it works in my environment. For next patches
I'd like to be CCed for pxa27x_udc stuff as I'm maintaining that one since its
beginning (and yes, I know, I didn't put that in MAINTAINERS ...).

Cheers.

--
Robert

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

* [RFC/PATCH 29/32] usb: gadget: pxa27x_udc: let udc-core manage gadget->dev
@ 2013-01-28 20:18     ` Robert Jarzmik
  0 siblings, 0 replies; 117+ messages in thread
From: Robert Jarzmik @ 2013-01-28 20:18 UTC (permalink / raw)
  To: linux-arm-kernel

Felipe Balbi <balbi@ti.com> writes:

> By simply setting a flag, we can drop some
> boilerplate code.
>
> Signed-off-by: Felipe Balbi <balbi@ti.com>
> ---
>  drivers/usb/gadget/pxa27x_udc.c | 9 +--------
Acked-by: Robert Jarzmik <robert.jarzmik@free.fr>

And I tested also your patch and it works in my environment. For next patches
I'd like to be CCed for pxa27x_udc stuff as I'm maintaining that one since its
beginning (and yes, I know, I didn't put that in MAINTAINERS ...).

Cheers.

--
Robert

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

* Re: [RFC/PATCH 29/32] usb: gadget: pxa27x_udc: let udc-core manage gadget->dev
  2013-01-28 20:18     ` Robert Jarzmik
  (?)
@ 2013-02-04 19:53       ` Felipe Balbi
  -1 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-02-04 19:53 UTC (permalink / raw)
  To: Robert Jarzmik
  Cc: Felipe Balbi, Linux USB Mailing List, kgene.kim, eric.y.miao,
	kuninori.morimoto.gx, alexander.shishkin, gregkh,
	yoshihiro.shimoda.uh, nicolas.ferre, linux-geode, haojian.zhuang,
	Linux OMAP Mailing List, linux-samsung-soc, ben-linux,
	dahlmann.thomas, linux, leoli, linuxppc-dev, linux-arm-kernel

[-- Attachment #1: Type: text/plain, Size: 811 bytes --]

On Mon, Jan 28, 2013 at 09:18:29PM +0100, Robert Jarzmik wrote:
> Felipe Balbi <balbi@ti.com> writes:
> 
> > By simply setting a flag, we can drop some
> > boilerplate code.
> >
> > Signed-off-by: Felipe Balbi <balbi@ti.com>
> > ---
> >  drivers/usb/gadget/pxa27x_udc.c | 9 +--------
> Acked-by: Robert Jarzmik <robert.jarzmik@free.fr>
> 
> And I tested also your patch and it works in my environment. For next patches
> I'd like to be CCed for pxa27x_udc stuff as I'm maintaining that one since its
> beginning (and yes, I know, I didn't put that in MAINTAINERS ...).

you should add yourself to MAINTAINERS. Please send a patch to Greg when
you have time.

No need to prepare a tree, though. I just need you to give your Acked-by
and I'll queue the patches myself.

cheers

-- 
balbi

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

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

* Re: [RFC/PATCH 29/32] usb: gadget: pxa27x_udc: let udc-core manage gadget->dev
@ 2013-02-04 19:53       ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-02-04 19:53 UTC (permalink / raw)
  To: Robert Jarzmik
  Cc: kgene.kim, eric.y.miao, kuninori.morimoto.gx, alexander.shishkin,
	gregkh, yoshihiro.shimoda.uh, Linux USB Mailing List,
	nicolas.ferre, linux-geode, Felipe Balbi, linux-samsung-soc,
	haojian.zhuang, ben-linux, dahlmann.thomas, linux,
	Linux OMAP Mailing List, linuxppc-dev, linux-arm-kernel

[-- Attachment #1: Type: text/plain, Size: 811 bytes --]

On Mon, Jan 28, 2013 at 09:18:29PM +0100, Robert Jarzmik wrote:
> Felipe Balbi <balbi@ti.com> writes:
> 
> > By simply setting a flag, we can drop some
> > boilerplate code.
> >
> > Signed-off-by: Felipe Balbi <balbi@ti.com>
> > ---
> >  drivers/usb/gadget/pxa27x_udc.c | 9 +--------
> Acked-by: Robert Jarzmik <robert.jarzmik@free.fr>
> 
> And I tested also your patch and it works in my environment. For next patches
> I'd like to be CCed for pxa27x_udc stuff as I'm maintaining that one since its
> beginning (and yes, I know, I didn't put that in MAINTAINERS ...).

you should add yourself to MAINTAINERS. Please send a patch to Greg when
you have time.

No need to prepare a tree, though. I just need you to give your Acked-by
and I'll queue the patches myself.

cheers

-- 
balbi

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

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

* [RFC/PATCH 29/32] usb: gadget: pxa27x_udc: let udc-core manage gadget->dev
@ 2013-02-04 19:53       ` Felipe Balbi
  0 siblings, 0 replies; 117+ messages in thread
From: Felipe Balbi @ 2013-02-04 19:53 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, Jan 28, 2013 at 09:18:29PM +0100, Robert Jarzmik wrote:
> Felipe Balbi <balbi@ti.com> writes:
> 
> > By simply setting a flag, we can drop some
> > boilerplate code.
> >
> > Signed-off-by: Felipe Balbi <balbi@ti.com>
> > ---
> >  drivers/usb/gadget/pxa27x_udc.c | 9 +--------
> Acked-by: Robert Jarzmik <robert.jarzmik@free.fr>
> 
> And I tested also your patch and it works in my environment. For next patches
> I'd like to be CCed for pxa27x_udc stuff as I'm maintaining that one since its
> beginning (and yes, I know, I didn't put that in MAINTAINERS ...).

you should add yourself to MAINTAINERS. Please send a patch to Greg when
you have time.

No need to prepare a tree, though. I just need you to give your Acked-by
and I'll queue the patches myself.

cheers

-- 
balbi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20130204/ad6a8247/attachment.sig>

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

end of thread, other threads:[~2013-02-04 19:53 UTC | newest]

Thread overview: 117+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-01-24 15:45 [RFC/PATCH 00/32] usb: refactor gadget->dev registration Felipe Balbi
2013-01-24 15:45 ` Felipe Balbi
2013-01-24 15:45 ` Felipe Balbi
2013-01-24 15:45 ` [RFC/PATCH 01/32] usb: gadget: udc-core: allow udc class register gadget device Felipe Balbi
2013-01-24 15:45   ` Felipe Balbi
2013-01-24 15:45   ` Felipe Balbi
2013-01-24 18:57   ` Tomasz Figa
2013-01-24 18:57     ` Tomasz Figa
2013-01-24 18:57     ` Tomasz Figa
2013-01-24 15:45 ` [RFC/PATCH 02/32] usb: dwc3: gadget: let udc-core manage gadget->dev Felipe Balbi
2013-01-24 15:45   ` Felipe Balbi
2013-01-24 15:45   ` Felipe Balbi
2013-01-24 15:45 ` [RFC/PATCH 05/32] usb: gadget: amd5536udc: " Felipe Balbi
2013-01-24 15:45   ` Felipe Balbi
2013-01-24 15:45   ` Felipe Balbi
2013-01-24 15:45 ` [RFC/PATCH 06/32] usb: gadget: at91_udc: " Felipe Balbi
2013-01-24 15:45   ` Felipe Balbi
2013-01-24 15:45   ` Felipe Balbi
2013-01-24 15:45 ` [RFC/PATCH 07/32] usb: gadget: atmel_usba_udc: " Felipe Balbi
2013-01-24 15:45   ` Felipe Balbi
2013-01-24 15:45   ` Felipe Balbi
2013-01-24 15:45 ` [RFC/PATCH 08/32] usb: gadget: bcm63xx_udc: " Felipe Balbi
2013-01-24 15:45   ` Felipe Balbi
2013-01-24 15:45   ` Felipe Balbi
2013-01-24 15:45 ` [RFC/PATCH 09/32] usb: gadget: dummy_hcd: " Felipe Balbi
2013-01-24 15:45   ` Felipe Balbi
2013-01-24 15:45   ` Felipe Balbi
2013-01-24 15:45 ` [RFC/PATCH 12/32] usb: gadget: fusb300_udc: " Felipe Balbi
2013-01-24 15:45   ` Felipe Balbi
2013-01-24 15:45   ` Felipe Balbi
2013-01-24 15:45 ` [RFC/PATCH 13/32] usb: gadget: goku_udc: " Felipe Balbi
2013-01-24 15:45   ` Felipe Balbi
2013-01-24 15:45   ` Felipe Balbi
2013-01-24 15:45 ` [RFC/PATCH 14/32] usb: gadget: imx_udc: " Felipe Balbi
2013-01-24 15:45   ` Felipe Balbi
2013-01-24 15:45   ` Felipe Balbi
2013-01-24 15:45 ` [RFC/PATCH 16/32] usb: gadget: m66592-udc: " Felipe Balbi
2013-01-24 15:45   ` Felipe Balbi
2013-01-24 15:45   ` Felipe Balbi
2013-01-24 15:45 ` [RFC/PATCH 18/32] usb: gadget: mv_u3d_core: fix a compile warning Felipe Balbi
2013-01-24 15:45   ` Felipe Balbi
2013-01-24 15:45   ` Felipe Balbi
     [not found] ` <1359042370-4358-1-git-send-email-balbi-l0cyMroinI0@public.gmane.org>
2013-01-24 15:45   ` [RFC/PATCH 03/32] usb: musb: gadget: let udc-core manage gadget-dev Felipe Balbi
2013-01-24 15:45     ` Felipe Balbi
2013-01-24 15:45     ` Felipe Balbi
2013-01-24 15:45   ` [RFC/PATCH 04/32] usb: gadget: omap_udc: let udc-core manage gadget->dev Felipe Balbi
2013-01-24 15:45     ` Felipe Balbi
2013-01-24 15:45     ` Felipe Balbi
2013-01-24 15:45   ` [RFC/PATCH 10/32] usb: gadget: fsl_qe_udc: " Felipe Balbi
2013-01-24 15:45     ` Felipe Balbi
2013-01-24 15:45     ` Felipe Balbi
2013-01-24 15:45   ` [RFC/PATCH 11/32] usb: gadget: fsl_udc_core: " Felipe Balbi
2013-01-24 15:45     ` Felipe Balbi
2013-01-24 15:45     ` Felipe Balbi
2013-01-24 15:45   ` [RFC/PATCH 15/32] usb: gadget: lpc32xx_udc: " Felipe Balbi
2013-01-24 15:45     ` Felipe Balbi
2013-01-24 15:45     ` Felipe Balbi
2013-01-24 15:45   ` [RFC/PATCH 17/32] usb: gadget: mv_u3d_core: " Felipe Balbi
2013-01-24 15:45     ` Felipe Balbi
2013-01-24 15:45     ` Felipe Balbi
2013-01-24 15:45   ` [RFC/PATCH 19/32] usb: gadget: mv_udc_core: " Felipe Balbi
2013-01-24 15:45     ` Felipe Balbi
2013-01-24 15:45     ` Felipe Balbi
2013-01-24 15:45   ` [RFC/PATCH 20/32] usb: gadget: net2272: " Felipe Balbi
2013-01-24 15:45     ` Felipe Balbi
2013-01-24 15:45     ` Felipe Balbi
2013-01-24 15:46   ` [RFC/PATCH 27/32] usb: renesas_usbhs: gadget: " Felipe Balbi
2013-01-24 15:46     ` Felipe Balbi
2013-01-24 15:46     ` Felipe Balbi
2013-01-24 15:45 ` [RFC/PATCH 21/32] usb: gadget: net2280: " Felipe Balbi
2013-01-24 15:45   ` Felipe Balbi
2013-01-24 15:45   ` Felipe Balbi
2013-01-24 15:46 ` [RFC/PATCH 22/32] usb: gadget: pch_udc: " Felipe Balbi
2013-01-24 15:46   ` Felipe Balbi
2013-01-24 15:46   ` Felipe Balbi
2013-01-24 15:46 ` [RFC/PATCH 23/32] usb: gadget: r8a66597-udc: " Felipe Balbi
2013-01-24 15:46   ` Felipe Balbi
2013-01-24 15:46   ` Felipe Balbi
2013-01-24 15:46 ` [RFC/PATCH 24/32] usb: gadget: s3c-hsotg: " Felipe Balbi
2013-01-24 15:46   ` Felipe Balbi
2013-01-24 15:46   ` Felipe Balbi
     [not found]   ` <1359042370-4358-25-git-send-email-balbi-l0cyMroinI0@public.gmane.org>
2013-01-24 19:00     ` Tomasz Figa
2013-01-24 19:00       ` Tomasz Figa
2013-01-24 19:00       ` Tomasz Figa
2013-01-24 15:46 ` [RFC/PATCH 25/32] usb: gadget: s3c-hsudc: " Felipe Balbi
2013-01-24 15:46   ` Felipe Balbi
2013-01-24 15:46   ` Felipe Balbi
2013-01-24 15:46 ` [RFC/PATCH 26/32] usb: gadget: s3c2410_udc: " Felipe Balbi
2013-01-24 15:46   ` Felipe Balbi
2013-01-24 15:46   ` Felipe Balbi
2013-01-24 15:46 ` [RFC/PATCH 28/32] usb: gadget: pxa25x_udc: " Felipe Balbi
2013-01-24 15:46   ` Felipe Balbi
2013-01-24 15:46   ` Felipe Balbi
2013-01-24 15:46 ` [RFC/PATCH 29/32] usb: gadget: pxa27x_udc: " Felipe Balbi
2013-01-24 15:46   ` Felipe Balbi
2013-01-24 15:46   ` Felipe Balbi
2013-01-28 20:18   ` Robert Jarzmik
2013-01-28 20:18     ` Robert Jarzmik
2013-01-28 20:18     ` Robert Jarzmik
2013-02-04 19:53     ` Felipe Balbi
2013-02-04 19:53       ` Felipe Balbi
2013-02-04 19:53       ` Felipe Balbi
2013-01-24 15:46 ` [RFC/PATCH 30/32] usb: chipidea: register debugging syfs on our device Felipe Balbi
2013-01-24 15:46   ` Felipe Balbi
2013-01-24 15:46   ` Felipe Balbi
2013-01-24 15:46 ` [RFC/PATCH 31/32] usb: chipidea: let udc-core manage gadget->dev Felipe Balbi
2013-01-24 15:46   ` Felipe Balbi
2013-01-24 15:46   ` Felipe Balbi
2013-01-24 15:46 ` [RFC/PATCH 32/32] usb: gadget: drop now unnecessary flag Felipe Balbi
2013-01-24 15:46   ` Felipe Balbi
2013-01-24 15:46   ` Felipe Balbi
2013-01-24 18:52   ` Tomasz Figa
2013-01-24 18:52     ` Tomasz Figa
2013-01-24 18:52     ` Tomasz Figa
2013-01-24 19:09     ` Felipe Balbi
2013-01-24 19:09       ` Felipe Balbi
2013-01-24 19:09       ` Felipe Balbi

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.