From 182107daaa41077bb5a292c32300369ecf2a172c Mon Sep 17 00:00:00 2001 From: Martin Michlmayr Date: Fri, 1 Apr 2011 13:22:04 +0000 Subject: [PATCH] rtlwifi: Eliminate udelay calls with too large values svn path=/dists/sid/linux-2.6/; revision=17177 --- debian/changelog | 3 + .../rtlwifi-remove-bogus-udelay-calls.patch | 57 +++++++++++++++++++ debian/patches/series/3 | 1 + 3 files changed, 61 insertions(+) create mode 100644 debian/patches/bugfix/all/rtlwifi-remove-bogus-udelay-calls.patch diff --git a/debian/changelog b/debian/changelog index 699ef88b2..b8d9cbe0d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -6,6 +6,9 @@ linux-2.6 (2.6.38-3) UNRELEASED; urgency=low [ Aurelien Jarno ] * rtlwifi: fix build when PCI is not enabled. + [ Martin Michlmayr ] + * rtlwifi: Eliminate udelay calls with too large values (Closes: #620204) + -- Ben Hutchings Wed, 30 Mar 2011 13:30:17 +0100 linux-2.6 (2.6.38-2) unstable; urgency=low diff --git a/debian/patches/bugfix/all/rtlwifi-remove-bogus-udelay-calls.patch b/debian/patches/bugfix/all/rtlwifi-remove-bogus-udelay-calls.patch new file mode 100644 index 000000000..eddcfa4eb --- /dev/null +++ b/debian/patches/bugfix/all/rtlwifi-remove-bogus-udelay-calls.patch @@ -0,0 +1,57 @@ +From: Willy Tarreau +Date: Sun, 20 Feb 2011 10:43:36 +0000 (+0100) +Subject: rtlwifi: Eliminate udelay calls with too large values +X-Git-Tag: v2.6.39-rc1~468^2~25^2^2~104 +X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=8c6113cd03c7e927f5ee5f6ad98e155ef2d27177 + +rtlwifi: Eliminate udelay calls with too large values + +On ARM, compilation of rtlwifi/efuse.c fails with the message: +ERROR: "__bad_udelay" [drivers/net/wireless/rtlwifi/rtlwifi.ko] undefined! +On inspection, the faulty calls are in routine efuse_reset_loader(), a +routine that is never used, and the faulty routine is deleted. + +Signed-off-by: Willy Tarreau +Signed-off-by: Larry Finger +Signed-off-by: John W. Linville +--- + +diff --git a/drivers/net/wireless/rtlwifi/efuse.c b/drivers/net/wireless/rtlwifi/efuse.c +index 62876cd..4f92cba 100644 +--- a/drivers/net/wireless/rtlwifi/efuse.c ++++ b/drivers/net/wireless/rtlwifi/efuse.c +@@ -1169,21 +1169,3 @@ static u8 efuse_calculate_word_cnts(u8 word_en) + return word_cnts; + } + +-void efuse_reset_loader(struct ieee80211_hw *hw) +-{ +- struct rtl_priv *rtlpriv = rtl_priv(hw); +- u16 tmp_u2b; +- +- tmp_u2b = rtl_read_word(rtlpriv, rtlpriv->cfg->maps[SYS_FUNC_EN]); +- rtl_write_word(rtlpriv, rtlpriv->cfg->maps[SYS_FUNC_EN], +- (tmp_u2b & ~(BIT(12)))); +- udelay(10000); +- rtl_write_word(rtlpriv, rtlpriv->cfg->maps[SYS_FUNC_EN], +- (tmp_u2b | BIT(12))); +- udelay(10000); +-} +- +-bool efuse_program_map(struct ieee80211_hw *hw, char *p_filename, u8 tabletype) +-{ +- return true; +-} +diff --git a/drivers/net/wireless/rtlwifi/efuse.h b/drivers/net/wireless/rtlwifi/efuse.h +index 2d39a4d..47774dd 100644 +--- a/drivers/net/wireless/rtlwifi/efuse.h ++++ b/drivers/net/wireless/rtlwifi/efuse.h +@@ -117,8 +117,5 @@ extern bool efuse_shadow_update_chk(struct ieee80211_hw *hw); + extern void rtl_efuse_shadow_map_update(struct ieee80211_hw *hw); + extern void efuse_force_write_vendor_Id(struct ieee80211_hw *hw); + extern void efuse_re_pg_section(struct ieee80211_hw *hw, u8 section_idx); +-extern bool efuse_program_map(struct ieee80211_hw *hw, +- char *p_filename, u8 tabletype); +-extern void efuse_reset_loader(struct ieee80211_hw *hw); + + #endif diff --git a/debian/patches/series/3 b/debian/patches/series/3 index 5807479ca..ea4eab5d3 100644 --- a/debian/patches/series/3 +++ b/debian/patches/series/3 @@ -1 +1,2 @@ + bugfix/all/rtlwifi-Let-rtlwifi-build-when-PCI-is-not-enabled.patch ++ bugfix/all/rtlwifi-remove-bogus-udelay-calls.patch