diff options
author | Geert Uytterhoeven <geert@linux-m68k.org> | 2008-11-18 15:13:53 -0500 |
---|---|---|
committer | Geert Uytterhoeven <geert@linux-m68k.org> | 2010-05-17 15:37:41 -0400 |
commit | bf54a2b3c0dbf76136f00ff785bf6d8f6291311d (patch) | |
tree | 918d2a181a90454a2893c2a86640ef72b3a164f4 /drivers | |
parent | 0b7f1a7efb38b551f5948a13d0b36e876ba536db (diff) |
m68k: amiga - Zorro bus modalias support
Add Amiga Zorro bus modalias and uevent support
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/a2065.c | 1 | ||||
-rw-r--r-- | drivers/net/ariadne.c | 1 | ||||
-rw-r--r-- | drivers/net/hydra.c | 1 | ||||
-rw-r--r-- | drivers/net/zorro8390.c | 1 | ||||
-rw-r--r-- | drivers/scsi/zorro7xx.c | 1 | ||||
-rw-r--r-- | drivers/video/cirrusfb.c | 1 | ||||
-rw-r--r-- | drivers/video/fm2fb.c | 1 | ||||
-rw-r--r-- | drivers/zorro/zorro-driver.c | 24 | ||||
-rw-r--r-- | drivers/zorro/zorro-sysfs.c | 11 |
9 files changed, 42 insertions, 0 deletions
diff --git a/drivers/net/a2065.c b/drivers/net/a2065.c index ed5e9742be2c..a8f0512bad38 100644 --- a/drivers/net/a2065.c +++ b/drivers/net/a2065.c | |||
@@ -674,6 +674,7 @@ static struct zorro_device_id a2065_zorro_tbl[] __devinitdata = { | |||
674 | { ZORRO_PROD_AMERISTAR_A2065 }, | 674 | { ZORRO_PROD_AMERISTAR_A2065 }, |
675 | { 0 } | 675 | { 0 } |
676 | }; | 676 | }; |
677 | MODULE_DEVICE_TABLE(zorro, a2065_zorro_tbl); | ||
677 | 678 | ||
678 | static struct zorro_driver a2065_driver = { | 679 | static struct zorro_driver a2065_driver = { |
679 | .name = "a2065", | 680 | .name = "a2065", |
diff --git a/drivers/net/ariadne.c b/drivers/net/ariadne.c index fa1a2354f5f9..4b30a46486e2 100644 --- a/drivers/net/ariadne.c +++ b/drivers/net/ariadne.c | |||
@@ -145,6 +145,7 @@ static struct zorro_device_id ariadne_zorro_tbl[] __devinitdata = { | |||
145 | { ZORRO_PROD_VILLAGE_TRONIC_ARIADNE }, | 145 | { ZORRO_PROD_VILLAGE_TRONIC_ARIADNE }, |
146 | { 0 } | 146 | { 0 } |
147 | }; | 147 | }; |
148 | MODULE_DEVICE_TABLE(zorro, ariadne_zorro_tbl); | ||
148 | 149 | ||
149 | static struct zorro_driver ariadne_driver = { | 150 | static struct zorro_driver ariadne_driver = { |
150 | .name = "ariadne", | 151 | .name = "ariadne", |
diff --git a/drivers/net/hydra.c b/drivers/net/hydra.c index 24724b4ad709..07d8e5b634f3 100644 --- a/drivers/net/hydra.c +++ b/drivers/net/hydra.c | |||
@@ -71,6 +71,7 @@ static struct zorro_device_id hydra_zorro_tbl[] __devinitdata = { | |||
71 | { ZORRO_PROD_HYDRA_SYSTEMS_AMIGANET }, | 71 | { ZORRO_PROD_HYDRA_SYSTEMS_AMIGANET }, |
72 | { 0 } | 72 | { 0 } |
73 | }; | 73 | }; |
74 | MODULE_DEVICE_TABLE(zorro, hydra_zorro_tbl); | ||
74 | 75 | ||
75 | static struct zorro_driver hydra_driver = { | 76 | static struct zorro_driver hydra_driver = { |
76 | .name = "hydra", | 77 | .name = "hydra", |
diff --git a/drivers/net/zorro8390.c b/drivers/net/zorro8390.c index 81c753a617ab..9548cbb5012a 100644 --- a/drivers/net/zorro8390.c +++ b/drivers/net/zorro8390.c | |||
@@ -102,6 +102,7 @@ static struct zorro_device_id zorro8390_zorro_tbl[] __devinitdata = { | |||
102 | { ZORRO_PROD_INDIVIDUAL_COMPUTERS_X_SURF, }, | 102 | { ZORRO_PROD_INDIVIDUAL_COMPUTERS_X_SURF, }, |
103 | { 0 } | 103 | { 0 } |
104 | }; | 104 | }; |
105 | MODULE_DEVICE_TABLE(zorro, zorro8390_zorro_tbl); | ||
105 | 106 | ||
106 | static struct zorro_driver zorro8390_driver = { | 107 | static struct zorro_driver zorro8390_driver = { |
107 | .name = "zorro8390", | 108 | .name = "zorro8390", |
diff --git a/drivers/scsi/zorro7xx.c b/drivers/scsi/zorro7xx.c index 105449c15fa9..e17764d71476 100644 --- a/drivers/scsi/zorro7xx.c +++ b/drivers/scsi/zorro7xx.c | |||
@@ -69,6 +69,7 @@ static struct zorro_device_id zorro7xx_zorro_tbl[] __devinitdata = { | |||
69 | }, | 69 | }, |
70 | { 0 } | 70 | { 0 } |
71 | }; | 71 | }; |
72 | MODULE_DEVICE_TABLE(zorro, zorro7xx_zorro_tbl); | ||
72 | 73 | ||
73 | static int __devinit zorro7xx_init_one(struct zorro_dev *z, | 74 | static int __devinit zorro7xx_init_one(struct zorro_dev *z, |
74 | const struct zorro_device_id *ent) | 75 | const struct zorro_device_id *ent) |
diff --git a/drivers/video/cirrusfb.c b/drivers/video/cirrusfb.c index 8d8dfda2f868..6df7c54db0a3 100644 --- a/drivers/video/cirrusfb.c +++ b/drivers/video/cirrusfb.c | |||
@@ -299,6 +299,7 @@ static const struct zorro_device_id cirrusfb_zorro_table[] = { | |||
299 | }, | 299 | }, |
300 | { 0 } | 300 | { 0 } |
301 | }; | 301 | }; |
302 | MODULE_DEVICE_TABLE(zorro, cirrusfb_zorro_table); | ||
302 | 303 | ||
303 | static const struct { | 304 | static const struct { |
304 | zorro_id id2; | 305 | zorro_id id2; |
diff --git a/drivers/video/fm2fb.c b/drivers/video/fm2fb.c index 6c91c61cdb63..1b0feb8e7244 100644 --- a/drivers/video/fm2fb.c +++ b/drivers/video/fm2fb.c | |||
@@ -219,6 +219,7 @@ static struct zorro_device_id fm2fb_devices[] __devinitdata = { | |||
219 | { ZORRO_PROD_HELFRICH_RAINBOW_II }, | 219 | { ZORRO_PROD_HELFRICH_RAINBOW_II }, |
220 | { 0 } | 220 | { 0 } |
221 | }; | 221 | }; |
222 | MODULE_DEVICE_TABLE(zorro, fm2fb_devices); | ||
222 | 223 | ||
223 | static struct zorro_driver fm2fb_driver = { | 224 | static struct zorro_driver fm2fb_driver = { |
224 | .name = "fm2fb", | 225 | .name = "fm2fb", |
diff --git a/drivers/zorro/zorro-driver.c b/drivers/zorro/zorro-driver.c index 53180a37cc9a..7ee2b6e71786 100644 --- a/drivers/zorro/zorro-driver.c +++ b/drivers/zorro/zorro-driver.c | |||
@@ -137,10 +137,34 @@ static int zorro_bus_match(struct device *dev, struct device_driver *drv) | |||
137 | return 0; | 137 | return 0; |
138 | } | 138 | } |
139 | 139 | ||
140 | static int zorro_uevent(struct device *dev, struct kobj_uevent_env *env) | ||
141 | { | ||
142 | #ifdef CONFIG_HOTPLUG | ||
143 | struct zorro_dev *z; | ||
144 | |||
145 | if (!dev) | ||
146 | return -ENODEV; | ||
147 | |||
148 | z = to_zorro_dev(dev); | ||
149 | if (!z) | ||
150 | return -ENODEV; | ||
151 | |||
152 | if (add_uevent_var(env, "ZORRO_ID=%08X", z->id) || | ||
153 | add_uevent_var(env, "ZORRO_SLOT_NAME=%s", dev_name(dev)) || | ||
154 | add_uevent_var(env, "ZORRO_SLOT_ADDR=%04X", z->slotaddr) || | ||
155 | add_uevent_var(env, "MODALIAS=" ZORRO_DEVICE_MODALIAS_FMT, z->id)) | ||
156 | return -ENOMEM; | ||
157 | |||
158 | return 0; | ||
159 | #else /* !CONFIG_HOTPLUG */ | ||
160 | return -ENODEV; | ||
161 | #endif /* !CONFIG_HOTPLUG */ | ||
162 | } | ||
140 | 163 | ||
141 | struct bus_type zorro_bus_type = { | 164 | struct bus_type zorro_bus_type = { |
142 | .name = "zorro", | 165 | .name = "zorro", |
143 | .match = zorro_bus_match, | 166 | .match = zorro_bus_match, |
167 | .uevent = zorro_uevent, | ||
144 | .probe = zorro_device_probe, | 168 | .probe = zorro_device_probe, |
145 | .remove = zorro_device_remove, | 169 | .remove = zorro_device_remove, |
146 | }; | 170 | }; |
diff --git a/drivers/zorro/zorro-sysfs.c b/drivers/zorro/zorro-sysfs.c index 1d2a772ea14c..eb924e0a64ce 100644 --- a/drivers/zorro/zorro-sysfs.c +++ b/drivers/zorro/zorro-sysfs.c | |||
@@ -77,6 +77,16 @@ static struct bin_attribute zorro_config_attr = { | |||
77 | .read = zorro_read_config, | 77 | .read = zorro_read_config, |
78 | }; | 78 | }; |
79 | 79 | ||
80 | static ssize_t modalias_show(struct device *dev, struct device_attribute *attr, | ||
81 | char *buf) | ||
82 | { | ||
83 | struct zorro_dev *z = to_zorro_dev(dev); | ||
84 | |||
85 | return sprintf(buf, ZORRO_DEVICE_MODALIAS_FMT "\n", z->id); | ||
86 | } | ||
87 | |||
88 | static DEVICE_ATTR(modalias, S_IRUGO, modalias_show, NULL); | ||
89 | |||
80 | int zorro_create_sysfs_dev_files(struct zorro_dev *z) | 90 | int zorro_create_sysfs_dev_files(struct zorro_dev *z) |
81 | { | 91 | { |
82 | struct device *dev = &z->dev; | 92 | struct device *dev = &z->dev; |
@@ -89,6 +99,7 @@ int zorro_create_sysfs_dev_files(struct zorro_dev *z) | |||
89 | (error = device_create_file(dev, &dev_attr_slotaddr)) || | 99 | (error = device_create_file(dev, &dev_attr_slotaddr)) || |
90 | (error = device_create_file(dev, &dev_attr_slotsize)) || | 100 | (error = device_create_file(dev, &dev_attr_slotsize)) || |
91 | (error = device_create_file(dev, &dev_attr_resource)) || | 101 | (error = device_create_file(dev, &dev_attr_resource)) || |
102 | (error = device_create_file(dev, &dev_attr_modalias)) || | ||
92 | (error = sysfs_create_bin_file(&dev->kobj, &zorro_config_attr))) | 103 | (error = sysfs_create_bin_file(&dev->kobj, &zorro_config_attr))) |
93 | return error; | 104 | return error; |
94 | 105 | ||