OSDN Git Service

usb: typec: Add plug num_altmodes sysfs attr
authorPrashant Malani <pmalani@chromium.org>
Mon, 16 Nov 2020 20:11:42 +0000 (12:11 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 18 Nov 2020 12:15:58 +0000 (13:15 +0100)
commite1e52361c61afdf81d81cfbbfa3ce08971e60f50
tree996c7b6f28ee83f6a0ab044e33c6255c93ee1f2f
parenta07c81ac5015ac5cbcf1f8e20b9ca2974d276b87
usb: typec: Add plug num_altmodes sysfs attr

Add a field to the typec_plug struct to record the number of available
altmodes as well as the corresponding sysfs attribute to expose this to
userspace.

This allows userspace to determine whether there are any
remaining alternate modes left to be registered by the kernel driver. It
can begin executing any policy state machine after all available
alternate modes have been registered with the connector class framework.

This value is set to "-1" initially, signifying that a valid number of
alternate modes haven't been set for the plug. The sysfs file remains
hidden as long as the attribute value is -1.

We re-use the partner attribute for number_of_alternate_modes since the
usage and name is similar, and update the corresponding *_show() command
to support both partner and plugs.

Signed-off-by: Prashant Malani <pmalani@chromium.org>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20201116201150.2919178-4-pmalani@chromium.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Documentation/ABI/testing/sysfs-class-typec
drivers/usb/typec/class.c
include/linux/usb/typec.h