Ignore:
Timestamp:
2010-05-24T01:01:22+02:00 (7 years ago)
Author:
hauke
Message:

[backfire] backport r21427

brcm47xx: ehci-ssb: some updates:

  • update pointers in struct hc_driver
  • make ssb_ehci_detach more look like the pci version
  • remove resume and suspend as they are never activated and not compiling
  • replace ssb_ehci_start with ehci_run as it only calls this method
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/backfire/target/linux/brcm47xx/patches-2.6.32/270-ehci-ssb.patch

    r19781 r21560  
    5151--- /dev/null 
    5252+++ b/drivers/usb/host/ehci-ssb.c 
    53 @@ -0,0 +1,201 @@ 
     53@@ -0,0 +1,158 @@ 
    5454+/* 
    5555+ * Sonics Silicon Backplane 
     
    9191+} 
    9292+ 
    93 + 
    9493+static int ssb_ehci_reset(struct usb_hcd *hcd) 
    9594+{ 
     
    116115+               return err; 
    117116+ 
    118 +       ehci_port_power(ehci, 0); 
     117+       ehci_reset(ehci); 
    119118+ 
    120119+       return err; 
    121120+} 
    122 + 
    123 +static int ssb_ehci_start(struct usb_hcd *hcd) 
    124 +{ 
    125 +       struct ehci_hcd *ehci = hcd_to_ehci(hcd); 
    126 +       int err; 
    127 + 
    128 +       err = ehci_run(hcd); 
    129 +       if (err < 0) { 
    130 +               ehci_err(ehci, "can't start\n"); 
    131 +               ehci_stop(hcd); 
    132 +       } 
    133 + 
    134 +       return err; 
    135 +} 
    136 + 
    137 +#ifdef CONFIG_PM 
    138 +static int ssb_ehci_hcd_suspend(struct usb_hcd *hcd, pm_message_t message) 
    139 +{ 
    140 +       struct ssb_ehci_device *ehcidev = hcd_to_ssb_ehci(hcd); 
    141 +       struct ehci_hcd *ehci = &ehcidev->ehci; 
    142 +       unsigned long flags; 
    143 + 
    144 +       spin_lock_irqsave(&ehci->lock, flags); 
    145 + 
    146 +       ehci_writel(ehci, EHCI_INTR_MIE, &ehci->regs->intrdisable); 
    147 +       ehci_readl(ehci, &ehci->regs->intrdisable); /* commit write */ 
    148 + 
    149 +       /* make sure snapshot being resumed re-enumerates everything */ 
    150 +       if (message.event == PM_EVENT_PRETHAW) 
    151 +               ehci_usb_reset(ehci); 
    152 + 
    153 +       clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags); 
    154 + 
    155 +       spin_unlock_irqrestore(&ehci->lock, flags); 
    156 +       return 0; 
    157 +} 
    158 + 
    159 +static int ssb_ehci_hcd_resume(struct usb_hcd *hcd) 
    160 +{ 
    161 +       set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags); 
    162 +       usb_hcd_resume_root_hub(hcd); 
    163 +       return 0; 
    164 +} 
    165 +#endif /* CONFIG_PM */ 
    166121+ 
    167122+static const struct hc_driver ssb_ehci_hc_driver = { 
     
    174129+ 
    175130+       .reset                  = ssb_ehci_reset, 
    176 +       .start                  = ssb_ehci_start, 
     131+       .start                  = ehci_run, 
    177132+       .stop                   = ehci_stop, 
    178133+       .shutdown               = ehci_shutdown, 
    179 + 
    180 +#ifdef CONFIG_PM 
    181 +       .suspend                = ssb_ehci_hcd_suspend, 
    182 +       .resume                 = ssb_ehci_hcd_resume, 
    183 +#endif 
    184134+ 
    185135+       .urb_enqueue            = ehci_urb_enqueue, 
    186136+       .urb_dequeue            = ehci_urb_dequeue, 
    187137+       .endpoint_disable       = ehci_endpoint_disable, 
     138+       .endpoint_reset         = ehci_endpoint_reset, 
    188139+ 
    189140+       .get_frame_number       = ehci_get_frame, 
     
    191142+       .hub_status_data        = ehci_hub_status_data, 
    192143+       .hub_control            = ehci_hub_control, 
    193 +#ifdef CONFIG_PM 
    194144+       .bus_suspend            = ehci_bus_suspend, 
    195145+       .bus_resume             = ehci_bus_resume, 
    196 +#endif 
    197 + 
     146+       .relinquish_port        = ehci_relinquish_port, 
     147+       .port_handed_over       = ehci_port_handed_over, 
     148+ 
     149+       .clear_tt_buffer_complete = ehci_clear_tt_buffer_complete, 
    198150+}; 
    199151+ 
    200152+static void ssb_ehci_detach(struct ssb_device *dev, struct usb_hcd *hcd) 
    201153+{ 
     154+       if (hcd->driver->shutdown) 
     155+               hcd->driver->shutdown(hcd); 
    202156+ 
    203157+       usb_remove_hcd(hcd); 
     158+ 
    204159+       iounmap(hcd->regs); 
     160+       release_mem_region(hcd->rsrc_start, hcd->rsrc_len); 
     161+ 
    205162+       usb_put_hcd(hcd); 
    206163+} 
Note: See TracChangeset for help on using the changeset viewer.