USB: ohci whitespace/comment fixups
This is an OHCI cleanup patch ... it removes a lot of erroneous whitespace (space before tab, at end of line) as well as the obsolete inline changelog. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
23d8c90e56
commit
dd9048af41
@@ -221,7 +221,7 @@ static const struct hc_driver ohci_at91_hc_driver = {
|
||||
*/
|
||||
.start = ohci_at91_start,
|
||||
.stop = ohci_stop,
|
||||
.shutdown = ohci_shutdown,
|
||||
.shutdown = ohci_shutdown,
|
||||
|
||||
/*
|
||||
* managing i/o requests and associated device resources
|
||||
|
@@ -269,7 +269,7 @@ static const struct hc_driver ohci_au1xxx_hc_driver = {
|
||||
*/
|
||||
.start = ohci_au1xxx_start,
|
||||
.stop = ohci_stop,
|
||||
.shutdown = ohci_shutdown,
|
||||
.shutdown = ohci_shutdown,
|
||||
|
||||
/*
|
||||
* managing i/o requests and associated device resources
|
||||
@@ -336,7 +336,7 @@ static int ohci_hcd_au1xxx_drv_resume(struct platform_device *dev)
|
||||
static struct platform_driver ohci_hcd_au1xxx_driver = {
|
||||
.probe = ohci_hcd_au1xxx_drv_probe,
|
||||
.remove = ohci_hcd_au1xxx_drv_remove,
|
||||
.shutdown = usb_hcd_platform_shutdown,
|
||||
.shutdown = usb_hcd_platform_shutdown,
|
||||
/*.suspend = ohci_hcd_au1xxx_drv_suspend, */
|
||||
/*.resume = ohci_hcd_au1xxx_drv_resume, */
|
||||
.driver = {
|
||||
|
@@ -16,7 +16,7 @@
|
||||
case PIPE_CONTROL: temp = "ctrl"; break; \
|
||||
case PIPE_BULK: temp = "bulk"; break; \
|
||||
case PIPE_INTERRUPT: temp = "intr"; break; \
|
||||
default: temp = "isoc"; break; \
|
||||
default: temp = "isoc"; break; \
|
||||
}; temp;})
|
||||
#define pipestring(pipe) edstring(usb_pipetype(pipe))
|
||||
|
||||
@@ -205,13 +205,13 @@ ohci_dump_status (struct ohci_hcd *controller, char **next, unsigned *size)
|
||||
(temp & RH_PS_PSSC) ? " PSSC" : "", \
|
||||
(temp & RH_PS_PESC) ? " PESC" : "", \
|
||||
(temp & RH_PS_CSC) ? " CSC" : "", \
|
||||
\
|
||||
\
|
||||
(temp & RH_PS_LSDA) ? " LSDA" : "", \
|
||||
(temp & RH_PS_PPS) ? " PPS" : "", \
|
||||
(temp & RH_PS_PRS) ? " PRS" : "", \
|
||||
(temp & RH_PS_POCI) ? " POCI" : "", \
|
||||
(temp & RH_PS_PSS) ? " PSS" : "", \
|
||||
\
|
||||
\
|
||||
(temp & RH_PS_PES) ? " PES" : "", \
|
||||
(temp & RH_PS_CCS) ? " CCS" : "" \
|
||||
);
|
||||
@@ -563,7 +563,7 @@ show_periodic (struct class_device *class_dev, char *buf)
|
||||
(info & ED_SKIP) ? " K" : "",
|
||||
(ed->hwHeadP &
|
||||
cpu_to_hc32(ohci, ED_H)) ?
|
||||
" H" : "");
|
||||
" H" : "");
|
||||
size -= temp;
|
||||
next += temp;
|
||||
|
||||
|
@@ -204,7 +204,7 @@ static int ohci_hcd_ep93xx_drv_resume(struct platform_device *pdev)
|
||||
static struct platform_driver ohci_hcd_ep93xx_driver = {
|
||||
.probe = ohci_hcd_ep93xx_drv_probe,
|
||||
.remove = ohci_hcd_ep93xx_drv_remove,
|
||||
.shutdown = usb_hcd_platform_shutdown,
|
||||
.shutdown = usb_hcd_platform_shutdown,
|
||||
#ifdef CONFIG_PM
|
||||
.suspend = ohci_hcd_ep93xx_drv_suspend,
|
||||
.resume = ohci_hcd_ep93xx_drv_resume,
|
||||
|
@@ -15,62 +15,6 @@
|
||||
* smarter hardware than UHCI. A download link for the spec available
|
||||
* through the http://www.usb.org website.
|
||||
*
|
||||
* History:
|
||||
*
|
||||
* 2004/03/24 LH7A404 support (Durgesh Pattamatta & Marc Singer)
|
||||
* 2004/02/04 use generic dma_* functions instead of pci_* (dsaxena@plexity.net)
|
||||
* 2003/02/24 show registers in sysfs (Kevin Brosius)
|
||||
*
|
||||
* 2002/09/03 get rid of ed hashtables, rework periodic scheduling and
|
||||
* bandwidth accounting; if debugging, show schedules in driverfs
|
||||
* 2002/07/19 fixes to management of ED and schedule state.
|
||||
* 2002/06/09 SA-1111 support (Christopher Hoover)
|
||||
* 2002/06/01 remember frame when HC won't see EDs any more; use that info
|
||||
* to fix urb unlink races caused by interrupt latency assumptions;
|
||||
* minor ED field and function naming updates
|
||||
* 2002/01/18 package as a patch for 2.5.3; this should match the
|
||||
* 2.4.17 kernel modulo some bugs being fixed.
|
||||
*
|
||||
* 2001/10/18 merge pmac cleanup (Benjamin Herrenschmidt) and bugfixes
|
||||
* from post-2.4.5 patches.
|
||||
* 2001/09/20 URB_ZERO_PACKET support; hcca_dma portability, OPTi warning
|
||||
* 2001/09/07 match PCI PM changes, errnos from Linus' tree
|
||||
* 2001/05/05 fork 2.4.5 version into "hcd" framework, cleanup, simplify;
|
||||
* pbook pci quirks gone (please fix pbook pci sw!) (db)
|
||||
*
|
||||
* 2001/04/08 Identify version on module load (gb)
|
||||
* 2001/03/24 td/ed hashing to remove bus_to_virt (Steve Longerbeam);
|
||||
pci_map_single (db)
|
||||
* 2001/03/21 td and dev/ed allocation uses new pci_pool API (db)
|
||||
* 2001/03/07 hcca allocation uses pci_alloc_consistent (Steve Longerbeam)
|
||||
*
|
||||
* 2000/09/26 fixed races in removing the private portion of the urb
|
||||
* 2000/09/07 disable bulk and control lists when unlinking the last
|
||||
* endpoint descriptor in order to avoid unrecoverable errors on
|
||||
* the Lucent chips. (rwc@sgi)
|
||||
* 2000/08/29 use bandwidth claiming hooks (thanks Randy!), fix some
|
||||
* urb unlink probs, indentation fixes
|
||||
* 2000/08/11 various oops fixes mostly affecting iso and cleanup from
|
||||
* device unplugs.
|
||||
* 2000/06/28 use PCI hotplug framework, for better power management
|
||||
* and for Cardbus support (David Brownell)
|
||||
* 2000/earlier: fixes for NEC/Lucent chips; suspend/resume handling
|
||||
* when the controller loses power; handle UE; cleanup; ...
|
||||
*
|
||||
* v5.2 1999/12/07 URB 3rd preview,
|
||||
* v5.1 1999/11/30 URB 2nd preview, cpia, (usb-scsi)
|
||||
* v5.0 1999/11/22 URB Technical preview, Paul Mackerras powerbook susp/resume
|
||||
* i386: HUB, Keyboard, Mouse, Printer
|
||||
*
|
||||
* v4.3 1999/10/27 multiple HCs, bulk_request
|
||||
* v4.2 1999/09/05 ISO API alpha, new dev alloc, neg Error-codes
|
||||
* v4.1 1999/08/27 Randy Dunlap's - ISO API first impl.
|
||||
* v4.0 1999/08/18
|
||||
* v3.0 1999/06/25
|
||||
* v2.1 1999/05/09 code clean up
|
||||
* v2.0 1999/05/04
|
||||
* v1.0 1999/04/27 initial release
|
||||
*
|
||||
* This file is licenced under the GPL.
|
||||
*/
|
||||
|
||||
@@ -319,7 +263,7 @@ static int ohci_urb_dequeue (struct usb_hcd *hcd, struct urb *urb)
|
||||
#endif
|
||||
|
||||
spin_lock_irqsave (&ohci->lock, flags);
|
||||
if (HC_IS_RUNNING(hcd->state)) {
|
||||
if (HC_IS_RUNNING(hcd->state)) {
|
||||
urb_priv_t *urb_priv;
|
||||
|
||||
/* Unless an IRQ completed the unlink while it was being
|
||||
@@ -516,7 +460,7 @@ static int ohci_init (struct ohci_hcd *ohci)
|
||||
*/
|
||||
static int ohci_run (struct ohci_hcd *ohci)
|
||||
{
|
||||
u32 mask, temp;
|
||||
u32 mask, temp;
|
||||
int first = ohci->fminterval == 0;
|
||||
struct usb_hcd *hcd = ohci_to_hcd(ohci);
|
||||
|
||||
@@ -534,7 +478,7 @@ static int ohci_run (struct ohci_hcd *ohci)
|
||||
/* also: power/overcurrent flags in roothub.a */
|
||||
}
|
||||
|
||||
/* Reset USB nearly "by the book". RemoteWakeupConnected was
|
||||
/* Reset USB nearly "by the book". RemoteWakeupConnected was
|
||||
* saved if boot firmware (BIOS/SMM/...) told us it's connected,
|
||||
* or if bus glue did the same (e.g. for PCI add-in cards with
|
||||
* PCI PM support).
|
||||
|
@@ -23,13 +23,13 @@
|
||||
(temp & RH_PS_PSSC) ? " PSSC" : "", \
|
||||
(temp & RH_PS_PESC) ? " PESC" : "", \
|
||||
(temp & RH_PS_CSC) ? " CSC" : "", \
|
||||
\
|
||||
\
|
||||
(temp & RH_PS_LSDA) ? " LSDA" : "", \
|
||||
(temp & RH_PS_PPS) ? " PPS" : "", \
|
||||
(temp & RH_PS_PRS) ? " PRS" : "", \
|
||||
(temp & RH_PS_POCI) ? " POCI" : "", \
|
||||
(temp & RH_PS_PSS) ? " PSS" : "", \
|
||||
\
|
||||
\
|
||||
(temp & RH_PS_PES) ? " PES" : "", \
|
||||
(temp & RH_PS_CCS) ? " CCS" : "" \
|
||||
);
|
||||
@@ -484,7 +484,7 @@ ohci_hub_descriptor (
|
||||
temp = 0;
|
||||
if (rh & RH_A_NPS) /* no power switching? */
|
||||
temp |= 0x0002;
|
||||
if (rh & RH_A_PSM) /* per-port power switching? */
|
||||
if (rh & RH_A_PSM) /* per-port power switching? */
|
||||
temp |= 0x0001;
|
||||
if (rh & RH_A_NOCP) /* no overcurrent reporting? */
|
||||
temp |= 0x0010;
|
||||
|
@@ -174,7 +174,7 @@ static const struct hc_driver ohci_lh7a404_hc_driver = {
|
||||
*/
|
||||
.start = ohci_lh7a404_start,
|
||||
.stop = ohci_stop,
|
||||
.shutdown = ohci_shutdown,
|
||||
.shutdown = ohci_shutdown,
|
||||
|
||||
/*
|
||||
* managing i/o requests and associated device resources
|
||||
@@ -242,7 +242,7 @@ static int ohci_hcd_lh7a404_drv_resume(struct platform_device *dev)
|
||||
static struct platform_driver ohci_hcd_lh7a404_driver = {
|
||||
.probe = ohci_hcd_lh7a404_drv_probe,
|
||||
.remove = ohci_hcd_lh7a404_drv_remove,
|
||||
.shutdown = usb_hcd_platform_shutdown,
|
||||
.shutdown = usb_hcd_platform_shutdown,
|
||||
/*.suspend = ohci_hcd_lh7a404_drv_suspend, */
|
||||
/*.resume = ohci_hcd_lh7a404_drv_resume, */
|
||||
.driver = {
|
||||
|
@@ -10,15 +10,15 @@
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
* There's basically three types of memory:
|
||||
* OHCI deals with three types of memory:
|
||||
* - data used only by the HCD ... kmalloc is fine
|
||||
* - async and periodic schedules, shared by HC and HCD ... these
|
||||
* need to use dma_pool or dma_alloc_coherent
|
||||
* - driver buffers, read/written by HC ... the hcd glue or the
|
||||
* device driver provides us with dma addresses
|
||||
*
|
||||
* There's also PCI "register" data, which is memory mapped.
|
||||
* No memory seen by this driver is pagable.
|
||||
* There's also "register" data, which is memory mapped.
|
||||
* No memory seen by this driver (or any HCD) may be paged out.
|
||||
*/
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
@@ -447,7 +447,7 @@ static const struct hc_driver ohci_omap_hc_driver = {
|
||||
.reset = ohci_omap_init,
|
||||
.start = ohci_omap_start,
|
||||
.stop = ohci_omap_stop,
|
||||
.shutdown = ohci_shutdown,
|
||||
.shutdown = ohci_shutdown,
|
||||
|
||||
/*
|
||||
* managing i/o requests and associated device resources
|
||||
@@ -533,7 +533,7 @@ static int ohci_omap_resume(struct platform_device *dev)
|
||||
static struct platform_driver ohci_hcd_omap_driver = {
|
||||
.probe = ohci_hcd_omap_drv_probe,
|
||||
.remove = ohci_hcd_omap_drv_remove,
|
||||
.shutdown = usb_hcd_platform_shutdown,
|
||||
.shutdown = usb_hcd_platform_shutdown,
|
||||
#ifdef CONFIG_PM
|
||||
.suspend = ohci_omap_suspend,
|
||||
.resume = ohci_omap_resume,
|
||||
|
@@ -4,7 +4,7 @@
|
||||
* driver for Philips PNX4008 USB Host
|
||||
*
|
||||
* Authors: Dmitry Chigirev <source@mvista.com>
|
||||
* Vitaly Wool <vitalywool@gmail.com>
|
||||
* Vitaly Wool <vitalywool@gmail.com>
|
||||
*
|
||||
* register initialization is based on code examples provided by Philips
|
||||
* Copyright (c) 2005 Koninklijke Philips Electronics N.V.
|
||||
@@ -29,7 +29,7 @@
|
||||
#include <asm/arch/irqs.h>
|
||||
#include <asm/arch/gpio.h>
|
||||
|
||||
#define USB_CTRL IO_ADDRESS(PNX4008_PWRMAN_BASE + 0x64)
|
||||
#define USB_CTRL IO_ADDRESS(PNX4008_PWRMAN_BASE + 0x64)
|
||||
|
||||
/* USB_CTRL bit defines */
|
||||
#define USB_SLAVE_HCLK_EN (1 << 24)
|
||||
|
@@ -85,7 +85,7 @@ static int usb_hcd_ppc_soc_probe(const struct hc_driver *driver,
|
||||
err2:
|
||||
release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
|
||||
err1:
|
||||
usb_put_hcd(hcd);
|
||||
usb_put_hcd(hcd);
|
||||
return retval;
|
||||
}
|
||||
|
||||
@@ -148,7 +148,7 @@ static const struct hc_driver ohci_ppc_soc_hc_driver = {
|
||||
*/
|
||||
.start = ohci_ppc_soc_start,
|
||||
.stop = ohci_stop,
|
||||
.shutdown = ohci_shutdown,
|
||||
.shutdown = ohci_shutdown,
|
||||
|
||||
/*
|
||||
* managing i/o requests and associated device resources
|
||||
@@ -197,7 +197,7 @@ static int ohci_hcd_ppc_soc_drv_remove(struct platform_device *pdev)
|
||||
static struct platform_driver ohci_hcd_ppc_soc_driver = {
|
||||
.probe = ohci_hcd_ppc_soc_drv_probe,
|
||||
.remove = ohci_hcd_ppc_soc_drv_remove,
|
||||
.shutdown = usb_hcd_platform_shutdown,
|
||||
.shutdown = usb_hcd_platform_shutdown,
|
||||
#ifdef CONFIG_PM
|
||||
/*.suspend = ohci_hcd_ppc_soc_drv_suspend,*/
|
||||
/*.resume = ohci_hcd_ppc_soc_drv_resume,*/
|
||||
|
@@ -270,7 +270,7 @@ static const struct hc_driver ohci_pxa27x_hc_driver = {
|
||||
*/
|
||||
.start = ohci_pxa27x_start,
|
||||
.stop = ohci_stop,
|
||||
.shutdown = ohci_shutdown,
|
||||
.shutdown = ohci_shutdown,
|
||||
|
||||
/*
|
||||
* managing i/o requests and associated device resources
|
||||
@@ -359,7 +359,7 @@ static int ohci_hcd_pxa27x_drv_resume(struct platform_device *pdev)
|
||||
static struct platform_driver ohci_hcd_pxa27x_driver = {
|
||||
.probe = ohci_hcd_pxa27x_drv_probe,
|
||||
.remove = ohci_hcd_pxa27x_drv_remove,
|
||||
.shutdown = usb_hcd_platform_shutdown,
|
||||
.shutdown = usb_hcd_platform_shutdown,
|
||||
#ifdef CONFIG_PM
|
||||
.suspend = ohci_hcd_pxa27x_drv_suspend,
|
||||
.resume = ohci_hcd_pxa27x_drv_resume,
|
||||
|
@@ -107,7 +107,6 @@ static int balance (struct ohci_hcd *ohci, int interval, int load)
|
||||
*/
|
||||
for (i = 0; i < interval ; i++) {
|
||||
if (branch < 0 || ohci->load [branch] > ohci->load [i]) {
|
||||
#if 1 /* CONFIG_USB_BANDWIDTH */
|
||||
int j;
|
||||
|
||||
/* usb 1.1 says 90% of one frame */
|
||||
@@ -117,7 +116,6 @@ static int balance (struct ohci_hcd *ohci, int interval, int load)
|
||||
}
|
||||
if (j < NUM_INTS)
|
||||
continue;
|
||||
#endif
|
||||
branch = i;
|
||||
}
|
||||
}
|
||||
@@ -413,9 +411,9 @@ static struct ed *ed_get (
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* dummy td; end of td list for ed */
|
||||
/* dummy td; end of td list for ed */
|
||||
td = td_alloc (ohci, GFP_ATOMIC);
|
||||
if (!td) {
|
||||
if (!td) {
|
||||
/* out of memory */
|
||||
ed_free (ohci, ed);
|
||||
ed = NULL;
|
||||
@@ -597,7 +595,7 @@ static void td_submit_urb (
|
||||
* use the device toggle bits for resetting, and rely on the fact
|
||||
* that resetting toggle is meaningless if the endpoint is active.
|
||||
*/
|
||||
if (!usb_gettoggle (urb->dev, usb_pipeendpoint (urb->pipe), is_out)) {
|
||||
if (!usb_gettoggle (urb->dev, usb_pipeendpoint (urb->pipe), is_out)) {
|
||||
usb_settoggle (urb->dev, usb_pipeendpoint (urb->pipe),
|
||||
is_out, 1);
|
||||
urb_priv->ed->hwHeadP &= ~cpu_to_hc32 (ohci, ED_C);
|
||||
@@ -721,16 +719,16 @@ static void td_done (struct ohci_hcd *ohci, struct urb *urb, struct td *td)
|
||||
list_del (&td->td_list);
|
||||
|
||||
/* ISO ... drivers see per-TD length/status */
|
||||
if (tdINFO & TD_ISO) {
|
||||
u16 tdPSW = ohci_hwPSW (ohci, td, 0);
|
||||
if (tdINFO & TD_ISO) {
|
||||
u16 tdPSW = ohci_hwPSW (ohci, td, 0);
|
||||
int dlen = 0;
|
||||
|
||||
/* NOTE: assumes FC in tdINFO == 0, and that
|
||||
* only the first of 0..MAXPSW psws is used.
|
||||
*/
|
||||
|
||||
cc = (tdPSW >> 12) & 0xF;
|
||||
if (tdINFO & TD_CC) /* hc didn't touch? */
|
||||
cc = (tdPSW >> 12) & 0xF;
|
||||
if (tdINFO & TD_CC) /* hc didn't touch? */
|
||||
return;
|
||||
|
||||
if (usb_pipeout (urb->pipe))
|
||||
@@ -758,7 +756,7 @@ static void td_done (struct ohci_hcd *ohci, struct urb *urb, struct td *td)
|
||||
int type = usb_pipetype (urb->pipe);
|
||||
u32 tdBE = hc32_to_cpup (ohci, &td->hwBE);
|
||||
|
||||
cc = TD_CC_GET (tdINFO);
|
||||
cc = TD_CC_GET (tdINFO);
|
||||
|
||||
/* update packet status if needed (short is normally ok) */
|
||||
if (cc == TD_DATAUNDERRUN
|
||||
@@ -787,7 +785,7 @@ static void td_done (struct ohci_hcd *ohci, struct urb *urb, struct td *td)
|
||||
urb, td, 1 + td->index, cc,
|
||||
urb->actual_length,
|
||||
urb->transfer_buffer_length);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
@@ -795,7 +793,7 @@ static void td_done (struct ohci_hcd *ohci, struct urb *urb, struct td *td)
|
||||
static inline struct td *
|
||||
ed_halted (struct ohci_hcd *ohci, struct td *td, int cc, struct td *rev)
|
||||
{
|
||||
struct urb *urb = td->urb;
|
||||
struct urb *urb = td->urb;
|
||||
struct ed *ed = td->ed;
|
||||
struct list_head *tmp = td->td_list.next;
|
||||
__hc32 toggle = ed->hwHeadP & cpu_to_hc32 (ohci, ED_C);
|
||||
@@ -882,7 +880,7 @@ static struct td *dl_reverse_done_list (struct ohci_hcd *ohci)
|
||||
* prepend to ours. ed->td_list changes later.
|
||||
*/
|
||||
while (td_dma) {
|
||||
int cc;
|
||||
int cc;
|
||||
|
||||
td = dma_to_td (ohci, td_dma);
|
||||
if (!td) {
|
||||
@@ -1013,7 +1011,7 @@ rescan_this:
|
||||
|
||||
if (modified)
|
||||
goto rescan_all;
|
||||
}
|
||||
}
|
||||
|
||||
/* maybe reenable control and bulk lists */
|
||||
if (HC_IS_RUNNING(ohci_to_hcd(ohci)->state)
|
||||
@@ -1047,14 +1045,14 @@ rescan_this:
|
||||
ohci->hc_control |= control;
|
||||
if (ohci->flags & OHCI_QUIRK_ZFMICRO)
|
||||
mdelay(1);
|
||||
ohci_writel (ohci, ohci->hc_control,
|
||||
ohci_writel (ohci, ohci->hc_control,
|
||||
&ohci->regs->control);
|
||||
}
|
||||
}
|
||||
if (command) {
|
||||
if (ohci->flags & OHCI_QUIRK_ZFMICRO)
|
||||
mdelay(1);
|
||||
ohci_writel (ohci, command, &ohci->regs->cmdstatus);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1074,19 +1072,19 @@ dl_done_list (struct ohci_hcd *ohci)
|
||||
{
|
||||
struct td *td = dl_reverse_done_list (ohci);
|
||||
|
||||
while (td) {
|
||||
while (td) {
|
||||
struct td *td_next = td->next_dl_td;
|
||||
struct urb *urb = td->urb;
|
||||
urb_priv_t *urb_priv = urb->hcpriv;
|
||||
struct ed *ed = td->ed;
|
||||
|
||||
/* update URB's length and status from TD */
|
||||
td_done (ohci, urb, td);
|
||||
urb_priv->td_cnt++;
|
||||
td_done (ohci, urb, td);
|
||||
urb_priv->td_cnt++;
|
||||
|
||||
/* If all this urb's TDs are done, call complete() */
|
||||
if (urb_priv->td_cnt == urb_priv->length)
|
||||
finish_urb (ohci, urb);
|
||||
if (urb_priv->td_cnt == urb_priv->length)
|
||||
finish_urb (ohci, urb);
|
||||
|
||||
/* clean schedule: unlink EDs that are no longer busy */
|
||||
if (list_empty (&ed->td_list)) {
|
||||
@@ -1094,10 +1092,11 @@ dl_done_list (struct ohci_hcd *ohci)
|
||||
start_ed_unlink (ohci, ed);
|
||||
|
||||
/* ... reenabling halted EDs only after fault cleanup */
|
||||
} else if ((ed->hwINFO & cpu_to_hc32 (ohci, ED_SKIP | ED_DEQUEUE))
|
||||
} else if ((ed->hwINFO & cpu_to_hc32 (ohci,
|
||||
ED_SKIP | ED_DEQUEUE))
|
||||
== cpu_to_hc32 (ohci, ED_SKIP)) {
|
||||
td = list_entry (ed->td_list.next, struct td, td_list);
|
||||
if (!(td->hwINFO & cpu_to_hc32 (ohci, TD_DONE))) {
|
||||
if (!(td->hwINFO & cpu_to_hc32 (ohci, TD_DONE))) {
|
||||
ed->hwINFO &= ~cpu_to_hc32 (ohci, ED_SKIP);
|
||||
/* ... hc may need waking-up */
|
||||
switch (ed->type) {
|
||||
@@ -1113,6 +1112,6 @@ dl_done_list (struct ohci_hcd *ohci)
|
||||
}
|
||||
}
|
||||
|
||||
td = td_next;
|
||||
}
|
||||
td = td_next;
|
||||
}
|
||||
}
|
||||
|
@@ -447,7 +447,7 @@ static const struct hc_driver ohci_s3c2410_hc_driver = {
|
||||
*/
|
||||
.start = ohci_s3c2410_start,
|
||||
.stop = ohci_stop,
|
||||
.shutdown = ohci_shutdown,
|
||||
.shutdown = ohci_shutdown,
|
||||
|
||||
/*
|
||||
* managing i/o requests and associated device resources
|
||||
@@ -492,7 +492,7 @@ static int ohci_hcd_s3c2410_drv_remove(struct platform_device *pdev)
|
||||
static struct platform_driver ohci_hcd_s3c2410_driver = {
|
||||
.probe = ohci_hcd_s3c2410_drv_probe,
|
||||
.remove = ohci_hcd_s3c2410_drv_remove,
|
||||
.shutdown = usb_hcd_platform_shutdown,
|
||||
.shutdown = usb_hcd_platform_shutdown,
|
||||
/*.suspend = ohci_hcd_s3c2410_drv_suspend, */
|
||||
/*.resume = ohci_hcd_s3c2410_drv_resume, */
|
||||
.driver = {
|
||||
|
@@ -24,7 +24,7 @@ typedef __u16 __bitwise __hc16;
|
||||
*/
|
||||
struct ed {
|
||||
/* first fields are hardware-specified */
|
||||
__hc32 hwINFO; /* endpoint config bitmap */
|
||||
__hc32 hwINFO; /* endpoint config bitmap */
|
||||
/* info bits defined by hcd */
|
||||
#define ED_DEQUEUE (1 << 27)
|
||||
/* info bits defined by the hardware */
|
||||
@@ -52,11 +52,11 @@ struct ed {
|
||||
* usually: OPER --> UNLINK --> (IDLE | OPER) --> ...
|
||||
*/
|
||||
u8 state; /* ED_{IDLE,UNLINK,OPER} */
|
||||
#define ED_IDLE 0x00 /* NOT linked to HC */
|
||||
#define ED_UNLINK 0x01 /* being unlinked from hc */
|
||||
#define ED_IDLE 0x00 /* NOT linked to HC */
|
||||
#define ED_UNLINK 0x01 /* being unlinked from hc */
|
||||
#define ED_OPER 0x02 /* IS linked to hc */
|
||||
|
||||
u8 type; /* PIPE_{BULK,...} */
|
||||
u8 type; /* PIPE_{BULK,...} */
|
||||
|
||||
/* periodic scheduling params (for intr and iso) */
|
||||
u8 branch;
|
||||
@@ -107,22 +107,22 @@ struct td {
|
||||
|
||||
/* (no hwINFO #defines yet for iso tds) */
|
||||
|
||||
__hc32 hwCBP; /* Current Buffer Pointer (or 0) */
|
||||
__hc32 hwNextTD; /* Next TD Pointer */
|
||||
__hc32 hwBE; /* Memory Buffer End Pointer */
|
||||
__hc32 hwCBP; /* Current Buffer Pointer (or 0) */
|
||||
__hc32 hwNextTD; /* Next TD Pointer */
|
||||
__hc32 hwBE; /* Memory Buffer End Pointer */
|
||||
|
||||
/* PSW is only for ISO. Only 1 PSW entry is used, but on
|
||||
* big-endian PPC hardware that's the second entry.
|
||||
*/
|
||||
#define MAXPSW 2
|
||||
__hc16 hwPSW [MAXPSW];
|
||||
__hc16 hwPSW [MAXPSW];
|
||||
|
||||
/* rest are purely for the driver's use */
|
||||
__u8 index;
|
||||
struct ed *ed;
|
||||
struct td *td_hash; /* dma-->td hashtable */
|
||||
struct td *next_dl_td;
|
||||
struct urb *urb;
|
||||
__u8 index;
|
||||
struct ed *ed;
|
||||
struct td *td_hash; /* dma-->td hashtable */
|
||||
struct td *next_dl_td;
|
||||
struct urb *urb;
|
||||
|
||||
dma_addr_t td_dma; /* addr of this TD */
|
||||
dma_addr_t data_dma; /* addr of data it points to */
|
||||
@@ -262,10 +262,10 @@ struct ohci_regs {
|
||||
* HcCommandStatus (cmdstatus) register masks
|
||||
*/
|
||||
#define OHCI_HCR (1 << 0) /* host controller reset */
|
||||
#define OHCI_CLF (1 << 1) /* control list filled */
|
||||
#define OHCI_BLF (1 << 2) /* bulk list filled */
|
||||
#define OHCI_OCR (1 << 3) /* ownership change request */
|
||||
#define OHCI_SOC (3 << 16) /* scheduling overrun count */
|
||||
#define OHCI_CLF (1 << 1) /* control list filled */
|
||||
#define OHCI_BLF (1 << 2) /* bulk list filled */
|
||||
#define OHCI_OCR (1 << 3) /* ownership change request */
|
||||
#define OHCI_SOC (3 << 16) /* scheduling overrun count */
|
||||
|
||||
/*
|
||||
* masks used with interrupt registers:
|
||||
@@ -287,18 +287,18 @@ struct ohci_regs {
|
||||
/* OHCI ROOT HUB REGISTER MASKS */
|
||||
|
||||
/* roothub.portstatus [i] bits */
|
||||
#define RH_PS_CCS 0x00000001 /* current connect status */
|
||||
#define RH_PS_PES 0x00000002 /* port enable status*/
|
||||
#define RH_PS_PSS 0x00000004 /* port suspend status */
|
||||
#define RH_PS_POCI 0x00000008 /* port over current indicator */
|
||||
#define RH_PS_PRS 0x00000010 /* port reset status */
|
||||
#define RH_PS_PPS 0x00000100 /* port power status */
|
||||
#define RH_PS_LSDA 0x00000200 /* low speed device attached */
|
||||
#define RH_PS_CSC 0x00010000 /* connect status change */
|
||||
#define RH_PS_PESC 0x00020000 /* port enable status change */
|
||||
#define RH_PS_PSSC 0x00040000 /* port suspend status change */
|
||||
#define RH_PS_OCIC 0x00080000 /* over current indicator change */
|
||||
#define RH_PS_PRSC 0x00100000 /* port reset status change */
|
||||
#define RH_PS_CCS 0x00000001 /* current connect status */
|
||||
#define RH_PS_PES 0x00000002 /* port enable status*/
|
||||
#define RH_PS_PSS 0x00000004 /* port suspend status */
|
||||
#define RH_PS_POCI 0x00000008 /* port over current indicator */
|
||||
#define RH_PS_PRS 0x00000010 /* port reset status */
|
||||
#define RH_PS_PPS 0x00000100 /* port power status */
|
||||
#define RH_PS_LSDA 0x00000200 /* low speed device attached */
|
||||
#define RH_PS_CSC 0x00010000 /* connect status change */
|
||||
#define RH_PS_PESC 0x00020000 /* port enable status change */
|
||||
#define RH_PS_PSSC 0x00040000 /* port suspend status change */
|
||||
#define RH_PS_OCIC 0x00080000 /* over current indicator change */
|
||||
#define RH_PS_PRSC 0x00100000 /* port reset status change */
|
||||
|
||||
/* roothub.status bits */
|
||||
#define RH_HS_LPS 0x00000001 /* local power status */
|
||||
@@ -364,7 +364,7 @@ struct ohci_hcd {
|
||||
|
||||
struct ed *ed_bulktail; /* last in bulk list */
|
||||
struct ed *ed_controltail; /* last in ctrl list */
|
||||
struct ed *periodic [NUM_INTS]; /* shadow int_table */
|
||||
struct ed *periodic [NUM_INTS]; /* shadow int_table */
|
||||
|
||||
/*
|
||||
* OTG controllers and transceivers need software interaction;
|
||||
@@ -385,7 +385,7 @@ struct ohci_hcd {
|
||||
*/
|
||||
int num_ports;
|
||||
int load [NUM_INTS];
|
||||
u32 hc_control; /* copy of hc control reg */
|
||||
u32 hc_control; /* copy of hc control reg */
|
||||
unsigned long next_statechange; /* suspend/resume */
|
||||
u32 fminterval; /* saved register */
|
||||
unsigned autostop:1; /* rh auto stopping/stopped */
|
||||
@@ -598,7 +598,7 @@ static inline void disable (struct ohci_hcd *ohci)
|
||||
}
|
||||
|
||||
#define FI 0x2edf /* 12000 bits per frame (-1) */
|
||||
#define FSMP(fi) (0x7fff & ((6 * ((fi) - 210)) / 7))
|
||||
#define FSMP(fi) (0x7fff & ((6 * ((fi) - 210)) / 7))
|
||||
#define FIT (1 << 31)
|
||||
#define LSTHRESH 0x628 /* lowspeed bit threshold */
|
||||
|
||||
|
Reference in New Issue
Block a user