Merge tag 'usb-3.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
Pull USB patches from Greg Kroah-Hartman: "Here's the big USB patch set for the 3.6-rc1 merge window. Lots of little changes in here, primarily for gadget controllers and drivers. There's some scsi changes that I think also went in through the scsi tree, but they merge just fine. All of these patches have been in the linux-next tree for a while now. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>" Fix up trivial conflicts in include/scsi/scsi_device.h (same libata conflict that Jeff had already encountered) * tag 'usb-3.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (207 commits) usb: Add USB_QUIRK_RESET_RESUME for all Logitech UVC webcams usb: Add quirk detection based on interface information usb: s3c-hsotg: Add header file protection macros in s3c-hsotg.h USB: ehci-s5p: Add vbus setup function to the s5p ehci glue layer USB: add USB_VENDOR_AND_INTERFACE_INFO() macro USB: notify phy when root hub port connect change USB: remove 8 bytes of padding from usb_host_interface on 64 bit builds USB: option: add ZTE MF821D USB: sierra: QMI mode MC7710 moved to qcserial USB: qcserial: adding Sierra Wireless devices USB: qcserial: support generic Qualcomm serial ports USB: qcserial: make probe more flexible USB: qcserial: centralize probe exit path USB: qcserial: consolidate usb_set_interface calls USB: ehci-s5p: Add support for device tree USB: ohci-exynos: Add support for device tree USB: ehci-omap: fix compile failure(v1) usb: host: tegra: pass correct pointer in ehci_setup() USB: ehci-fsl: Update ifdef check to work on 64-bit ppc USB: serial: keyspan: Removed unrequired parentheses. ...
This commit is contained in:
@@ -18,6 +18,7 @@
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/gpio.h>
|
||||
|
||||
#include <asm/io.h>
|
||||
@@ -168,14 +169,15 @@ static int omap_1510_local_bus_init(void)
|
||||
|
||||
static void start_hnp(struct ohci_hcd *ohci)
|
||||
{
|
||||
const unsigned port = ohci_to_hcd(ohci)->self.otg_port - 1;
|
||||
struct usb_hcd *hcd = ohci_to_hcd(ohci);
|
||||
const unsigned port = hcd->self.otg_port - 1;
|
||||
unsigned long flags;
|
||||
u32 l;
|
||||
|
||||
otg_start_hnp(ohci->transceiver->otg);
|
||||
otg_start_hnp(hcd->phy->otg);
|
||||
|
||||
local_irq_save(flags);
|
||||
ohci->transceiver->state = OTG_STATE_A_SUSPEND;
|
||||
hcd->phy->state = OTG_STATE_A_SUSPEND;
|
||||
writel (RH_PS_PSS, &ohci->regs->roothub.portstatus [port]);
|
||||
l = omap_readl(OTG_CTRL);
|
||||
l &= ~OTG_A_BUSREQ;
|
||||
@@ -212,18 +214,18 @@ static int ohci_omap_init(struct usb_hcd *hcd)
|
||||
|
||||
#ifdef CONFIG_USB_OTG
|
||||
if (need_transceiver) {
|
||||
ohci->transceiver = usb_get_transceiver();
|
||||
if (ohci->transceiver) {
|
||||
int status = otg_set_host(ohci->transceiver->otg,
|
||||
hcd->phy = usb_get_phy(USB_PHY_TYPE_USB2);
|
||||
if (!IS_ERR_OR_NULL(hcd->phy)) {
|
||||
int status = otg_set_host(hcd->phy->otg,
|
||||
&ohci_to_hcd(ohci)->self);
|
||||
dev_dbg(hcd->self.controller, "init %s transceiver, status %d\n",
|
||||
ohci->transceiver->label, status);
|
||||
dev_dbg(hcd->self.controller, "init %s phy, status %d\n",
|
||||
hcd->phy->label, status);
|
||||
if (status) {
|
||||
usb_put_transceiver(ohci->transceiver);
|
||||
usb_put_phy(hcd->phy);
|
||||
return status;
|
||||
}
|
||||
} else {
|
||||
dev_err(hcd->self.controller, "can't find transceiver\n");
|
||||
dev_err(hcd->self.controller, "can't find phy\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
ohci->start_hnp = start_hnp;
|
||||
@@ -404,9 +406,9 @@ usb_hcd_omap_remove (struct usb_hcd *hcd, struct platform_device *pdev)
|
||||
struct ohci_hcd *ohci = hcd_to_ohci (hcd);
|
||||
|
||||
usb_remove_hcd(hcd);
|
||||
if (ohci->transceiver) {
|
||||
(void) otg_set_host(ohci->transceiver->otg, 0);
|
||||
usb_put_transceiver(ohci->transceiver);
|
||||
if (!IS_ERR_OR_NULL(hcd->phy)) {
|
||||
(void) otg_set_host(hcd->phy->otg, 0);
|
||||
usb_put_phy(hcd->phy);
|
||||
}
|
||||
if (machine_is_omap_osk())
|
||||
gpio_free(9);
|
||||
|
Reference in New Issue
Block a user