powerpc/ps3: Add sub-match id modalias support
authorGeert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Wed, 3 Dec 2008 13:52:21 +0000 (13:52 +0000)
committerPaul Mackerras <paulus@samba.org>
Tue, 16 Dec 2008 03:39:33 +0000 (14:39 +1100)
commit 059e4938f8b060b10c4352e6c45739473bc73267 ("powerpc/ps3: Add a sub-match
id to ps3_system_bus") forgot to update the module alias support:
  - Add the sub-match ids to the module aliases, so udev can distinguish
    between different types of sub-devices.
  - Rename PS3_MODULE_ALIAS_GRAPHICS to PS3_MODULE_ALIAS_GPU_FB, as ps3fb
    binds to the "FB" sub-device.

Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/include/asm/ps3.h
arch/powerpc/platforms/ps3/device-init.c
arch/powerpc/platforms/ps3/system-bus.c
drivers/video/ps3fb.c

index 4299365590d89366adbb29bda7e30a4f835f8153..cff30c0ef1fffa12d29c1497cefa4150eabe3894 100644 (file)
@@ -305,30 +305,34 @@ static inline const char* ps3_result(int result)
 /* system bus routines */
 
 enum ps3_match_id {
-       PS3_MATCH_ID_EHCI           = 1,
-       PS3_MATCH_ID_OHCI           = 2,
-       PS3_MATCH_ID_GELIC          = 3,
-       PS3_MATCH_ID_AV_SETTINGS    = 4,
-       PS3_MATCH_ID_SYSTEM_MANAGER = 5,
-       PS3_MATCH_ID_STOR_DISK      = 6,
-       PS3_MATCH_ID_STOR_ROM       = 7,
-       PS3_MATCH_ID_STOR_FLASH     = 8,
-       PS3_MATCH_ID_SOUND          = 9,
-       PS3_MATCH_ID_GRAPHICS       = 10,
-       PS3_MATCH_ID_LPM            = 11,
+       PS3_MATCH_ID_EHCI               = 1,
+       PS3_MATCH_ID_OHCI               = 2,
+       PS3_MATCH_ID_GELIC              = 3,
+       PS3_MATCH_ID_AV_SETTINGS        = 4,
+       PS3_MATCH_ID_SYSTEM_MANAGER     = 5,
+       PS3_MATCH_ID_STOR_DISK          = 6,
+       PS3_MATCH_ID_STOR_ROM           = 7,
+       PS3_MATCH_ID_STOR_FLASH         = 8,
+       PS3_MATCH_ID_SOUND              = 9,
+       PS3_MATCH_ID_GPU                = 10,
+       PS3_MATCH_ID_LPM                = 11,
 };
 
-#define PS3_MODULE_ALIAS_EHCI           "ps3:1"
-#define PS3_MODULE_ALIAS_OHCI           "ps3:2"
-#define PS3_MODULE_ALIAS_GELIC          "ps3:3"
-#define PS3_MODULE_ALIAS_AV_SETTINGS    "ps3:4"
-#define PS3_MODULE_ALIAS_SYSTEM_MANAGER "ps3:5"
-#define PS3_MODULE_ALIAS_STOR_DISK      "ps3:6"
-#define PS3_MODULE_ALIAS_STOR_ROM       "ps3:7"
-#define PS3_MODULE_ALIAS_STOR_FLASH     "ps3:8"
-#define PS3_MODULE_ALIAS_SOUND          "ps3:9"
-#define PS3_MODULE_ALIAS_GRAPHICS       "ps3:10"
-#define PS3_MODULE_ALIAS_LPM            "ps3:11"
+enum ps3_match_sub_id {
+       PS3_MATCH_SUB_ID_GPU_FB         = 1,
+};
+
+#define PS3_MODULE_ALIAS_EHCI          "ps3:1:0"
+#define PS3_MODULE_ALIAS_OHCI          "ps3:2:0"
+#define PS3_MODULE_ALIAS_GELIC         "ps3:3:0"
+#define PS3_MODULE_ALIAS_AV_SETTINGS   "ps3:4:0"
+#define PS3_MODULE_ALIAS_SYSTEM_MANAGER        "ps3:5:0"
+#define PS3_MODULE_ALIAS_STOR_DISK     "ps3:6:0"
+#define PS3_MODULE_ALIAS_STOR_ROM      "ps3:7:0"
+#define PS3_MODULE_ALIAS_STOR_FLASH    "ps3:8:0"
+#define PS3_MODULE_ALIAS_SOUND         "ps3:9:0"
+#define PS3_MODULE_ALIAS_GPU_FB                "ps3:10:1"
+#define PS3_MODULE_ALIAS_LPM           "ps3:11:0"
 
 enum ps3_system_bus_device_type {
        PS3_DEVICE_TYPE_IOC0 = 1,
@@ -337,11 +341,6 @@ enum ps3_system_bus_device_type {
        PS3_DEVICE_TYPE_LPM,
 };
 
-enum ps3_match_sub_id {
-       /* for PS3_MATCH_ID_GRAPHICS */
-       PS3_MATCH_SUB_ID_FB             = 1,
-};
-
 /**
  * struct ps3_system_bus_device - a device on the system bus
  */
index 43816da25ca6ca5d0a9d1eff2b1fd3c918033df3..dbc124e056461038c3620d8cf92a60ed3008bbce 100644 (file)
@@ -497,8 +497,8 @@ static int __init ps3_register_graphics_devices(void)
        if (!p)
                return -ENOMEM;
 
-       p->dev.match_id = PS3_MATCH_ID_GRAPHICS;
-       p->dev.match_sub_id = PS3_MATCH_SUB_ID_FB;
+       p->dev.match_id = PS3_MATCH_ID_GPU;
+       p->dev.match_sub_id = PS3_MATCH_SUB_ID_GPU_FB;
        p->dev.dev_type = PS3_DEVICE_TYPE_IOC0;
 
        result = ps3_system_bus_device_register(&p->dev);
index 661e9f77ebf6be4c70d5e013e65be1229cf665cb..d3da1e6e73bc74591f02847419ae873623c79f3f 100644 (file)
@@ -175,7 +175,7 @@ int ps3_open_hv_device(struct ps3_system_bus_device *dev)
                return ps3_open_hv_device_sb(dev);
 
        case PS3_MATCH_ID_SOUND:
-       case PS3_MATCH_ID_GRAPHICS:
+       case PS3_MATCH_ID_GPU:
                return ps3_open_hv_device_gpu(dev);
 
        case PS3_MATCH_ID_AV_SETTINGS:
@@ -213,7 +213,7 @@ int ps3_close_hv_device(struct ps3_system_bus_device *dev)
                return ps3_close_hv_device_sb(dev);
 
        case PS3_MATCH_ID_SOUND:
-       case PS3_MATCH_ID_GRAPHICS:
+       case PS3_MATCH_ID_GPU:
                return ps3_close_hv_device_gpu(dev);
 
        case PS3_MATCH_ID_AV_SETTINGS:
@@ -453,7 +453,8 @@ static int ps3_system_bus_uevent(struct device *_dev, struct kobj_uevent_env *en
 {
        struct ps3_system_bus_device *dev = ps3_dev_to_system_bus_dev(_dev);
 
-       if (add_uevent_var(env, "MODALIAS=ps3:%d", dev->match_id))
+       if (add_uevent_var(env, "MODALIAS=ps3:%d:%d", dev->match_id,
+                          dev->match_sub_id))
                return -ENOMEM;
        return 0;
 }
@@ -462,7 +463,8 @@ static ssize_t modalias_show(struct device *_dev, struct device_attribute *a,
        char *buf)
 {
        struct ps3_system_bus_device *dev = ps3_dev_to_system_bus_dev(_dev);
-       int len = snprintf(buf, PAGE_SIZE, "ps3:%d\n", dev->match_id);
+       int len = snprintf(buf, PAGE_SIZE, "ps3:%d:%d\n", dev->match_id,
+                          dev->match_sub_id);
 
        return (len >= PAGE_SIZE) ? (PAGE_SIZE - 1) : len;
 }
index bd3e39baf7d20fee65077f86d34cf4ef55788d2d..38ac805db97d4bcb5cdca4866f0fd3cfb430dce3 100644 (file)
@@ -1289,8 +1289,8 @@ static int ps3fb_shutdown(struct ps3_system_bus_device *dev)
 }
 
 static struct ps3_system_bus_driver ps3fb_driver = {
-       .match_id       = PS3_MATCH_ID_GRAPHICS,
-       .match_sub_id   = PS3_MATCH_SUB_ID_FB,
+       .match_id       = PS3_MATCH_ID_GPU,
+       .match_sub_id   = PS3_MATCH_SUB_ID_GPU_FB,
        .core.name      = DEVICE_NAME,
        .core.owner     = THIS_MODULE,
        .probe          = ps3fb_probe,
@@ -1348,4 +1348,4 @@ module_exit(ps3fb_exit);
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("PS3 GPU Frame Buffer Driver");
 MODULE_AUTHOR("Sony Computer Entertainment Inc.");
-MODULE_ALIAS(PS3_MODULE_ALIAS_GRAPHICS);
+MODULE_ALIAS(PS3_MODULE_ALIAS_GPU_FB);