public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [patch 00/14] More patches to convert from struct class_device to struct device
@ 2007-08-20 22:48 tonyj
  2007-08-20 22:48 ` [patch 01/14] Convert from class_device to device for block/paride tonyj
                   ` (13 more replies)
  0 siblings, 14 replies; 39+ messages in thread
From: tonyj @ 2007-08-20 22:48 UTC (permalink / raw)
  To: linux-kernel

-- 

[patch 01/14] block/paride
[patch 02/14] block/pktcdvd
[patch 03/14] block/aoechr
[patch 04/14] drivers/macintosh
[patch 05/14] cosa sync driver
[patch 06/14] MTD/mtdchar
[patch 07/14] IDE/ide-tape
[patch 08/14] DMA engine
[patch 09/14] SPI
[patch 10/14] USB core
[patch 11/14] USB host
[patch 12/14] TI flash media
[patch 13/14] UCB1x00
[patch 14/14] ISDN capi

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

* [patch 01/14] Convert from class_device to device for block/paride
  2007-08-20 22:48 [patch 00/14] More patches to convert from struct class_device to struct device tonyj
@ 2007-08-20 22:48 ` tonyj
  2007-08-20 22:48 ` [patch 02/14] Convert from class_device to device for block/pktcdvd tonyj
                   ` (12 subsequent siblings)
  13 siblings, 0 replies; 39+ messages in thread
From: tonyj @ 2007-08-20 22:48 UTC (permalink / raw)
  To: linux-kernel; +Cc: axboe, kay.sievers

-- 
Content-Disposition: inline; filename=paride.patch

Convert from class_device to device for block/paride.  This is part of the
work to eliminate struct class_device.

Signed-off-by: Tony Jones <tonyj@suse.de>

---
 drivers/block/paride/pg.c |    6 +++---
 drivers/block/paride/pt.c |   12 ++++++------
 2 files changed, 9 insertions(+), 9 deletions(-)

--- a/drivers/block/paride/pg.c
+++ b/drivers/block/paride/pg.c
@@ -676,8 +676,8 @@ static int __init pg_init(void)
 	for (unit = 0; unit < PG_UNITS; unit++) {
 		struct pg *dev = &devices[unit];
 		if (dev->present)
-			class_device_create(pg_class, NULL, MKDEV(major, unit),
-					NULL, "pg%u", unit);
+			device_create(pg_class, NULL, MKDEV(major, unit),
+				      "pg%u", unit);
 	}
 	err = 0;
 	goto out;
@@ -695,7 +695,7 @@ static void __exit pg_exit(void)
 	for (unit = 0; unit < PG_UNITS; unit++) {
 		struct pg *dev = &devices[unit];
 		if (dev->present)
-			class_device_destroy(pg_class, MKDEV(major, unit));
+			device_destroy(pg_class, MKDEV(major, unit));
 	}
 	class_destroy(pg_class);
 	unregister_chrdev(major, name);
--- a/drivers/block/paride/pt.c
+++ b/drivers/block/paride/pt.c
@@ -972,10 +972,10 @@ static int __init pt_init(void)
 
 	for (unit = 0; unit < PT_UNITS; unit++)
 		if (pt[unit].present) {
-			class_device_create(pt_class, NULL, MKDEV(major, unit),
-					NULL, "pt%d", unit);
-			class_device_create(pt_class, NULL, MKDEV(major, unit + 128),
-					NULL, "pt%dn", unit);
+			device_create(pt_class, NULL, MKDEV(major, unit),
+				      "pt%d", unit);
+			device_create(pt_class, NULL, MKDEV(major, unit + 128),
+				      "pt%dn", unit);
 		}
 	goto out;
 
@@ -990,8 +990,8 @@ static void __exit pt_exit(void)
 	int unit;
 	for (unit = 0; unit < PT_UNITS; unit++)
 		if (pt[unit].present) {
-			class_device_destroy(pt_class, MKDEV(major, unit));
-			class_device_destroy(pt_class, MKDEV(major, unit + 128));
+			device_destroy(pt_class, MKDEV(major, unit));
+			device_destroy(pt_class, MKDEV(major, unit + 128));
 		}
 	class_destroy(pt_class);
 	unregister_chrdev(major, name);

-- 

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

* [patch 02/14] Convert from class_device to device for block/pktcdvd
  2007-08-20 22:48 [patch 00/14] More patches to convert from struct class_device to struct device tonyj
  2007-08-20 22:48 ` [patch 01/14] Convert from class_device to device for block/paride tonyj
@ 2007-08-20 22:48 ` tonyj
  2007-08-21 14:59   ` Tony Jones
  2007-08-20 22:48 ` [patch 03/14] Convert from class_device to device for block/aoechr tonyj
                   ` (11 subsequent siblings)
  13 siblings, 1 reply; 39+ messages in thread
From: tonyj @ 2007-08-20 22:48 UTC (permalink / raw)
  To: linux-kernel; +Cc: axboe, kay.sievers

-- 
Content-Disposition: inline; filename=block.patch

Convert from class_device to device for block/pktcdvd.  

---
 drivers/block/pktcdvd.c |   16 +++++++---------
 include/linux/pktcdvd.h |    2 +-
 2 files changed, 8 insertions(+), 10 deletions(-)

--- a/drivers/block/pktcdvd.c
+++ b/drivers/block/pktcdvd.c
@@ -299,18 +299,16 @@ static struct kobj_type kobj_pkt_type_wq
 static void pkt_sysfs_dev_new(struct pktcdvd_device *pd)
 {
 	if (class_pktcdvd) {
-		pd->clsdev = class_device_create(class_pktcdvd,
-					NULL, pd->pkt_dev,
-					NULL, "%s", pd->name);
-		if (IS_ERR(pd->clsdev))
-			pd->clsdev = NULL;
+		pd->dev = device_create(class_pktcdvd, NULL, pd->pkt_dev, "%s", pd->name);
+		if (IS_ERR(pd->dev))
+			pd->dev = NULL;
 	}
-	if (pd->clsdev) {
+	if (pd->dev) {
 		pd->kobj_stat = pkt_kobj_create(pd, "stat",
-					&pd->clsdev->kobj,
+					&pd->dev->kobj,
 					&kobj_pkt_type_stat);
 		pd->kobj_wqueue = pkt_kobj_create(pd, "write_queue",
-					&pd->clsdev->kobj,
+					&pd->dev->kobj,
 					&kobj_pkt_type_wqueue);
 	}
 }
@@ -320,7 +318,7 @@ static void pkt_sysfs_dev_remove(struct 
 	pkt_kobj_remove(pd->kobj_stat);
 	pkt_kobj_remove(pd->kobj_wqueue);
 	if (class_pktcdvd)
-		class_device_destroy(class_pktcdvd, pd->pkt_dev);
+		device_destroy(class_pktcdvd, pd->pkt_dev);
 }
 
 
--- a/include/linux/pktcdvd.h
+++ b/include/linux/pktcdvd.h
@@ -290,7 +290,7 @@ struct pktcdvd_device
 	int			write_congestion_off;
 	int			write_congestion_on;
 
-	struct class_device	*clsdev;	/* sysfs pktcdvd[0-7] class dev */
+	struct device		*dev;		/* sysfs pktcdvd[0-7] dev */
 	struct pktcdvd_kobj	*kobj_stat;	/* sysfs pktcdvd[0-7]/stat/     */
 	struct pktcdvd_kobj	*kobj_wqueue;	/* sysfs pktcdvd[0-7]/write_queue/ */
 

-- 

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

* [patch 03/14] Convert from class_device to device for block/aoechr
  2007-08-20 22:48 [patch 00/14] More patches to convert from struct class_device to struct device tonyj
  2007-08-20 22:48 ` [patch 01/14] Convert from class_device to device for block/paride tonyj
  2007-08-20 22:48 ` [patch 02/14] Convert from class_device to device for block/pktcdvd tonyj
@ 2007-08-20 22:48 ` tonyj
  2007-08-21 14:59   ` Tony Jones
  2007-08-20 22:48 ` [patch 04/14] Convert from class_device to device for drivers/macintosh tonyj
                   ` (10 subsequent siblings)
  13 siblings, 1 reply; 39+ messages in thread
From: tonyj @ 2007-08-20 22:48 UTC (permalink / raw)
  To: linux-kernel; +Cc: axboe, kay.sievers

-- 
Content-Disposition: inline; filename=aoechr.patch

Convert from class_device to device for block/aoechr.  This is part of the
work to eliminate struct class_device.

---
 drivers/block/aoe/aoechr.c |    7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

--- a/drivers/block/aoe/aoechr.c
+++ b/drivers/block/aoe/aoechr.c
@@ -259,9 +259,8 @@ aoechr_init(void)
 		return PTR_ERR(aoe_class);
 	}
 	for (i = 0; i < ARRAY_SIZE(chardevs); ++i)
-		class_device_create(aoe_class, NULL,
-					MKDEV(AOE_MAJOR, chardevs[i].minor),
-					NULL, chardevs[i].name);
+		device_create(aoe_class, NULL,
+			      MKDEV(AOE_MAJOR, chardevs[i].minor), chardevs[i].name);
 
 	return 0;
 }
@@ -272,7 +271,7 @@ aoechr_exit(void)
 	int i;
 
 	for (i = 0; i < ARRAY_SIZE(chardevs); ++i)
-		class_device_destroy(aoe_class, MKDEV(AOE_MAJOR, chardevs[i].minor));
+		device_destroy(aoe_class, MKDEV(AOE_MAJOR, chardevs[i].minor));
 	class_destroy(aoe_class);
 	unregister_chrdev(AOE_MAJOR, "aoechr");
 }

-- 

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

* [patch 04/14] Convert from class_device to device for drivers/macintosh
  2007-08-20 22:48 [patch 00/14] More patches to convert from struct class_device to struct device tonyj
                   ` (2 preceding siblings ...)
  2007-08-20 22:48 ` [patch 03/14] Convert from class_device to device for block/aoechr tonyj
