diff options
author | Florian Fainelli <florian@openwrt.org> | 2012-04-04 15:53:09 +0000 |
---|---|---|
committer | Florian Fainelli <florian@openwrt.org> | 2012-04-04 15:53:09 +0000 |
commit | b180e0fb3b1b3b89b2ac0e9502919ab4b1785af7 (patch) | |
tree | 332c45090920ea5e5974a0e90bac969ab31aa861 | |
parent | f087e07b5cdd8a042d1f9530e9a909268a87b2a5 (diff) | |
download | master-31e0f0ae-b180e0fb3b1b3b89b2ac0e9502919ab4b1785af7.tar.gz master-31e0f0ae-b180e0fb3b1b3b89b2ac0e9502919ab4b1785af7.tar.bz2 master-31e0f0ae-b180e0fb3b1b3b89b2ac0e9502919ab4b1785af7.zip |
fix support for 2.6.38 kernel
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>
SVN-Revision: 31194
-rw-r--r-- | target/linux/adm5120/patches-2.6.38/010-adm5120_usb_new_api.patch | 53 | ||||
-rw-r--r-- | target/linux/adm5120/router_be/config-2.6.38 | 1 | ||||
-rw-r--r-- | target/linux/adm5120/router_le/config-2.6.38 | 1 |
3 files changed, 55 insertions, 0 deletions
diff --git a/target/linux/adm5120/patches-2.6.38/010-adm5120_usb_new_api.patch b/target/linux/adm5120/patches-2.6.38/010-adm5120_usb_new_api.patch new file mode 100644 index 0000000000..14c54bbd5b --- /dev/null +++ b/target/linux/adm5120/patches-2.6.38/010-adm5120_usb_new_api.patch @@ -0,0 +1,53 @@ +--- 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 <juhosg@openwrt.org>" +@@ -571,7 +570,7 @@ static int admhc_run(struct admhcd *ahcd + 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 +687,7 @@ static irqreturn_t admhc_irq(struct usb_ + */ + 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); +--- a/drivers/usb/host/adm5120-hub.c ++++ b/drivers/usb/host/adm5120-hub.c +@@ -106,8 +106,11 @@ admhc_hub_status_data(struct usb_hcd *hc + } + } + +- 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); diff --git a/target/linux/adm5120/router_be/config-2.6.38 b/target/linux/adm5120/router_be/config-2.6.38 index be61186bfc..d2d20da661 100644 --- a/target/linux/adm5120/router_be/config-2.6.38 +++ b/target/linux/adm5120/router_be/config-2.6.38 @@ -48,6 +48,7 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y 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 diff --git a/target/linux/adm5120/router_le/config-2.6.38 b/target/linux/adm5120/router_le/config-2.6.38 index be61186bfc..d2d20da661 100644 --- a/target/linux/adm5120/router_le/config-2.6.38 +++ b/target/linux/adm5120/router_le/config-2.6.38 @@ -48,6 +48,7 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y 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 |