mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 14:34:27 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			117 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
--- 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;
 |