Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

USB: OHCI: use the ohci structure directly in debugfs files.

Right now we jump through some hoops to get to the struct ohci_hcd
struct in the ohci debugfs files. Remove all of the fun casting around
and just use the pointer directly.

This is needed as the dev pointer in the hcd structure is going away,
and it makes the code simpler and smaller

Cc: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

+10 -21
+10 -21
drivers/usb/host/ohci-dbg.c
··· 431 431 432 432 struct debug_buffer { 433 433 ssize_t (*fill_func)(struct debug_buffer *); /* fill method */ 434 - struct device *dev; 434 + struct ohci_hcd *ohci; 435 435 struct mutex mutex; /* protect filling of buffer */ 436 436 size_t count; /* number of characters filled into buffer */ 437 437 char *page; ··· 505 505 506 506 static ssize_t fill_async_buffer(struct debug_buffer *buf) 507 507 { 508 - struct usb_bus *bus; 509 - struct usb_hcd *hcd; 510 508 struct ohci_hcd *ohci; 511 509 size_t temp; 512 510 unsigned long flags; 513 511 514 - bus = dev_get_drvdata(buf->dev); 515 - hcd = bus_to_hcd(bus); 516 - ohci = hcd_to_ohci(hcd); 512 + ohci = buf->ohci; 517 513 518 514 /* display control and bulk lists together, for simplicity */ 519 515 spin_lock_irqsave (&ohci->lock, flags); ··· 525 529 526 530 static ssize_t fill_periodic_buffer(struct debug_buffer *buf) 527 531 { 528 - struct usb_bus *bus; 529 - struct usb_hcd *hcd; 530 532 struct ohci_hcd *ohci; 531 533 struct ed **seen, *ed; 532 534 unsigned long flags; ··· 536 542 return 0; 537 543 seen_count = 0; 538 544 539 - bus = (struct usb_bus *)dev_get_drvdata(buf->dev); 540 - hcd = bus_to_hcd(bus); 541 - ohci = hcd_to_ohci(hcd); 545 + ohci = buf->ohci; 542 546 next = buf->page; 543 547 size = PAGE_SIZE; 544 548 ··· 618 626 619 627 static ssize_t fill_registers_buffer(struct debug_buffer *buf) 620 628 { 621 - struct usb_bus *bus; 622 629 struct usb_hcd *hcd; 623 630 struct ohci_hcd *ohci; 624 631 struct ohci_regs __iomem *regs; ··· 626 635 char *next; 627 636 u32 rdata; 628 637 629 - bus = (struct usb_bus *)dev_get_drvdata(buf->dev); 630 - hcd = bus_to_hcd(bus); 631 - ohci = hcd_to_ohci(hcd); 638 + ohci = buf->ohci; 639 + hcd = ohci_to_hcd(ohci); 632 640 regs = ohci->regs; 633 641 next = buf->page; 634 642 size = PAGE_SIZE; ··· 700 710 return PAGE_SIZE - size; 701 711 } 702 712 703 - static struct debug_buffer *alloc_buffer(struct device *dev, 713 + static struct debug_buffer *alloc_buffer(struct ohci_hcd *ohci, 704 714 ssize_t (*fill_func)(struct debug_buffer *)) 705 715 { 706 716 struct debug_buffer *buf; ··· 708 718 buf = kzalloc(sizeof(struct debug_buffer), GFP_KERNEL); 709 719 710 720 if (buf) { 711 - buf->dev = dev; 721 + buf->ohci = ohci; 712 722 buf->fill_func = fill_func; 713 723 mutex_init(&buf->mutex); 714 724 } ··· 800 810 static inline void create_debug_files (struct ohci_hcd *ohci) 801 811 { 802 812 struct usb_bus *bus = &ohci_to_hcd(ohci)->self; 803 - struct device *dev = bus->dev; 804 813 805 814 ohci->debug_dir = debugfs_create_dir(bus->bus_name, ohci_debug_root); 806 815 if (!ohci->debug_dir) 807 816 goto dir_error; 808 817 809 818 ohci->debug_async = debugfs_create_file("async", S_IRUGO, 810 - ohci->debug_dir, dev, 819 + ohci->debug_dir, ohci, 811 820 &debug_async_fops); 812 821 if (!ohci->debug_async) 813 822 goto async_error; 814 823 815 824 ohci->debug_periodic = debugfs_create_file("periodic", S_IRUGO, 816 - ohci->debug_dir, dev, 825 + ohci->debug_dir, ohci, 817 826 &debug_periodic_fops); 818 827 if (!ohci->debug_periodic) 819 828 goto periodic_error; 820 829 821 830 ohci->debug_registers = debugfs_create_file("registers", S_IRUGO, 822 - ohci->debug_dir, dev, 831 + ohci->debug_dir, ohci, 823 832 &debug_registers_fops); 824 833 if (!ohci->debug_registers) 825 834 goto registers_error;