Skip to content

Commit

Permalink
usb: roles: Allow the role switches to be named
Browse files Browse the repository at this point in the history
The switch devices have been named by using the name of the
parent device as base for now, but if for example the
parent device controls multiple muxes, that will not work.

Adding an optional member "name" to the switch descriptor
that can be used for naming the switch during registration.

Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20200302135353.56659-7-heikki.krogerus@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Heikki Krogerus authored and Greg Kroah-Hartman committed Mar 4, 2020
1 parent bce3052 commit e525619
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 1 deletion.
3 changes: 2 additions & 1 deletion drivers/usb/roles/class.c
Original file line number Diff line number Diff line change
Expand Up @@ -330,7 +330,8 @@ usb_role_switch_register(struct device *parent,
sw->dev.class = role_class;
sw->dev.type = &usb_role_dev_type;
dev_set_drvdata(&sw->dev, desc->driver_data);
dev_set_name(&sw->dev, "%s-role-switch", dev_name(parent));
dev_set_name(&sw->dev, "%s-role-switch",
desc->name ? desc->name : dev_name(parent));

ret = device_register(&sw->dev);
if (ret) {
Expand Down
2 changes: 2 additions & 0 deletions include/linux/usb/role.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ typedef enum usb_role (*usb_role_switch_get_t)(struct usb_role_switch *sw);
* @get: Callback for getting the role (optional)
* @allow_userspace_control: If true userspace may change the role through sysfs
* @driver_data: Private data pointer
* @name: Name for the switch (optional)
*
* @usb2_port and @usb3_port will point to the USB host port and @udc to the USB
* device controller behind the USB connector with the role switch. If
Expand All @@ -43,6 +44,7 @@ struct usb_role_switch_desc {
usb_role_switch_get_t get;
bool allow_userspace_control;
void *driver_data;
const char *name;
};


Expand Down

0 comments on commit e525619

Please sign in to comment.