Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

PNP: convert bus code to use dev_groups

The dev_attrs field of struct bus_type is going away soon, dev_groups
should be used instead. This converts the PNP bus code to use the
correct field.

Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

+28 -19
+1 -1
drivers/pnp/base.h
··· 4 4 */ 5 5 6 6 extern spinlock_t pnp_lock; 7 - extern struct device_attribute pnp_interface_attrs[]; 7 + extern const struct attribute_group *pnp_dev_groups[]; 8 8 void *pnp_alloc(long size); 9 9 10 10 int pnp_register_protocol(struct pnp_protocol *protocol);
+1 -1
drivers/pnp/driver.c
··· 246 246 .remove = pnp_device_remove, 247 247 .shutdown = pnp_device_shutdown, 248 248 .pm = &pnp_bus_dev_pm_ops, 249 - .dev_attrs = pnp_interface_attrs, 249 + .dev_groups = pnp_dev_groups, 250 250 }; 251 251 252 252 int pnp_register_driver(struct pnp_driver *drv)
+26 -17
drivers/pnp/interface.c
··· 203 203 } 204 204 } 205 205 206 - static ssize_t pnp_show_options(struct device *dmdev, 207 - struct device_attribute *attr, char *buf) 206 + static ssize_t options_show(struct device *dmdev, struct device_attribute *attr, 207 + char *buf) 208 208 { 209 209 struct pnp_dev *dev = to_pnp_dev(dmdev); 210 210 pnp_info_buffer_t *buffer; ··· 241 241 kfree(buffer); 242 242 return ret; 243 243 } 244 + static DEVICE_ATTR_RO(options); 244 245 245 - static ssize_t pnp_show_current_resources(struct device *dmdev, 246 - struct device_attribute *attr, 247 - char *buf) 246 + static ssize_t resources_show(struct device *dmdev, 247 + struct device_attribute *attr, char *buf) 248 248 { 249 249 struct pnp_dev *dev = to_pnp_dev(dmdev); 250 250 pnp_info_buffer_t *buffer; ··· 331 331 return buf; 332 332 } 333 333 334 - static ssize_t pnp_set_current_resources(struct device *dmdev, 335 - struct device_attribute *attr, 336 - const char *ubuf, size_t count) 334 + static ssize_t resources_store(struct device *dmdev, 335 + struct device_attribute *attr, const char *ubuf, 336 + size_t count) 337 337 { 338 338 struct pnp_dev *dev = to_pnp_dev(dmdev); 339 339 char *buf = (void *)ubuf; ··· 434 434 return retval; 435 435 return count; 436 436 } 437 + static DEVICE_ATTR_RW(resources); 437 438 438 - static ssize_t pnp_show_current_ids(struct device *dmdev, 439 - struct device_attribute *attr, char *buf) 439 + static ssize_t id_show(struct device *dmdev, struct device_attribute *attr, 440 + char *buf) 440 441 { 441 442 char *str = buf; 442 443 struct pnp_dev *dev = to_pnp_dev(dmdev); ··· 449 448 } 450 449 return (str - buf); 451 450 } 451 + static DEVICE_ATTR_RO(id); 452 452 453 - struct device_attribute pnp_interface_attrs[] = { 454 - __ATTR(resources, S_IRUGO | S_IWUSR, 455 - pnp_show_current_resources, 456 - pnp_set_current_resources), 457 - __ATTR(options, S_IRUGO, pnp_show_options, NULL), 458 - __ATTR(id, S_IRUGO, pnp_show_current_ids, NULL), 459 - __ATTR_NULL, 453 + static struct attribute *pnp_dev_attrs[] = { 454 + &dev_attr_resources.attr, 455 + &dev_attr_options.attr, 456 + &dev_attr_id.attr, 457 + NULL, 458 + }; 459 + 460 + static const struct attribute_group pnp_dev_group = { 461 + .attrs = pnp_dev_attrs, 462 + }; 463 + 464 + const struct attribute_group *pnp_dev_groups[] = { 465 + &pnp_dev_group, 466 + NULL, 460 467 };