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

* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6:
Revert "USB: Correct Makefile to make isp1760 buildable"
usb-serial: fix crash when sub-driver updates firmware
USB: isp1760: urb_dequeue doesn't always find the urbs
USB: Yet another Conexant Clone to add to cdc-acm.c
USB: atmel_usb_udc: Use kzalloc() to allocate ep structures
USB: atmel-usba-udc : fix control out requests.

+29 -5
-1
drivers/usb/Makefile
··· 11 11 obj-$(CONFIG_PCI) += host/ 12 12 obj-$(CONFIG_USB_EHCI_HCD) += host/ 13 13 obj-$(CONFIG_USB_ISP116X_HCD) += host/ 14 - obj-$(CONFIG_USB_ISP1760_HCD) += host/ 15 14 obj-$(CONFIG_USB_OHCI_HCD) += host/ 16 15 obj-$(CONFIG_USB_UHCI_HCD) += host/ 17 16 obj-$(CONFIG_USB_FHCI_HCD) += host/
+3
drivers/usb/class/cdc-acm.c
··· 1375 1375 { USB_DEVICE(0x0572, 0x1324), /* Conexant USB MODEM RD02-D400 */ 1376 1376 .driver_info = NO_UNION_NORMAL, /* has no union descriptor */ 1377 1377 }, 1378 + { USB_DEVICE(0x0572, 0x1328), /* Shiro / Aztech USB MODEM UM-3100 */ 1379 + .driver_info = NO_UNION_NORMAL, /* has no union descriptor */ 1380 + }, 1378 1381 { USB_DEVICE(0x22b8, 0x6425), /* Motorola MOTOMAGX phones */ 1379 1382 }, 1380 1383 { USB_DEVICE(0x0572, 0x1329), /* Hummingbird huc56s (Conexant) */
+3 -2
drivers/usb/gadget/atmel_usba_udc.c
··· 794 794 if (ep->desc) { 795 795 list_add_tail(&req->queue, &ep->queue); 796 796 797 - if (ep->is_in || (ep_is_control(ep) 797 + if ((!ep_is_control(ep) && ep->is_in) || 798 + (ep_is_control(ep) 798 799 && (ep->state == DATA_STAGE_IN 799 800 || ep->state == STATUS_STAGE_IN))) 800 801 usba_ep_writel(ep, CTL_ENB, USBA_TX_PK_RDY); ··· 1941 1940 usba_writel(udc, CTRL, USBA_DISABLE_MASK); 1942 1941 clk_disable(pclk); 1943 1942 1944 - usba_ep = kmalloc(sizeof(struct usba_ep) * pdata->num_ep, 1943 + usba_ep = kzalloc(sizeof(struct usba_ep) * pdata->num_ep, 1945 1944 GFP_KERNEL); 1946 1945 if (!usba_ep) 1947 1946 goto err_alloc_ep;
+22 -2
drivers/usb/host/isp1760-hcd.c
··· 1658 1658 u32 reg_base, or_reg, skip_reg; 1659 1659 unsigned long flags; 1660 1660 struct ptd ptd; 1661 + packet_enqueue *pe; 1661 1662 1662 1663 switch (usb_pipetype(urb->pipe)) { 1663 1664 case PIPE_ISOCHRONOUS: ··· 1670 1669 reg_base = INT_REGS_OFFSET; 1671 1670 or_reg = HC_INT_IRQ_MASK_OR_REG; 1672 1671 skip_reg = HC_INT_PTD_SKIPMAP_REG; 1672 + pe = enqueue_an_INT_packet; 1673 1673 break; 1674 1674 1675 1675 default: ··· 1678 1676 reg_base = ATL_REGS_OFFSET; 1679 1677 or_reg = HC_ATL_IRQ_MASK_OR_REG; 1680 1678 skip_reg = HC_ATL_PTD_SKIPMAP_REG; 1679 + pe = enqueue_an_ATL_packet; 1681 1680 break; 1682 1681 } 1683 1682 ··· 1690 1687 u32 skip_map; 1691 1688 u32 or_map; 1692 1689 struct isp1760_qtd *qtd; 1690 + struct isp1760_qh *qh = ints->qh; 1693 1691 1694 1692 skip_map = isp1760_readl(hcd->regs + skip_reg); 1695 1693 skip_map |= 1 << i; ··· 1703 1699 priv_write_copy(priv, (u32 *)&ptd, hcd->regs + reg_base 1704 1700 + i * sizeof(ptd), sizeof(ptd)); 1705 1701 qtd = ints->qtd; 1706 - 1707 - clean_up_qtdlist(qtd); 1702 + qtd = clean_up_qtdlist(qtd); 1708 1703 1709 1704 free_mem(priv, ints->payload); 1710 1705 ··· 1714 1711 ints->payload = 0; 1715 1712 1716 1713 isp1760_urb_done(priv, urb, status); 1714 + if (qtd) 1715 + pe(hcd, qh, qtd); 1717 1716 break; 1717 + 1718 + } else if (ints->qtd) { 1719 + struct isp1760_qtd *qtd, *prev_qtd = ints->qtd; 1720 + 1721 + for (qtd = ints->qtd->hw_next; qtd; qtd = qtd->hw_next) { 1722 + if (qtd->urb == urb) { 1723 + prev_qtd->hw_next = clean_up_qtdlist(qtd); 1724 + isp1760_urb_done(priv, urb, status); 1725 + break; 1726 + } 1727 + prev_qtd = qtd; 1728 + } 1729 + /* we found the urb before the end of the list */ 1730 + if (qtd) 1731 + break; 1718 1732 } 1719 1733 ints++; 1720 1734 }
+1
drivers/usb/serial/usb-serial.c
··· 974 974 if (retval > 0) { 975 975 /* quietly accept this device, but don't bind to a 976 976 serial port as it's about to disappear */ 977 + serial->num_ports = 0; 977 978 goto exit; 978 979 } 979 980 }