diff options
Diffstat (limited to 'target/linux/ps3/patches-2.6.28/0005-powerpc-struct-device-replace-bus_id-with-dev_nam.patch')
-rw-r--r-- | target/linux/ps3/patches-2.6.28/0005-powerpc-struct-device-replace-bus_id-with-dev_nam.patch | 237 |
1 files changed, 237 insertions, 0 deletions
diff --git a/target/linux/ps3/patches-2.6.28/0005-powerpc-struct-device-replace-bus_id-with-dev_nam.patch b/target/linux/ps3/patches-2.6.28/0005-powerpc-struct-device-replace-bus_id-with-dev_nam.patch new file mode 100644 index 0000000000..82af1a3032 --- /dev/null +++ b/target/linux/ps3/patches-2.6.28/0005-powerpc-struct-device-replace-bus_id-with-dev_nam.patch @@ -0,0 +1,237 @@ +From aab0d375e01d8c16e7e5b9bd915dfaa0a815418f Mon Sep 17 00:00:00 2001 +From: Kay Sievers <kay.sievers@vrfy.org> +Date: Thu, 4 Dec 2008 10:02:56 -0800 +Subject: [PATCH] powerpc: struct device - replace bus_id with dev_name(), dev_set_name() + +Acked-by: Geoff Levand <geoffrey.levand@am.sony.com> +Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> +Signed-off-by: Paul Mackerras <paulus@samba.org> +--- + arch/powerpc/kernel/ibmebus.c | 2 +- + arch/powerpc/kernel/of_device.c | 18 +++++++----------- + arch/powerpc/kernel/vio.c | 12 ++++++------ + arch/powerpc/platforms/85xx/mpc85xx_mds.c | 6 +++--- + arch/powerpc/platforms/ps3/system-bus.c | 28 ++++++++++++---------------- + 5 files changed, 29 insertions(+), 37 deletions(-) + +diff --git a/arch/powerpc/kernel/ibmebus.c b/arch/powerpc/kernel/ibmebus.c +index 7c65377..6e3f624 100644 +--- a/arch/powerpc/kernel/ibmebus.c ++++ b/arch/powerpc/kernel/ibmebus.c +@@ -47,7 +47,7 @@ + #include <asm/abs_addr.h> + + static struct device ibmebus_bus_device = { /* fake "parent" device */ +- .bus_id = "ibmebus", ++ .init_name = "ibmebus", + }; + + struct bus_type ibmebus_bus_type; +diff --git a/arch/powerpc/kernel/of_device.c b/arch/powerpc/kernel/of_device.c +index f3c9cae..fa983a5 100644 +--- a/arch/powerpc/kernel/of_device.c ++++ b/arch/powerpc/kernel/of_device.c +@@ -14,7 +14,6 @@ static void of_device_make_bus_id(struct of_device *dev) + { + static atomic_t bus_no_reg_magic; + struct device_node *node = dev->node; +- char *name = dev->dev.bus_id; + const u32 *reg; + u64 addr; + int magic; +@@ -27,14 +26,12 @@ static void of_device_make_bus_id(struct of_device *dev) + reg = of_get_property(node, "dcr-reg", NULL); + if (reg) { + #ifdef CONFIG_PPC_DCR_NATIVE +- snprintf(name, BUS_ID_SIZE, "d%x.%s", +- *reg, node->name); ++ dev_set_name(&dev->dev, "d%x.%s", *reg, node->name); + #else /* CONFIG_PPC_DCR_NATIVE */ + addr = of_translate_dcr_address(node, *reg, NULL); + if (addr != OF_BAD_ADDR) { +- snprintf(name, BUS_ID_SIZE, +- "D%llx.%s", (unsigned long long)addr, +- node->name); ++ dev_set_name(&dev->dev, "D%llx.%s", ++ (unsigned long long)addr, node->name); + return; + } + #endif /* !CONFIG_PPC_DCR_NATIVE */ +@@ -48,9 +45,8 @@ static void of_device_make_bus_id(struct of_device *dev) + if (reg) { + addr = of_translate_address(node, reg); + if (addr != OF_BAD_ADDR) { +- snprintf(name, BUS_ID_SIZE, +- "%llx.%s", (unsigned long long)addr, +- node->name); ++ dev_set_name(&dev->dev, "%llx.%s", ++ (unsigned long long)addr, node->name); + return; + } + } +@@ -60,7 +56,7 @@ static void of_device_make_bus_id(struct of_device *dev) + * counter (and pray...) + */ + magic = atomic_add_return(1, &bus_no_reg_magic); +- snprintf(name, BUS_ID_SIZE, "%s.%d", node->name, magic - 1); ++ dev_set_name(&dev->dev, "%s.%d", node->name, magic - 1); + } + + struct of_device *of_device_alloc(struct device_node *np, +@@ -80,7 +76,7 @@ struct of_device *of_device_alloc(struct device_node *np, + dev->dev.archdata.of_node = np; + + if (bus_id) +- strlcpy(dev->dev.bus_id, bus_id, BUS_ID_SIZE); ++ dev_set_name(&dev->dev, bus_id); + else + of_device_make_bus_id(dev); + +diff --git a/arch/powerpc/kernel/vio.c b/arch/powerpc/kernel/vio.c +index a11e6bc..94aa7b0 100644 +--- a/arch/powerpc/kernel/vio.c ++++ b/arch/powerpc/kernel/vio.c +@@ -41,9 +41,9 @@ + static struct bus_type vio_bus_type; + + static struct vio_dev vio_bus_device = { /* fake "parent" device */ +- .name = vio_bus_device.dev.bus_id, ++ .name = "vio", + .type = "", +- .dev.bus_id = "vio", ++ .dev.init_name = "vio", + .dev.bus = &vio_bus_type, + }; + +@@ -1216,7 +1216,7 @@ struct vio_dev *vio_register_device_node(struct device_node *of_node) + + viodev->irq = irq_of_parse_and_map(of_node, 0); + +- snprintf(viodev->dev.bus_id, BUS_ID_SIZE, "%x", *unit_address); ++ dev_set_name(&viodev->dev, "%x", *unit_address); + viodev->name = of_node->name; + viodev->type = of_node->type; + viodev->unit_address = *unit_address; +@@ -1243,7 +1243,7 @@ struct vio_dev *vio_register_device_node(struct device_node *of_node) + /* register with generic device framework */ + if (device_register(&viodev->dev)) { + printk(KERN_ERR "%s: failed to register device %s\n", +- __func__, viodev->dev.bus_id); ++ __func__, dev_name(&viodev->dev)); + /* XXX free TCE table */ + kfree(viodev); + return NULL; +@@ -1400,13 +1400,13 @@ static struct vio_dev *vio_find_name(const char *name) + struct vio_dev *vio_find_node(struct device_node *vnode) + { + const uint32_t *unit_address; +- char kobj_name[BUS_ID_SIZE]; ++ char kobj_name[20]; + + /* construct the kobject name from the device node */ + unit_address = of_get_property(vnode, "reg", NULL); + if (!unit_address) + return NULL; +- snprintf(kobj_name, BUS_ID_SIZE, "%x", *unit_address); ++ snprintf(kobj_name, sizeof(kobj_name), "%x", *unit_address); + + return vio_find_name(kobj_name); + } +diff --git a/arch/powerpc/platforms/ps3/system-bus.c b/arch/powerpc/platforms/ps3/system-bus.c +index d3da1e6..ee0d229 100644 +--- a/arch/powerpc/platforms/ps3/system-bus.c ++++ b/arch/powerpc/platforms/ps3/system-bus.c +@@ -31,7 +31,7 @@ + #include "platform.h" + + static struct device ps3_system_bus = { +- .bus_id = "ps3_system", ++ .init_name = "ps3_system", + }; + + /* FIXME: need device usage counters! */ +@@ -356,12 +356,12 @@ static int ps3_system_bus_match(struct device *_dev, + if (result) + pr_info("%s:%d: dev=%u.%u(%s), drv=%u.%u(%s): match\n", + __func__, __LINE__, +- dev->match_id, dev->match_sub_id, dev->core.bus_id, ++ dev->match_id, dev->match_sub_id, dev_name(&dev->core), + drv->match_id, drv->match_sub_id, drv->core.name); + else + pr_debug("%s:%d: dev=%u.%u(%s), drv=%u.%u(%s): miss\n", + __func__, __LINE__, +- dev->match_id, dev->match_sub_id, dev->core.bus_id, ++ dev->match_id, dev->match_sub_id, dev_name(&dev->core), + drv->match_id, drv->match_sub_id, drv->core.name); + + return result; +@@ -383,9 +383,9 @@ static int ps3_system_bus_probe(struct device *_dev) + result = drv->probe(dev); + else + pr_debug("%s:%d: %s no probe method\n", __func__, __LINE__, +- dev->core.bus_id); ++ dev_name(&dev->core)); + +- pr_debug(" <- %s:%d: %s\n", __func__, __LINE__, dev->core.bus_id); ++ pr_debug(" <- %s:%d: %s\n", __func__, __LINE__, dev_name(&dev->core)); + return result; + } + +@@ -407,7 +407,7 @@ static int ps3_system_bus_remove(struct device *_dev) + dev_dbg(&dev->core, "%s:%d %s: no remove method\n", + __func__, __LINE__, drv->core.name); + +- pr_debug(" <- %s:%d: %s\n", __func__, __LINE__, dev->core.bus_id); ++ pr_debug(" <- %s:%d: %s\n", __func__, __LINE__, dev_name(&dev->core)); + return result; + } + +@@ -432,7 +432,7 @@ static void ps3_system_bus_shutdown(struct device *_dev) + BUG_ON(!drv); + + dev_dbg(&dev->core, "%s:%d: %s -> %s\n", __func__, __LINE__, +- dev->core.bus_id, drv->core.name); ++ dev_name(&dev->core), drv->core.name); + + if (drv->shutdown) + drv->shutdown(dev); +@@ -744,22 +744,18 @@ int ps3_system_bus_device_register(struct ps3_system_bus_device *dev) + switch (dev->dev_type) { + case PS3_DEVICE_TYPE_IOC0: + dev->core.archdata.dma_ops = &ps3_ioc0_dma_ops; +- snprintf(dev->core.bus_id, sizeof(dev->core.bus_id), +- "ioc0_%02x", ++dev_ioc0_count); ++ dev_set_name(&dev->core, "ioc0_%02x", ++dev_ioc0_count); + break; + case PS3_DEVICE_TYPE_SB: + dev->core.archdata.dma_ops = &ps3_sb_dma_ops; +- snprintf(dev->core.bus_id, sizeof(dev->core.bus_id), +- "sb_%02x", ++dev_sb_count); ++ dev_set_name(&dev->core, "sb_%02x", ++dev_sb_count); + + break; + case PS3_DEVICE_TYPE_VUART: +- snprintf(dev->core.bus_id, sizeof(dev->core.bus_id), +- "vuart_%02x", ++dev_vuart_count); ++ dev_set_name(&dev->core, "vuart_%02x", ++dev_vuart_count); + break; + case PS3_DEVICE_TYPE_LPM: +- snprintf(dev->core.bus_id, sizeof(dev->core.bus_id), +- "lpm_%02x", ++dev_lpm_count); ++ dev_set_name(&dev->core, "lpm_%02x", ++dev_lpm_count); + break; + default: + BUG(); +@@ -768,7 +764,7 @@ int ps3_system_bus_device_register(struct ps3_system_bus_device *dev) + dev->core.archdata.of_node = NULL; + set_dev_node(&dev->core, 0); + +- pr_debug("%s:%d add %s\n", __func__, __LINE__, dev->core.bus_id); ++ pr_debug("%s:%d add %s\n", __func__, __LINE__, dev_name(&dev->core)); + + result = device_register(&dev->core); + return result; +-- +1.6.0.4 + |