Commit e2bca0eb authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'usb-6.2-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb

Pull USB fixes from Greg KH:
 "Here are 2 small USB driver fixes that resolve some reported
  regressions and one new device quirk. Specifically these are:

   - new quirk for Alcor Link AK9563 smartcard reader

   - revert of u_ether gadget change in 6.2-rc1 that caused problems

   - typec pin probe fix

  All of these have been in linux-next with no reported problems"

* tag 'usb-6.2-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
  usb: core: add quirk for Alcor Link AK9563 smartcard reader
  usb: typec: altmodes/displayport: Fix probe pin assign check
  Revert "usb: gadget: u_ether: Do not make UDC parent of the net device"
parents dd78af9f 303e724d
...@@ -526,6 +526,9 @@ static const struct usb_device_id usb_quirk_list[] = { ...@@ -526,6 +526,9 @@ static const struct usb_device_id usb_quirk_list[] = {
/* DJI CineSSD */ /* DJI CineSSD */
{ USB_DEVICE(0x2ca3, 0x0031), .driver_info = USB_QUIRK_NO_LPM }, { USB_DEVICE(0x2ca3, 0x0031), .driver_info = USB_QUIRK_NO_LPM },
/* Alcor Link AK9563 SC Reader used in 2022 Lenovo ThinkPads */
{ USB_DEVICE(0x2ce3, 0x9563), .driver_info = USB_QUIRK_NO_LPM },
/* DELL USB GEN2 */ /* DELL USB GEN2 */
{ USB_DEVICE(0x413c, 0xb062), .driver_info = USB_QUIRK_NO_LPM | USB_QUIRK_RESET_RESUME }, { USB_DEVICE(0x413c, 0xb062), .driver_info = USB_QUIRK_NO_LPM | USB_QUIRK_RESET_RESUME },
......
...@@ -798,6 +798,7 @@ struct eth_dev *gether_setup_name(struct usb_gadget *g, ...@@ -798,6 +798,7 @@ struct eth_dev *gether_setup_name(struct usb_gadget *g,
net->max_mtu = GETHER_MAX_MTU_SIZE; net->max_mtu = GETHER_MAX_MTU_SIZE;
dev->gadget = g; dev->gadget = g;
SET_NETDEV_DEV(net, &g->dev);
SET_NETDEV_DEVTYPE(net, &gadget_type); SET_NETDEV_DEVTYPE(net, &gadget_type);
status = register_netdev(net); status = register_netdev(net);
...@@ -872,6 +873,8 @@ int gether_register_netdev(struct net_device *net) ...@@ -872,6 +873,8 @@ int gether_register_netdev(struct net_device *net)
struct usb_gadget *g; struct usb_gadget *g;
int status; int status;
if (!net->dev.parent)
return -EINVAL;
dev = netdev_priv(net); dev = netdev_priv(net);
g = dev->gadget; g = dev->gadget;
...@@ -902,6 +905,7 @@ void gether_set_gadget(struct net_device *net, struct usb_gadget *g) ...@@ -902,6 +905,7 @@ void gether_set_gadget(struct net_device *net, struct usb_gadget *g)
dev = netdev_priv(net); dev = netdev_priv(net);
dev->gadget = g; dev->gadget = g;
SET_NETDEV_DEV(net, &g->dev);
} }
EXPORT_SYMBOL_GPL(gether_set_gadget); EXPORT_SYMBOL_GPL(gether_set_gadget);
......
...@@ -535,10 +535,10 @@ int dp_altmode_probe(struct typec_altmode *alt) ...@@ -535,10 +535,10 @@ int dp_altmode_probe(struct typec_altmode *alt)
/* FIXME: Port can only be DFP_U. */ /* FIXME: Port can only be DFP_U. */
/* Make sure we have compatiple pin configurations */ /* Make sure we have compatiple pin configurations */
if (!(DP_CAP_DFP_D_PIN_ASSIGN(port->vdo) & if (!(DP_CAP_PIN_ASSIGN_DFP_D(port->vdo) &
DP_CAP_UFP_D_PIN_ASSIGN(alt->vdo)) && DP_CAP_PIN_ASSIGN_UFP_D(alt->vdo)) &&
!(DP_CAP_UFP_D_PIN_ASSIGN(port->vdo) & !(DP_CAP_PIN_ASSIGN_UFP_D(port->vdo) &
DP_CAP_DFP_D_PIN_ASSIGN(alt->vdo))) DP_CAP_PIN_ASSIGN_DFP_D(alt->vdo)))
return -ENODEV; return -ENODEV;
ret = sysfs_create_group(&alt->dev.kobj, &dp_altmode_group); ret = sysfs_create_group(&alt->dev.kobj, &dp_altmode_group);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment