--- a/drivers/usb/host/adm5120-dbg.c +++ b/drivers/usb/host/adm5120-dbg.c @@ -419,7 +419,7 @@ static struct dentry *admhc_debug_root; struct debug_buffer { ssize_t (*fill_func)(struct debug_buffer *); /* fill method */ - struct device *dev; + struct admhcd *ahcd; struct mutex mutex; /* protect filling of buffer */ size_t count; /* number of characters filled into buffer */ char *page; @@ -494,15 +494,11 @@ show_list(struct admhcd *ahcd, char *buf static ssize_t fill_async_buffer(struct debug_buffer *buf) { - struct usb_bus *bus; - struct usb_hcd *hcd; struct admhcd *ahcd; size_t temp; unsigned long flags; - bus = dev_get_drvdata(buf->dev); - hcd = bus_to_hcd(bus); - ahcd = hcd_to_admhcd(hcd); + ahcd = buf->ahcd; spin_lock_irqsave(&ahcd->lock, flags); temp = show_list(ahcd, buf->page, PAGE_SIZE, ahcd->ed_head); @@ -516,8 +512,6 @@ static ssize_t fill_async_buffer(struct static ssize_t fill_periodic_buffer(struct debug_buffer *buf) { - struct usb_bus *bus; - struct usb_hcd *hcd; struct admhcd *ahcd; struct ed **seen, *ed; unsigned long flags; @@ -529,9 +523,7 @@ static ssize_t fill_periodic_buffer(stru return 0; seen_count = 0; - bus = dev_get_drvdata(buf->dev); - hcd = bus_to_hcd(bus); - ahcd = hcd_to_admhcd(hcd); + ahcd = buf->ahcd; next = buf->page; size = PAGE_SIZE; @@ -613,7 +605,6 @@ static ssize_t fill_periodic_buffer(stru static ssize_t fill_registers_buffer(struct debug_buffer *buf) { - struct usb_bus *bus; struct usb_hcd *hcd; struct admhcd *ahcd; struct admhcd_regs __iomem *regs; @@ -622,9 +613,8 @@ static ssize_t fill_registers_buffer(str char *next; u32 rdata; - bus = dev_get_drvdata(buf->dev); - hcd = bus_to_hcd(bus); - ahcd = hcd_to_admhcd(hcd); + ahcd = buf->ahcd; + hcd = admhcd_to_hcd(ahcd); regs = ahcd->regs; next = buf->page; size = PAGE_SIZE; @@ -689,7 +679,7 @@ done: } -static struct debug_buffer *alloc_buffer(struct device *dev, +static struct debug_buffer *alloc_buffer(struct admhcd *ahcd, ssize_t (*fill_func)(struct debug_buffer *)) { struct debug_buffer *buf; @@ -697,7 +687,7 @@ static struct debug_buffer *alloc_buffer buf = kzalloc(sizeof(struct debug_buffer), GFP_KERNEL); if (buf) { - buf->dev = dev; + buf->ahcd = ahcd; buf->fill_func = fill_func; mutex_init(&buf->mutex); } @@ -790,26 +780,25 @@ static int debug_registers_open(struct i static inline void create_debug_files(struct admhcd *ahcd) { struct usb_bus *bus = &admhcd_to_hcd(ahcd)->self; - struct device *dev = bus->dev; ahcd->debug_dir = debugfs_create_dir(bus->bus_name, admhc_debug_root); if (!ahcd->debug_dir) goto dir_error; ahcd->debug_async = debugfs_create_file("async", S_IRUGO, - ahcd->debug_dir, dev, + ahcd->debug_dir, ahcd, &debug_async_fops); if (!ahcd->debug_async) goto async_error; ahcd->debug_periodic = debugfs_create_file("periodic", S_IRUGO, - ahcd->debug_dir, dev, + ahcd->debug_dir, ahcd, &debug_periodic_fops); if (!ahcd->debug_periodic) goto periodic_error; ahcd->debug_registers = debugfs_create_file("registers", S_IRUGO, - ahcd->debug_dir, dev, + ahcd->debug_dir, ahcd, &debug_registers_fops); if (!ahcd->debug_registers) goto registers_error;