static void
ohci_dump_status (struct ohci_hcd *controller, char **next, unsigned *size)
{
- struct ohci_regs *regs = controller->regs;
+ struct ohci_regs __iomem *regs = controller->regs;
u32 temp;
- temp = readl (®s->revision) & 0xff;
+ temp = ohci_readl (®s->revision) & 0xff;
ohci_dbg_sw (controller, next, size,
"OHCI %d.%d, %s legacy support registers\n",
0x03 & (temp >> 4), (temp & 0x0f),
(temp & 0x10) ? "with" : "NO");
- temp = readl (®s->control);
+ temp = ohci_readl (®s->control);
ohci_dbg_sw (controller, next, size,
"control 0x%03x%s%s%s HCFS=%s%s%s%s%s CBSR=%d\n",
temp,
temp & OHCI_CTRL_CBSR
);
- temp = readl (®s->cmdstatus);
+ temp = ohci_readl (®s->cmdstatus);
ohci_dbg_sw (controller, next, size,
"cmdstatus 0x%05x SOC=%d%s%s%s%s\n", temp,
(temp & OHCI_SOC) >> 16,
);
ohci_dump_intr_mask (controller, "intrstatus",
- readl (®s->intrstatus), next, size);
+ ohci_readl (®s->intrstatus), next, size);
ohci_dump_intr_mask (controller, "intrenable",
- readl (®s->intrenable), next, size);
+ ohci_readl (®s->intrenable), next, size);
// intrdisable always same as intrenable
maybe_print_eds (controller, "ed_periodcurrent",
- readl (®s->ed_periodcurrent), next, size);
+ ohci_readl (®s->ed_periodcurrent), next, size);
maybe_print_eds (controller, "ed_controlhead",
- readl (®s->ed_controlhead), next, size);
+ ohci_readl (®s->ed_controlhead), next, size);
maybe_print_eds (controller, "ed_controlcurrent",
- readl (®s->ed_controlcurrent), next, size);
+ ohci_readl (®s->ed_controlcurrent), next, size);
maybe_print_eds (controller, "ed_bulkhead",
- readl (®s->ed_bulkhead), next, size);
+ ohci_readl (®s->ed_bulkhead), next, size);
maybe_print_eds (controller, "ed_bulkcurrent",
- readl (®s->ed_bulkcurrent), next, size);
+ ohci_readl (®s->ed_bulkcurrent), next, size);
maybe_print_eds (controller, "donehead",
- readl (®s->donehead), next, size);
+ ohci_readl (®s->donehead), next, size);
}
#define dbg_port_sw(hc,num,value,next,size) \
ohci_dbg (controller, "OHCI controller state\n");
// dumps some of the state we know about
- ohci_dump_status (controller, NULL, 0);
+ ohci_dump_status (controller, NULL, NULL);
if (controller->hcca)
ohci_dbg (controller,
"hcca frame #%04x\n", OHCI_FRAME_NO(controller->hcca));
- ohci_dump_roothub (controller, 1, NULL, 0);
+ ohci_dump_roothub (controller, 1, NULL, NULL);
}
static const char data0 [] = "DATA0";
ohci_dump_ed (const struct ohci_hcd *ohci, const char *label,
const struct ed *ed, int verbose)
{
- u32 tmp = ed->hwINFO;
+ __le32 tmp = ed->hwINFO;
char *type = "";
ohci_dbg (ohci, "%s, ed %p state 0x%x type %s; next ed %08x\n",
type,
0x007f & le32_to_cpu (tmp));
ohci_dbg (ohci, " tds: head %08x %s%s tail %08x%s\n",
- tmp = le32_to_cpup (&ed->hwHeadP),
+ le32_to_cpup (&ed->hwHeadP),
(ed->hwHeadP & ED_C) ? data1 : data0,
(ed->hwHeadP & ED_H) ? " HALT" : "",
le32_to_cpup (&ed->hwTailP),
/* dump a snapshot of the bulk or control schedule */
while (ed) {
- u32 info = ed->hwINFO;
- u32 scratch = cpu_to_le32p (&ed->hwINFO);
+ __le32 info = ed->hwINFO;
+ u32 scratch = le32_to_cpup (&ed->hwINFO);
struct list_head *entry;
struct td *td;
u32 cbp, be;
td = list_entry (entry, struct td, td_list);
- scratch = cpu_to_le32p (&td->hwINFO);
+ scratch = le32_to_cpup (&td->hwINFO);
cbp = le32_to_cpup (&td->hwCBP);
be = le32_to_cpup (&td->hwBE);
temp = scnprintf (buf, size,
/* show more info the first time around */
if (temp == seen_count) {
- u32 info = ed->hwINFO;
- u32 scratch = cpu_to_le32p (&ed->hwINFO);
+ __le32 info = ed->hwINFO;
+ u32 scratch = le32_to_cpup (&ed->hwINFO);
struct list_head *entry;
unsigned qlen = 0;
} else {
/* we've seen it and what's after */
temp = 0;
- ed = 0;
+ ed = NULL;
}
} while (ed);
struct usb_bus *bus;
struct usb_hcd *hcd;
struct ohci_hcd *ohci;
- struct ohci_regs *regs;
+ struct ohci_regs __iomem *regs;
unsigned long flags;
unsigned temp, size;
char *next;
/* dump driver info, then registers in spec order */
ohci_dbg_sw (ohci, &next, &size,
- "%s version " DRIVER_VERSION "\n", hcd_name);
+ "bus %s, device %s\n"
+ "%s version " DRIVER_VERSION "\n",
+ hcd->self.controller->bus->name,
+ hcd->self.controller->bus_id,
+ hcd_name);
+
+ if (bus->controller->power.power_state) {
+ size -= scnprintf (next, size,
+ "SUSPENDED (no register access)\n");
+ goto done;
+ }
ohci_dump_status(ohci, &next, &size);
"hcca frame 0x%04x\n", OHCI_FRAME_NO(ohci->hcca));
/* other registers mostly affect frame timings */
- rdata = readl (®s->fminterval);
+ rdata = ohci_readl (®s->fminterval);
temp = scnprintf (next, size,
"fmintvl 0x%08x %sFSMPS=0x%04x FI=0x%04x\n",
rdata, (rdata >> 31) ? " FIT" : "",
size -= temp;
next += temp;
- rdata = readl (®s->fmremaining);
+ rdata = ohci_readl (®s->fmremaining);
temp = scnprintf (next, size, "fmremaining 0x%08x %sFR=0x%04x\n",
rdata, (rdata >> 31) ? " FRT" : "",
rdata & 0x3fff);
size -= temp;
next += temp;
- rdata = readl (®s->periodicstart);
+ rdata = ohci_readl (®s->periodicstart);
temp = scnprintf (next, size, "periodicstart 0x%04x\n",
rdata & 0x3fff);
size -= temp;
next += temp;
- rdata = readl (®s->lsthresh);
+ rdata = ohci_readl (®s->lsthresh);
temp = scnprintf (next, size, "lsthresh 0x%04x\n",
rdata & 0x3fff);
size -= temp;
/* roothub */
ohci_dump_roothub (ohci, 1, &next, &size);
+done:
spin_unlock_irqrestore (&ohci->lock, flags);
-
return PAGE_SIZE - size;
}
static CLASS_DEVICE_ATTR (registers, S_IRUGO, show_registers, NULL);