@ 2007-08-20 22:48 ` tonyj
  2007-08-21 14:59   ` Tony Jones
  2007-08-24  5:04   ` Benjamin Herrenschmidt
  2007-08-20 22:48 ` [patch 05/14] Convert from class_device to device for cosa sync driver tonyj
                   ` (9 subsequent siblings)
  13 siblings, 2 replies; 39+ messages in thread
From: tonyj @ 2007-08-20 22:48 UTC (permalink / raw)
  To: linux-kernel; +Cc: funaho, benh, kay.sievers

-- 
Content-Disposition: inline; filename=macintosh.patch

Convert from class_device to device for macintosh.  This is part of the
work to eliminate struct class_device.

---
 drivers/macintosh/adb.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/macintosh/adb.c
+++ b/drivers/macintosh/adb.c
@@ -875,5 +875,5 @@ adbdev_init(void)
 	adb_dev_class = class_create(THIS_MODULE, "adb");
 	if (IS_ERR(adb_dev_class))
 		return;
-	class_device_create(adb_dev_class, NULL, MKDEV(ADB_MAJOR, 0), NULL, "adb");
+	device_create(adb_dev_class, NULL, MKDEV(ADB_MAJOR, 0), "adb");
 }

-- 

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

* [patch 05/14] Convert from class_device to device for cosa sync driver
  2007-08-20 22:48 [patch 00/14] More patches to convert from struct class_device to struct device tonyj
                   ` (3 preceding siblings ...)
  2007-08-20 22:48 ` [patch 04/14] Convert from class_device to device for drivers/macintosh tonyj
@ 2007-08-20 22:48 ` tonyj
  2007-08-21 14:59   ` Tony Jones
  2007-08-20 22:48 ` [patch 06/14] Convert from class_device to device for MTD/mtdchar tonyj
                   ` (8 subsequent siblings)
  13 siblings, 1 reply; 39+ messages in thread
From: tonyj @ 2007-08-20 22:48 UTC (permalink / raw)
  To: linux-kernel; +Cc: kas, kay.sievers

-- 
Content-Disposition: inline; filename=wan.patch

Convert from class_device to device for drivers/net/wan/cosa.  This is part of 
the work to eliminate struct class_device.

---
 drivers/net/wan/cosa.c |    5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

--- a/drivers/net/wan/cosa.c
+++ b/drivers/net/wan/cosa.c
@@ -395,8 +395,7 @@ static int __init cosa_init(void)
 		goto out_chrdev;
 	}
 	for (i=0; i<nr_cards; i++) {
-		class_device_create(cosa_class, NULL, MKDEV(cosa_major, i),
-				NULL, "cosa%d", i);
+		device_create(cosa_class, NULL, MKDEV(cosa_major, i), "cosa%d", i);
 	}
 	err = 0;
 	goto out;
@@ -415,7 +414,7 @@ static void __exit cosa_exit(void)
 	printk(KERN_INFO "Unloading the cosa module\n");
 
 	for (i=0; i<nr_cards; i++)
-		class_device_destroy(cosa_class, MKDEV(cosa_major, i));
+		device_destroy(cosa_class, MKDEV(cosa_major, i));
 	class_destroy(cosa_class);
 	for (cosa=cosa_cards; nr_cards--; cosa++) {
 		/* Clean up the per-channel data */

-- 

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

* [patch 06/14] Convert from class_device to device for MTD/mtdchar
  2007-08-20 22:48 [patch 00/14] More patches to convert from struct class_device to struct device tonyj
                   ` (4 preceding siblings ...)
  2007-08-20 22:48 ` [patch 05/14] Convert from class_device to device for cosa sync driver tonyj
@ 2007-08-20 22:48 ` tonyj
  2007-08-21 15:00   ` Tony Jones
  2007-08-20 22:48 ` [patch 07/14] Convert from class_device to device for IDE/ide-tape tonyj
                   ` (7 subsequent siblings)
  13 siblings, 1 reply; 39+ messages in thread
From: tonyj @ 2007-08-20 22:48 UTC (permalink / raw)
  To: linux-kernel; +Cc: dwmw2, kay.sievers

-- 
Content-Disposition: inline; filename=mtd.patch

Convert from class_device to device for drivers/mtd/mtdchar.  This is part of 
the work to eliminate struct class_device.

---
 drivers/mtd/mtdchar.c |   12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

--- a/drivers/mtd/mtdchar.c
+++ b/drivers/mtd/mtdchar.c
@@ -27,12 +27,10 @@ static void mtd_notify_add(struct mtd_in
 	if (!mtd)
 		return;
 
-	class_device_create(mtd_class, NULL, MKDEV(MTD_CHAR_MAJOR, mtd->index*2),
-			    NULL, "mtd%d", mtd->index);
+	device_create(mtd_class, NULL, MKDEV(MTD_CHAR_MAJOR, mtd->index*2), "mtd%d", mtd->index);
 
-	class_device_create(mtd_class, NULL,
-			    MKDEV(MTD_CHAR_MAJOR, mtd->index*2+1),
-			    NULL, "mtd%dro", mtd->index);
+	device_create(mtd_class, NULL,
+		      MKDEV(MTD_CHAR_MAJOR, mtd->index*2+1), "mtd%dro", mtd->index);
 }
 
 static void mtd_notify_remove(struct mtd_info* mtd)
@@ -40,8 +38,8 @@ static void mtd_notify_remove(struct mtd
 	if (!mtd)
 		return;
 
-	class_device_destroy(mtd_class, MKDEV(MTD_CHAR_MAJOR, mtd->index*2));
-	class_device_destroy(mtd_class, MKDEV(MTD_CHAR_MAJOR, mtd->index*2+1));
+	device_destroy(mtd_class, MKDEV(MTD_CHAR_MAJOR, mtd->index*2));
+	device_destroy(mtd_class, MKDEV(MTD_CHAR_MAJOR, mtd->index*2+1));
 }
 
 static struct mtd_notifier notifier = {

-- 

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

* [patch 07/14] Convert from class_device to device for IDE/ide-tape
  2007-08-20 22:48 [patch 00/14] More patches to convert from struct class_device to struct device tonyj
                   ` (5 preceding siblings ...)
  2007-08-20 22:48 ` [patch 06/14] Convert from class_device to device for MTD/mtdchar tonyj
@ 2007-08-20 22:48 ` tonyj
  2007-08-21 15:00   ` Tony Jones
  2007-08-20 22:48 ` [patch 08/14] Convert from class_device to device for DMA engine tonyj
                   ` (6 subsequent siblings)
  13 siblings, 1 reply; 39+ messages in thread
From: tonyj @ 2007-08-20 22:48 UTC (permalink / raw)
  To: linux-kernel; +Cc: gadio, kay.sievers

-- 
Content-Disposition: inline; filename=ide.patch

Convert from class_device to device for drivers/drivers/ide/ide-tape.  This is 
part of the work to eliminate struct class_device.

---
 drivers/ide/ide-tape.c |   14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

--- a/drivers/ide/ide-tape.c
+++ b/drivers/ide/ide-tape.c
@@ -4725,10 +4725,8 @@ static void ide_tape_release(struct kref
 
 	drive->dsc_overlap = 0;
 	drive->driver_data = NULL;
-	class_device_destroy(idetape_sysfs_class,
-			MKDEV(IDETAPE_MAJOR, tape->minor));
-	class_device_destroy(idetape_sysfs_class,
-			MKDEV(IDETAPE_MAJOR, tape->minor + 128));
+	device_destroy(idetape_sysfs_class, MKDEV(IDETAPE_MAJOR, tape->minor));
+	device_destroy(idetape_sysfs_class, MKDEV(IDETAPE_MAJOR, tape->minor + 128));
 	idetape_devs[tape->minor] = NULL;
 	g->private_data = NULL;
 	put_disk(g);
@@ -4885,10 +4883,10 @@ static int ide_tape_probe(ide_drive_t *d
 
 	idetape_setup(drive, tape, minor);
 
-	class_device_create(idetape_sysfs_class, NULL,
-			MKDEV(IDETAPE_MAJOR, minor), &drive->gendev, "%s", tape->name);
-	class_device_create(idetape_sysfs_class, NULL,
-			MKDEV(IDETAPE_MAJOR, minor + 128), &drive->gendev, "n%s", tape->name);
+	device_create(idetape_sysfs_class, &drive->gendev,
+		      MKDEV(IDETAPE_MAJOR, minor), "%s", tape->name);
+	device_create(idetape_sysfs_class, &drive->gendev,
+			MKDEV(IDETAPE_MAJOR, minor + 128), "n%s", tape->name);
 
 	g->fops = &idetape_block_ops;
 	ide_register_region(g);

-- 

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

* [patch 08/14] Convert from class_device to device for DMA engine
  2007-08-20 22:48 [patch 00/14] More patches to convert from struct class_device to struct device tonyj
                   ` (6 preceding siblings ...)
  2007-08-20 22:48 ` [patch 07/14] Convert from class_device to device for IDE/ide-tape tonyj
@ 2007-08-20 22:48 ` tonyj
  2007-08-21 15:01   ` Tony Jones
  2007-08-20 22:48 ` [patch 09/14] Convert from class_device to device for SPI tonyj
                   ` (5 subsequent siblings)
  13 siblings, 1 reply; 39+ messages in thread
From: tonyj @ 2007-08-20 22:48 UTC (permalink / raw)
  To: linux-kernel; +Cc: dan.j.williams, kay.sievers

-- 
Content-Disposition: inline; filename=dma.patch

Convert from class_device to device for drivers/dma/dmaengine.  This is
part of the work to eliminate struct class_device.

---
 drivers/dma/dmaengine.c   |   43 ++++++++++++++++++++++---------------------
 include/linux/dmaengine.h |    3 ++-
 2 files changed, 24 insertions(+), 22 deletions(-)

--- a/drivers/dma/dmaengine.c
+++ b/drivers/dma/dmaengine.c
@@ -41,12 +41,12 @@
  * the definition of dma_event_callback in dmaengine.h.
  *
  * Each device has a kref, which is initialized to 1 when the device is
- * registered. A kref_get is done for each class_device registered.  When the
- * class_device is released, the coresponding kref_put is done in the release
+ * registered. A kref_get is done for each device registered.  When the
+ * device is released, the coresponding kref_put is done in the release
  * method. Every time one of the device's channels is allocated to a client,
  * a kref_get occurs.  When the channel is freed, the coresponding kref_put
  * happens. The device's release function does a completion, so
- * unregister_device does a remove event, class_device_unregister, a kref_put
+ * unregister_device does a remove event, device_unregister, a kref_put
  * for the first reference, then waits on the completion for all other
  * references to finish.
  *
@@ -77,9 +77,9 @@ static LIST_HEAD(dma_client_list);
 
 /* --- sysfs implementation --- */
 
-static ssize_t show_memcpy_count(struct class_device *cd, char *buf)
+static ssize_t show_memcpy_count(struct device *dev, struct device_attribute *attr, char *buf)
 {
-	struct dma_chan *chan = container_of(cd, struct dma_chan, class_dev);
+	struct dma_chan *chan = to_dma_chan(dev);
 	unsigned long count = 0;
 	int i;
 
@@ -89,9 +89,10 @@ static ssize_t show_memcpy_count(struct 
 	return sprintf(buf, "%lu\n", count);
 }
 
-static ssize_t show_bytes_transferred(struct class_device *cd, char *buf)
+static ssize_t show_bytes_transferred(struct device *dev, struct device_attribute *attr,
+				      char *buf)
 {
-	struct dma_chan *chan = container_of(cd, struct dma_chan, class_dev);
+	struct dma_chan *chan = to_dma_chan(dev);
 	unsigned long count = 0;
 	int i;
 
@@ -101,9 +102,9 @@ static ssize_t show_bytes_transferred(st
 	return sprintf(buf, "%lu\n", count);
 }
 
-static ssize_t show_in_use(struct class_device *cd, char *buf)
+static ssize_t show_in_use(struct device *dev, struct device_attribute *attr, char *buf)
 {
-	struct dma_chan *chan = container_of(cd, struct dma_chan, class_dev);
+	struct dma_chan *chan = to_dma_chan(dev);
 	int in_use = 0;
 
 	if (unlikely(chan->slow_ref) &&
@@ -119,7 +120,7 @@ static ssize_t show_in_use(struct class_
 	return sprintf(buf, "%d\n", in_use);
 }
 
-static struct class_device_attribute dma_class_attrs[] = {
+static struct device_attribute dma_attrs[] = {
 	__ATTR(memcpy_count, S_IRUGO, show_memcpy_count, NULL),
 	__ATTR(bytes_transferred, S_IRUGO, show_bytes_transferred, NULL),
 	__ATTR(in_use, S_IRUGO, show_in_use, NULL),
@@ -128,16 +129,16 @@ static struct class_device_attribute dma
 
 static void dma_async_device_cleanup(struct kref *kref);
 
-static void dma_class_dev_release(struct class_device *cd)
+static void dma_dev_release(struct device *dev)
 {
-	struct dma_chan *chan = container_of(cd, struct dma_chan, class_dev);
+	struct dma_chan *chan = to_dma_chan(dev);
 	kref_put(&chan->device->refcount, dma_async_device_cleanup);
 }
 
 static struct class dma_devclass = {
-	.name            = "dma",
-	.class_dev_attrs = dma_class_attrs,
-	.release = dma_class_dev_release,
+	.name		= "dma",
+	.dev_attrs	= dma_attrs,
+	.dev_release	= dma_dev_release,
 };
 
 /* --- client and device registration --- */
@@ -384,12 +385,12 @@ int dma_async_device_register(struct dma
 			continue;
 
 		chan->chan_id = chancnt++;
-		chan->class_dev.class = &dma_devclass;
-		chan->class_dev.dev = NULL;
-		snprintf(chan->class_dev.class_id, BUS_ID_SIZE, "dma%dchan%d",
+		chan->dev.class = &dma_devclass;
+		chan->dev.parent = NULL;
+		snprintf(chan->dev.bus_id, BUS_ID_SIZE, "dma%dchan%d",
 		         device->dev_id, chan->chan_id);
 
-		rc = class_device_register(&chan->class_dev);
+		rc = device_register(&chan->dev);
 		if (rc) {
 			chancnt--;
 			free_percpu(chan->local);
@@ -416,7 +417,7 @@ err_out:
 		if (chan->local == NULL)
 			continue;
 		kref_put(&device->refcount, dma_async_device_cleanup);
-		class_device_unregister(&chan->class_dev);
+		device_unregister(&chan->dev);
 		chancnt--;
 		free_percpu(chan->local);
 	}
@@ -450,7 +451,7 @@ void dma_async_device_unregister(struct 
 
 	list_for_each_entry(chan, &device->channels, device_node) {
 		dma_clients_notify_removed(chan);
-		class_device_unregister(&chan->class_dev);
+		device_unregister(&chan->dev);
 		dma_chan_release(chan);
 	}
 
--- a/include/linux/dmaengine.h
+++ b/include/linux/dmaengine.h
@@ -132,7 +132,7 @@ struct dma_chan {
 
 	/* sysfs */
 	int chan_id;
-	struct class_device class_dev;
+	struct device dev;
 
 	struct kref refcount;
 	int slow_ref;
@@ -142,6 +142,7 @@ struct dma_chan {
 	struct dma_chan_percpu *local;
 };
 
+#define to_dma_chan(p) container_of(p, struct dma_chan, dev)
 
 void dma_chan_cleanup(struct kref *kref);
 

-- 

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

* [patch 09/14] Convert from class_device to device for SPI
  2007-08-20 22:48 [patch 00/14] More patches to convert from struct class_device to struct device tonyj
                   ` (7 preceding siblings ...)
  2007-08-20 22:48 ` [patch 08/14] Convert from class_device to device for DMA engine tonyj
@ 2007-08-20 22:48 ` tonyj
  2007-08-21 15:01   ` Tony Jones
  2007-08-20 22:48 ` [patch 10/14] Convert from class_device to device for USB core tonyj
                   ` (4 subsequent siblings)
  13 siblings, 1 reply; 39+ messages in thread
From: tonyj @ 2007-08-20 22:48 UTC (permalink / raw)
  To: linux-kernel; +Cc: dbrownell, kay.sievers

-- 
Content-Disposition: inline; filename=spi.patch

Convert from class_device to device for drivers/spi.  This is part of the work 
to eliminate struct class_device.

---
 drivers/spi/spi.c         |   36 ++++++++++++++++++------------------
 drivers/spi/spi_bitbang.c |    2 +-
 drivers/spi/spi_lm70llp.c |    2 +-
 include/linux/spi/spi.h   |   12 ++++++------
 4 files changed, 26 insertions(+), 26 deletions(-)

--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -207,7 +207,7 @@ struct spi_device *spi_new_device(struct
 				  struct spi_board_info *chip)
 {
 	struct spi_device	*proxy;
-	struct device		*dev = master->cdev.dev;
+	struct device		*dev = master->dev.parent;
 	int			status;
 
 	/* NOTE:  caller did any chip->bus_num checks necessary.
@@ -242,7 +242,7 @@ struct spi_device *spi_new_device(struct
 	proxy->modalias = chip->modalias;
 
 	snprintf(proxy->dev.bus_id, sizeof proxy->dev.bus_id,
-			"%s.%u", master->cdev.class_id,
+			"%s.%u", master->dev.bus_id,
 			chip->chip_select);
 	proxy->dev.parent = dev;
 	proxy->dev.bus = &spi_bus_type;
@@ -341,18 +341,18 @@ static void scan_boardinfo(struct spi_ma
 
 /*-------------------------------------------------------------------------*/
 
-static void spi_master_release(struct class_device *cdev)
+static void spi_master_release(struct device *dev)
 {
 	struct spi_master *master;
 
-	master = container_of(cdev, struct spi_master, cdev);
+	master = container_of(dev, struct spi_master, dev);
 	kfree(master);
 }
 
 static struct class spi_master_class = {
 	.name		= "spi_master",
 	.owner		= THIS_MODULE,
-	.release	= spi_master_release,
+	.dev_release	= spi_master_release,
 };
 
 
@@ -360,7 +360,7 @@ static struct class spi_master_class = {
  * spi_alloc_master - allocate SPI master controller
  * @dev: the controller, possibly using the platform_bus
  * @size: how much zeroed driver-private data to allocate; the pointer to this
- *	memory is in the class_data field of the returned class_device,
+ *	memory is in the driver_data field of the returned device,
  *	accessible with spi_master_get_devdata().
  * Context: can sleep
  *
@@ -386,9 +386,9 @@ struct spi_master *spi_alloc_master(stru
 	if (!master)
 		return NULL;
 
-	class_device_initialize(&master->cdev);
-	master->cdev.class = &spi_master_class;
-	master->cdev.dev = get_device(dev);
+	device_initialize(&master->dev);
+	master->dev.class = &spi_master_class;
+	master->dev.parent = get_device(dev);
 	spi_master_set_devdata(master, &master[1]);
 
 	return master;
@@ -418,7 +418,7 @@ EXPORT_SYMBOL_GPL(spi_alloc_master);
 int spi_register_master(struct spi_master *master)
 {
 	static atomic_t		dyn_bus_id = ATOMIC_INIT((1<<15) - 1);
-	struct device		*dev = master->cdev.dev;
+	struct device		*dev = master->dev.parent;
 	int			status = -ENODEV;
 	int			dynamic = 0;
 
@@ -443,12 +443,12 @@ int spi_register_master(struct spi_maste
 	/* register the device, then userspace will see it.
 	 * registration fails if the bus ID is in use.
 	 */
-	snprintf(master->cdev.class_id, sizeof master->cdev.class_id,
+	snprintf(master->dev.bus_id, sizeof master->dev.bus_id,
 		"spi%u", master->bus_num);
-	status = class_device_add(&master->cdev);
+	status = device_add(&master->dev);
 	if (status < 0)
 		goto done;
-	dev_dbg(dev, "registered master %s%s\n", master->cdev.class_id,
+	dev_dbg(dev, "registered master %s%s\n", master->dev.bus_id,
 			dynamic ? " (dynamic)" : "");
 
 	/* populate children from any spi device tables */
@@ -481,8 +481,8 @@ void spi_unregister_master(struct spi_ma
 {
 	int dummy;
 
-	dummy = device_for_each_child(master->cdev.dev, NULL, __unregister);
-	class_device_unregister(&master->cdev);
+	dummy = device_for_each_child(master->dev.parent, NULL, __unregister);
+	device_unregister(&master->dev);
 }
 EXPORT_SYMBOL_GPL(spi_unregister_master);
 
@@ -498,13 +498,13 @@ EXPORT_SYMBOL_GPL(spi_unregister_master)
  */
 struct spi_master *spi_busnum_to_master(u16 bus_num)
 {
-	struct class_device	*cdev;
+	struct device		*dev;
 	struct spi_master	*master = NULL;
 	struct spi_master	*m;
 
 	down(&spi_master_class.sem);
-	list_for_each_entry(cdev, &spi_master_class.children, node) {
-		m = container_of(cdev, struct spi_master, cdev);
+	list_for_each_entry(dev, &spi_master_class.children, node) {
+		m = container_of(dev, struct spi_master, dev);
 		if (m->bus_num == bus_num) {
 			master = spi_master_get(m);
 			break;
--- a/drivers/spi/spi_lm70llp.c
+++ b/drivers/spi/spi_lm70llp.c
@@ -82,7 +82,7 @@ struct spi_lm70llp {
 	struct pardevice	*pd;
 	struct spi_device	*spidev_lm70;
 	struct spi_board_info	info;
-	struct class_device	*cdev;
+	//struct device		*dev;
 };
 
 /* REVISIT : ugly global ; provides "exclusive open" facility */
--- a/include/linux/spi/spi.h
+++ b/include/linux/spi/spi.h
@@ -195,7 +195,7 @@ static inline void spi_unregister_driver
 
 /**
  * struct spi_master - interface to SPI master controller
- * @cdev: class interface to this driver
+ * @dev: device interface to this driver
  * @bus_num: board-specific (and often SOC-specific) identifier for a
  *	given SPI controller.
  * @num_chipselect: chipselects are used to distinguish individual
@@ -222,7 +222,7 @@ static inline void spi_unregister_driver
  * message's completion function when the transaction completes.
  */
 struct spi_master {
-	struct class_device	cdev;
+	struct device	dev;
 
 	/* other than negative (== assign one dynamically), bus_num is fully
 	 * board-specific.  usually that simplifies to being SOC-specific.
@@ -268,17 +268,17 @@ struct spi_master {
 
 static inline void *spi_master_get_devdata(struct spi_master *master)
 {
-	return class_get_devdata(&master->cdev);
+	return dev_get_drvdata(&master->dev);
 }
 
 static inline void spi_master_set_devdata(struct spi_master *master, void *data)
 {
-	class_set_devdata(&master->cdev, data);
+	dev_set_drvdata(&master->dev, data);
 }
 
 static inline struct spi_master *spi_master_get(struct spi_master *master)
 {
-	if (!master || !class_device_get(&master->cdev))
+	if (!master || !get_device(&master->dev))
 		return NULL;
 	return master;
 }
@@ -286,7 +286,7 @@ static inline struct spi_master *spi_mas
 static inline void spi_master_put(struct spi_master *master)
 {
 	if (master)
-		class_device_put(&master->cdev);
+		put_device(&master->dev);
 }
 
 
--- a/drivers/spi/spi_bitbang.c
+++ b/drivers/spi/spi_bitbang.c
@@ -472,7 +472,7 @@ int spi_bitbang_start(struct spi_bitbang
 	/* this task is the only thing to touch the SPI bits */
 	bitbang->busy = 0;
 	bitbang->workqueue = create_singlethread_workqueue(
-			bitbang->master->cdev.dev->bus_id);
+			bitbang->master->dev.parent->bus_id);
 	if (bitbang->workqueue == NULL) {
 		status = -EBUSY;
 		goto err1;

-- 

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

* [patch 10/14] Convert from class_device to device for USB core
  2007-08-20 22:48 [patch 00/14] More patches to convert from struct class_device to struct device tonyj
                   ` (8 preceding siblings ...)
  2007-08-20 22:48 ` [patch 09/14] Convert from class_device to device for SPI tonyj
@ 2007-08-20 22:48 ` tonyj
  2007-08-21 15:01   ` Tony Jones
  2007-08-20 22:48 ` [patch 11/14] Convert from class_device to device for USB host tonyj
                   ` (3 subsequent siblings)
  13 siblings, 1 reply; 39+ messages in thread
From: tonyj @ 2007-08-20 22:48 UTC (permalink / raw)
  To: linux-kernel; +Cc: gregkh, kay.sievers

-- 
Content-Disposition: inline; filename=usb-core.patch

Convert from class_device to device for drivers/ide/usb/core.   Greg, not
sure if you're looking for a patch for this. Kay mentioned maybe it was to
be superceded by a diff mechanism.  Free free to drop if so.

---
 drivers/usb/core/hcd.c |   12 ++++++------
 include/linux/usb.h    |    2 +-
 2 files changed, 7 insertions(+), 7 deletions(-)

--- a/drivers/usb/core/hcd.c
+++ b/drivers/usb/core/hcd.c
@@ -739,15 +739,15 @@ static int usb_register_bus(struct usb_b
 		return -E2BIG;
 	}
 
-	bus->class_dev = class_device_create(usb_host_class, NULL, MKDEV(0,0),
-					     bus->controller, "usb_host%d", busnum);
-	if (IS_ERR(bus->class_dev)) {
+	bus->dev = device_create(usb_host_class, bus->controller, MKDEV(0,0),
+				 "usb_host%d", busnum);
+	if (IS_ERR(bus->dev)) {
 		clear_bit(busnum, busmap.busmap);
 		mutex_unlock(&usb_bus_list_lock);
-		return PTR_ERR(bus->class_dev);
+		return PTR_ERR(bus->dev);
 	}
 
-	class_set_devdata(bus->class_dev, bus);
+	dev_set_drvdata(bus->dev, bus);
 
 	/* Add it to the local list of buses */
 	list_add (&bus->bus_list, &usb_bus_list);
@@ -784,7 +784,7 @@ static void usb_deregister_bus (struct u
 
 	clear_bit (bus->busnum, busmap.busmap);
 
-	class_device_unregister(bus->class_dev);
+	device_unregister(bus->dev);
 }
 
 /**
--- a/include/linux/usb.h
+++ b/include/linux/usb.h
@@ -314,7 +314,7 @@ struct usb_bus {
 #ifdef CONFIG_USB_DEVICEFS
 	struct dentry *usbfs_dentry;	/* usbfs dentry entry for the bus */
 #endif
-	struct class_device *class_dev;	/* class device for this bus */
+	struct device *dev;		/* device for this bus */
 
 #if defined(CONFIG_USB_MON)
 	struct mon_bus *mon_bus;	/* non-null when associated */

-- 

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

* [patch 11/14] Convert from class_device to device for USB host
  2007-08-20 22:48 [patch 00/14] More patches to convert from struct class_device to struct device tonyj
                   ` (9 preceding siblings ...)
  2007-08-20 22:48 ` [patch 10/14] Convert from class_device to device for USB core tonyj
@ 2007-08-20 22:48 ` tonyj
  2007-08-21 18:06   ` Tony Jones
  2007-08-25  0:15   ` Greg KH
  2007-08-20 22:48 ` [patch 12/14] Convert from class_device to device for TI flash media tonyj
                   ` (2 subsequent siblings)
  13 siblings, 2 replies; 39+ messages in thread
