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-5.19-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb

Pull USB driver fixes from Greg KH:
"Here are some small USB driver fixes and new device ids for 5.19-rc7.
They include:

- new usb-serial driver ids

- typec uevent fix

- uvc gadget driver fix

- dwc3 driver fixes

- ehci-fsl driver fix

All of these have been in linux-next for a while with no reported
issues"

* tag 'usb-5.19-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
USB: serial: ftdi_sio: add Belimo device ids
drivers/usb/host/ehci-fsl: Fix interrupt setup in host mode.
usb: gadget: uvc: fix changing interface name via configfs
usb: typec: add missing uevent when partner support PD
usb: dwc3-am62: remove unnecesary clk_put()
usb: dwc3: gadget: Fix event pending check

+25 -17
+2 -6
drivers/usb/dwc3/dwc3-am62.c
··· 195 195 196 196 if (i == ARRAY_SIZE(dwc3_ti_rate_table)) { 197 197 dev_err(dev, "unsupported usb2_refclk rate: %lu KHz\n", rate); 198 - ret = -EINVAL; 199 - goto err_clk_disable; 198 + return -EINVAL; 200 199 } 201 200 202 201 data->rate_code = i; ··· 203 204 /* Read the syscon property and set the rate code */ 204 205 ret = phy_syscon_pll_refclk(data); 205 206 if (ret) 206 - goto err_clk_disable; 207 + return ret; 207 208 208 209 /* VBUS divider select */ 209 210 data->vbus_divider = device_property_read_bool(dev, "ti,vbus-divider"); ··· 244 245 clk_disable_unprepare(data->usb2_refclk); 245 246 pm_runtime_disable(dev); 246 247 pm_runtime_set_suspended(dev); 247 - err_clk_disable: 248 - clk_put(data->usb2_refclk); 249 248 return ret; 250 249 } 251 250 ··· 273 276 pm_runtime_disable(dev); 274 277 pm_runtime_set_suspended(dev); 275 278 276 - clk_put(data->usb2_refclk); 277 279 platform_set_drvdata(pdev, NULL); 278 280 return 0; 279 281 }
+3 -1
drivers/usb/dwc3/gadget.c
··· 4249 4249 } 4250 4250 4251 4251 evt->count = 0; 4252 - evt->flags &= ~DWC3_EVENT_PENDING; 4253 4252 ret = IRQ_HANDLED; 4254 4253 4255 4254 /* Unmask interrupt */ ··· 4259 4260 dwc3_writel(dwc->regs, DWC3_GEVNTCOUNT(0), DWC3_GEVNTCOUNT_EHB); 4260 4261 dwc3_writel(dwc->regs, DWC3_DEV_IMOD(0), dwc->imod_interval); 4261 4262 } 4263 + 4264 + /* Keep the clearing of DWC3_EVENT_PENDING at the end */ 4265 + evt->flags &= ~DWC3_EVENT_PENDING; 4262 4266 4263 4267 return ret; 4264 4268 }
+4 -2
drivers/usb/gadget/function/uvc_configfs.c
··· 2371 2371 const char *page, size_t len) \ 2372 2372 { \ 2373 2373 struct f_uvc_opts *opts = to_f_uvc_opts(item); \ 2374 + int size = min(sizeof(opts->aname), len + 1); \ 2374 2375 int ret = 0; \ 2375 2376 \ 2376 2377 mutex_lock(&opts->lock); \ ··· 2380 2379 goto end; \ 2381 2380 } \ 2382 2381 \ 2383 - ret = snprintf(opts->aname, min(sizeof(opts->aname), len), \ 2384 - "%s", page); \ 2382 + ret = strscpy(opts->aname, page, size); \ 2383 + if (ret == -E2BIG) \ 2384 + ret = size - 1; \ 2385 2385 \ 2386 2386 end: \ 2387 2387 mutex_unlock(&opts->lock); \
+3 -8
drivers/usb/host/ehci-fsl.c
··· 76 76 return -ENODEV; 77 77 } 78 78 79 - res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); 80 - if (!res) { 81 - dev_err(&pdev->dev, 82 - "Found HC with no IRQ. Check %s setup!\n", 83 - dev_name(&pdev->dev)); 84 - return -ENODEV; 85 - } 86 - irq = res->start; 79 + irq = platform_get_irq(pdev, 0); 80 + if (irq < 0) 81 + return irq; 87 82 88 83 hcd = __usb_create_hcd(&fsl_ehci_hc_driver, pdev->dev.parent, 89 84 &pdev->dev, dev_name(&pdev->dev), NULL);
+3
drivers/usb/host/fsl-mph-dr-of.c
··· 112 112 goto error; 113 113 } 114 114 115 + pdev->dev.of_node = ofdev->dev.of_node; 116 + pdev->dev.of_node_reused = true; 117 + 115 118 retval = platform_device_add(pdev); 116 119 if (retval) 117 120 goto error;
+3
drivers/usb/serial/ftdi_sio.c
··· 1023 1023 { USB_DEVICE(FTDI_VID, CHETCO_SEASMART_DISPLAY_PID) }, 1024 1024 { USB_DEVICE(FTDI_VID, CHETCO_SEASMART_LITE_PID) }, 1025 1025 { USB_DEVICE(FTDI_VID, CHETCO_SEASMART_ANALOG_PID) }, 1026 + /* Belimo Automation devices */ 1027 + { USB_DEVICE(FTDI_VID, BELIMO_ZTH_PID) }, 1028 + { USB_DEVICE(FTDI_VID, BELIMO_ZIP_PID) }, 1026 1029 /* ICP DAS I-756xU devices */ 1027 1030 { USB_DEVICE(ICPDAS_VID, ICPDAS_I7560U_PID) }, 1028 1031 { USB_DEVICE(ICPDAS_VID, ICPDAS_I7561U_PID) },
+6
drivers/usb/serial/ftdi_sio_ids.h
··· 1569 1569 #define CHETCO_SEASMART_ANALOG_PID 0xA5AF /* SeaSmart Analog Adapter */ 1570 1570 1571 1571 /* 1572 + * Belimo Automation 1573 + */ 1574 + #define BELIMO_ZTH_PID 0x8050 1575 + #define BELIMO_ZIP_PID 0xC811 1576 + 1577 + /* 1572 1578 * Unjo AB 1573 1579 */ 1574 1580 #define UNJO_VID 0x22B7
+1
drivers/usb/typec/class.c
··· 1718 1718 partner->usb_pd = 1; 1719 1719 sysfs_notify(&partner_dev->kobj, NULL, 1720 1720 "supports_usb_power_delivery"); 1721 + kobject_uevent(&partner_dev->kobj, KOBJ_CHANGE); 1721 1722 } 1722 1723 put_device(partner_dev); 1723 1724 }