/*
* ADM5120 HCD (Host Controller Driver) for USB
*
- * Copyright (C) 2007,2008 Gabor Juhos <juhosg at openwrt.org>
+ * Copyright (C) 2007-2008 Gabor Juhos <juhosg@openwrt.org>
*
* This file was derived from: drivers/usb/host/ohci-dbg.c
* (C) Copyright 1999 Roman Weissgaerber <weissg@vienna.at>
"stat=%d\n",
str,
urb,
- usb_pipedevice (pipe),
- usb_pipeendpoint (pipe),
- usb_pipeout(pipe)? "out" : "in",
+ usb_pipedevice(pipe),
+ usb_pipeendpoint(pipe),
+ usb_pipeout(pipe) ? "out" : "in",
pipestring(pipe),
urb->transfer_flags,
urb->actual_length,
if (usb_pipecontrol(pipe)) {
admhc_dbg(ahcd, "setup(8):");
for (i = 0; i < 8 ; i++)
- printk (" %02x", ((__u8 *) urb->setup_packet) [i]);
- printk ("\n");
+ printk(KERN_INFO" %02x", ((__u8 *)urb->setup_packet)[i]);
+ printk(KERN_INFO "\n");
}
if (urb->transfer_buffer_length > 0 && urb->transfer_buffer) {
admhc_dbg(ahcd, "data(%d/%d):",
urb->actual_length,
urb->transfer_buffer_length);
- len = usb_pipeout(pipe)?
- urb->transfer_buffer_length: urb->actual_length;
+ len = usb_pipeout(pipe) ?
+ urb->transfer_buffer_length : urb->actual_length;
for (i = 0; i < 16 && i < len; i++)
- printk(" %02x", ((__u8 *)urb->transfer_buffer)[i]);
- printk("%s stat:%d\n", i < len? "...": "", status);
+ printk(KERN_INFO " %02x", ((__u8 *)urb->transfer_buffer)[i]);
+ printk(KERN_INFO "%s stat:%d\n", i < len ? "..." : "", status);
}
}
#endif /* ADMHC_VERBOSE_DEBUG */
#define admhc_dbg_sw(ahcd, next, size, format, arg...) \
do { \
- if (next) { \
- unsigned s_len; \
- s_len = scnprintf(*next, *size, format, ## arg ); \
- *size -= s_len; *next += s_len; \
- } else \
- admhc_dbg(ahcd,format, ## arg ); \
+ if (next) { \
+ unsigned s_len; \
+ s_len = scnprintf(*next, *size, format, ## arg); \
+ *size -= s_len; *next += s_len; \
+ } else \
+ admhc_dbg(ahcd, format, ## arg); \
} while (0);
admhc_dbg_sw(ahcd, next, size, "%s %08x\n", label, value);
}
-static char *buss2string (int state)
+static char *buss2string(int state)
{
switch (state) {
case ADMHC_BUSS_RESET:
admhc_readl(ahcd, ®s->hosthead), next, size);
}
-#define dbg_port_sw(hc,num,value,next,size) \
+#define dbg_port_sw(hc, num, value, next, size) \
admhc_dbg_sw(hc, next, size, \
"portstatus [%d] " \
"0x%08x%s%s%s%s%s%s%s%s%s%s%s%s\n", \
/* dumps some of the state we know about */
admhc_dump_status(ahcd, NULL, NULL);
- admhc_dbg(ahcd,"current frame #%04x\n",
+ admhc_dbg(ahcd, "current frame #%04x\n",
admhc_frame_no(ahcd));
admhc_dump_roothub(ahcd, verbose, NULL, NULL);
tmp = hc32_to_cpup(ahcd, &ed->hwHeadP);
admhc_dbg(ahcd, " tds: head %08x tail %08x %s%s%s\n",
tmp & TD_MASK,
- hc32_to_cpup (ahcd, &ed->hwTailP),
+ hc32_to_cpup(ahcd, &ed->hwTailP),
(tmp & ED_C) ? data1 : data0,
(tmp & ED_H) ? " HALT" : "",
verbose ? " td list follows" : " (not listing)");
list_for_each(tmp, &ed->td_list) {
struct td *td;
td = list_entry(tmp, struct td, td_list);
- admhc_dump_td (ahcd, " ->", td);
+ admhc_dump_td(ahcd, " ->", td);
}
}
}
#else /* ifdef DEBUG */
static inline void urb_print(struct admhcd *ahcd, struct urb * urb, char * str,
- int small) {}
+ int small, int status) {}
static inline void admhc_dump_ed(const struct admhcd *ahcd, const char *label,
const struct ed *ed, int verbose) {}
static inline void admhc_dump_td(const struct admhcd *ahcd, const char *label,
static int debug_async_open(struct inode *, struct file *);
static int debug_periodic_open(struct inode *, struct file *);
static int debug_registers_open(struct inode *, struct file *);
-static int debug_async_open(struct inode *, struct file *);
static ssize_t debug_output(struct file*, char __user*, size_t, loff_t*);
static int debug_close(struct inode *, struct file *);
static ssize_t
show_list(struct admhcd *ahcd, char *buf, size_t count, struct ed *ed)
{
- unsigned temp, size = count;
+ unsigned temp;
+ unsigned size = count;
if (!ed)
return 0;
" h:%08x t:%08x",
ed,
ed_statestring(ed->state),
- ed_typestring (ed->type),
+ ed_typestring(ed->type),
(info & ED_SPEED_FULL) ? 'f' : 'l',
info & ED_FA_MASK,
(info >> ED_EN_SHIFT) & ED_EN_MASK,
(info & ED_SKIP) ? " S" : "",
(headp & ED_H) ? " H" : "",
(headp & ED_C) ? data1 : data0,
- headp & ED_MASK,tailp);
+ headp & ED_MASK, tailp);
size -= temp;
buf += temp;
u32 dbp, cbl;
td = list_entry(entry, struct td, td_list);
- info = hc32_to_cpup (ahcd, &td->hwINFO);
- dbp = hc32_to_cpup (ahcd, &td->hwDBP);
- cbl = hc32_to_cpup (ahcd, &td->hwCBL);
+ info = hc32_to_cpup(ahcd, &td->hwINFO);
+ dbp = hc32_to_cpup(ahcd, &td->hwDBP);
+ cbl = hc32_to_cpup(ahcd, &td->hwCBL);
temp = scnprintf(buf, size,
"\n\ttd/%p %s %d %s%scc=%x urb %p (%08x,%08x)",
TD_BL_GET(cbl),
(info & TD_OWN) ? "" : "DONE ",
(cbl & TD_IE) ? "IE " : "",
- TD_CC_GET (info), td->urb, info, cbl);
+ TD_CC_GET(info), td->urb, info, cbl);
size -= temp;
buf += temp;
}
ed = ed->ed_next;
}
+
return count - size;
}
hcd = bus_to_hcd(bus);
ahcd = hcd_to_admhcd(hcd);
- /* display control and bulk lists together, for simplicity */
spin_lock_irqsave(&ahcd->lock, flags);
- temp = show_list(ahcd, buf->page, buf->count, ahcd->ed_head);
+ temp = show_list(ahcd, buf->page, PAGE_SIZE, ahcd->ed_head);
spin_unlock_irqrestore(&ahcd->lock, flags);
return temp;
char *next;
unsigned i;
- if (!(seen = kmalloc(DBG_SCHED_LIMIT * sizeof *seen, GFP_ATOMIC)))
+ seen = kmalloc(DBG_SCHED_LIMIT * sizeof(*seen), GFP_ATOMIC);
+ if (!seen)
return 0;
seen_count = 0;
/* dump a snapshot of the periodic schedule (and load) */
spin_lock_irqsave(&ahcd->lock, flags);
for (i = 0; i < NUM_INTS; i++) {
- if (!(ed = ahcd->periodic [i]))
+ ed = ahcd->periodic[i];
+ if (!ed)
continue;
- temp = scnprintf(next, size, "%2d [%3d]:", i, ahcd->load [i]);
+ temp = scnprintf(next, size, "%2d [%3d]:", i, ahcd->load[i]);
size -= temp;
next += temp;
size -= temp;
next += temp;
for (temp = 0; temp < seen_count; temp++) {
- if (seen [temp] == ed)
+ if (seen[temp] == ed)
break;
}
/* show more info the first time around */
if (temp == seen_count) {
- u32 info = hc32_to_cpu (ahcd, ed->hwINFO);
+ u32 info = hc32_to_cpu(ahcd, ed->hwINFO);
struct list_head *entry;
unsigned qlen = 0;
/* qlen measured here in TDs, not urbs */
- list_for_each (entry, &ed->td_list)
+ list_for_each(entry, &ed->td_list)
qlen++;
temp = scnprintf(next, size,
" (%cs dev%d ep%d%s qlen %u"
next += temp;
if (seen_count < DBG_SCHED_LIMIT)
- seen [seen_count++] = ed;
+ seen[seen_count++] = ed;
ed = ed->ed_next;
next += temp;
}
spin_unlock_irqrestore(&ahcd->lock, flags);
- kfree (seen);
+ kfree(seen);
return PAGE_SIZE - size;
}
"%s\n"
"%s version " DRIVER_VERSION "\n",
hcd->self.controller->bus->name,
- hcd->self.controller->bus_id,
+ dev_name(hcd->self.controller),
hcd->product_desc,
hcd_name);