Commit db615c62 authored by Thinh Nguyen's avatar Thinh Nguyen Committed by Greg Kroah-Hartman
Browse files

usb: gadget: Introduce SSP rates and lanes



A USB device controller operating in SuperSpeed Plus may support gen2x1,
gen1x2, and/or gen2x2. Introduce SuperSpeed Plus signaling rate
generation and lane count to usb_gadget with the fields ssp_rate and
max_ssp_rate. The gadget driver can use these to setup the device BOS
descriptor and select the desire operating speed and number of lanes.

Signed-off-by: default avatarThinh Nguyen <Thinh.Nguyen@synopsys.com>
Link: https://lore.kernel.org/r/b6d2196dcc3c73747f91abf9a082b20bbe276cc4.1610592135.git.Thinh.Nguyen@synopsys.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 121fc3ac
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -339,6 +339,10 @@ struct usb_gadget_ops {
 * @speed: Speed of current connection to USB host.
 * @max_speed: Maximal speed the UDC can handle.  UDC must support this
 *      and all slower speeds.
 * @ssp_rate: Current connected SuperSpeed Plus signaling rate and lane count.
 * @max_ssp_rate: Maximum SuperSpeed Plus signaling rate and lane count the UDC
 *	can handle. The UDC must support this and all slower speeds and lower
 *	number of lanes.
 * @state: the state we are now (attached, suspended, configured, etc)
 * @name: Identifies the controller hardware type.  Used in diagnostics
 *	and sometimes configuration.
@@ -406,6 +410,11 @@ struct usb_gadget {
	struct list_head		ep_list;	/* of usb_ep */
	enum usb_device_speed		speed;
	enum usb_device_speed		max_speed;

	/* USB SuperSpeed Plus only */
	enum usb_ssp_rate		ssp_rate;
	enum usb_ssp_rate		max_ssp_rate;

	enum usb_device_state		state;
	const char			*name;
	struct device			dev;