Hello community, here is the log from the commit of package iwlwifi checked in at Fri Aug 24 23:33:10 CEST 2007. -------- --- arch/i386/iwlwifi/iwlwifi.changes 2007-08-20 12:38:51.000000000 +0200 +++ /mounts/work_src_done/STABLE/iwlwifi/iwlwifi.changes 2007-08-24 15:22:31.000000000 +0200 @@ -1,0 +2,10 @@ +Fri Aug 24 15:21:52 CEST 2007 - jg@suse.de + +- update to 0.1.11 + * rate scaling - up scaling fix + * remove unused code + * typo fix for CONFIG_IWLWIFI_SPECTRUM_MEASUREMENY + * add 10-preferred_rate_control.patch compatibility support + * fix iwl_grab_restricted_access return code + +------------------------------------------------------------------- Old: ---- iwlwifi-0.1.9.tar.bz2 New: ---- iwlwifi-0.1.11.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ iwlwifi.spec ++++++ --- /var/tmp/diff_new_pack.U19798/_old 2007-08-24 23:32:51.000000000 +0200 +++ /var/tmp/diff_new_pack.U19798/_new 2007-08-24 23:32:51.000000000 +0200 @@ -1,5 +1,5 @@ # -# spec file for package iwlwifi (Version 0.1.9) +# spec file for package iwlwifi (Version 0.1.11) # # Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine @@ -15,7 +15,7 @@ URL: http://intellinuxwireless.org/ BuildRequires: kernel-source kernel-syms module-init-tools Summary: Intel Wireless Link WiFi drivers -Version: 0.1.9 +Version: 0.1.11 Release: 1 Group: System/Kernel License: BSD 3-Clause, GPL v2 or later @@ -74,6 +74,13 @@ test -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" && rm -rf $RPM_BUILD_ROOT %changelog +* Fri Aug 24 2007 - jg@suse.de +- update to 0.1.11 + * rate scaling - up scaling fix + * remove unused code + * typo fix for CONFIG_IWLWIFI_SPECTRUM_MEASUREMENY + * add 10-preferred_rate_control.patch compatibility support + * fix iwl_grab_restricted_access return code * Mon Aug 20 2007 - jg@suse.de - update to 0.1.9, changes (shortened): * fix priv->hcmd_lock uninitialized problem ++++++ iwlwifi-0.1.9.tar.bz2 -> iwlwifi-0.1.11.tar.bz2 ++++++ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/iwlwifi-0.1.9/CHANGES new/iwlwifi-0.1.11/CHANGES --- old/iwlwifi-0.1.9/CHANGES 2007-08-20 08:27:07.000000000 +0200 +++ new/iwlwifi-0.1.11/CHANGES 2007-08-24 04:09:30.000000000 +0200 @@ -1,3 +1,20 @@ +Changes in 0.1.11 + +* rate scaling - up scaling fix +* remove unused code +* typo fix for CONFIG_IWLWIFI_SPECTRUM_MEASUREMENY +* Fix a Makefile problem for double error messages +* add 10-preferred_rate_control.patch compatibility support +* add a parameter to functions iwl_rate_control_[un]register +* fix iwl-3945-rs.c typo +* removing while loop from iwl_print_hex_dump +* simplifying reclaim flow + +Changes in 0.1.10 + +* fix iwl_grab_restricted_access return code +* add cancel_work_sync compatibility patch for kernels < 2.6.22 + Changes in 0.1.9 * fix priv->hcmd_lock uninitialized problem diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/iwlwifi-0.1.9/GIT_SHA1 new/iwlwifi-0.1.11/GIT_SHA1 --- old/iwlwifi-0.1.9/GIT_SHA1 2007-08-20 08:27:54.000000000 +0200 +++ new/iwlwifi-0.1.11/GIT_SHA1 2007-08-24 04:10:36.000000000 +0200 @@ -1,34 +1,34 @@ -779c5d2b3d5bb3c818f452cd680dac6c7aec0cb4 CHANGES +86c68016d87fabc8649cfdf35320f47accfc7795 CHANGES 23ca9cdd8388db72b10960c16f2be582108d6b10 FILES -cd9725a37a82bbe55c9009d2a8222360776bce10 INSTALL -c325fae5401c5cd01eabd4a87e0afb940aa6ff50 ISSUES +9162254b9023a895efb0ccc8b3be14da4410502c INSTALL +c83dee7b0e105c159ec1569f0d8e1d1d3ac0aae2 ISSUES ee7bd187472db499e83b70d55c6b50d36a57484c LICENSE 4b97b2e22a40100471be9aeba3d0ee83194f0a7f LICENSE.BSD 27912a0d3f019ebfed606439f7c7e69e21ae3a90 LICENSE.GPL -08c7a0e98543eeb8d24c1becbd49f8fba95055ad Makefile -b9ba9085980f76fe1d6b1b9801726812876c97f9 README.iwlwifi +9880cb71c2de2653e17eda59eedb5fa67269b25a Makefile +a6e1d860f5aeabddacc907fe491b3aae71b0da3d README.iwlwifi 0af06b5822698adcd7e56c42b8e74b7a4e27a0c6 dvals a52b156522ebebcb127e39ff057a902d5b40dee5 load 902c4c49e858e7324d173e0d1fe594e32ff49c94 origin/Kconfig 93a53020e62c7bc4f86fa8f3e4fba852574415a7 origin/Makefile 1b5e72fcb07fadc25eddbad008761b1c0fa11efd origin/iwl-3945-hw.h -8a98eb820f006c9a5aeb65b4e473985cfef33d5e origin/iwl-3945-rs.c -25bdbcb0a3a824d6d31bd0c4ba0306a242e12cbe origin/iwl-3945-rs.h +2eee6c53dabbed7f54d2894a70b96d2efefc82ec origin/iwl-3945-rs.c +70dcec470f2c382807e862e1bf167c0ab5baa090 origin/iwl-3945-rs.h bb758367782cc080502139f1a3b1e068a98d9b34 origin/iwl-3945.c 0f4db4c3289e0fdbcdf5d2bd45dcbbf1933849f5 origin/iwl-3945.h -97cda4190eb13d23cb9717c35c040c36dfbf8f87 origin/iwl-4965-hw.h -fcff17ebf38984e2df8113f376c365be6e9a140f origin/iwl-4965-rs.c -b1fb0f0d37109bcbf30f3ec1625a974c4596b9d8 origin/iwl-4965-rs.h +858ec557434d5d36d8007faef7221b242651e023 origin/iwl-4965-hw.h +d16c0fb8187218f99e54af13023427e38772ba94 origin/iwl-4965-rs.c +aa9aae560889e2c11f3f212129c5bd0119806c0c origin/iwl-4965-rs.h 901812082c58830b0866a4752bc2fe5cfad2ccf2 origin/iwl-4965.c af5215f916669a7cf93f1fd0f0d10a108f0dce8e origin/iwl-4965.h -11282d46e6a5558d65badaa0069efbd2fb750482 origin/iwl-base.c +536028c0a335698002f61b1e903d88031527a680 origin/iwl-base.c 97da370d3b381ba2d3a5d4357bd619ce148849d6 origin/iwl-channel.h 7f39b0372330b90492cfa6635d5f5c17d04bf03f origin/iwl-commands.h 0ebc4f7dae95db10147720574b5bb17d7db66e76 origin/iwl-debug.h e473c97e3f4fd191d51cf4c63e4dc83ca4687624 origin/iwl-eeprom.h e2a8d95ad9cd8a5eaa8e9beb13b807594d29a17d origin/iwl-helpers.h 3743cdbdbc7753503c9d129110b4bca86fec2ddd origin/iwl-hw.h -5df7e36a2f2e700916a5fe270f74d3eca61a064b origin/iwl-io.h +f293702552df4ed02024373856164dcfb7bb78d7 origin/iwl-io.h c9cb11ed60c75be290277fbd07c8f61aa50af0bc origin/iwl-priv.h b576ff24eb4fd19ec24ffba1d06e02b2cfe49d12 origin/iwl-spectrum.h fcf0197f5974622ab7045913bdd8372ec6b7c5f7 origin/iwlwifi.h @@ -40,13 +40,15 @@ 95e6b0a4e7340bcdf1b4283f74200d295da7b6d3 patches/04-rx_flag_radiotap.patch 66f4f12dc9d9efaa16fa777aecffc8804faf0b6a patches/05-delayed_work_define.patch 88348ab68bc18b8888e81cde38ba260b57916b02 patches/06-csa.patch -d9e55151d2faab43b98befcfbf5b85ccd21d6224 patches/07-hex_dump.patch +2930df5a9995f3c0ed7eea12fa8473142c9486f5 patches/07-hex_dump.patch 2329d45093259945ebc7a9817be2638864c40805 patches/08-is_power_of_2.patch +4bf6ce7cbf8992ce0be9cfa396a53fe9e27116ec patches/09-cancel_work_sync.patch +8e60cb60cbcea9530fc1c373cae431509b46474c patches/10-preferred_rate_control.patch 654175255289e7cda7035c2a89bf08094a25bd1d patches/d80211-v1.patch fe80f00b822899d7eda19be7dbfc4af396d8b8e8 patches/wlan_80211.patch 5b9e4a1ed105faafe9f1b21fb3e760f92c5b0336 scripts/check_kernel -55692049ae1c2c28c0cb211e776ccccca14eae6f scripts/determine_compat -0ded4ba392e9644924aa151b6c2db3f4eb0917ce scripts/generate_compatible +d7b50d841a7881d50b85c739803299de325db7aa scripts/determine_compat +9ff8f98c94d813f77d95effb56d1a63664119ad5 scripts/generate_compatible e8d0e4e0468cbdb0bba0c8403753aa2311f5e63d scripts/make_snapshot 9b8fa1b76fbb034e805413e9a8bda796d297917e scripts/patch_kernel 6fa2fbf5facd8ce48aa5762e561a1360672b56a2 unload diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/iwlwifi-0.1.9/INSTALL new/iwlwifi-0.1.11/INSTALL --- old/iwlwifi-0.1.9/INSTALL 2007-08-20 08:27:52.000000000 +0200 +++ new/iwlwifi-0.1.11/INSTALL 2007-08-24 04:10:35.000000000 +0200 @@ -8,8 +8,8 @@ INSTALL -Version: 0.1.9 -Date : August 20, 2007 +Version: 0.1.11 +Date : August 24, 2007 Index @@ -96,8 +96,8 @@ Once the mac80211 kernel is installed and running, you build the iwlwifi.ko module: - % tar xzvf iwlwifi-0.1.9.tgz - % cd iwlwifi-0.1.9 + % tar xzvf iwlwifi-0.1.11.tgz + % cd iwlwifi-0.1.11 % make Now you install the firmware. First, determine where to install the @@ -230,9 +230,9 @@ can view the INSTALL files. (Below example is for 3945, you should be able to do the same for 4965): - % tar xzvf iwlwifi-0.1.9.tgz + % tar xzvf iwlwifi-0.1.11.tgz % tar xzvf iwlwifi-3945-ucode-2.14.1.5.tgz - % less iwlwifi-0.1.9/INSTALL + % less iwlwifi-0.1.11/INSTALL % less iwlwifi-3945-ucode-2.14.1.5/INSTALL @@ -290,10 +290,10 @@ 10. BUILDING EXTERNAL (outside kernel source tree) ----------------------------------------------- -Unpack the iwlwifi-0.1.9.tgz archive: +Unpack the iwlwifi-0.1.11.tgz archive: - % tar xzvf iwlwifi-0.1.9.tgz - % cd iwlwifi-0.1.9 + % tar xzvf iwlwifi-0.1.11.tgz + % cd iwlwifi-0.1.11 The driver package contains a Makefile that can be used for building the driver outside of the kernel tree. To build it for the currently running diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/iwlwifi-0.1.9/ISSUES new/iwlwifi-0.1.11/ISSUES --- old/iwlwifi-0.1.9/ISSUES 2007-08-20 08:27:52.000000000 +0200 +++ new/iwlwifi-0.1.11/ISSUES 2007-08-24 04:10:35.000000000 +0200 @@ -9,8 +9,8 @@ ISSUES -Version: 0.1.9 -Date : August 20, 2007 +Version: 0.1.11 +Date : August 24, 2007 ------------------------------ The following are the most common issues reported by users at the time of diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/iwlwifi-0.1.9/Makefile new/iwlwifi-0.1.11/Makefile --- old/iwlwifi-0.1.9/Makefile 2007-08-20 04:00:16.000000000 +0200 +++ new/iwlwifi-0.1.11/Makefile 2007-08-24 04:08:30.000000000 +0200 @@ -160,9 +160,12 @@ exit 1 || exit 0 compatible/kversion: \ - $(shell find origin -type f) \ + $(shell find origin -type f) \ $(shell find patches -type f) \ $(shell find scripts -type f) + @[ -e compatible/kversion ] && \ + [ "${KSRC}" != "$$(cat compatible/kversion)" ] && \ + exit 1 || exit 0 @scripts/generate_compatible origin; rc=$$?; \ chmod a-w compatible/* -R; \ echo ${KSRC} > compatible/kversion; \ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/iwlwifi-0.1.9/origin/iwl-3945-rs.c new/iwlwifi-0.1.11/origin/iwl-3945-rs.c --- old/iwlwifi-0.1.9/origin/iwl-3945-rs.c 2007-08-17 10:55:53.000000000 +0200 +++ new/iwlwifi-0.1.11/origin/iwl-3945-rs.c 2007-08-23 05:28:13.000000000 +0200 @@ -917,8 +917,7 @@ if (!local->rate_ctrl->ops->name || strcmp(local->rate_ctrl->ops->name, RS_NAME)) { - IWL_WARNING("iwl-3945-rs not selected as rate control " - "aglo!\n"); + IWL_WARNING("iwl-3945-rs not selected as rate control algo!\n"); IWL_DEBUG_RATE("leave - mac80211 picked the wrong RC algo.\n"); return; } @@ -972,12 +971,12 @@ iwl_rates[rs_priv->start_rate].plcp); } -void iwl_rate_control_register(void) +void iwl_rate_control_register(struct ieee80211_hw *hw) { ieee80211_rate_control_register(&rs_ops); } -void iwl_rate_control_unregister(void) +void iwl_rate_control_unregister(struct ieee80211_hw *hw) { ieee80211_rate_control_unregister(&rs_ops); } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/iwlwifi-0.1.9/origin/iwl-3945-rs.h new/iwlwifi-0.1.11/origin/iwl-3945-rs.h --- old/iwlwifi-0.1.9/origin/iwl-3945-rs.h 2007-06-12 04:40:14.000000000 +0200 +++ new/iwlwifi-0.1.11/origin/iwl-3945-rs.h 2007-08-23 04:49:44.000000000 +0200 @@ -200,7 +200,7 @@ * ieee80211_register_hw * */ -extern void iwl_rate_control_register(void); +extern void iwl_rate_control_register(struct ieee80211_hw *hw); /** * iwl_rate_control_unregister - Unregister the rate control callbacks @@ -208,14 +208,14 @@ * This should be called after calling ieee80211_unregister_hw, but before * the driver is unloaded. */ -extern void iwl_rate_control_unregister(void); +extern void iwl_rate_control_unregister(struct ieee80211_hw *hw); #else static inline int iwl_fill_rs_info(struct ieee80211_hw *hw, char *buf, u8 sta_id) { return -ENOTSUPP; } static inline void iwl_rate_scale_init(struct ieee80211_hw *hw, s32 sta_id) {} -static inline void iwl_rate_control_register(void) {} -static inline void iwl_rate_control_unregister(void) {} +static inline void iwl_rate_control_register(struct ieee80211_hw *hw) {} +static inline void iwl_rate_control_unregister(struct ieee80211_hw *hw) {} #endif /* IWL == 3945 */ #endif diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/iwlwifi-0.1.9/origin/iwl-4965-hw.h new/iwlwifi-0.1.11/origin/iwl-4965-hw.h --- old/iwlwifi-0.1.9/origin/iwl-4965-hw.h 2007-08-17 10:55:54.000000000 +0200 +++ new/iwlwifi-0.1.11/origin/iwl-4965-hw.h 2007-08-24 03:05:46.000000000 +0200 @@ -724,50 +724,6 @@ { return cpu_to_le32(flags|(u16)rate); } -#if 0 - -union iwl_dram_scratch_union { - struct iwl_dram_scratch s; - __le32 dw; -}; - -struct iwl4965_beacon_notify { - struct iwl_tx_resp beacon_notify_hdr; /*15:4 */ - __le32 low_tsf; /*19:16 */ - __le32 high_tsf; /*23:20 */ - __le32 ibss_mgr_status; /*27:24 */ -} __attribute__ ((packed)); - -struct iwl4965_tx_beacon_cmd { - struct iwl_tx_cmd tx; /*byte 55:4 */ - __le16 tim_idx; /*byte 57:56 */ - u8 tim_size; /*byte 58 */ - u8 reserved1; /*byte 59 */ - struct ieee80211_hdr frame[0]; - /* Beacon Frame */ -} __attribute__ ((packed)); - -struct iwl4965_powertable_cmd { - __le16 flags; - u8 keep_alive_seconds; - u8 debug_flags; - __le32 rx_data_timeout; - __le32 tx_data_timeout; - __le32 sleep_interval[PMC_TCMD_SLEEP_INTRVL_TABLE_SIZE]; - __le32 keep_alive_beacons; -} __attribute__ ((packed)); - -#define IWL_NUM_OF_STATIONS 32 -#define BYTE_CNT_AREA_OFFSET 0 - -enum HT_STATUS { - BA_STATUS_FAILURE = 0, - BA_STATUS_INITIATOR_DELBA, - BA_STATUS_RECIPIENT_DELBA, - BA_STATUS_RENEW_ADDBA_REQUEST, - BA_STATUS_ACTIVE, -}; -#endif #define IWL_AGC_DB_MASK (0x3f80) /* MASK(7,13) */ #define IWL_AGC_DB_POS (7) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/iwlwifi-0.1.9/origin/iwl-4965-rs.c new/iwlwifi-0.1.11/origin/iwl-4965-rs.c --- old/iwlwifi-0.1.9/origin/iwl-4965-rs.c 2007-08-20 03:59:17.000000000 +0200 +++ new/iwlwifi-0.1.11/origin/iwl-4965-rs.c 2007-08-24 03:08:12.000000000 +0200 @@ -899,8 +899,6 @@ break; } } - if (new_rate == IWL_RATE_INVALID) - new_rate = rate; return new_rate; } @@ -957,9 +955,6 @@ rate = rs_get_best_rate(priv, lq_data, tbl, rate_mask, index, 4); - if ((rate == IWL_RATE_INVALID) || (rate == 1)) - rate = IWL_RATE_48M_INDEX; - IWL_DEBUG_HT("LQ: MIMO best rate %d mask %X\n", rate, rate_mask); if ((rate == IWL_RATE_INVALID) || !((1 << rate) & rate_mask)) return -1; @@ -1013,8 +1008,7 @@ rs_get_expected_tpt_table(lq_data, tbl); rate = rs_get_best_rate(priv, lq_data, tbl, rate_mask, index, 4); - if ((rate == IWL_RATE_INVALID) || (rate == 1)) - rate = IWL_RATE_48M_INDEX; + IWL_DEBUG_HT("LQ: get best rate %d mask %X\n", rate, rate_mask); if ((rate == IWL_RATE_INVALID) || !((1 << rate) & rate_mask)) { IWL_DEBUG_HT("can not switch with index %d rate mask %x\n", @@ -2148,12 +2142,12 @@ priv->lq_mngr.lq_ready = 1; } -void iwl_rate_control_register(void) +void iwl_rate_control_register(struct ieee80211_hw *hw) { ieee80211_rate_control_register(&rs_ops); } -void iwl_rate_control_unregister(void) +void iwl_rate_control_unregister(struct ieee80211_hw *hw) { ieee80211_rate_control_unregister(&rs_ops); } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/iwlwifi-0.1.9/origin/iwl-4965-rs.h new/iwlwifi-0.1.11/origin/iwl-4965-rs.h --- old/iwlwifi-0.1.9/origin/iwl-4965-rs.h 2007-07-23 08:55:21.000000000 +0200 +++ new/iwlwifi-0.1.11/origin/iwl-4965-rs.h 2007-08-23 04:49:44.000000000 +0200 @@ -265,7 +265,7 @@ * ieee80211_register_hw * */ -extern void iwl_rate_control_register(void); +extern void iwl_rate_control_register(struct ieee80211_hw *hw); /** * iwl_rate_control_unregister - Unregister the rate control callbacks @@ -273,14 +273,14 @@ * This should be called after calling ieee80211_unregister_hw, but before * the driver is unloaded. */ -extern void iwl_rate_control_unregister(void); +extern void iwl_rate_control_unregister(struct ieee80211_hw *hw); #else static inline int iwl_fill_rs_info(struct ieee80211_hw *hw, char *buf, u8 sta_id) { return -ENOTSUPP; } static inline void iwl_rate_scale_init(struct ieee80211_hw *hw, s32 sta_id) {} -static inline void iwl_rate_control_register(void) {} -static inline void iwl_rate_control_unregister(void) {} +static inline void iwl_rate_control_register(struct ieee80211_hw *hw) {} +static inline void iwl_rate_control_unregister(struct ieee80211_hw *hw) {} #endif /* IWL == 4965 */ #endif diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/iwlwifi-0.1.9/origin/iwl-base.c new/iwlwifi-0.1.11/origin/iwl-base.c --- old/iwlwifi-0.1.9/origin/iwl-base.c 2007-08-20 08:27:54.000000000 +0200 +++ new/iwlwifi-0.1.11/origin/iwl-base.c 2007-08-24 04:10:37.000000000 +0200 @@ -101,13 +101,13 @@ #define VD #endif -#ifdef CONFIG_IWLWIFI_SPECTRUM_MEASUREMENY +#ifdef CONFIG_IWLWIFI_SPECTRUM_MEASUREMENT #define VS "s" #else #define VS #endif -#define IWLWIFI_VERSION "0.1.9" VD VS +#define IWLWIFI_VERSION "0.1.11" VD VS #define DRV_COPYRIGHT "Copyright(c) 2003-2007 Intel Corporation" #define DRV_VERSION IWLWIFI_VERSION @@ -188,17 +188,11 @@ static void iwl_print_hex_dump(int level, void *p, u32 len) { #ifdef CONFIG_IWLWIFI_DEBUG - u32 ofs = 0; - if (!(iwl_debug_level & level)) return; - while (len) { - print_hex_dump(KERN_DEBUG, "iwl data: ", DUMP_PREFIX_OFFSET, - 16, 1, p + ofs, len, 1); - ofs += 16; - len -= min(len, 16U); - } + print_hex_dump(KERN_DEBUG, "iwl data: ", DUMP_PREFIX_OFFSET, 16, 1, + p, len, 1); #endif } @@ -580,7 +574,7 @@ static inline int iwl_is_rfkill(struct iwl_priv *priv) { - return test_bit(STATUS_RF_KILL_HW, &priv->status) | + return test_bit(STATUS_RF_KILL_HW, &priv->status) || test_bit(STATUS_RF_KILL_SW, &priv->status); } @@ -3543,8 +3537,7 @@ { struct iwl_tx_queue *txq = &priv->txq[txq_id]; struct iwl_queue *q = &txq->q; - u8 hcmd_num = 0; - int used; + int nfreed = 0; if ((index >= q->n_bd) || (x2_queue_used(q, index) == 0)) { IWL_ERROR("Read index for DMA queue txq id (%d), index %d, " @@ -3552,16 +3545,20 @@ index, q->n_bd, q->first_empty, q->last_used); return 0; } - index = iwl_queue_inc_wrap(index, q->n_bd); - for (; q->last_used != index; - q->last_used = iwl_queue_inc_wrap(q->last_used, q->n_bd)) { + for (index = iwl_queue_inc_wrap(index, q->n_bd); + q->last_used != index; + q->last_used = iwl_queue_inc_wrap(q->last_used, q->n_bd)) { if (txq_id != IWL_CMD_QUEUE_NUM) { iwl_txstatus_to_ieee(priv, &(txq->txb[txq->q.last_used])); iwl_hw_txq_free_tfd(priv, txq); - } else - hcmd_num++; + } else if (nfreed > 1) { + IWL_ERROR("HCMD skipped: index (%d) %d %d\n", index, + q->first_empty, q->last_used); + queue_work(priv->workqueue, &priv->restart); + } + nfreed++; } if (iwl_queue_space(q) > q->low_mark && (txq_id >= 0) && @@ -3569,17 +3566,8 @@ priv->mac80211_registered) ieee80211_wake_queue(priv->hw, txq_id); - used = q->first_empty - q->last_used; - if (used < 0) - used += q->n_bd; - - if (hcmd_num > 1) { - IWL_ERROR("HCMD skipped: index (%d) %d %d\n", index, - q->first_empty, q->last_used); - queue_work(priv->workqueue, &priv->restart); - } - return used; + return nfreed; } static int iwl_is_tx_success(u32 status) @@ -6756,7 +6744,7 @@ /* Unlock so any user space entry points can call back into * the driver without a deadlock... */ mutex_unlock(&priv->mutex); - iwl_rate_control_register(); + iwl_rate_control_register(priv->hw); rc = ieee80211_register_hw(priv->hw); priv->hw->conf.beacon_int = 100; mutex_lock(&priv->mutex); @@ -9455,7 +9443,7 @@ if (priv->mac80211_registered) { ieee80211_unregister_hw(priv->hw); - iwl_rate_control_unregister(); + iwl_rate_control_unregister(priv->hw); } /* ieee80211_unregister_hw calls iwl_mac_stop, which flushes diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/iwlwifi-0.1.9/origin/iwl-io.h new/iwlwifi-0.1.11/origin/iwl-io.h --- old/iwlwifi-0.1.9/origin/iwl-io.h 2007-08-17 10:55:54.000000000 +0200 +++ new/iwlwifi-0.1.11/origin/iwl-io.h 2007-08-21 07:26:25.000000000 +0200 @@ -166,7 +166,7 @@ if (atomic_read(&priv->restrict_refcnt)) return 0; #endif - if (test_bit(STATUS_RF_KILL_HW, &priv->status) | + if (test_bit(STATUS_RF_KILL_HW, &priv->status) || test_bit(STATUS_RF_KILL_SW, &priv->status)) { IWL_WARNING("WARNING: Requesting MAC access during RFKILL " "wakes up NIC\n"); @@ -190,14 +190,13 @@ CSR_GP_CNTRL_REG_FLAG_GOING_TO_SLEEP), 50); if (rc < 0) { IWL_ERROR("MAC is in deep sleep!\n"); - rc = -EIO; - goto out; + return -EIO; } + #ifdef CONFIG_IWLWIFI_DEBUG atomic_inc(&priv->restrict_refcnt); #endif -out: - return rc; + return 0; } #ifdef CONFIG_IWLWIFI_DEBUG diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/iwlwifi-0.1.9/patches/07-hex_dump.patch new/iwlwifi-0.1.11/patches/07-hex_dump.patch --- old/iwlwifi-0.1.9/patches/07-hex_dump.patch 2007-08-17 10:55:54.000000000 +0200 +++ new/iwlwifi-0.1.11/patches/07-hex_dump.patch 2007-08-21 07:26:25.000000000 +0200 @@ -1,7 +1,7 @@ diff -urp origin/iwl-base.c compatible/iwl-base.c ---- origin/iwl-base.c 2007-08-07 22:41:23.000000000 +0800 -+++ compatible/iwl-base.c 2007-08-08 14:27:30.000000000 +0800 -@@ -184,6 +184,75 @@ static const char *iwl_escape_essid(cons +--- origin/iwl-base.c 2007-08-21 11:42:14.000000000 +0800 ++++ compatible/iwl-base.c 2007-08-21 11:50:03.000000000 +0800 +@@ -185,6 +185,71 @@ static const char *iwl_escape_essid(cons return escaped; } @@ -66,11 +66,7 @@ + snprint_line(lb, ls, d, min(s, (unsigned int)l), 0) + +#define print_hex_dump(m, p, t, l, g, d, s, a) \ -+do { \ -+ char line[81]; \ -+ snprint_line(line, sizeof(line), d, min(s, (unsigned int)l), 0); \ -+ printk(m p "%s\n", line); \ -+} while (0) ++ printk_buf(IWL_DL_INFO, d, s); + +#endif /* hex_dump_to_buffer */ + diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/iwlwifi-0.1.9/patches/09-cancel_work_sync.patch new/iwlwifi-0.1.11/patches/09-cancel_work_sync.patch --- old/iwlwifi-0.1.9/patches/09-cancel_work_sync.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/iwlwifi-0.1.11/patches/09-cancel_work_sync.patch 2007-08-23 05:36:44.000000000 +0200 @@ -0,0 +1,14 @@ +diff -urp origin/iwl-base.c compatible/iwl-base.c +--- origin/iwl-base.c 2007-08-20 14:27:53.000000000 +0800 ++++ compatible/iwl-base.c 2007-08-20 16:37:21.000000000 +0800 +@@ -9091,6 +9091,10 @@ static void iwl_setup_deferred_work(stru + iwl_irq_tasklet, (unsigned long)priv); + } + ++#ifndef cancel_work_sync ++#define cancel_work_sync(x) ++#endif ++ + static void iwl_cancel_deferred_work(struct iwl_priv *priv) + { + iwl_hw_cancel_deferred_work(priv); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/iwlwifi-0.1.9/patches/10-preferred_rate_control.patch new/iwlwifi-0.1.11/patches/10-preferred_rate_control.patch --- old/iwlwifi-0.1.9/patches/10-preferred_rate_control.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/iwlwifi-0.1.11/patches/10-preferred_rate_control.patch 2007-08-23 05:36:28.000000000 +0200 @@ -0,0 +1,48 @@ +diff -urp origin/iwl-3945-rs.c new/iwl-3945-rs.c +--- origin/iwl-3945-rs.c 2007-08-23 11:28:13.000000000 +0800 ++++ new/iwl-3945-rs.c 2007-08-23 11:35:43.000000000 +0800 +@@ -973,11 +973,13 @@ void iwl_rate_scale_init(struct ieee8021 + + void iwl_rate_control_register(struct ieee80211_hw *hw) + { ++ hw->preferred_rate_control = (char *)rs_ops.name; + ieee80211_rate_control_register(&rs_ops); + } + + void iwl_rate_control_unregister(struct ieee80211_hw *hw) + { ++ hw->preferred_rate_control = NULL; + ieee80211_rate_control_unregister(&rs_ops); + } + +Only in new: iwl-3945-rs.c.orig +diff -urp origin/iwl-4965-rs.c new/iwl-4965-rs.c +--- origin/iwl-4965-rs.c 2007-08-23 11:28:52.000000000 +0800 ++++ new/iwl-4965-rs.c 2007-08-23 11:35:43.000000000 +0800 +@@ -2150,11 +2150,13 @@ void iwl_rate_scale_init(struct ieee8021 + + void iwl_rate_control_register(struct ieee80211_hw *hw) + { ++ hw->preferred_rate_control = (char *)rs_ops.name; + ieee80211_rate_control_register(&rs_ops); + } + + void iwl_rate_control_unregister(struct ieee80211_hw *hw) + { ++ hw->preferred_rate_control = NULL; + ieee80211_rate_control_unregister(&rs_ops); + } + +Only in new: iwl-4965-rs.c.orig +diff -urp origin/iwl-base.c new/iwl-base.c +--- origin/iwl-base.c 2007-08-23 10:49:44.000000000 +0800 ++++ new/iwl-base.c 2007-08-23 11:35:43.000000000 +0800 +@@ -9209,6 +9209,7 @@ static int iwl_pci_probe(struct pci_dev + IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE; + + hw->queues = 4; ++ hw->preferred_rate_control = NULL; + #if IWL == 4965 + #ifdef CONFIG_IWLWIFI_HT + #ifdef CONFIG_IWLWIFI_HT_AGG +Only in new: iwl-base.c.orig diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/iwlwifi-0.1.9/README.iwlwifi new/iwlwifi-0.1.11/README.iwlwifi --- old/iwlwifi-0.1.9/README.iwlwifi 2007-08-20 08:27:52.000000000 +0200 +++ new/iwlwifi-0.1.11/README.iwlwifi 2007-08-24 04:10:35.000000000 +0200 @@ -10,8 +10,8 @@ README.iwlwifi -Version: 0.1.9 -Date : August 20, 2007 +Version: 0.1.11 +Date : August 24, 2007 Index diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/iwlwifi-0.1.9/scripts/determine_compat new/iwlwifi-0.1.11/scripts/determine_compat --- old/iwlwifi-0.1.9/scripts/determine_compat 2007-08-17 10:55:54.000000000 +0200 +++ new/iwlwifi-0.1.11/scripts/determine_compat 2007-08-23 05:49:11.000000000 +0200 @@ -87,9 +87,21 @@ # ---------------- +export has_cancel_work_sync=0 +grep -q "cancel_work_sync" ${KSRC}/kernel/workqueue.c && + export has_cancel_work_sync=1 + +# ---------------- + +export has_preferred_rate_control=0 +grep -q "preferred_rate_control" ${KSRC}/include/net/mac80211.h && + export has_preferred_rate_control=1 + +# ---------------- export requires_compat=0 -(( $has_is_power_of_2 )) && +(( !$has_preferred_rate_control )) && +(( $has_cancel_work_sync )) && (( $has_hex_dump )) && (( $has_mac80211_ht_agg )) && (( $has_mac80211_ht )) && @@ -126,7 +138,9 @@ echo " - Remove CONFIG_IWLWIFI_HT_AGG option if defined" (( !$has_hex_dump )) && echo " - Requires hex_dump compat" -(( !$has_is_power_of_2 )) && -echo " - Requires is_power_of_2 compat" +(( !$has_cancel_work_sync )) && +echo " - Requires cancel_work_sync avoidance" +(( $has_preferred_rate_control )) && +echo " - Uses preferred_rate_control feature" return 0 } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/iwlwifi-0.1.9/scripts/generate_compatible new/iwlwifi-0.1.11/scripts/generate_compatible --- old/iwlwifi-0.1.9/scripts/generate_compatible 2007-08-17 10:55:54.000000000 +0200 +++ new/iwlwifi-0.1.11/scripts/generate_compatible 2007-08-23 06:55:25.000000000 +0200 @@ -123,6 +123,16 @@ die $? "Failed." } +(( !$has_cancel_work_sync )) && { + do_patch $DST patches/09-cancel_work_sync.patch || + die $? "Failed." +} + +(( $has_preferred_rate_control )) && { + do_patch $DST patches/10-preferred_rate_control.patch || + die $? "Failed." +} + makefile_modified=0 (( !$has_mac80211_ht )) && { grep -q 'export CONFIG_IWLWIFI_HT ?= y' Makefile ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org