This patch fixes the following issues I encountered while compiling kernel 
2.6.38.8 for my Omnima Embedded Controller/Edimax BR6104KP:
    - kernel comes up with machine selection during build, even though 
everything was properly set in menuconfig
    - USB api changes
Successfully built and tested with r29755.

Signed-off-by: Hartmut Knaack <knaack.h [at] gmx.de>
---
Index: target/linux/adm5120/router_le/config-2.6.38
===================================================================
--- target/linux/adm5120/router_le/config-2.6.38    (Revision 29755)
+++ target/linux/adm5120/router_le/config-2.6.38    (Arbeitskopie)
@@ -47,6 +47,7 @@
 CONFIG_ARM_AMBA=y
 # CONFIG_ARM_SP805_WATCHDOG is not set
 CONFIG_ATA=m
+# CONFIG_ATH79 is not set
 # CONFIG_BCM47XX is not set
 # CONFIG_BCM63XX is not set
 CONFIG_BITREVERSE=y
Index: target/linux/adm5120/patches-2.6.38/010-adm5120_usb_new_api.patch
===================================================================
--- target/linux/adm5120/patches-2.6.38/010-adm5120_usb_new_api.patch    
(Revision 0)
+++ target/linux/adm5120/patches-2.6.38/010-adm5120_usb_new_api.patch    
(Revision 0)
@@ -0,0 +1,57 @@
+Index: drivers/usb/host/adm5120-hcd.c
+===================================================================
+--- a/drivers/usb/host/adm5120-hcd.c
++++ b/drivers/usb/host/adm5120-hcd.c
+@@ -32,6 +32,7 @@
+ #include <linux/list.h>
+ #include <linux/usb.h>
+ #include <linux/usb/otg.h>
++#include <linux/usb/hcd.h>
+ #include <linux/dma-mapping.h>
+ #include <linux/dmapool.h>
+ #include <linux/reboot.h>
+@@ -43,8 +44,6 @@
+ #include <asm/unaligned.h>
+ #include <asm/byteorder.h>
+
+-#include "../core/hcd.h"
+-#include "../core/hub.h"
+
+ #define DRIVER_VERSION    "0.27.0"
+ #define DRIVER_AUTHOR    "Gabor Juhos <juh...@openwrt.org>"
+@@ -571,7 +571,7 @@
+     periodic_reinit(ahcd);
+
+     /* use rhsc irqs after khubd is fully initialized */
+-    hcd->poll_rh = 1;
++    set_bit(HCD_FLAG_POLL_RH, &hcd->flags);
+     hcd->uses_new_polling = 1;
+
+ #if 0
+@@ -688,7 +688,7 @@
+          */
+         admhc_vdbg(ahcd, "Resume Detect\n");
+         admhc_intr_ack(ahcd, ADMHC_INTR_RESI);
+-        hcd->poll_rh = 1;
++        set_bit(HCD_FLAG_POLL_RH, &hcd->flags);
+         if (ahcd->autostop) {
+             spin_lock(&ahcd->lock);
+             admhc_rh_resume(ahcd);
+Index: drivers/usb/host/adm5120-hub.c
+===================================================================
+--- a/drivers/usb/host/adm5120-hub.c
++++ b/drivers/usb/host/adm5120-hub.c
+@@ -106,8 +106,11 @@
+         }
+     }
+
+-    hcd->poll_rh = admhc_root_hub_state_changes(ahcd, changed,
+-            any_connected);
++    if (admhc_root_hub_state_changes(ahcd, changed,
++            any_connected))
++      set_bit(HCD_FLAG_POLL_RH, &hcd->flags);
++    else
++      clear_bit(HCD_FLAG_POLL_RH, &hcd->flags);
+
+ done:
+     spin_unlock_irqrestore(&ahcd->lock, flags);

_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to