From patchwork Tue Jan 20 06:49:54 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Taehee Yoo X-Patchwork-Id: 5665161 X-Patchwork-Delegate: kvalo@adurom.com Return-Path: X-Original-To: patchwork-linux-wireless@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id A7F999F333 for ; Tue, 20 Jan 2015 06:50:15 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id BDDFF2037D for ; Tue, 20 Jan 2015 06:50:14 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C96802026F for ; Tue, 20 Jan 2015 06:50:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751720AbbATGuH (ORCPT ); Tue, 20 Jan 2015 01:50:07 -0500 Received: from mail-pa0-f45.google.com ([209.85.220.45]:62766 "EHLO mail-pa0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751177AbbATGuG (ORCPT ); Tue, 20 Jan 2015 01:50:06 -0500 Received: by mail-pa0-f45.google.com with SMTP id lf10so43741081pab.4 for ; Mon, 19 Jan 2015 22:50:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=vXRZgDbQwGtZeKtrWWQBZy52petcaqG5jVywK/BP5q0=; b=F37p/0JSHFj8JEcBCLlLxz2uB8XFZL0otupj6JwT4Z2+HOxPiqdP5J3iHwGmvbcL2y jEr37tHVACuE1Gun1m7I3lMlDEI4f5JPrP2GnyCcwOAw8Lmo+O+yCiGBBu1Jdk22iqRN nEyFOatjJi0w2oTK8D+5n4qGEnnDPKHRbo9fidYh+rcar9N+QwY9an2co4QZGo/jSR5H oKfFbebACvgZMTGVEVi0yBVIwUO5WQwsp2h9dMdT5zC+HFCMNi9qqoKF9olqfFJ/HtlS ptAm/Ok2H+vM7om2EJ5WD0bnun5/lN48orHku9dX5/CjKnvszrjOTH1LExHVVh6osNCI gmJw== X-Received: by 10.70.89.105 with SMTP id bn9mr50528401pdb.155.1421736605788; Mon, 19 Jan 2015 22:50:05 -0800 (PST) Received: from localhost.localdomain ([210.118.75.111]) by mx.google.com with ESMTPSA id ex11sm2183337pac.19.2015.01.19.22.50.02 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 19 Jan 2015 22:50:04 -0800 (PST) From: Taehee Yoo To: Larry.Finger@lwfinger.net Cc: linux-wireless@vger.kernel.org, Taehee Yoo Subject: [PATCH] rtl8192cu : add support to send beacon frame. Date: Tue, 20 Jan 2015 15:49:54 +0900 Message-Id: <1421736594-28262-1-git-send-email-ap420073@gmail.com> X-Mailer: git-send-email 1.9.1 Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Spam-Status: No, score=-6.8 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, T_DKIM_INVALID, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP In AP mode, beacon frame is necessary to keep connection. this patch adds a sending beacon frame routine in initialize routine. Signed-off-by: Taehee Yoo --- drivers/net/wireless/rtlwifi/core.c | 3 +++ drivers/net/wireless/rtlwifi/rtl8192cu/sw.c | 1 + drivers/net/wireless/rtlwifi/rtl8192cu/trx.c | 11 +++++++++++ drivers/net/wireless/rtlwifi/rtl8192cu/trx.h | 1 + drivers/net/wireless/rtlwifi/wifi.h | 2 ++ 5 files changed, 18 insertions(+) diff --git a/drivers/net/wireless/rtlwifi/core.c b/drivers/net/wireless/rtlwifi/core.c index eb20316..2ebd1fd 100644 --- a/drivers/net/wireless/rtlwifi/core.c +++ b/drivers/net/wireless/rtlwifi/core.c @@ -1040,6 +1040,9 @@ static void rtl_op_bss_info_changed(struct ieee80211_hw *hw, if (rtlpriv->cfg->ops->linked_set_reg) rtlpriv->cfg->ops->linked_set_reg(hw); + if (rtlpriv->cfg->ops->set_bcn_frame) + rtlpriv->cfg->ops->set_bcn_frame(hw, + vif); } } if ((changed & BSS_CHANGED_BEACON_ENABLED && diff --git a/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c b/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c index 90a714c..d88ee35 100644 --- a/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c +++ b/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c @@ -155,6 +155,7 @@ static struct rtl_hal_ops rtl8192cu_hal_ops = { .dm_dynamic_txpower = rtl92cu_dm_dynamic_txpower, .fill_h2c_cmd = rtl92c_fill_h2c_cmd, .get_btc_status = rtl92cu_get_btc_status, + .set_bcn_frame = rtl92cu_set_bcn_frame, }; static struct rtl_mod_params rtl92cu_mod_params = { diff --git a/drivers/net/wireless/rtlwifi/rtl8192cu/trx.c b/drivers/net/wireless/rtlwifi/rtl8192cu/trx.c index cbead00..e27da8f 100644 --- a/drivers/net/wireless/rtlwifi/rtl8192cu/trx.c +++ b/drivers/net/wireless/rtlwifi/rtl8192cu/trx.c @@ -684,3 +684,14 @@ bool rtl92cu_cmd_send_packet(struct ieee80211_hw *hw, struct sk_buff *skb) { return true; } + +void rtl92cu_set_bcn_frame(struct ieee80211_hw *hw, struct ieee80211_vif *vif) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct sk_buff *skb = ieee80211_beacon_get(hw, vif); + + if (skb == NULL) + return; + + rtlpriv->intf_ops->adapter_tx(hw, NULL, skb, NULL); +} diff --git a/drivers/net/wireless/rtlwifi/rtl8192cu/trx.h b/drivers/net/wireless/rtlwifi/rtl8192cu/trx.h index fd8051d..0d57431 100644 --- a/drivers/net/wireless/rtlwifi/rtl8192cu/trx.h +++ b/drivers/net/wireless/rtlwifi/rtl8192cu/trx.h @@ -431,5 +431,6 @@ void rtl92cu_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc, bool b_firstseg, bool b_lastseg, struct sk_buff *skb); bool rtl92cu_cmd_send_packet(struct ieee80211_hw *hw, struct sk_buff *skb); +void rtl92cu_set_bcn_frame(struct ieee80211_hw *hw, struct ieee80211_vif *vif); #endif diff --git a/drivers/net/wireless/rtlwifi/wifi.h b/drivers/net/wireless/rtlwifi/wifi.h index b53d9dd..daf8142 100644 --- a/drivers/net/wireless/rtlwifi/wifi.h +++ b/drivers/net/wireless/rtlwifi/wifi.h @@ -2182,6 +2182,8 @@ struct rtl_hal_ops { void (*add_wowlan_pattern)(struct ieee80211_hw *hw, struct rtl_wow_pattern *rtl_pattern, u8 index); + void (*set_bcn_frame) (struct ieee80211_hw *hw, + struct ieee80211_vif *vif); }; struct rtl_intf_ops {