|
@@ -639,16 +639,18 @@ EXPORT_SYMBOL(gameport_unregister_port);
|
|
|
* Gameport driver operations
|
|
|
*/
|
|
|
|
|
|
-static ssize_t gameport_driver_show_description(struct device_driver *drv, char *buf)
|
|
|
+static ssize_t description_show(struct device_driver *drv, char *buf)
|
|
|
{
|
|
|
struct gameport_driver *driver = to_gameport_driver(drv);
|
|
|
return sprintf(buf, "%s\n", driver->description ? driver->description : "(none)");
|
|
|
}
|
|
|
+static DRIVER_ATTR_RO(description);
|
|
|
|
|
|
-static struct driver_attribute gameport_driver_attrs[] = {
|
|
|
- __ATTR(description, S_IRUGO, gameport_driver_show_description, NULL),
|
|
|
- __ATTR_NULL
|
|
|
+static struct attribute *gameport_driver_attrs[] = {
|
|
|
+ &driver_attr_description.attr,
|
|
|
+ NULL
|
|
|
};
|
|
|
+ATTRIBUTE_GROUPS(gameport_driver);
|
|
|
|
|
|
static int gameport_driver_probe(struct device *dev)
|
|
|
{
|
|
@@ -749,7 +751,7 @@ static int gameport_bus_match(struct device *dev, struct device_driver *drv)
|
|
|
static struct bus_type gameport_bus = {
|
|
|
.name = "gameport",
|
|
|
.dev_attrs = gameport_device_attrs,
|
|
|
- .drv_attrs = gameport_driver_attrs,
|
|
|
+ .drv_groups = gameport_driver_groups,
|
|
|
.match = gameport_bus_match,
|
|
|
.probe = gameport_driver_probe,
|
|
|
.remove = gameport_driver_remove,
|