From: tonyj @ 2007-08-20 22:48 UTC (permalink / raw)
  To: linux-kernel; +Cc: gregkh, kay.sievers

-- 
Content-Disposition: inline; filename=usb-host.patch

Convert from class_device to device for drivers/ide/usb/host.   Greg, not
sure if you're looking for a patch for this. Kay mentioned maybe it was to
be superceded by a diff mechanism.  Free free to drop if so. Thanks!

---
 drivers/usb/host/ehci-dbg.c |   34 +++++++++++++++++-----------------
 drivers/usb/host/ehci-hub.c |   23 +++++++++++++----------
 drivers/usb/host/ohci-dbg.c |   34 +++++++++++++++++-----------------
 3 files changed, 47 insertions(+), 44 deletions(-)

--- a/drivers/usb/host/ehci-dbg.c
+++ b/drivers/usb/host/ehci-dbg.c
@@ -442,7 +442,7 @@ done:
 }
 
 static ssize_t
-show_async (struct class_device *class_dev, char *buf)
+show_async (struct device *dev, struct device_attribute *attr, char *buf)
 {
 	struct usb_bus		*bus;
 	struct usb_hcd		*hcd;
@@ -454,7 +454,7 @@ show_async (struct class_device *class_d
 
 	*buf = 0;
 
-	bus = class_get_devdata(class_dev);
+	bus = dev_get_drvdata(dev);
 	hcd = bus_to_hcd(bus);
 	ehci = hcd_to_ehci (hcd);
 	next = buf;
@@ -479,12 +479,12 @@ show_async (struct class_device *class_d
 
 	return strlen (buf);
 }
-static CLASS_DEVICE_ATTR (async, S_IRUGO, show_async, NULL);
+static DEVICE_ATTR (async, S_IRUGO, show_async, NULL);
 
 #define DBG_SCHED_LIMIT 64
 
 static ssize_t
-show_periodic (struct class_device *class_dev, char *buf)
+show_periodic (struct device *dev, struct device_attribute *attr, char *buf)
 {
 	struct usb_bus		*bus;
 	struct usb_hcd		*hcd;
@@ -500,7 +500,7 @@ show_periodic (struct class_device *clas
 		return 0;
 	seen_count = 0;
 
-	bus = class_get_devdata(class_dev);
+	bus = dev_get_drvdata(dev);
 	hcd = bus_to_hcd(bus);
 	ehci = hcd_to_ehci (hcd);
 	next = buf;
@@ -623,12 +623,12 @@ show_periodic (struct class_device *clas
 
 	return PAGE_SIZE - size;
 }
-static CLASS_DEVICE_ATTR (periodic, S_IRUGO, show_periodic, NULL);
+static DEVICE_ATTR (periodic, S_IRUGO, show_periodic, NULL);
 
 #undef DBG_SCHED_LIMIT
 
 static ssize_t
-show_registers (struct class_device *class_dev, char *buf)
+show_registers (struct device *dev, struct device_attribute *attr, char *buf)
 {
 	struct usb_bus		*bus;
 	struct usb_hcd		*hcd;
@@ -639,7 +639,7 @@ show_registers (struct class_device *cla
 	static char		fmt [] = "%*s\n";
 	static char		label [] = "";
 
-	bus = class_get_devdata(class_dev);
+	bus = dev_get_drvdata(dev);
 	hcd = bus_to_hcd(bus);
 	ehci = hcd_to_ehci (hcd);
 	next = buf;
@@ -789,25 +789,25 @@ done:
 
 	return PAGE_SIZE - size;
 }
-static CLASS_DEVICE_ATTR (registers, S_IRUGO, show_registers, NULL);
+static DEVICE_ATTR (registers, S_IRUGO, show_registers, NULL);
 
 static inline void create_debug_files (struct ehci_hcd *ehci)
 {
-	struct class_device *cldev = ehci_to_hcd(ehci)->self.class_dev;
+	struct device *dev = ehci_to_hcd(ehci)->self.dev;
 	int retval;
 
-	retval = class_device_create_file(cldev, &class_device_attr_async);
-	retval = class_device_create_file(cldev, &class_device_attr_periodic);
-	retval = class_device_create_file(cldev, &class_device_attr_registers);
+	retval = device_create_file(cldev, &device_attr_async);
+	retval = device_create_file(cldev, &device_attr_periodic);
+	retval = device_create_file(cldev, &device_attr_registers);
 }
 
 static inline void remove_debug_files (struct ehci_hcd *ehci)
 {
-	struct class_device *cldev = ehci_to_hcd(ehci)->self.class_dev;
+	struct device *dev = ehci_to_hcd(ehci)->self.dev;
 
-	class_device_remove_file(cldev, &class_device_attr_async);
-	class_device_remove_file(cldev, &class_device_attr_periodic);
-	class_device_remove_file(cldev, &class_device_attr_registers);
+	device_remove_file(cldev, &device_attr_async);
+	device_remove_file(cldev, &device_attr_periodic);
+	device_remove_file(cldev, &device_attr_registers);
 }
 
 #endif /* STUB_DEBUG_FILES */
--- a/drivers/usb/host/ehci-hub.c
+++ b/drivers/usb/host/ehci-hub.c
@@ -291,14 +291,16 @@ static int ehci_bus_resume (struct usb_h
 /*-------------------------------------------------------------------------*/
 
 /* Display the ports dedicated to the companion controller */
-static ssize_t show_companion(struct class_device *class_dev, char *buf)
+static ssize_t show_companion(struct device *dev,
+			      struct device_attribute *attr,
+			      char *buf)
 {
 	struct ehci_hcd		*ehci;
 	int			nports, index, n;
 	int			count = PAGE_SIZE;
 	char			*ptr = buf;
 
-	ehci = hcd_to_ehci(bus_to_hcd(class_get_devdata(class_dev)));
+	ehci = hcd_to_ehci(bus_to_hcd(dev_get_drvdata(dev)));
 	nports = HCS_N_PORTS(ehci->hcs_params);
 
 	for (index = 0; index < nports; ++index) {
@@ -316,15 +318,16 @@ static ssize_t show_companion(struct cla
  * Syntax is "[-]portnum", where a leading '-' sign means
  * return control of the port to the EHCI controller.
  */
-static ssize_t store_companion(struct class_device *class_dev,
-		const char *buf, size_t count)
+static ssize_t store_companion(struct device *dev,
+			       struct device_attribute *attr,
+			       const char *buf, size_t count)
 {
 	struct ehci_hcd		*ehci;
 	int			portnum, new_owner, try;
 	u32 __iomem		*status_reg;
 	u32			port_status;
 
-	ehci = hcd_to_ehci(bus_to_hcd(class_get_devdata(class_dev)));
+	ehci = hcd_to_ehci(bus_to_hcd(dev_get_drvdata(dev)));
 	new_owner = PORT_OWNER;		/* Owned by companion */
 	if (sscanf(buf, "%d", &portnum) != 1)
 		return -EINVAL;
@@ -364,7 +367,7 @@ static ssize_t store_companion(struct cl
 	}
 	return count;
 }
-static CLASS_DEVICE_ATTR(companion, 0644, show_companion, store_companion);
+static DEVICE_ATTR(companion, 0644, show_companion, store_companion);
 
 static inline void create_companion_file(struct ehci_hcd *ehci)
 {
@@ -372,16 +375,16 @@ static inline void create_companion_file
 
 	/* with integrated TT there is no companion! */
 	if (!ehci_is_TDI(ehci))
-		i = class_device_create_file(ehci_to_hcd(ehci)->self.class_dev,
-				&class_device_attr_companion);
+		i = device_create_file(ehci_to_hcd(ehci)->self.dev,
+				       &dev_attr_companion);
 }
 
 static inline void remove_companion_file(struct ehci_hcd *ehci)
 {
 	/* with integrated TT there is no companion! */
 	if (!ehci_is_TDI(ehci))
-		class_device_remove_file(ehci_to_hcd(ehci)->self.class_dev,
-				&class_device_attr_companion);
+		device_remove_file(ehci_to_hcd(ehci)->self.dev,
+				   &dev_attr_companion);
 }
 
 
--- a/drivers/usb/host/ohci-dbg.c
+++ b/drivers/usb/host/ohci-dbg.c
@@ -468,7 +468,7 @@ show_list (struct ohci_hcd *ohci, char *
 }
 
 static ssize_t
-show_async (struct class_device *class_dev, char *buf)
+show_async (struct device *dev, struct device_attribute *attr, char *buf)
 {
 	struct usb_bus		*bus;
 	struct usb_hcd		*hcd;
@@ -476,7 +476,7 @@ show_async (struct class_device *class_d
 	size_t			temp;
 	unsigned long		flags;
 
-	bus = class_get_devdata(class_dev);
+	bus = dev_get_drvdata(dev);
 	hcd = bus_to_hcd(bus);
 	ohci = hcd_to_ohci(hcd);
 
@@ -488,13 +488,13 @@ show_async (struct class_device *class_d
 
 	return temp;
 }
-static CLASS_DEVICE_ATTR (async, S_IRUGO, show_async, NULL);
+static DEVICE_ATTR (async, S_IRUGO, show_async, NULL);
 
 
 #define DBG_SCHED_LIMIT 64
 
 static ssize_t
-show_periodic (struct class_device *class_dev, char *buf)
+show_periodic (struct device *dev, struct device_attribute *attr, char *buf)
 {
 	struct usb_bus		*bus;
 	struct usb_hcd		*hcd;
@@ -509,7 +509,7 @@ show_periodic (struct class_device *clas
 		return 0;
 	seen_count = 0;
 
-	bus = class_get_devdata(class_dev);
+	bus = dev_get_drvdata(dev);
 	hcd = bus_to_hcd(bus);
 	ohci = hcd_to_ohci(hcd);
 	next = buf;
@@ -589,13 +589,13 @@ show_periodic (struct class_device *clas
 
 	return PAGE_SIZE - size;
 }
-static CLASS_DEVICE_ATTR (periodic, S_IRUGO, show_periodic, NULL);
+static DEVICE_ATTR (periodic, S_IRUGO, show_periodic, NULL);
 
 
 #undef DBG_SCHED_LIMIT
 
 static ssize_t
-show_registers (struct class_device *class_dev, char *buf)
+show_registers (struct device *dev, struct device_attribute *attr, char *buf)
 {
 	struct usb_bus		*bus;
 	struct usb_hcd		*hcd;
@@ -606,7 +606,7 @@ show_registers (struct class_device *cla
 	char			*next;
 	u32			rdata;
 
-	bus = class_get_devdata(class_dev);
+	bus = dev_get_drvdata(dev);
 	hcd = bus_to_hcd(bus);
 	ohci = hcd_to_ohci(hcd);
 	regs = ohci->regs;
@@ -679,27 +679,27 @@ done:
 	spin_unlock_irqrestore (&ohci->lock, flags);
 	return PAGE_SIZE - size;
 }
-static CLASS_DEVICE_ATTR (registers, S_IRUGO, show_registers, NULL);
+static DEVICE_ATTR (registers, S_IRUGO, show_registers, NULL);
 
 
 static inline void create_debug_files (struct ohci_hcd *ohci)
 {
-	struct class_device *cldev = ohci_to_hcd(ohci)->self.class_dev;
+	struct device *dev = ohci_to_hcd(ohci)->self.dev;
 	int retval;
 
-	retval = class_device_create_file(cldev, &class_device_attr_async);
-	retval = class_device_create_file(cldev, &class_device_attr_periodic);
-	retval = class_device_create_file(cldev, &class_device_attr_registers);
+	retval = device_create_file(cldev, &device_attr_async);
+	retval = device_create_file(cldev, &device_attr_periodic);
+	retval = device_create_file(cldev, &device_attr_registers);
 	ohci_dbg (ohci, "created debug files\n");
 }
 
 static inline void remove_debug_files (struct ohci_hcd *ohci)
 {
-	struct class_device *cldev = ohci_to_hcd(ohci)->self.class_dev;
+	struct device *dev = ohci_to_hcd(ohci)->self.dev;
 
-	class_device_remove_file(cldev, &class_device_attr_async);
-	class_device_remove_file(cldev, &class_device_attr_periodic);
-	class_device_remove_file(cldev, &class_device_attr_registers);
+	device_remove_file(cldev, &device_attr_async);
+	device_remove_file(cldev, &device_attr_periodic);
+	device_remove_file(cldev, &device_attr_registers);
 }
 
 #endif

-- 

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

* [patch 12/14] Convert from class_device to device for TI flash media
  2007-08-20 22:48 [patch 00/14] More patches to convert from struct class_device to struct device tonyj
                   ` (10 preceding siblings ...)
  2007-08-20 22:48 ` [patch 11/14] Convert from class_device to device for USB host tonyj
@ 2007-08-20 22:48 ` tonyj
  2007-08-21 15:02   ` Tony Jones
  2007-08-20 22:48 ` [patch 13/14] Convert from class_device to device for UCB1x00 tonyj
  2007-08-20 22:48 ` [patch 14/14] Convert from class_device to device for ISDN capi tonyj
  13 siblings, 1 reply; 39+ messages in thread
From: tonyj @ 2007-08-20 22:48 UTC (permalink / raw)
  To: linux-kernel; +Cc: oakad, kay.sievers

-- 
Content-Disposition: inline; filename=misc.patch

Convert from class_device to device for drivers/misc/tifm.  This is
part of the work to eliminate struct class_device.

---
 drivers/misc/tifm_7xx1.c |    4 ++--
 drivers/misc/tifm_core.c |   24 ++++++++++++------------
 include/linux/tifm.h     |    2 +-
 3 files changed, 15 insertions(+), 15 deletions(-)

--- a/drivers/misc/tifm_core.c
+++ b/drivers/misc/tifm_core.c
@@ -165,16 +165,16 @@ static struct bus_type tifm_bus_type = {
 	.resume    = tifm_device_resume
 };
 
-static void tifm_free(struct class_device *cdev)
+static void tifm_free(struct device *dev)
 {
-	struct tifm_adapter *fm = container_of(cdev, struct tifm_adapter, cdev);
+	struct tifm_adapter *fm = container_of(dev, struct tifm_adapter, dev);
 
 	kfree(fm);
 }
 
 static struct class tifm_adapter_class = {
 	.name    = "tifm_adapter",
-	.release = tifm_free
+	.dev_release = tifm_free
 };
 
 struct tifm_adapter *tifm_alloc_adapter(unsigned int num_sockets,
@@ -185,9 +185,9 @@ struct tifm_adapter *tifm_alloc_adapter(
 	fm = kzalloc(sizeof(struct tifm_adapter)
 		     + sizeof(struct tifm_dev*) * num_sockets, GFP_KERNEL);
 	if (fm) {
-		fm->cdev.class = &tifm_adapter_class;
-		fm->cdev.dev = dev;
-		class_device_initialize(&fm->cdev);
+		fm->dev.class = &tifm_adapter_class;
+		fm->dev.parent = dev;
+		device_initialize(&fm->dev);
 		spin_lock_init(&fm->lock);
 		fm->num_sockets = num_sockets;
 	}
@@ -208,8 +208,8 @@ int tifm_add_adapter(struct tifm_adapter
 	if (rc)
 		return rc;
 
-	snprintf(fm->cdev.class_id, BUS_ID_SIZE, "tifm%u", fm->id);
-	rc = class_device_add(&fm->cdev);
+	snprintf(fm->dev.bus_id, BUS_ID_SIZE, "tifm%u", fm->id);
+	rc = device_add(&fm->dev);
 	if (rc) {
 		spin_lock(&tifm_adapter_lock);
 		idr_remove(&tifm_adapter_idr, fm->id);
@@ -233,13 +233,13 @@ void tifm_remove_adapter(struct tifm_ada
 	spin_lock(&tifm_adapter_lock);
 	idr_remove(&tifm_adapter_idr, fm->id);
 	spin_unlock(&tifm_adapter_lock);
-	class_device_del(&fm->cdev);
+	device_del(&fm->dev);
 }
 EXPORT_SYMBOL(tifm_remove_adapter);
 
 void tifm_free_adapter(struct tifm_adapter *fm)
 {
-	class_device_put(&fm->cdev);
+	put_device(&fm->dev);
 }
 EXPORT_SYMBOL(tifm_free_adapter);
 
@@ -266,9 +266,9 @@ struct tifm_dev *tifm_alloc_device(struc
 		sock->card_event = tifm_dummy_event;
 		sock->data_event = tifm_dummy_event;
 
-		sock->dev.parent = fm->cdev.dev;
+		sock->dev.parent = fm->dev.parent;
 		sock->dev.bus = &tifm_bus_type;
-		sock->dev.dma_mask = fm->cdev.dev->dma_mask;
+		sock->dev.dma_mask = fm->dev.parent->dma_mask;
 		sock->dev.release = tifm_free_device;
 
 		snprintf(sock->dev.bus_id, BUS_ID_SIZE,
--- a/include/linux/tifm.h
+++ b/include/linux/tifm.h
@@ -120,7 +120,7 @@ struct tifm_adapter {
 	struct completion   *finish_me;
 
 	struct work_struct  media_switcher;
-	struct class_device cdev;
+	struct device	    dev;
 
 	void                (*eject)(struct tifm_adapter *fm,
 				     struct tifm_dev *sock);
--- a/drivers/misc/tifm_7xx1.c
+++ b/drivers/misc/tifm_7xx1.c
@@ -149,7 +149,7 @@ static void tifm_7xx1_switch_media(struc
 	socket_change_set = fm->socket_change_set;
 	fm->socket_change_set = 0;
 
-	dev_dbg(fm->cdev.dev, "checking media set %x\n",
+	dev_dbg(fm->dev.parent, "checking media set %x\n",
 		socket_change_set);
 
 	if (!socket_change_set) {
@@ -164,7 +164,7 @@ static void tifm_7xx1_switch_media(struc
 		if (sock) {
 			printk(KERN_INFO
 			       "%s : demand removing card from socket %u:%u\n",
-			       fm->cdev.class_id, fm->id, cnt);
+			       fm->dev.bus_id, fm->id, cnt);
 			fm->sockets[cnt] = NULL;
 			sock_addr = sock->addr;
 			spin_unlock_irqrestore(&fm->lock, flags);

-- 

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

* [patch 13/14] Convert from class_device to device for UCB1x00
  2007-08-20 22:48 [patch 00/14] More patches to convert from struct class_device to struct device tonyj
                   ` (11 preceding siblings ...)
  2007-08-20 22:48 ` [patch 12/14] Convert from class_device to device for TI flash media tonyj
@ 2007-08-20 22:48 ` tonyj
  2007-08-21 15:02   ` Tony Jones
  2007-08-20 22:48 ` [patch 14/14] Convert from class_device to device for ISDN capi tonyj
  13 siblings, 1 reply; 39+ messages in thread
From: tonyj @ 2007-08-20 22:48 UTC (permalink / raw)
  To: linux-kernel; +Cc: rmk, kay.sievers

-- 
Content-Disposition: inline; filename=mfd.patch

Convert from class_device to device for drivers/mfd/ucb1x00.  This is
part of the work to eliminate struct class_device.

---
 drivers/mfd/ucb1x00-assabet.c |   17 +++++++++--------
 drivers/mfd/ucb1x00-core.c    |   14 +++++++-------
 drivers/mfd/ucb1x00.h         |    4 ++--
 3 files changed, 18 insertions(+), 17 deletions(-)

--- a/drivers/mfd/ucb1x00-assabet.c
+++ b/drivers/mfd/ucb1x00-assabet.c
@@ -20,7 +20,8 @@
 #include "ucb1x00.h"
 
 #define UCB1X00_ATTR(name,input)\
-static ssize_t name##_show(struct class_device *dev, char *buf)	\
+static ssize_t name##_show(struct device *dev, struct device_attribute *attr,
+			   char *buf)	\
 {								\
 	struct ucb1x00 *ucb = classdev_to_ucb1x00(dev);		\
 	int val;						\
@@ -29,7 +30,7 @@ static ssize_t name##_show(struct class_
 	ucb1x00_adc_disable(ucb);				\
 	return sprintf(buf, "%d\n", val);			\
 }								\
-static CLASS_DEVICE_ATTR(name,0444,name##_show,NULL)
+static DEVICE_ATTR(name,0444,name##_show,NULL)
 
 UCB1X00_ATTR(vbatt, UCB_ADC_INP_AD1);
 UCB1X00_ATTR(vcharger, UCB_ADC_INP_AD0);
@@ -37,17 +38,17 @@ UCB1X00_ATTR(batt_temp, UCB_ADC_INP_AD2)
 
 static int ucb1x00_assabet_add(struct ucb1x00_dev *dev)
 {
-	class_device_create_file(&dev->ucb->cdev, &class_device_attr_vbatt);
-	class_device_create_file(&dev->ucb->cdev, &class_device_attr_vcharger);
-	class_device_create_file(&dev->ucb->cdev, &class_device_attr_batt_temp);
+	device_create_file(&dev->ucb->dev, &device_attr_vbatt);
+	device_create_file(&dev->ucb->dev, &device_attr_vcharger);
+	device_create_file(&dev->ucb->dev, &device_attr_batt_temp);
 	return 0;
 }
 
 static void ucb1x00_assabet_remove(struct ucb1x00_dev *dev)
 {
-	class_device_remove_file(&dev->ucb->cdev, &class_device_attr_batt_temp);
-	class_device_remove_file(&dev->ucb->cdev, &class_device_attr_vcharger);
-	class_device_remove_file(&dev->ucb->cdev, &class_device_attr_vbatt);
+	device_remove_file(&dev->ucb->cdev, &device_attr_batt_temp);
+	device_remove_file(&dev->ucb->cdev, &device_attr_vcharger);
+	device_remove_file(&dev->ucb->cdev, &device_attr_vbatt);
 }
 
 static struct ucb1x00_driver ucb1x00_assabet_driver = {
--- a/drivers/mfd/ucb1x00-core.c
+++ b/drivers/mfd/ucb1x00-core.c
@@ -458,7 +458,7 @@ static int ucb1x00_detect_irq(struct ucb
 	return probe_irq_off(mask);
 }
 
-static void ucb1x00_release(struct class_device *dev)
+static void ucb1x00_release(struct device *dev)
 {
 	struct ucb1x00 *ucb = classdev_to_ucb1x00(dev);
 	kfree(ucb);
@@ -466,7 +466,7 @@ static void ucb1x00_release(struct class
 
 static struct class ucb1x00_class = {
 	.name		= "ucb1x00",
-	.release	= ucb1x00_release,
+	.dev_release	= ucb1x00_release,
 };
 
 static int ucb1x00_probe(struct mcp *mcp)
@@ -490,9 +490,9 @@ static int ucb1x00_probe(struct mcp *mcp
 		goto err_disable;
 
 
-	ucb->cdev.class = &ucb1x00_class;
-	ucb->cdev.dev = &mcp->attached_device;
-	strlcpy(ucb->cdev.class_id, "ucb1x00", sizeof(ucb->cdev.class_id));
+	ucb->dev.class = &ucb1x00_class;
+	ucb->dev.parent = &mcp->attached_device;
+	strlcpy(ucb->dev.bus_id, "ucb1x00", sizeof(ucb->dev.bus_id));
 
 	spin_lock_init(&ucb->lock);
 	spin_lock_init(&ucb->io_lock);
@@ -517,7 +517,7 @@ static int ucb1x00_probe(struct mcp *mcp
 
 	mcp_set_drvdata(mcp, ucb);
 
-	ret = class_device_register(&ucb->cdev);
+	ret = device_register(&ucb->dev);
 	if (ret)
 		goto err_irq;
 
@@ -554,7 +554,7 @@ static void ucb1x00_remove(struct mcp *m
 	mutex_unlock(&ucb1x00_mutex);
 
 	free_irq(ucb->irq, ucb);
-	class_device_unregister(&ucb->cdev);
+	device_unregister(&ucb->dev);
 }
 
 int ucb1x00_register_driver(struct ucb1x00_driver *drv)
--- a/drivers/mfd/ucb1x00.h
+++ b/drivers/mfd/ucb1x00.h
@@ -120,7 +120,7 @@ struct ucb1x00 {
 	u16			irq_fal_enbl;
 	u16			irq_ris_enbl;
 	struct ucb1x00_irq	irq_handler[16];
-	struct class_device	cdev;
+	struct device		dev;
 	struct list_head	node;
 	struct list_head	devs;
 };
@@ -144,7 +144,7 @@ struct ucb1x00_driver {
 	int	(*resume)(struct ucb1x00_dev *dev);
 };
 
-#define classdev_to_ucb1x00(cd)	container_of(cd, struct ucb1x00, cdev)
+#define classdev_to_ucb1x00(cd)	container_of(cd, struct ucb1x00, dev)
 
 int ucb1x00_register_driver(struct ucb1x00_driver *);
 void ucb1x00_unregister_driver(struct ucb1x00_driver *);

-- 

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

* [patch 14/14] Convert from class_device to device for ISDN capi
  2007-08-20 22:48 [patch 00/14] More patches to convert from struct class_device to struct device tonyj
                   ` (12 preceding siblings ...)
  2007-08-20 22:48 ` [patch 13/14] Convert from class_device to device for UCB1x00 tonyj
@ 2007-08-20 22:48 ` tonyj
  2007-08-21  9:14   ` Karsten Keil
  13 siblings, 1 reply; 39+ messages in thread
From: tonyj @ 2007-08-20 22:48 UTC (permalink / raw)
  To: linux-kernel; +Cc: calle, kkeil, kay.sievers

-- 
Content-Disposition: inline; filename=isdn-capi.patch

Convert from class_device to device for drivers/isdn/capi.  This is
part of the work to eliminate struct class_device.

---
 drivers/isdn/capi/capi.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--- a/drivers/isdn/capi/capi.c
+++ b/drivers/isdn/capi/capi.c
@@ -1544,11 +1544,11 @@ static int __init capi_init(void)
 		return PTR_ERR(capi_class);
 	}
 
-	class_device_create(capi_class, NULL, MKDEV(capi_major, 0), NULL, "capi");
+	device_create(capi_class, NULL, MKDEV(capi_major, 0), "capi");
 
 #ifdef CONFIG_ISDN_CAPI_MIDDLEWARE
 	if (capinc_tty_init() < 0) {
-		class_device_destroy(capi_class, MKDEV(capi_major, 0));
+		device_destroy(capi_class, MKDEV(capi_major, 0));
 		class_destroy(capi_class);
 		unregister_chrdev(capi_major, "capi20");
 		return -ENOMEM;
@@ -1576,7 +1576,7 @@ static void __exit capi_exit(void)
 {
 	proc_exit();
 
-	class_device_destroy(capi_class, MKDEV(capi_major, 0));
+	device_destroy(capi_class, MKDEV(capi_major, 0));
 	class_destroy(capi_class);
 	unregister_chrdev(capi_major, "capi20");
 

-- 

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

* Re: [patch 14/14] Convert from class_device to device for ISDN capi
  2007-08-20 22:48 ` [patch 14/14] Convert from class_device to device for ISDN capi tonyj
@ 2007-08-21  9:14   ` Karsten Keil
  2007-08-21 14:56     ` Tony Jones
  0 siblings, 1 reply; 39+ messages in thread
From: Karsten Keil @ 2007-08-21  9:14 UTC (permalink / raw)
  To: tonyj; +Cc: linux-kernel, calle, kkeil, kay.sievers

On Mon, Aug 20, 2007 at 03:48:20PM -0700, tonyj@suse.de wrote:
> -- 
> Content-Disposition: inline; filename=isdn-capi.patch
> 
> Convert from class_device to device for drivers/isdn/capi.  This is
> part of the work to eliminate struct class_device.
> 

If you add a Signed-off-by:
I'll ack this patch.

> ---
>  drivers/isdn/capi/capi.c |    6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> --- a/drivers/isdn/capi/capi.c
> +++ b/drivers/isdn/capi/capi.c
> @@ -1544,11 +1544,11 @@ static int __init capi_init(void)
>  		return PTR_ERR(capi_class);
>  	}
>  
> -	class_device_create(capi_class, NULL, MKDEV(capi_major, 0), NULL, "capi");
> +	device_create(capi_class, NULL, MKDEV(capi_major, 0), "capi");
>  
>  #ifdef CONFIG_ISDN_CAPI_MIDDLEWARE
>  	if (capinc_tty_init() < 0) {
> -		class_device_destroy(capi_class, MKDEV(capi_major, 0));
> +		device_destroy(capi_class, MKDEV(capi_major, 0));
>  		class_destroy(capi_class);
>  		unregister_chrdev(capi_major, "capi20");
>  		return -ENOMEM;
> @@ -1576,7 +1576,7 @@ static void __exit capi_exit(void)
>  {
>  	proc_exit();
>  
> -	class_device_destroy(capi_class, MKDEV(capi_major, 0));
> +	device_destroy(capi_class, MKDEV(capi_major, 0));
>  	class_destroy(capi_class);
>  	unregister_chrdev(capi_major, "capi20");
>  
> 
> -- 

-- 
Karsten Keil
SuSE Labs
ISDN and VOIP development
SUSE LINUX Products GmbH, Maxfeldstr.5 90409 Nuernberg, GF: Markus Rex, HRB 16746 (AG Nuernberg)

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

* Re: [patch 14/14] Convert from class_device to device for ISDN capi
  2007-08-21  9:14   ` Karsten Keil
@ 2007-08-21 14:56     ` Tony Jones
  0 siblings, 0 replies; 39+ messages in thread
From: Tony Jones @ 2007-08-21 14:56 UTC (permalink / raw)
  To: linux-kernel, calle, kkeil, kay.sievers

On Tue, Aug 21, 2007 at 11:14:12AM +0200, Karsten Keil wrote:
> On Mon, Aug 20, 2007 at 03:48:20PM -0700, tonyj@suse.de wrote:
> > -- 
> > Content-Disposition: inline; filename=isdn-capi.patch
> > 
> > Convert from class_device to device for drivers/isdn/capi.  This is
> > part of the work to eliminate struct class_device.
> > 
> 
> If you add a Signed-off-by:
> I'll ack this patch.

Sorry, I added one for the first but the remainders got lost in the cut-paste.

--------


Subject: Convert from class_device to device for ISDN capi

Convert from class_device to device for drivers/isdn/capi.  This is
part of the work to eliminate struct class_device.

Signed-off-by: Tony Jones <tonyj@suse.de>

---
 drivers/isdn/capi/capi.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--- a/drivers/isdn/capi/capi.c
+++ b/drivers/isdn/capi/capi.c
@@ -1544,11 +1544,11 @@ static int __init capi_init(void)
 		return PTR_ERR(capi_class);
 	}
 
-	class_device_create(capi_class, NULL, MKDEV(capi_major, 0), NULL, "capi");
+	device_create(capi_class, NULL, MKDEV(capi_major, 0), "capi");
 
 #ifdef CONFIG_ISDN_CAPI_MIDDLEWARE
 	if (capinc_tty_init() < 0) {
-		class_device_destroy(capi_class, MKDEV(capi_major, 0));
+		device_destroy(capi_class, MKDEV(capi_major, 0));
 		class_destroy(capi_class);
 		unregister_chrdev(capi_major, "capi20");
 		return -ENOMEM;
@@ -1576,7 +1576,7 @@ static void __exit capi_exit(void)
 {
 	proc_exit();
 
-	class_device_destroy(capi_class, MKDEV(capi_major, 0));
+	device_destroy(capi_class, MKDEV(capi_major, 0));
 	class_destroy(capi_class);
 	unregister_chrdev(capi_major, "capi20");
 

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

* Re: [patch 02/14] Convert from class_device to device for block/pktcdvd
  2007-08-20 22:48 ` [patch 02/14] Convert from class_device to device for block/pktcdvd tonyj
@ 2007-08-21 14:59   ` Tony Jones
  0 siblings, 0 replies; 39+ messages in thread
From: Tony Jones @ 2007-08-21 14:59 UTC (permalink / raw)
  To: linux-kernel; +Cc: axboe, kay.sievers

On Mon, Aug 20, 2007 at 03:48:08PM -0700, tonyj@suse.de wrote:
> -- 
> Content-Disposition: inline; filename=block.patch
> 
> Convert from class_device to device for block/pktcdvd.  

Signed-off-by: Tony Jones <tonyj@suse.de>

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

* Re: [patch 03/14] Convert from class_device to device for block/aoechr
  2007-08-20 22:48 ` [patch 03/14] Convert from class_device to device for block/aoechr tonyj
@ 2007-08-21 14:59   ` Tony Jones
  0 siblings, 0 replies; 39+ messages in thread
From: Tony Jones @ 2007-08-21 14:59 UTC (permalink / raw)
  To: linux-kernel; +Cc: axboe, kay.sievers

On Mon, Aug 20, 2007 at 03:48:09PM -0700, tonyj@suse.de wrote:
> -- 
> Content-Disposition: inline; filename=aoechr.patch
> 
> Convert from class_device to device for block/aoechr.  This is part of the
> work to eliminate struct class_device.

Signed-off-by: Tony Jones <tonyj@suse.de>

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

* Re: [patch 04/14] Convert from class_device to device for drivers/macintosh
  2007-08-20 22:48 ` [patch 04/14] Convert from class_device to device for drivers/macintosh tonyj
@ 2007-08-21 14:59   ` Tony Jones
  2007-08-24  5:04   ` Benjamin Herrenschmidt
  1 sibling, 0 replies; 39+ messages in thread
From: Tony Jones @ 2007-08-21 14:59 UTC (permalink / raw)
  To: linux-kernel; +Cc: funaho, benh, kay.sievers

On Mon, Aug 20, 2007 at 03:48:10PM -0700, tonyj@suse.de wrote:
> -- 
> Content-Disposition: inline; filename=macintosh.patch
> 
> Convert from class_device to device for macintosh.  This is part of the
> work to eliminate struct class_device.

Signed-off-by: Tony Jones <tonyj@suse.de>

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

* Re: [patch 05/14] Convert from class_device to device for cosa sync driver
  2007-08-20 22:48 ` [patch 05/14] Convert from class_device to device for cosa sync driver tonyj
@ 2007-08-21 14:59   ` Tony Jones
  2007-08-22  9:49     ` Jan Kasprzak
  0 siblings, 1 reply; 39+ messages in thread
From: Tony Jones @ 2007-08-21 14:59 UTC (permalink / raw)
  To: linux-kernel; +Cc: kas, kay.sievers

On Mon, Aug 20, 2007 at 03:48:11PM -0700, tonyj@suse.de wrote:
> -- 
> Content-Disposition: inline; filename=wan.patch
> 
> Convert from class_device to device for drivers/net/wan/cosa.  This is part of 
> the work to eliminate struct class_device.

Signed-off-by: Tony Jones <tonyj@suse.de>

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

* Re: [patch 06/14] Convert from class_device to device for MTD/mtdchar
  2007-08-20 22:48 ` [patch 06/14] Convert from class_device to device for MTD/mtdchar tonyj
@ 2007-08-21 15:00   ` Tony Jones
  0 siblings, 0 replies; 39+ messages in thread
From: Tony Jones @ 2007-08-21 15:00 UTC (permalink / raw)
  To: linux-kernel; +Cc: dwmw2, kay.sievers

On Mon, Aug 20, 2007 at 03:48:12PM -0700, tonyj@suse.de wrote:
> -- 
> Content-Disposition: inline; filename=mtd.patch
> 
> Convert from class_device to device for drivers/mtd/mtdchar.  This is part of 
> the work to eliminate struct class_device.

Signed-off-by: Tony Jones <tonyj@suse.de>

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

* Re: [patch 07/14] Convert from class_device to device for IDE/ide-tape
  2007-08-20 22:48 ` [patch 07/14] Convert from class_device to device for IDE/ide-tape tonyj
@ 2007-08-21 15:00   ` Tony Jones
  0 siblings, 0 replies; 39+ messages in thread
From: Tony Jones @ 2007-08-21 15:00 UTC (permalink / raw)
  To: linux-kernel; +Cc: gadio, kay.sievers

On Mon, Aug 20, 2007 at 03:48:13PM -0700, tonyj@suse.de wrote:
> -- 
> Content-Disposition: inline; filename=ide.patch
> 
> Convert from class_device to device for drivers/drivers/ide/ide-tape.  This is 
> part of the work to eliminate struct class_device.

Signed-off-by: Tony Jones <tonyj@suse.de>

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

* Re: [patch 08/14] Convert from class_device to device for DMA engine
  2007-08-20 22:48 ` [patch 08/14] Convert from class_device to device for DMA engine tonyj
@ 2007-08-21 15:01   ` Tony Jones
  0 siblings, 0 replies; 39+ messages in thread
From: Tony Jones @ 2007-08-21 15:01 UTC (permalink / raw)
  To: linux-kernel; +Cc: dan.j.williams, kay.sievers

On Mon, Aug 20, 2007 at 03:48:14PM -0700, tonyj@suse.de wrote:
> -- 
> Content-Disposition: inline; filename=dma.patch
> 
> Convert from class_device to device for drivers/dma/dmaengine.  This is
> part of the work to eliminate struct class_device.

Signed-off-by: Tony Jones <tonyj@suse.de>

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

* Re: [patch 09/14] Convert from class_device to device for SPI
  2007-08-20 22:48 ` [patch 09/14] Convert from class_device to device for SPI tonyj
@ 2007-08-21 15:01   ` Tony Jones
  2007-08-21 18:28     ` David Brownell
  0 siblings, 1 reply; 39+ messages in thread
From: Tony Jones @ 2007-08-21 15:01 UTC (permalink / raw)
  To: linux-kernel; +Cc: dbrownell, kay.sievers

On Mon, Aug 20, 2007 at 03:48:15PM -0700, tonyj@suse.de wrote:
> -- 
> Content-Disposition: inline; filename=spi.patch
> 
> Convert from class_device to device for drivers/spi.  This is part of the work 
> to eliminate struct class_device.

Signed-off-by: Tony Jones <tonyj@suse.de>

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

* Re: [patch 10/14] Convert from class_device to device for USB core
  2007-08-20 22:48 ` [patch 10/14] Convert from class_device to device for USB core tonyj
@ 2007-08-21 15:01   ` Tony Jones
  0 siblings, 0 replies; 39+ messages in thread
From: Tony Jones @ 2007-08-21 15:01 UTC (permalink / raw)
  To: linux-kernel; +Cc: gregkh, kay.sievers

On Mon, Aug 20, 2007 at 03:48:16PM -0700, tonyj@suse.de wrote:
> -- 
> Content-Disposition: inline; filename=usb-core.patch
> 
> Convert from class_device to device for drivers/ide/usb/core.   Greg, not
> sure if you're looking for a patch for this. Kay mentioned maybe it was to
> be superceded by a diff mechanism.  Free free to drop if so.

Signed-off-by: Tony Jones <tonyj@suse.de>

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

* Re: [patch 12/14] Convert from class_device to device for TI flash media
  2007-08-20 22:48 ` [patch 12/14] Convert from class_device to device for TI flash media tonyj
@ 2007-08-21 15:02   ` Tony Jones
  0 siblings, 0 replies; 39+ messages in thread
From: Tony Jones @ 2007-08-21 15:02 UTC (permalink / raw)
  To: linux-kernel; +Cc: oakad, kay.sievers

On Mon, Aug 20, 2007 at 03:48:18PM -0700, tonyj@suse.de wrote:
> -- 
> Content-Disposition: inline; filename=misc.patch
> 
> Convert from class_device to device for drivers/misc/tifm.  This is
> part of the work to eliminate struct class_device.

Signed-off-by: Tony Jones <tonyj@suse.de>

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

* Re: [patch 13/14] Convert from class_device to device for UCB1x00
  2007-08-20 22:48 ` [patch 13/14] Convert from class_device to device for UCB1x00 tonyj
@ 2007-08-21 15:02   ` Tony Jones
  0 siblings, 0 replies; 39+ messages in thread
From: Tony Jones @ 2007-08-21 15:02 UTC (permalink / raw)
  To: linux-kernel; +Cc: rmk, kay.sievers

On Mon, Aug 20, 2007 at 03:48:19PM -0700, tonyj@suse.de wrote:
> -- 
> Content-Disposition: inline; filename=mfd.patch
> 
> Convert from class_device to device for drivers/mfd/ucb1x00.  This is
> part of the work to eliminate struct class_device.

Signed-off-by: Tony Jones <tonyj@suse.de>

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

* Re: [patch 11/14] Convert from class_device to device for USB host
  2007-08-20 22:48 ` [patch 11/14] Convert from class_device to device for USB host tonyj
@ 2007-08-21 18:06   ` Tony Jones
  2007-08-25  0:15   ` Greg KH
  1 sibling, 0 replies; 39+ messages in thread
From: Tony Jones @ 2007-08-21 18:06 UTC (permalink / raw)
  To: linux-kernel; +Cc: gregkh, kay.sievers

On Mon, Aug 20, 2007 at 03:48:17PM -0700, tonyj@suse.de wrote:
> -- 
> Content-Disposition: inline; filename=usb-host.patch
> 
> Convert from class_device to device for drivers/ide/usb/host.   Greg, not
> sure if you're looking for a patch for this. Kay mentioned maybe it was to
> be superceded by a diff mechanism.  Free free to drop if so. Thanks!

Signed-off-by: Tony Jones <tonyj@suse.de>

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

* Re: [patch 09/14] Convert from class_device to device for SPI
  2007-08-21 15:01   ` Tony Jones
@ 2007-08-21 18:28     ` David Brownell
  2007-08-21 18:48       ` Tony Jones
  2007-08-22  3:05       ` Tony Jones
  0 siblings, 2 replies; 39+ messages in thread
From: David Brownell @ 2007-08-21 18:28 UTC (permalink / raw)
  To: Tony Jones; +Cc: linux-kernel, kay.sievers

On Tuesday 21 August 2007, Tony Jones wrote:
> On Mon, Aug 20, 2007 at 03:48:15PM -0700, tonyj@suse.de wrote:
> > 
> > Convert from class_device to device for drivers/spi.  This is part of the work 
> > to eliminate struct class_device.
> 
> Signed-off-by: Tony Jones <tonyj@suse.de>

Yeah, "no signoff" was one of my first reactions to that.  :)


Can you update the Documentation/spi/spi-summary text which is
invalidated by this change?  That's part of why I rejected an
earlier version of this patch:  since it broke the documentation,
it was incomplete.

The other reason was to explore removing the "struct class" too,
since it's not necessary.  But it turns out to be simpler to
keep it in there to allocate the bus IDs.  So I've changed my
mind, and will merge a patch like $SUBJECT if it's complete
(i.e. doesn't leave broken/invalid docs).

- Dave


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

* Re: [patch 09/14] Convert from class_device to device for SPI
  2007-08-21 18:28     ` David Brownell
@ 2007-08-21 18:48       ` Tony Jones
  2007-08-22  3:05       ` Tony Jones
  1 sibling, 0 replies; 39+ messages in thread
From: Tony Jones @ 2007-08-21 18:48 UTC (permalink / raw)
  To: David Brownell; +Cc: linux-kernel, kay.sievers

On Tue, Aug 21, 2007 at 11:28:28AM -0700, David Brownell wrote:
> On Tuesday 21 August 2007, Tony Jones wrote:
> > On Mon, Aug 20, 2007 at 03:48:15PM -0700, tonyj@suse.de wrote:
> > > 
> > > Convert from class_device to device for drivers/spi.  This is part of the work 
> > > to eliminate struct class_device.
> > 
> > Signed-off-by: Tony Jones <tonyj@suse.de>
> 
> Yeah, "no signoff" was one of my first reactions to that.  :)

Yeah, sorry, had it in the first patch but cut-n-pasted it into oblivion :)

> Can you update the Documentation/spi/spi-summary text which is
> invalidated by this change?  That's part of why I rejected an

Will do. Thanks!

Tony

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

* Re: [patch 09/14] Convert from class_device to device for SPI
  2007-08-21 18:28     ` David Brownell
  2007-08-21 18:48       ` Tony Jones
@ 2007-08-22  3:05       ` Tony Jones
  2007-08-23 21:03         ` David Brownell
  1 sibling, 1 reply; 39+ messages in thread
From: Tony Jones @ 2007-08-22  3:05 UTC (permalink / raw)
  To: David Brownell; +Cc: linux-kernel, kay.sievers

On Tue, Aug 21, 2007 at 11:28:28AM -0700, David Brownell wrote:
> Can you update the Documentation/spi/spi-summary text which is
> invalidated by this change?  That's part of why I rejected an
> earlier version of this patch:  since it broke the documentation,
> it was incomplete.

I believe this is the necessary documentation changes.  Alas I can't write 
verbiage you are necessarily happy with, only you can do that, if there is
a factual error, I'll be happy to correct but feel free to edit for personal 
style.  I'll be gone thru Sunday so if it needs more adjustment I'll do it 
then.

Tony

------------------------------------------------------------------------------

Convert from class_device to device for drivers/spi.  This is part of the work 
to eliminate struct class_device.

Signed-off-by: Tony Jones <tonyj@suse.de>

---
 Documentation/spi/spi-summary |   13 +++++++------
 drivers/spi/spi.c             |   36 ++++++++++++++++++------------------
 drivers/spi/spi_bitbang.c     |    2 +-
 drivers/spi/spi_lm70llp.c     |    2 +-
 include/linux/spi/spi.h       |   12 ++++++------
 5 files changed, 33 insertions(+), 32 deletions(-)

--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -207,7 +207,7 @@ struct spi_device *spi_new_device(struct
 				  struct spi_board_info *chip)
 {
 	struct spi_device	*proxy;
-	struct device		*dev = master->cdev.dev;
+	struct device		*dev = master->dev.parent;
 	int			status;
 
 	/* NOTE:  caller did any chip->bus_num checks necessary.
@@ -242,7 +242,7 @@ struct spi_device *spi_new_device(struct
 	proxy->modalias = chip->modalias;
 
 	snprintf(proxy->dev.bus_id, sizeof proxy->dev.bus_id,
-			"%s.%u", master->cdev.class_id,
+			"%s.%u", master->dev.bus_id,
 			chip->chip_select);
 	proxy->dev.parent = dev;
 	proxy->dev.bus = &spi_bus_type;
@@ -341,18 +341,18 @@ static void scan_boardinfo(struct spi_ma
 
 /*-------------------------------------------------------------------------*/
 
-static void spi_master_release(struct class_device *cdev)
+static void spi_master_release(struct device *dev)
 {
 	struct spi_master *master;
 
-	master = container_of(cdev, struct spi_master, cdev);
+	master = container_of(dev, struct spi_master, dev);
 	kfree(master);
 }
 
 static struct class spi_master_class = {
 	.name		= "spi_master",
 	.owner		= THIS_MODULE,
-	.release	= spi_master_release,
+	.dev_release	= spi_master_release,
 };
 
 
@@ -360,7 +360,7 @@ static struct class spi_master_class = {
  * spi_alloc_master - allocate SPI master controller
  * @dev: the controller, possibly using the platform_bus
  * @size: how much zeroed driver-private data to allocate; the pointer to this
- *	memory is in the class_data field of the returned class_device,
+ *	memory is in the driver_data field of the returned device,
  *	accessible with spi_master_get_devdata().
  * Context: can sleep
  *
@@ -386,9 +386,9 @@ struct spi_master *spi_alloc_master(stru
 	if (!master)
 		return NULL;
 
-	class_device_initialize(&master->cdev);
-	master->cdev.class = &spi_master_class;
-	master->cdev.dev = get_device(dev);
+	device_initialize(&master->dev);
+	master->dev.class = &spi_master_class;
+	master->dev.parent = get_device(dev);
 	spi_master_set_devdata(master, &master[1]);
 
 	return master;
@@ -418,7 +418,7 @@ EXPORT_SYMBOL_GPL(spi_alloc_master);
 int spi_register_master(struct spi_master *master)
 {
 	static atomic_t		dyn_bus_id = ATOMIC_INIT((1<<15) - 1);
-	struct device		*dev = master->cdev.dev;
+	struct device		*dev = master->dev.parent;
 	int			status = -ENODEV;
 	int			dynamic = 0;
 
@@ -443,12 +443,12 @@ int spi_register_master(struct spi_maste
 	/* register the device, then userspace will see it.
 	 * registration fails if the bus ID is in use.
 	 */
-	snprintf(master->cdev.class_id, sizeof master->cdev.class_id,
+	snprintf(master->dev.bus_id, sizeof master->dev.bus_id,
 		"spi%u", master->bus_num);
-	status = class_device_add(&master->cdev);
+	status = device_add(&master->dev);
 	if (status < 0)
 		goto done;
-	dev_dbg(dev, "registered master %s%s\n", master->cdev.class_id,
+	dev_dbg(dev, "registered master %s%s\n", master->dev.bus_id,
 			dynamic ? " (dynamic)" : "");
 
 	/* populate children from any spi device tables */
@@ -481,8 +481,8 @@ void spi_unregister_master(struct spi_ma
 {
 	int dummy;
 
-	dummy = device_for_each_child(master->cdev.dev, NULL, __unregister);
-	class_device_unregister(&master->cdev);
+	dummy = device_for_each_child(master->dev.parent, NULL, __unregister);
+	device_unregister(&master->dev);
 }
 EXPORT_SYMBOL_GPL(spi_unregister_master);
 
@@ -498,13 +498,13 @@ EXPORT_SYMBOL_GPL(spi_unregister_master)
  */
 struct spi_master *spi_busnum_to_master(u16 bus_num)
 {
-	struct class_device	*cdev;
+	struct device		*dev;
 	struct spi_master	*master = NULL;
 	struct spi_master	*m;
 
 	down(&spi_master_class.sem);
-	list_for_each_entry(cdev, &spi_master_class.children, node) {
-		m = container_of(cdev, struct spi_master, cdev);
+	list_for_each_entry(dev, &spi_master_class.children, node) {
+		m = container_of(dev, struct spi_master, dev);
 		if (m->bus_num == bus_num) {
 			master = spi_master_get(m);
 			break;
--- a/drivers/spi/spi_lm70llp.c
+++ b/drivers/spi/spi_lm70llp.c
@@ -82,7 +82,7 @@ struct spi_lm70llp {
 	struct pardevice	*pd;
 	struct spi_device	*spidev_lm70;
 	struct spi_board_info	info;
-	struct class_device	*cdev;
+	//struct device		*dev;
 };
 
 /* REVISIT : ugly global ; provides "exclusive open" facility */
--- a/include/linux/spi/spi.h
+++ b/include/linux/spi/spi.h
@@ -195,7 +195,7 @@ static inline void spi_unregister_driver
 
 /**
  * struct spi_master - interface to SPI master controller
- * @cdev: class interface to this driver
+ * @dev: device interface to this driver
  * @bus_num: board-specific (and often SOC-specific) identifier for a
  *	given SPI controller.
  * @num_chipselect: chipselects are used to distinguish individual
@@ -222,7 +222,7 @@ static inline void spi_unregister_driver
  * message's completion function when the transaction completes.
  */
 struct spi_master {
-	struct class_device	cdev;
+	struct device	dev;
 
 	/* other than negative (== assign one dynamically), bus_num is fully
 	 * board-specific.  usually that simplifies to being SOC-specific.
@@ -268,17 +268,17 @@ struct spi_master {
 
 static inline void *spi_master_get_devdata(struct spi_master *master)
 {
-	return class_get_devdata(&master->cdev);
+	return dev_get_drvdata(&master->dev);
 }
 
 static inline void spi_master_set_devdata(struct spi_master *master, void *data)
 {
-	class_set_devdata(&master->cdev, data);
+	dev_set_drvdata(&master->dev, data);
 }
 
 static inline struct spi_master *spi_master_get(struct spi_master *master)
 {
-	if (!master || !class_device_get(&master->cdev))
+	if (!master || !get_device(&master->dev))
 		return NULL;
 	return master;
 }
@@ -286,7 +286,7 @@ static inline struct spi_master *spi_mas
 static inline void spi_master_put(struct spi_master *master)
 {
 	if (master)
-		class_device_put(&master->cdev);
+		put_device(&master->dev);
 }
 
 
--- a/drivers/spi/spi_bitbang.c
+++ b/drivers/spi/spi_bitbang.c
@@ -472,7 +472,7 @@ int spi_bitbang_start(struct spi_bitbang
 	/* this task is the only thing to touch the SPI bits */
 	bitbang->busy = 0;
 	bitbang->workqueue = create_singlethread_workqueue(
-			bitbang->master->cdev.dev->bus_id);
+			bitbang->master->dev.parent->bus_id);
 	if (bitbang->workqueue == NULL) {
 		status = -EBUSY;
 		goto err1;
--- a/Documentation/spi/spi-summary
+++ b/Documentation/spi/spi-summary
@@ -167,9 +167,9 @@ shows up in sysfs in several locations:
 
    /sys/bus/spi/drivers/D ... driver for one or more spi*.* devices
 
-   /sys/class/spi_master/spiB ... class device for the controller
-	managing bus "B".  All the spiB.* devices share the same
-	physical SPI bus segment, with SCLK, MOSI, and MISO.
+   /sys/class/spi_master/spiB ... device for the controller managing bus "B".
+	All the spiB.* devices share the same physical SPI bus segment, with
+	SCLK, MOSI, and MISO.
 
 
 How does board-specific init code declare SPI devices?
@@ -337,7 +337,8 @@ SPI protocol drivers somewhat resemble p
 
 The driver core will autmatically attempt to bind this driver to any SPI
 device whose board_info gave a modalias of "CHIP".  Your probe() code
-might look like this unless you're creating a class_device:
+might look like this unless you're creating a device which is managing a bus
+(appearing under /sys/class/spi_master).
 
 	static int __devinit CHIP_probe(struct spi_device *spi)
 	{
@@ -442,7 +443,7 @@ An SPI controller will probably be regis
 a driver to bind to the device, whichever bus is involved.
 
 The main task of this type of driver is to provide an "spi_master".
-Use spi_alloc_master() to allocate the master, and class_get_devdata()
+Use spi_alloc_master() to allocate the master, and spi_master_get_devdata()
 to get the driver-private data allocated for that device.
 
 	struct spi_master	*master;
@@ -452,7 +453,7 @@ to get the driver-private data allocated
 	if (!master)
 		return -ENODEV;
 
-	c = class_get_devdata(&master->cdev);
+	c = spi_master_get_devdata(master);
 
 The driver will initialize the fields of that spi_master, including the
 bus number (maybe the same as the platform device ID) and three methods



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

* Re: [patch 05/14] Convert from class_device to device for cosa sync driver
  2007-08-21 14:59   ` Tony Jones
@ 2007-08-22  9:49     ` Jan Kasprzak
  0 siblings, 0 replies; 39+ messages in thread
From: Jan Kasprzak @ 2007-08-22  9:49 UTC (permalink / raw)
  To: Tony Jones; +Cc: linux-kernel, kay.sievers

Tony Jones wrote:
: On Mon, Aug 20, 2007 at 03:48:11PM -0700, tonyj@suse.de wrote:
: > -- 
: > Content-Disposition: inline; filename=wan.patch
: > 
: > Convert from class_device to device for drivers/net/wan/cosa.  This is part of 
: > the work to eliminate struct class_device.
: 
: Signed-off-by: Tony Jones <tonyj@suse.de>

Acked-By: Jan "Yenya" Kasprzak <kas@fi.muni.cz>

-Yenya

-- 
| Jan "Yenya" Kasprzak  <kas at {fi.muni.cz - work | yenya.net - private}> |
| GPG: ID 1024/D3498839      Fingerprint 0D99A7FB206605D7 8B35FCDE05B18A5E |
| http://www.fi.muni.cz/~kas/    Journal: http://www.fi.muni.cz/~kas/blog/ |
========== Pruning mailbox after being ~10 days offline.
========== Sorry for the possibly delayed reply.

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

* Re: [patch 09/14] Convert from class_device to device for SPI
  2007-08-22  3:05       ` Tony Jones
@ 2007-08-23 21:03         ` David Brownell
  2007-08-23 22:12           ` Kay Sievers
  0 siblings, 1 reply; 39+ messages in thread
From: David Brownell @ 2007-08-23 21:03 UTC (permalink / raw)
  To: Tony Jones; +Cc: linux-kernel, kay.sievers

On Tuesday 21 August 2007, Tony Jones wrote:
> I believe this is the necessary documentation changes.

Thanks.  I have an update, plus updates for the mmc_spi
driver (now in MM) which you didn't update.

By the way, it's worth noting an incompatibility introduced
through these conversions and CONFIG_SYSFS_DEPRECATED=n:

 - previously .../controller/spi_master:spi2 would be a
   symlink to /sys/class/spi_master/spi2

 - now, /sys/class/spi_master/spi2 is a symlink to
   .../controller/spi_master (with DEPRECATED=n).

The symlink direction is just noise ... the issue is that with
this approach it's no longer possible to have one controller
handle multiple SPI busses!  A fix would involve maintaining
the original "spi_master:spi2" name.

I don't happen to know of such a controller, and one would
surprise me a bit.  Exactly like the fact that several I2C
adapters work that way was a surprise:  one PCI function
controlling several different I2C busses, rather than one
function per bus.

- Dave


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

* Re: [patch 09/14] Convert from class_device to device for SPI
  2007-08-23 21:03         ` David Brownell
@ 2007-08-23 22:12           ` Kay Sievers
  2007-08-26 19:54             ` David Brownell
  0 siblings, 1 reply; 39+ messages in thread
From: Kay Sievers @ 2007-08-23 22:12 UTC (permalink / raw)
  To: David Brownell; +Cc: Tony Jones, linux-kernel

On Thu, 2007-08-23 at 14:03 -0700, David Brownell wrote:
> On Tuesday 21 August 2007, Tony Jones wrote:
> > I believe this is the necessary documentation changes.
> 
> Thanks.  I have an update, plus updates for the mmc_spi
> driver (now in MM) which you didn't update.
> 
> By the way, it's worth noting an incompatibility introduced
> through these conversions and CONFIG_SYSFS_DEPRECATED=n:
> 
>  - previously .../controller/spi_master:spi2 would be a
>    symlink to /sys/class/spi_master/spi2

These "find the class device which has me as the parent"-symlinks are
removed with CONFIG_SYSFS_DEPRECATED=n, because these devices are direct
child directories now below the bus device and there is no need for such
links.

>  - now, /sys/class/spi_master/spi2 is a symlink to
>    .../controller/spi_master (with DEPRECATED=n).

Ugh! Are you sure, that is doesn't point to:
  .../controller/spi_master/spi2/ ?

> The symlink direction is just noise ... the issue is that with
> this approach it's no longer possible to have one controller
> handle multiple SPI busses!  A fix would involve maintaining
> the original "spi_master:spi2" name.

Sounds like a bug if that's what happened. Can you paste the output of
"tree" for the relevant parts here?

Thanks,
Kay



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

* Re: [patch 04/14] Convert from class_device to device for drivers/macintosh
  2007-08-20 22:48 ` [patch 04/14] Convert from class_device to device for drivers/macintosh tonyj
  2007-08-21 14:59   ` Tony Jones
@ 2007-08-24  5:04   ` Benjamin Herrenschmidt
  1 sibling, 0 replies; 39+ messages in thread
From: Benjamin Herrenschmidt @ 2007-08-24  5:04 UTC (permalink / raw)
  To: tonyj; +Cc: linux-kernel, funaho, kay.sievers

On Mon, 2007-08-20 at 15:48 -0700, tonyj@suse.de wrote:
> -- 
> Content-Disposition: inline; filename=macintosh.patch
> 
> Convert from class_device to device for macintosh.  This is part of the
> work to eliminate struct class_device.

Good. That stuff shouldn't have been a class in the first place. ADB is
a bus type, not a class.

Ben.

> ---
>  drivers/macintosh/adb.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> --- a/drivers/macintosh/adb.c
> +++ b/drivers/macintosh/adb.c
> @@ -875,5 +875,5 @@ adbdev_init(void)
>  	adb_dev_class = class_create(THIS_MODULE, "adb");
>  	if (IS_ERR(adb_dev_class))
>  		return;
> -	class_device_create(adb_dev_class, NULL, MKDEV(ADB_MAJOR, 0), NULL, "adb");
> +	device_create(adb_dev_class, NULL, MKDEV(ADB_MAJOR, 0), "adb");
>  }
> 


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

* Re: [patch 11/14] Convert from class_device to device for USB host
  2007-08-20 22:48 ` [patch 11/14] Convert from class_device to device for USB host tonyj
  2007-08-21 18:06   ` Tony Jones
@ 2007-08-25  0:15   ` Greg KH
  1 sibling, 0 replies; 39+ messages in thread
From: Greg KH @ 2007-08-25  0:15 UTC (permalink / raw)
  To: tonyj; +Cc: linux-kernel, gregkh, kay.sievers

On Mon, Aug 20, 2007 at 03:48:17PM -0700, tonyj@suse.de wrote:
> -- 
> Content-Disposition: inline; filename=usb-host.patch
> 
> Convert from class_device to device for drivers/ide/usb/host.   Greg, not
> sure if you're looking for a patch for this. Kay mentioned maybe it was to
> be superceded by a diff mechanism.  Free free to drop if so. Thanks!

Yeah, these files all need to go to debugfs, not stay as sysfs files.
If you want to do that, that would be wonderful, I'd really appreciate
it.  Otherwise it's going to be a few weeks before I can do this.

thanks,

greg k-h

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

* Re: [patch 09/14] Convert from class_device to device for SPI
  2007-08-23 22:12           ` Kay Sievers
@ 2007-08-26 19:54             ` David Brownell
  2007-08-26 20:20               ` Kay Sievers
  0 siblings, 1 reply; 39+ messages in thread
From: David Brownell @ 2007-08-26 19:54 UTC (permalink / raw)
  To: Kay Sievers; +Cc: Tony Jones, linux-kernel

On Thursday 23 August 2007, Kay Sievers wrote:
> On Thu, 2007-08-23 at 14:03 -0700, David Brownell wrote:
> > On Tuesday 21 August 2007, Tony Jones wrote:
> > > I believe this is the necessary documentation changes.
> > 
> > Thanks.  I have an update, plus updates for the mmc_spi
> > driver (now in MM) which you didn't update.
> > 
> > By the way, it's worth noting an incompatibility introduced
> > through these conversions and CONFIG_SYSFS_DEPRECATED=n:
> > 
> >  ...
> >  
> >  - now, /sys/class/spi_master/spi2 is a symlink to
> >    .../controller/spi_master (with DEPRECATED=n).
> 
> Ugh! Are you sure, that is doesn't point to:
>   .../controller/spi_master/spi2/ ?

Turns out that it does -- once you tell Minicom to change its
bogus default of discarding data rather than line wrapping!
Which means there can still be multiple class instances that
get coupled to a given physical device; no lossage there.

Sigh.  It's hard sometimes to remember to apply all the
right bug workarounds, when some of them are in userspace.

Still, that's a needless incompatibility.  Why isn't that
pointing to a .../controller/spi_master:spi2 directory,
so that the pathnames don't change (only symlink polarity)?

- Dave

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

* Re: [patch 09/14] Convert from class_device to device for SPI
  2007-08-26 19:54             ` David Brownell
@ 2007-08-26 20:20               ` Kay Sievers
  0 siblings, 0 replies; 39+ messages in thread
From: Kay Sievers @ 2007-08-26 20:20 UTC (permalink / raw)
  To: David Brownell; +Cc: Tony Jones, linux-kernel

On Sun, 2007-08-26 at 12:54 -0700, David Brownell wrote:
> On Thursday 23 August 2007, Kay Sievers wrote:
> > On Thu, 2007-08-23 at 14:03 -0700, David Brownell wrote:
> > > On Tuesday 21 August 2007, Tony Jones wrote:
> > > > I believe this is the necessary documentation changes.
> > > 
> > > Thanks.  I have an update, plus updates for the mmc_spi
> > > driver (now in MM) which you didn't update.
> > > 
> > > By the way, it's worth noting an incompatibility introduced
> > > through these conversions and CONFIG_SYSFS_DEPRECATED=n:
> > > 
> > >  ...
> > >  
> > >  - now, /sys/class/spi_master/spi2 is a symlink to
> > >    .../controller/spi_master (with DEPRECATED=n).
> > 
> > Ugh! Are you sure, that is doesn't point to:
> >   .../controller/spi_master/spi2/ ?
> 
> Turns out that it does -- once you tell Minicom to change its
> bogus default of discarding data rather than line wrapping!
> Which means there can still be multiple class instances that
> get coupled to a given physical device; no lossage there.

Great.

> Sigh.  It's hard sometimes to remember to apply all the
> right bug workarounds, when some of them are in userspace.

Yeah, it's a mess, I totally know that feeling. :)

> Still, that's a needless incompatibility.  Why isn't that
> pointing to a .../controller/spi_master:spi2 directory,
> so that the pathnames don't change (only symlink polarity)?

The directory name is the kernel's kobject name used by userspace, we
can't change the name. Most of these names are used to name the device
nodes.

Also the link would just point to the direct child directory with the
same name, which would be kind of strange. We could add them back, if
really needed, but they didn't exist for long, so we think it's fine to
get rid of them when !DEPRECATED is used.

With the hierarchy of class devices in recently changed subsytems, it
would be totally inconsistent to make a difference between a class
device parent/child (no "device" link, no <class>:<devname> link) and a
bus device parent/child (links). For userspace, there is no interesting
difference between class or bus device parents.

These links are really only needed with the !DEPRECATED mode, with the
directories all spread around in different places, and you need to use
these magic links to reconstruct the virtual device tree from it. They
are the counterpart of the "device" link which is also not too useful in
!DEPRECATED mode, because it's always just the next parent device.

With !DEPRECATED we get a big unified device tree with all devices in
_one_ hierarchy. All Child/parent relationships can be read by just
walking the up and down the tree. All the classification directories
(bus/, class/, block/) will only be lists of symlinks pointing to a
specific entry point in the unified tree. From there you can walk upward
or downwards the path, without any magic rules.

Thanks,
Kay


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

end of thread, other threads:[~2007-08-26 20:17 UTC | newest]

Thread overview: 39+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-08-20 22:48 [patch 00/14] More patches to convert from struct class_device to struct device tonyj
2007-08-20 22:48 ` [patch 01/14] Convert from class_device to device for block/paride tonyj
2007-08-20 22:48 ` [patch 02/14] Convert from class_device to device for block/pktcdvd tonyj
2007-08-21 14:59   ` Tony Jones
2007-08-20 22:48 ` [patch 03/14] Convert from class_device to device for block/aoechr tonyj
2007-08-21 14:59   ` Tony Jones
2007-08-20 22:48 ` [patch 04/14] Convert from class_device to device for drivers/macintosh tonyj
2007-08-21 14:59   ` Tony Jones
2007-08-24  5:04   ` Benjamin Herrenschmidt
2007-08-20 22:48 ` [patch 05/14] Convert from class_device to device for cosa sync driver tonyj
2007-08-21 14:59   ` Tony Jones
2007-08-22  9:49     ` Jan Kasprzak
2007-08-20 22:48 ` [patch 06/14] Convert from class_device to device for MTD/mtdchar tonyj
2007-08-21 15:00   ` Tony Jones
2007-08-20 22:48 ` [patch 07/14] Convert from class_device to device for IDE/ide-tape tonyj
2007-08-21 15:00   ` Tony Jones
2007-08-20 22:48 ` [patch 08/14] Convert from class_device to device for DMA engine tonyj
2007-08-21 15:01   ` Tony Jones
2007-08-20 22:48 ` [patch 09/14] Convert from class_device to device for SPI tonyj
2007-08-21 15:01   ` Tony Jones
2007-08-21 18:28     ` David Brownell
2007-08-21 18:48       ` Tony Jones
2007-08-22  3:05       ` Tony Jones
2007-08-23 21:03         ` David Brownell
2007-08-23 22:12           ` Kay Sievers
2007-08-26 19:54             ` David Brownell
2007-08-26 20:20               ` Kay Sievers
2007-08-20 22:48 ` [patch 10/14] Convert from class_device to device for USB core tonyj
2007-08-21 15:01   ` Tony Jones
2007-08-20 22:48 ` [patch 11/14] Convert from class_device to device for USB host tonyj
2007-08-21 18:06   ` Tony Jones
2007-08-25  0:15   ` Greg KH
2007-08-20 22:48 ` [patch 12/14] Convert from class_device to device for TI flash media tonyj
2007-08-21 15:02   ` Tony Jones
2007-08-20 22:48 ` [patch 13/14] Convert from class_device to device for UCB1x00 tonyj
2007-08-21 15:02   ` Tony Jones
2007-08-20 22:48 ` [patch 14/14] Convert from class_device to device for ISDN capi tonyj
2007-08-21  9:14   ` Karsten Keil
2007-08-21 14:56     ` Tony Jones

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox