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

Pull USB fixes from Greg KH:
"Here are some small USB fixes for 5.7-rc5 to resolve some reported
issues:

- syzbot found problems fixed

- usbfs dma mapping fix

- typec bugfixs

- chipidea bugfix

- usb4/thunderbolt fix

- new device ids/quirks

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

* tag 'usb-5.7-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
usb: chipidea: msm: Ensure proper controller reset using role switch API
usb: typec: mux: intel: Handle alt mode HPD_HIGH
usb: usbfs: correct kernel->user page attribute mismatch
usb: typec: intel_pmc_mux: Fix the property names
USB: core: Fix misleading driver bug report
USB: serial: qcserial: Add DW5816e support
USB: uas: add quirk for LaCie 2Big Quadra
thunderbolt: Check return value of tb_sw_read() in usb4_switch_op()
USB: serial: garmin_gps: add sanity checking for data length

+24 -10
+3
drivers/thunderbolt/usb4.c
··· 182 182 return ret; 183 183 184 184 ret = tb_sw_read(sw, &val, TB_CFG_SWITCH, ROUTER_CS_26, 1); 185 + if (ret) 186 + return ret; 187 + 185 188 if (val & ROUTER_CS_26_ONS) 186 189 return -EOPNOTSUPP; 187 190
+1 -1
drivers/usb/chipidea/ci_hdrc_msm.c
··· 114 114 hw_write_id_reg(ci, HS_PHY_GENCONFIG_2, 115 115 HS_PHY_ULPI_TX_PKT_EN_CLR_FIX, 0); 116 116 117 - if (!IS_ERR(ci->platdata->vbus_extcon.edev)) { 117 + if (!IS_ERR(ci->platdata->vbus_extcon.edev) || ci->role_switch) { 118 118 hw_write_id_reg(ci, HS_PHY_GENCONFIG_2, 119 119 HS_PHY_SESS_VLD_CTRL_EN, 120 120 HS_PHY_SESS_VLD_CTRL_EN);
+2 -3
drivers/usb/core/devio.c
··· 217 217 { 218 218 struct usb_memory *usbm = NULL; 219 219 struct usb_dev_state *ps = file->private_data; 220 + struct usb_hcd *hcd = bus_to_hcd(ps->dev->bus); 220 221 size_t size = vma->vm_end - vma->vm_start; 221 222 void *mem; 222 223 unsigned long flags; ··· 251 250 usbm->vma_use_count = 1; 252 251 INIT_LIST_HEAD(&usbm->memlist); 253 252 254 - if (remap_pfn_range(vma, vma->vm_start, 255 - virt_to_phys(usbm->mem) >> PAGE_SHIFT, 256 - size, vma->vm_page_prot) < 0) { 253 + if (dma_mmap_coherent(hcd->self.sysdev, vma, mem, dma_handle, size)) { 257 254 dec_usb_memory_use_count(usbm, &usbm->vma_use_count); 258 255 return -EAGAIN; 259 256 }
+2 -2
drivers/usb/core/message.c
··· 1144 1144 1145 1145 if (usb_endpoint_out(epaddr)) { 1146 1146 ep = dev->ep_out[epnum]; 1147 - if (reset_hardware) 1147 + if (reset_hardware && epnum != 0) 1148 1148 dev->ep_out[epnum] = NULL; 1149 1149 } else { 1150 1150 ep = dev->ep_in[epnum]; 1151 - if (reset_hardware) 1151 + if (reset_hardware && epnum != 0) 1152 1152 dev->ep_in[epnum] = NULL; 1153 1153 } 1154 1154 if (ep) {
+2 -2
drivers/usb/serial/garmin_gps.c
··· 1138 1138 send it directly to the tty port */ 1139 1139 if (garmin_data_p->flags & FLAGS_QUEUING) { 1140 1140 pkt_add(garmin_data_p, data, data_length); 1141 - } else if (bulk_data || 1142 - getLayerId(data) == GARMIN_LAYERID_APPL) { 1141 + } else if (bulk_data || (data_length >= sizeof(u32) && 1142 + getLayerId(data) == GARMIN_LAYERID_APPL)) { 1143 1143 1144 1144 spin_lock_irqsave(&garmin_data_p->lock, flags); 1145 1145 garmin_data_p->flags |= APP_RESP_SEEN;
+1
drivers/usb/serial/qcserial.c
··· 173 173 {DEVICE_SWI(0x413c, 0x81b3)}, /* Dell Wireless 5809e Gobi(TM) 4G LTE Mobile Broadband Card (rev3) */ 174 174 {DEVICE_SWI(0x413c, 0x81b5)}, /* Dell Wireless 5811e QDL */ 175 175 {DEVICE_SWI(0x413c, 0x81b6)}, /* Dell Wireless 5811e QDL */ 176 + {DEVICE_SWI(0x413c, 0x81cc)}, /* Dell Wireless 5816e */ 176 177 {DEVICE_SWI(0x413c, 0x81cf)}, /* Dell Wireless 5819 */ 177 178 {DEVICE_SWI(0x413c, 0x81d0)}, /* Dell Wireless 5819 */ 178 179 {DEVICE_SWI(0x413c, 0x81d1)}, /* Dell Wireless 5818 */
+7
drivers/usb/storage/unusual_uas.h
··· 28 28 * and don't forget to CC: the USB development list <linux-usb@vger.kernel.org> 29 29 */ 30 30 31 + /* Reported-by: Julian Groß <julian.g@posteo.de> */ 32 + UNUSUAL_DEV(0x059f, 0x105f, 0x0000, 0x9999, 33 + "LaCie", 34 + "2Big Quadra USB3", 35 + USB_SC_DEVICE, USB_PR_DEVICE, NULL, 36 + US_FL_NO_REPORT_OPCODES), 37 + 31 38 /* 32 39 * Apricorn USB3 dongle sometimes returns "USBSUSBSUSBS" in response to SCSI 33 40 * commands in UAS mode. Observed with the 1.28 firmware; are there others?
+6 -2
drivers/usb/typec/mux/intel_pmc_mux.c
··· 157 157 req.mode_data |= (state->mode - TYPEC_STATE_MODAL) << 158 158 PMC_USB_ALTMODE_DP_MODE_SHIFT; 159 159 160 + if (data->status & DP_STATUS_HPD_STATE) 161 + req.mode_data |= PMC_USB_DP_HPD_LVL << 162 + PMC_USB_ALTMODE_DP_MODE_SHIFT; 163 + 160 164 return pmc_usb_command(port, (void *)&req, sizeof(req)); 161 165 } 162 166 ··· 302 298 struct typec_mux_desc mux_desc = { }; 303 299 int ret; 304 300 305 - ret = fwnode_property_read_u8(fwnode, "usb2-port", &port->usb2_port); 301 + ret = fwnode_property_read_u8(fwnode, "usb2-port-number", &port->usb2_port); 306 302 if (ret) 307 303 return ret; 308 304 309 - ret = fwnode_property_read_u8(fwnode, "usb3-port", &port->usb3_port); 305 + ret = fwnode_property_read_u8(fwnode, "usb3-port-number", &port->usb3_port); 310 306 if (ret) 311 307 return ret; 312 308