From 73ab85ba3a6669b595157d6b6030241dbcb3ee09 Mon Sep 17 00:00:00 2001 From: juhosg Date: Sat, 27 Feb 2010 16:26:49 +0000 Subject: [PATCH] adm5120: fix build error in the USB driver on 2.6.32 git-svn-id: svn://svn.openwrt.org/openwrt/trunk@19882 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- ...901-adm5120-usb-fix-compiler-warning.patch | 11 ++ ...120-usb-remove-dev-power-power_state.patch | 11 ++ ...-structure-directly-in-debugfs-files.patch | 116 ++++++++++++++++++ 3 files changed, 138 insertions(+) create mode 100644 target/linux/adm5120/patches-2.6.32/901-adm5120-usb-fix-compiler-warning.patch create mode 100644 target/linux/adm5120/patches-2.6.32/902-adm5120-usb-remove-dev-power-power_state.patch create mode 100644 target/linux/adm5120/patches-2.6.32/903-adm5120-usb-use-the-admhcd-structure-directly-in-debugfs-files.patch diff --git a/target/linux/adm5120/patches-2.6.32/901-adm5120-usb-fix-compiler-warning.patch b/target/linux/adm5120/patches-2.6.32/901-adm5120-usb-fix-compiler-warning.patch new file mode 100644 index 000000000..93149df40 --- /dev/null +++ b/target/linux/adm5120/patches-2.6.32/901-adm5120-usb-fix-compiler-warning.patch @@ -0,0 +1,11 @@ +--- a/drivers/usb/host/adm5120-dbg.c ++++ b/drivers/usb/host/adm5120-dbg.c +@@ -133,7 +133,7 @@ urb_print(struct admhcd *ahcd, struct ur + + #define admhc_dbg_sw(ahcd, next, size, format, arg...) \ + do { \ +- if (next) { \ ++ if (next != NULL) { \ + unsigned s_len; \ + s_len = scnprintf(*next, *size, format, ## arg ); \ + *size -= s_len; *next += s_len; \ diff --git a/target/linux/adm5120/patches-2.6.32/902-adm5120-usb-remove-dev-power-power_state.patch b/target/linux/adm5120/patches-2.6.32/902-adm5120-usb-remove-dev-power-power_state.patch new file mode 100644 index 000000000..0256bc6b2 --- /dev/null +++ b/target/linux/adm5120/patches-2.6.32/902-adm5120-usb-remove-dev-power-power_state.patch @@ -0,0 +1,11 @@ +--- a/drivers/usb/host/adm5120-dbg.c ++++ b/drivers/usb/host/adm5120-dbg.c +@@ -632,7 +632,7 @@ static ssize_t fill_registers_buffer(str + hcd->product_desc, + hcd_name); + +- if (bus->controller->power.power_state.event) { ++ if (!test_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags)) { + size -= scnprintf(next, size, + "SUSPENDED (no register access)\n"); + goto done; diff --git a/target/linux/adm5120/patches-2.6.32/903-adm5120-usb-use-the-admhcd-structure-directly-in-debugfs-files.patch b/target/linux/adm5120/patches-2.6.32/903-adm5120-usb-use-the-admhcd-structure-directly-in-debugfs-files.patch new file mode 100644 index 000000000..db6323d02 --- /dev/null +++ b/target/linux/adm5120/patches-2.6.32/903-adm5120-usb-use-the-admhcd-structure-directly-in-debugfs-files.patch @@ -0,0 +1,116 @@ +--- 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;