Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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

Pull USB fixes from Greg KH:
"Here are some small USB fixes that resolve some reported problems.
These include:

- gadget driver fixes

- dwc3 driver fix

- typec driver fix

- MAINTAINERS file update.

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

* tag 'usb-6.2-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
usb: typec: ucsi: Don't attempt to resume the ports before they exist
usb: gadget: udc: do not clear gadget driver.bus
usb: gadget: f_uac2: Fix incorrect increment of bNumEndpoints
usb: gadget: f_fs: Fix unbalanced spinlock in __ffs_ep0_queue_wait
usb: dwc3: qcom: enable vbus override when in OTG dr-mode
MAINTAINERS: Add myself as UVC Gadget Maintainer

+14 -19
+1
MAINTAINERS
··· 21730 21730 21731 21731 USB WEBCAM GADGET 21732 21732 M: Laurent Pinchart <laurent.pinchart@ideasonboard.com> 21733 + M: Daniel Scally <dan.scally@ideasonboard.com> 21733 21734 L: linux-usb@vger.kernel.org 21734 21735 S: Maintained 21735 21736 F: drivers/usb/gadget/function/*uvc*
+1 -1
drivers/usb/dwc3/dwc3-qcom.c
··· 901 901 qcom->mode = usb_get_dr_mode(&qcom->dwc3->dev); 902 902 903 903 /* enable vbus override for device mode */ 904 - if (qcom->mode == USB_DR_MODE_PERIPHERAL) 904 + if (qcom->mode != USB_DR_MODE_HOST) 905 905 dwc3_qcom_vbus_override_enable(qcom, true); 906 906 907 907 /* register extcon to override sw_vbus on Vbus change later */
-1
drivers/usb/fotg210/fotg210-udc.c
··· 1014 1014 int ret; 1015 1015 1016 1016 /* hook up the driver */ 1017 - driver->driver.bus = NULL; 1018 1017 fotg210->driver = driver; 1019 1018 1020 1019 if (!IS_ERR_OR_NULL(fotg210->phy)) {
+3 -1
drivers/usb/gadget/function/f_fs.c
··· 279 279 struct usb_request *req = ffs->ep0req; 280 280 int ret; 281 281 282 - if (!req) 282 + if (!req) { 283 + spin_unlock_irq(&ffs->ev.waitq.lock); 283 284 return -EINVAL; 285 + } 284 286 285 287 req->zero = len < le16_to_cpu(ffs->ev.setup.wLength); 286 288
+1
drivers/usb/gadget/function/f_uac2.c
··· 1142 1142 } 1143 1143 std_as_out_if0_desc.bInterfaceNumber = ret; 1144 1144 std_as_out_if1_desc.bInterfaceNumber = ret; 1145 + std_as_out_if1_desc.bNumEndpoints = 1; 1145 1146 uac2->as_out_intf = ret; 1146 1147 uac2->as_out_alt = 0; 1147 1148
-1
drivers/usb/gadget/udc/bcm63xx_udc.c
··· 1830 1830 bcm63xx_select_phy_mode(udc, true); 1831 1831 1832 1832 udc->driver = driver; 1833 - driver->driver.bus = NULL; 1834 1833 udc->gadget.dev.of_node = udc->dev->of_node; 1835 1834 1836 1835 spin_unlock_irqrestore(&udc->lock, flags);
-1
drivers/usb/gadget/udc/fsl_qe_udc.c
··· 2285 2285 /* lock is needed but whether should use this lock or another */ 2286 2286 spin_lock_irqsave(&udc->lock, flags); 2287 2287 2288 - driver->driver.bus = NULL; 2289 2288 /* hook up the driver */ 2290 2289 udc->driver = driver; 2291 2290 udc->gadget.speed = driver->max_speed;
-1
drivers/usb/gadget/udc/fsl_udc_core.c
··· 1943 1943 /* lock is needed but whether should use this lock or another */ 1944 1944 spin_lock_irqsave(&udc_controller->lock, flags); 1945 1945 1946 - driver->driver.bus = NULL; 1947 1946 /* hook up the driver */ 1948 1947 udc_controller->driver = driver; 1949 1948 spin_unlock_irqrestore(&udc_controller->lock, flags);
-1
drivers/usb/gadget/udc/fusb300_udc.c
··· 1311 1311 struct fusb300 *fusb300 = to_fusb300(g); 1312 1312 1313 1313 /* hook up the driver */ 1314 - driver->driver.bus = NULL; 1315 1314 fusb300->driver = driver; 1316 1315 1317 1316 return 0;
-1
drivers/usb/gadget/udc/goku_udc.c
··· 1375 1375 struct goku_udc *dev = to_goku_udc(g); 1376 1376 1377 1377 /* hook up the driver */ 1378 - driver->driver.bus = NULL; 1379 1378 dev->driver = driver; 1380 1379 1381 1380 /*
-1
drivers/usb/gadget/udc/gr_udc.c
··· 1906 1906 spin_lock(&dev->lock); 1907 1907 1908 1908 /* Hook up the driver */ 1909 - driver->driver.bus = NULL; 1910 1909 dev->driver = driver; 1911 1910 1912 1911 /* Get ready for host detection */
-1
drivers/usb/gadget/udc/m66592-udc.c
··· 1454 1454 struct m66592 *m66592 = to_m66592(g); 1455 1455 1456 1456 /* hook up the driver */ 1457 - driver->driver.bus = NULL; 1458 1457 m66592->driver = driver; 1459 1458 1460 1459 m66592_bset(m66592, M66592_VBSE | M66592_URST, M66592_INTENB0);
-1
drivers/usb/gadget/udc/max3420_udc.c
··· 1108 1108 1109 1109 spin_lock_irqsave(&udc->lock, flags); 1110 1110 /* hook up the driver */ 1111 - driver->driver.bus = NULL; 1112 1111 udc->driver = driver; 1113 1112 udc->gadget.speed = USB_SPEED_FULL; 1114 1113
-1
drivers/usb/gadget/udc/mv_u3d_core.c
··· 1243 1243 } 1244 1244 1245 1245 /* hook up the driver ... */ 1246 - driver->driver.bus = NULL; 1247 1246 u3d->driver = driver; 1248 1247 1249 1248 u3d->ep0_dir = USB_DIR_OUT;
-1
drivers/usb/gadget/udc/mv_udc_core.c
··· 1359 1359 spin_lock_irqsave(&udc->lock, flags); 1360 1360 1361 1361 /* hook up the driver ... */ 1362 - driver->driver.bus = NULL; 1363 1362 udc->driver = driver; 1364 1363 1365 1364 udc->usb_state = USB_STATE_ATTACHED;
-1
drivers/usb/gadget/udc/net2272.c
··· 1451 1451 dev->ep[i].irqs = 0; 1452 1452 /* hook up the driver ... */ 1453 1453 dev->softconnect = 1; 1454 - driver->driver.bus = NULL; 1455 1454 dev->driver = driver; 1456 1455 1457 1456 /* ... then enable host detection and ep0; and we're ready
-1
drivers/usb/gadget/udc/net2280.c
··· 2423 2423 dev->ep[i].irqs = 0; 2424 2424 2425 2425 /* hook up the driver ... */ 2426 - driver->driver.bus = NULL; 2427 2426 dev->driver = driver; 2428 2427 2429 2428 retval = device_create_file(&dev->pdev->dev, &dev_attr_function);
-1
drivers/usb/gadget/udc/omap_udc.c
··· 2066 2066 udc->softconnect = 1; 2067 2067 2068 2068 /* hook up the driver */ 2069 - driver->driver.bus = NULL; 2070 2069 udc->driver = driver; 2071 2070 spin_unlock_irqrestore(&udc->lock, flags); 2072 2071
-1
drivers/usb/gadget/udc/pch_udc.c
··· 2908 2908 { 2909 2909 struct pch_udc_dev *dev = to_pch_udc(g); 2910 2910 2911 - driver->driver.bus = NULL; 2912 2911 dev->driver = driver; 2913 2912 2914 2913 /* get ready for ep0 traffic */
-1
drivers/usb/gadget/udc/snps_udc_core.c
··· 1933 1933 struct udc *dev = to_amd5536_udc(g); 1934 1934 u32 tmp; 1935 1935 1936 - driver->driver.bus = NULL; 1937 1936 dev->driver = driver; 1938 1937 1939 1938 /* Some gadget drivers use both ep0 directions.
+8 -1
drivers/usb/typec/ucsi/ucsi.c
··· 1269 1269 con->port = NULL; 1270 1270 } 1271 1271 1272 + kfree(ucsi->connector); 1273 + ucsi->connector = NULL; 1274 + 1272 1275 err_reset: 1273 1276 memset(&ucsi->cap, 0, sizeof(ucsi->cap)); 1274 1277 ucsi_reset_ppm(ucsi); ··· 1303 1300 1304 1301 int ucsi_resume(struct ucsi *ucsi) 1305 1302 { 1306 - queue_work(system_long_wq, &ucsi->resume_work); 1303 + if (ucsi->connector) 1304 + queue_work(system_long_wq, &ucsi->resume_work); 1307 1305 return 0; 1308 1306 } 1309 1307 EXPORT_SYMBOL_GPL(ucsi_resume); ··· 1423 1419 1424 1420 /* Disable notifications */ 1425 1421 ucsi->ops->async_write(ucsi, UCSI_CONTROL, &cmd, sizeof(cmd)); 1422 + 1423 + if (!ucsi->connector) 1424 + return; 1426 1425 1427 1426 for (i = 0; i < ucsi->cap.num_connectors; i++) { 1428 1427 cancel_work_sync(&ucsi->connector[i].work);