mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-07 22:08:33 -04:00
Merge tag 'usb-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
Pull USB / Thunderbolt driver updates from Greg KH:
"Here is the big set of USB and Thunderbolt driver updates for 6.5-rc1.
Included in here are:
- Lots of USB4/Thunderbolt additions and updates for new hardware
types and fixes as people are starting to get access to the
hardware in the wild
- new gadget controller driver, cdns2, added
- new typec drivers added
- xhci driver updates
- typec driver updates
- usbip driver fixes
- usb-serial driver updates and fixes
- lots of smaller USB driver updates
All of these have been in linux-next for a while with no reported
problems"
* tag 'usb-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (265 commits)
usb: host: xhci-plat: Set XHCI_STATE_REMOVING before resuming XHCI HC
usb: host: xhci: Do not re-initialize the XHCI HC if being removed
usb: typec: nb7vpq904m: fix CONFIG_DRM dependency
usbip: usbip_host: Replace strlcpy with strscpy
usb: dwc3: gadget: Propagate core init errors to UDC during pullup
USB: serial: option: add LARA-R6 01B PIDs
usb: ulpi: Make container_of() no-op in to_ulpi_dev()
usb: gadget: legacy: fix error return code in gfs_bind
usb: typec: fsa4480: add support for Audio Accessory Mode
usb: typec: fsa4480: rework mux & switch setup to handle more states
usb: typec: ucsi: call typec_set_mode on non-altmode partner change
USB: gadget: f_hid: make hidg_class a static const structure
USB: gadget: f_printer: make usb_gadget_class a static const structure
USB: mon: make mon_bin_class a static const structure
USB: gadget: udc: core: make udc_class a static const structure
USB: roles: make role_class a static const structure
dt-bindings: usb: dwc3: Add interrupt-names property support for wakeup interrupt
dt-bindings: usb: Add StarFive JH7110 USB controller
dt-bindings: usb: dwc3: Add IPQ9574 compatible
usb: cdns2: Fix spelling mistake in a trace message "Wakupe" -> "Wakeup"
...
This commit is contained in:
@@ -171,6 +171,20 @@ struct tb_property *tb_property_get_next(struct tb_property_dir *dir,
|
||||
int tb_register_property_dir(const char *key, struct tb_property_dir *dir);
|
||||
void tb_unregister_property_dir(const char *key, struct tb_property_dir *dir);
|
||||
|
||||
/**
|
||||
* enum tb_link_width - Thunderbolt/USB4 link width
|
||||
* @TB_LINK_WIDTH_SINGLE: Single lane link
|
||||
* @TB_LINK_WIDTH_DUAL: Dual lane symmetric link
|
||||
* @TB_LINK_WIDTH_ASYM_TX: Dual lane asymmetric Gen 4 link with 3 trasmitters
|
||||
* @TB_LINK_WIDTH_ASYM_RX: Dual lane asymmetric Gen 4 link with 3 receivers
|
||||
*/
|
||||
enum tb_link_width {
|
||||
TB_LINK_WIDTH_SINGLE = BIT(0),
|
||||
TB_LINK_WIDTH_DUAL = BIT(1),
|
||||
TB_LINK_WIDTH_ASYM_TX = BIT(2),
|
||||
TB_LINK_WIDTH_ASYM_RX = BIT(3),
|
||||
};
|
||||
|
||||
/**
|
||||
* struct tb_xdomain - Cross-domain (XDomain) connection
|
||||
* @dev: XDomain device
|
||||
@@ -186,7 +200,7 @@ void tb_unregister_property_dir(const char *key, struct tb_property_dir *dir);
|
||||
* @vendor_name: Name of the vendor (or %NULL if not known)
|
||||
* @device_name: Name of the device (or %NULL if not known)
|
||||
* @link_speed: Speed of the link in Gb/s
|
||||
* @link_width: Width of the link (1 or 2)
|
||||
* @link_width: Width of the downstream facing link
|
||||
* @link_usb4: Downstream link is USB4
|
||||
* @is_unplugged: The XDomain is unplugged
|
||||
* @needs_uuid: If the XDomain does not have @remote_uuid it will be
|
||||
@@ -234,7 +248,7 @@ struct tb_xdomain {
|
||||
const char *vendor_name;
|
||||
const char *device_name;
|
||||
unsigned int link_speed;
|
||||
unsigned int link_width;
|
||||
enum tb_link_width link_width;
|
||||
bool link_usb4;
|
||||
bool is_unplugged;
|
||||
bool needs_uuid;
|
||||
|
||||
@@ -15,9 +15,9 @@ struct ulpi_ops;
|
||||
* @dev: device interface
|
||||
*/
|
||||
struct ulpi {
|
||||
struct device dev;
|
||||
struct ulpi_device_id id;
|
||||
const struct ulpi_ops *ops;
|
||||
struct device dev;
|
||||
};
|
||||
|
||||
#define to_ulpi_dev(d) container_of(d, struct ulpi, dev)
|
||||
|
||||
@@ -267,7 +267,7 @@ struct hc_driver {
|
||||
int (*pci_suspend)(struct usb_hcd *hcd, bool do_wakeup);
|
||||
|
||||
/* called after entering D0 (etc), before resuming the hub */
|
||||
int (*pci_resume)(struct usb_hcd *hcd, bool hibernated);
|
||||
int (*pci_resume)(struct usb_hcd *hcd, pm_message_t state);
|
||||
|
||||
/* called just before hibernate final D3 state, allows host to poweroff parts */
|
||||
int (*pci_poweroff_late)(struct usb_hcd *hcd, bool do_wakeup);
|
||||
|
||||
@@ -278,7 +278,7 @@ struct usb_serial_driver {
|
||||
int (*set_serial)(struct tty_struct *tty, struct serial_struct *ss);
|
||||
void (*set_termios)(struct tty_struct *tty, struct usb_serial_port *port,
|
||||
const struct ktermios *old);
|
||||
void (*break_ctl)(struct tty_struct *tty, int break_state);
|
||||
int (*break_ctl)(struct tty_struct *tty, int break_state);
|
||||
unsigned int (*chars_in_buffer)(struct tty_struct *tty);
|
||||
void (*wait_until_sent)(struct tty_struct *tty, long timeout);
|
||||
bool (*tx_empty)(struct usb_serial_port *port);
|
||||
|
||||
@@ -60,8 +60,7 @@ struct typec_mux_desc {
|
||||
|
||||
#if IS_ENABLED(CONFIG_TYPEC)
|
||||
|
||||
struct typec_mux *fwnode_typec_mux_get(struct fwnode_handle *fwnode,
|
||||
const struct typec_altmode_desc *desc);
|
||||
struct typec_mux *fwnode_typec_mux_get(struct fwnode_handle *fwnode);
|
||||
void typec_mux_put(struct typec_mux *mux);
|
||||
int typec_mux_set(struct typec_mux *mux, struct typec_mux_state *state);
|
||||
|
||||
@@ -74,8 +73,7 @@ void *typec_mux_get_drvdata(struct typec_mux_dev *mux);
|
||||
|
||||
#else
|
||||
|
||||
static inline struct typec_mux *fwnode_typec_mux_get(struct fwnode_handle *fwnode,
|
||||
const struct typec_altmode_desc *desc)
|
||||
static inline struct typec_mux *fwnode_typec_mux_get(struct fwnode_handle *fwnode)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
@@ -102,10 +100,9 @@ static inline void *typec_mux_get_drvdata(struct typec_mux_dev *mux)
|
||||
|
||||
#endif /* CONFIG_TYPEC */
|
||||
|
||||
static inline struct typec_mux *
|
||||
typec_mux_get(struct device *dev, const struct typec_altmode_desc *desc)
|
||||
static inline struct typec_mux *typec_mux_get(struct device *dev)
|
||||
{
|
||||
return fwnode_typec_mux_get(dev_fwnode(dev), desc);
|
||||
return fwnode_typec_mux_get(dev_fwnode(dev));
|
||||
}
|
||||
|
||||
#endif /* __USB_TYPEC_MUX */
|
||||
|
||||
@@ -376,7 +376,10 @@ struct usb_string_descriptor {
|
||||
__u8 bLength;
|
||||
__u8 bDescriptorType;
|
||||
|
||||
__le16 wData[1]; /* UTF-16LE encoded */
|
||||
union {
|
||||
__le16 legacy_padding;
|
||||
__DECLARE_FLEX_ARRAY(__le16, wData); /* UTF-16LE encoded */
|
||||
};
|
||||
} __attribute__ ((packed));
|
||||
|
||||
/* note that "string" zero is special, it holds language codes that
|
||||
|
||||
Reference in New Issue
Block a user