OSDN Git Service

usb: phy: dual-role: update sysfs attrs when changed
authorJack Pham <jackp@codeaurora.org>
Thu, 2 Mar 2017 19:10:38 +0000 (11:10 -0800)
committerJack Pham <jackp@codeaurora.org>
Thu, 2 Mar 2017 19:46:29 +0000 (11:46 -0800)
commit563b2f7a6bed72d34560df5f4358e948eb52a43f
tree8f659ae4d900d6826db1ea662113d780fe01af97
parent660ab6c3a2409a5de73575976a321b8ae7a4889b
usb: phy: dual-role: update sysfs attrs when changed

dual_role_instance_changed() is called by drivers when updating
the state of the dual_role port device. In some cases a driver
may wish to dynamically update the visibility, in particular the
write permissions of some of its attributes. For instance,
'data_role' and 'power_role' can be writeable if they can be
changed independently, as in the case of a USB PD capable device,
but may need to be set back to non-writeable when a non-PD device
is attached.

Add a call to sysfs_update_group() in dual_role_changed_work()
which updates the attributes by calling the .is_visible() callback
again, which in turn calls dual_role_property_is_writeable() to
re-check whether write permission should be set or not. Move
dual_role_changed_work() toward the end of the file as it now
needs the definition of dual_role_attr_group.

Change-Id: Ie58b37b63f052aced24db00b91e87deff9ffed7e
Signed-off-by: Jack Pham <jackp@codeaurora.org>
drivers/usb/phy/class-dual-role.c