From patchwork Tue Jan 11 14:40:56 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wojciech Dubowik X-Patchwork-Id: 471791 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id p0BEf2mN030341 for ; Tue, 11 Jan 2011 14:41:02 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756017Ab1AKOlA (ORCPT ); Tue, 11 Jan 2011 09:41:00 -0500 Received: from mail.neratec.ch ([80.75.119.105]:34946 "EHLO mail.neratec.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755817Ab1AKOlA (ORCPT ); Tue, 11 Jan 2011 09:41:00 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.neratec.ch (Postfix) with ESMTP id 65871664001; Tue, 11 Jan 2011 15:40:58 +0100 (CET) X-Virus-Scanned: amavisd-new at neratec.ch Received: from mail.neratec.ch ([127.0.0.1]) by localhost (mail.neratec.ch [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id WfAgc9yim9cE; Tue, 11 Jan 2011 15:40:57 +0100 (CET) Received: from mail.neratec.ch (mail.neratec.ch [192.168.11.23]) by mail.neratec.ch (Postfix) with ESMTP id 409E4860D0; Tue, 11 Jan 2011 15:40:57 +0100 (CET) Date: Tue, 11 Jan 2011 15:40:56 +0100 (CET) From: Wojciech Dubowik To: linux-wireless Cc: lrodriguez , nbd , Johannes Berg Message-ID: <15461044.40.1294756856032.JavaMail.wlan@CHBU500181> In-Reply-To: <5840411.32.1294754666078.JavaMail.wlan@CHBU500181> Subject: [RFC] mac80211: Wait with enabling beacons on DFS channels MIME-Version: 1.0 X-Originating-IP: [192.168.11.196] X-Mailer: Zimbra 6.0.10_GA_2692 (Zimbra Desktop/2.0.1_10659_Linux) Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter1.kernel.org [140.211.167.41]); Tue, 11 Jan 2011 14:41:03 +0000 (UTC) --- a/drivers/net/wireless/ath/ath9k/main.c +++ b/drivers/net/wireless/ath/ath9k/main.c @@ -285,8 +285,14 @@ ath9k_hw_set_interrupts(ah, ah->imask); if (!(sc->sc_flags & (SC_OP_OFFCHANNEL))) { - if (sc->sc_flags & SC_OP_BEACONS) - ath_beacon_config(sc, NULL); + + if (sc->sc_flags & SC_OP_BEACONS) { + if (channel->flags & IEEE80211_CHAN_RADAR + && !(channel->flags & IEEE80211_CHAN_NOL_FREE)) + ieee80211_queue_delayed_work + (sc->hw, &sc->dfs_wait_cac_work, 0); + else + ath_beacon_config(sc, NULL); + } + ieee80211_queue_delayed_work(sc->hw, &sc->tx_complete_work, 0); ath_start_ani(common); }