From 560411655b301b4d7843fbf465f1471823993ea4 Mon Sep 17 00:00:00 2001 From: Florian Fainelli Date: Mon, 6 Aug 2007 18:48:58 +0000 Subject: [PATCH] More rdc-2.6 fixes by Daniel Gimpelevich, thanks ! SVN-Revision: 8355 --- package/rt2x00/Makefile | 18 ++++++-- package/rt2x00/src/Makefile | 2 +- package/rt2x00/src/rt2x00_config.h | 30 ++---------- package/rt61/Makefile | 2 +- .../patches-2.6.22/001-eeprom_93cx6.patch | 46 +++++++++++++++++++ .../patches-2.6.22/002-eeprom_93cx6.patch | 36 +++++++++++++++ .../patches-2.6.22/003-eeprom_93cx6.patch | 34 ++++++++++++++ target/linux/rdc-2.6/Makefile | 4 +- target/linux/rdc-2.6/config/default | 2 + target/linux/rdc-2.6/profiles/AR525W.mk | 2 +- target/linux/rdc-2.6/profiles/WL-153.mk | 2 +- 11 files changed, 144 insertions(+), 34 deletions(-) create mode 100644 target/linux/generic-2.6/patches-2.6.22/001-eeprom_93cx6.patch create mode 100644 target/linux/generic-2.6/patches-2.6.22/002-eeprom_93cx6.patch create mode 100644 target/linux/generic-2.6/patches-2.6.22/003-eeprom_93cx6.patch diff --git a/package/rt2x00/Makefile b/package/rt2x00/Makefile index 551289be35..4ab5a1221b 100644 --- a/package/rt2x00/Makefile +++ b/package/rt2x00/Makefile @@ -9,7 +9,8 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mk -PKG_NAME:=kmod-rt2x00 +PKG_NAME:=rt2x00 +#PKG_VERSION:=cvs-20070725 PKG_VERSION:=git-200706018 include $(INCLUDE_DIR)/package.mk @@ -84,6 +85,11 @@ define KernelPackage/rt61-pci AUTOLOAD:=$(call AutoLoad,27,rt61pci) endef +define KernelPackage/rt61-pci/install + mkdir -p $(1)/lib/firmware + $(CP) -L $(PKG_BUILD_DIR)/rt2?61*.bin $(1)/lib/firmware +endef + define KernelPackage/rt73-usb $(call Package/rt2x00/Default) DEPENDS:=+kmod-rt2x00-usb @@ -93,6 +99,11 @@ define KernelPackage/rt73-usb AUTOLOAD:=$(call AutoLoad,27,rt73usb) endef +define KernelPackage/rt73-usb/install + mkdir -p $(1)/lib/firmware + $(CP) -L $(PKG_BUILD_DIR)/rt73.bin $(1)/lib/firmware +endef + define Build/Prepare $(call Build/Prepare/Default) $(CP) -r src/* $(PKG_BUILD_DIR)/ @@ -100,13 +111,14 @@ define Build/Prepare endef define Build/Compile +# $(MAKE) -C "$(PKG_BUILD_DIR)" config_header $(MAKE) -C "$(LINUX_DIR)" \ CROSS_COMPILE="$(TARGET_CROSS)" \ - ARCH="$(LINUX_KARCH)" \ + ARCH="$(LINUX_KARCH)" V="$(V)" \ SUBDIRS="$(PKG_BUILD_DIR)" \ KERNELVERSION="$(KERNEL)" \ KERNEL_SOURCE="$(LINUX_DIR)" \ - EXTRA_CFLAGS="$(BUILDFLAGS) -include $(PKG_BUILD_DIR)/rt2x00_compat.h" \ + CFLAGS_MODULE="-DMODULE -include $(PKG_BUILD_DIR)/rt2x00_compat.h" \ KDIR="$(LINUX_DIR)" endef diff --git a/package/rt2x00/src/Makefile b/package/rt2x00/src/Makefile index 4f3304f9a8..0ed8321e36 100644 --- a/package/rt2x00/src/Makefile +++ b/package/rt2x00/src/Makefile @@ -1,4 +1,4 @@ -rt2x00lib-objs := rt2x00dev.o rt2x00mac.o +rt2x00lib-objs := rt2x00dev.o rt2x00mac.o rt2x00firmware.o EXTRA_CFLAGS += -DCONFIG_RT2X00_LIB_FIRMWARE diff --git a/package/rt2x00/src/rt2x00_config.h b/package/rt2x00/src/rt2x00_config.h index 8d6343461e..5751dd1f79 100644 --- a/package/rt2x00/src/rt2x00_config.h +++ b/package/rt2x00/src/rt2x00_config.h @@ -12,6 +12,10 @@ #undef CONFIG_RT2X00_ASM +#ifndef CONFIG_RT2X00_LIB_FIRMWARE +#define CONFIG_RT2X00_LIB_FIRMWARE +#endif + #ifndef CONFIG_RT2400PCI #define CONFIG_RT2400PCI #endif @@ -38,29 +42,3 @@ #define CONFIG_RT73USB #endif -#ifndef CONFIG_D80211 -#define CONFIG_D80211 -#endif - -#ifndef CONFIG_D80211_DEBUG -#define CONFIG_D80211_DEBUG -#endif - -#undef CONFIG_D80211_ASM - -#ifndef CONFIG_CRC_ITU_T -#define CONFIG_CRC_ITU_T -#endif - -#undef CONFIG_CRC_ITU_T_ASM - -#ifndef CONFIG_EEPROM_93CX6 -#define CONFIG_EEPROM_93CX6 -#endif - -#undef CONFIG_EEPROM_93CX6_ASM - -#undef CONFIG_RFKILL - -#undef CONFIG_RFKILL_ASM - diff --git a/package/rt61/Makefile b/package/rt61/Makefile index 228cd86a24..c0878c397e 100644 --- a/package/rt61/Makefile +++ b/package/rt61/Makefile @@ -34,7 +34,7 @@ endef define KernelPackage/rt61/install mkdir -p $(1)/lib/firmware - $(CP) -L $(PKG_BUILD_DIR)/Module/rt2*.bin $(1)/lib/firmware + $(CP) -L $(PKG_BUILD_DIR)/Module/rt2?61*.bin $(1)/lib/firmware endef LINUX_PATCHLEVEL:=$(shell echo "$(LINUX_VERSION)" | cut -d. -f2) diff --git a/target/linux/generic-2.6/patches-2.6.22/001-eeprom_93cx6.patch b/target/linux/generic-2.6/patches-2.6.22/001-eeprom_93cx6.patch new file mode 100644 index 0000000000..9bc19fb49b --- /dev/null +++ b/target/linux/generic-2.6/patches-2.6.22/001-eeprom_93cx6.patch @@ -0,0 +1,46 @@ +From: Ivo van Doorn +Date: Mon, 14 May 2007 21:06:01 +0000 (+0200) +Subject: [PATCH] eeprom_93cx6: Add comment for 1us delay after pulse +X-Git-Tag: v2.6.23-rc1~1201^2~73 +X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=4b914dc0493edff19ff698a18198a173a14ba9d2 + +[PATCH] eeprom_93cx6: Add comment for 1us delay after pulse + +This will add a comment for the 1us delay which is taken +after the pulse has been switched. The 1us delay is based +on the specifications so that should be made clear. + +Signed-off-by: Ivo van Doorn +Signed-off-by: John W. Linville +--- + +diff --git a/drivers/misc/eeprom_93cx6.c b/drivers/misc/eeprom_93cx6.c +index bfcb434..0d6d742 100644 +--- a/drivers/misc/eeprom_93cx6.c ++++ b/drivers/misc/eeprom_93cx6.c +@@ -39,6 +39,12 @@ static inline void eeprom_93cx6_pulse_high(struct eeprom_93cx6 *eeprom) + { + eeprom->reg_data_clock = 1; + eeprom->register_write(eeprom); ++ ++ /* ++ * Add a short delay for the pulse to work. ++ * According to the specifications the minimal time ++ * should be 450ns so a 1us delay is sufficient. ++ */ + udelay(1); + } + +@@ -46,6 +52,12 @@ static inline void eeprom_93cx6_pulse_low(struct eeprom_93cx6 *eeprom) + { + eeprom->reg_data_clock = 0; + eeprom->register_write(eeprom); ++ ++ /* ++ * Add a short delay for the pulse to work. ++ * According to the specifications the minimal time ++ * should be 450ns so a 1us delay is sufficient. ++ */ + udelay(1); + } + diff --git a/target/linux/generic-2.6/patches-2.6.22/002-eeprom_93cx6.patch b/target/linux/generic-2.6/patches-2.6.22/002-eeprom_93cx6.patch new file mode 100644 index 0000000000..7f2b125542 --- /dev/null +++ b/target/linux/generic-2.6/patches-2.6.22/002-eeprom_93cx6.patch @@ -0,0 +1,36 @@ +From: John W. Linville +Date: Tue, 12 Jun 2007 01:37:46 +0000 (-0400) +Subject: [PATCH] eeprom_93cx6: shorten pulse timing to match spec +X-Git-Tag: v2.6.23-rc1~1201^2~71 +X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=7e9400f178d291b2208c4ed9aac0f425c1364000 + +[PATCH] eeprom_93cx6: shorten pulse timing to match spec + +93cx6 datasheet available here: + + http://ww1.microchip.com/downloads/en/DeviceDoc/21749F.pdf + +Figure 1-1 and Table 1-2 on pages 4-5 indicate that both Clock High +Time and Clock Low Time have largest minimum times of 450ns. + +Signed-off-by: John W. Linville +--- + +diff --git a/drivers/misc/eeprom_93cx6.c b/drivers/misc/eeprom_93cx6.c +index 0d6d742..ac515b0 100644 +--- a/drivers/misc/eeprom_93cx6.c ++++ b/drivers/misc/eeprom_93cx6.c +@@ -42,10 +42,10 @@ static inline void eeprom_93cx6_pulse_high(struct eeprom_93cx6 *eeprom) + + /* + * Add a short delay for the pulse to work. +- * According to the specifications the minimal time +- * should be 450ns so a 1us delay is sufficient. ++ * According to the specifications the "maximum minimum" ++ * time should be 450ns. + */ +- udelay(1); ++ ndelay(450); + } + + static inline void eeprom_93cx6_pulse_low(struct eeprom_93cx6 *eeprom) diff --git a/target/linux/generic-2.6/patches-2.6.22/003-eeprom_93cx6.patch b/target/linux/generic-2.6/patches-2.6.22/003-eeprom_93cx6.patch new file mode 100644 index 0000000000..ae11f8226e --- /dev/null +++ b/target/linux/generic-2.6/patches-2.6.22/003-eeprom_93cx6.patch @@ -0,0 +1,34 @@ +From: Francois Romieu +Date: Tue, 3 Jul 2007 22:31:44 +0000 (+0200) +Subject: eeprom_93cx6: shorten pulse timing to match spec (bis) +X-Git-Tag: v2.6.23-rc1~1151^2~11 +X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=8abd531e3f77188de2fc41e677d075cc66e61631 + +eeprom_93cx6: shorten pulse timing to match spec (bis) + +Based on an original idea by John W. Linville. + +It is the missing part of 42d45ccd60636c28e35c2016f091783bc14ad99c + +Signed-off-by: Francois Romieu +Signed-off-by: Jeff Garzik +--- + +diff --git a/drivers/misc/eeprom_93cx6.c b/drivers/misc/eeprom_93cx6.c +index ac515b0..ea55654 100644 +--- a/drivers/misc/eeprom_93cx6.c ++++ b/drivers/misc/eeprom_93cx6.c +@@ -55,10 +55,10 @@ static inline void eeprom_93cx6_pulse_low(struct eeprom_93cx6 *eeprom) + + /* + * Add a short delay for the pulse to work. +- * According to the specifications the minimal time +- * should be 450ns so a 1us delay is sufficient. ++ * According to the specifications the "maximum minimum" ++ * time should be 450ns. + */ +- udelay(1); ++ ndelay(450); + } + + static void eeprom_93cx6_startup(struct eeprom_93cx6 *eeprom) diff --git a/target/linux/rdc-2.6/Makefile b/target/linux/rdc-2.6/Makefile index bf096f2422..1b180cd41e 100644 --- a/target/linux/rdc-2.6/Makefile +++ b/target/linux/rdc-2.6/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk ARCH:=i386 BOARD:=rdc BOARDNAME:=RDC x86 -FEATURES:=squashfs jffs2 broken +FEATURES:=squashfs jffs2 LINUX_VERSION:=2.6.22.1 @@ -22,10 +22,12 @@ include $(INCLUDE_DIR)/kernel-build.mk ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y) define Kernel/SetInitramfs + echo "r6040 parent=wlan0" > $(BUILD_DIR)/root/etc/modules.d/99-r6040 rm -f $(BUILD_DIR)/root/sbin/init ln -s /etc/preinit $(BUILD_DIR)/root/sbin/init sed -i 's,exec /sbin/init,exec /bin/busybox init,g' $(BUILD_DIR)/root/etc/preinit sed -i 's,/sbin/init,/bin/busybox init,g' $(BUILD_DIR)/root/init + sed -i 's,eth0,eth1,g' $(BUILD_DIR)/root/etc/config/network endef endif diff --git a/target/linux/rdc-2.6/config/default b/target/linux/rdc-2.6/config/default index c28d44b456..b0990e42e2 100644 --- a/target/linux/rdc-2.6/config/default +++ b/target/linux/rdc-2.6/config/default @@ -27,10 +27,12 @@ CONFIG_CLOCKSOURCE_WATCHDOG=y # CONFIG_COMPAT_VDSO is not set # CONFIG_CPU5_WDT is not set # CONFIG_CPU_FREQ is not set +CONFIG_CRC_ITU_T=y CONFIG_CRYPTO_AES_586=m CONFIG_CRYPTO_ARC4=y CONFIG_CRYPTO_DEV_GEODE=m # CONFIG_CRYPTO_DEV_PADLOCK is not set +CONFIG_CRYPTO_ECB=y CONFIG_CRYPTO_TWOFISH_586=m # CONFIG_CS5535_GPIO is not set # CONFIG_DCDBAS is not set diff --git a/target/linux/rdc-2.6/profiles/AR525W.mk b/target/linux/rdc-2.6/profiles/AR525W.mk index 847607e8c5..5c01554d43 100644 --- a/target/linux/rdc-2.6/profiles/AR525W.mk +++ b/target/linux/rdc-2.6/profiles/AR525W.mk @@ -7,7 +7,7 @@ define Profile/ar525w NAME:=AirLink101 AR525W - PACKAGES:=kmod-rt61 kmod-r6040 + PACKAGES:=kmod-rt61-pci kmod-r6040 endef $(eval $(call Profile,ar525w)) diff --git a/target/linux/rdc-2.6/profiles/WL-153.mk b/target/linux/rdc-2.6/profiles/WL-153.mk index 8a9489421b..f030455b2d 100644 --- a/target/linux/rdc-2.6/profiles/WL-153.mk +++ b/target/linux/rdc-2.6/profiles/WL-153.mk @@ -7,7 +7,7 @@ define Profile/wl153 NAME:=Sitecom WL-153 - PACKAGES:=kmod-rt61 kmod-r6040 + PACKAGES:=kmod-rt61-pci kmod-r6040 endef $(eval $(call Profile,wl153))