From patchwork Tue Mar 31 11:03:47 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Kazior X-Patchwork-Id: 6128731 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 5B5F29F32E for ; Tue, 31 Mar 2015 11:07:53 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 780B720160 for ; Tue, 31 Mar 2015 11:07:52 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 9831820155 for ; Tue, 31 Mar 2015 11:07:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753766AbbCaLHu (ORCPT ); Tue, 31 Mar 2015 07:07:50 -0400 Received: from mail-lb0-f170.google.com ([209.85.217.170]:35697 "EHLO mail-lb0-f170.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752710AbbCaLHt (ORCPT ); Tue, 31 Mar 2015 07:07:49 -0400 Received: by lbdc10 with SMTP id c10so9576623lbd.2 for ; Tue, 31 Mar 2015 04:07:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tieto.com; s=google; h=from:to:cc:subject:date:message-id; bh=wX9ZvFz0HA8O3QOJOKRfKDrnsFOl0dGFQHD220m/0KU=; b=PGiy1uPDdkNez5wH9yyImc8Xu5RPoiTMp9O/mgU/HsZkpRBQW2mCjMylPo1recREu+ 181+4LSnOmyYhMuWyvj5dQHxnk4KnTVxd+IVdGkQwDdTov0ZU3/nAZUe+JtZytOYQc18 qBYNaaxRKGPB0ToUw+eUMCx53ozBbEctOE8W4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=wX9ZvFz0HA8O3QOJOKRfKDrnsFOl0dGFQHD220m/0KU=; b=c8wjAIYVUASLwyeIhIq6AGRw63Yxv1f19vgcrPQt1/0aUp8MnKnmnfWvtQdQ9YeaZ3 AQmtJVE6hL3y5Y5pLfbEMzB96j0KuBl4va+tI6cYSrqyWAMTznzf3Y0vy3RhBpY15AV/ tJ+gL9+lFqcyXhCsG3HYUdQMvfpQOOcYJ/f4lhNQ/4GLU0/a7EgUkzgaaAwS+JnuArKe d6WD5iJA+27rBvL6rWPxweRQhnCpfuGhTJVUCKRcVbGHiazyiZPFztzol0Qj6pBp4ZAY GaJpYcNjcZfNP7KwOFG0zFW7Q6rlSePOxn8RuZPCc0hv5DdwJHRKitPUiUjhFDMQZRdf 689A== X-Gm-Message-State: ALoCoQl11WbbplTYQqd/4fOg0V1FmqsIk0XAHUpFz4PfvMT8aN5lvYIHaWbXWFiJ5mJyo2Jx5rTYtrWIS425lsDuyip5JF3N25MKjaDnRSHHeiLbb+Xp9c2KiN0jE8jiuFGbcoKN9u9e X-Received: by 10.152.26.34 with SMTP id i2mr9258252lag.117.1427800067459; Tue, 31 Mar 2015 04:07:47 -0700 (PDT) Received: from bob.homerouter.cpe (apn-46-169-246-95.dynamic.gprs.plus.pl. [46.169.246.95]) by mx.google.com with ESMTPSA id mm7sm2570296lbb.30.2015.03.31.04.07.46 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 31 Mar 2015 04:07:46 -0700 (PDT) From: Michal Kazior To: ath10k@lists.infradead.org Cc: linux-wireless@vger.kernel.org, Michal Kazior Subject: [PATCH 1/2] ath10k: fix hw roc expiration Date: Tue, 31 Mar 2015 11:03:47 +0000 Message-Id: <1427799828-9539-1-git-send-email-michal.kazior@tieto.com> X-Mailer: git-send-email 2.1.4 X-DomainID: tieto.com 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_SIGNED, 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 It is not guaranteed firmware will switch to foreign channel immediately after starting scan sequence. To account for that don't use duration parameter for scan time. Instead request insanely long scan and use timeout worker to cancel it from driver. This should improve P2P reliability a bit. Signed-off-by: Michal Kazior --- drivers/net/wireless/ath/ath10k/mac.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c index 9206b109e1ce..cb5d253e87d9 100644 --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c @@ -5029,6 +5029,7 @@ static int ath10k_remain_on_channel(struct ieee80211_hw *hw, struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif); struct wmi_start_scan_arg arg; int ret = 0; + u32 scan_time_msec; mutex_lock(&ar->conf_mutex); @@ -5055,7 +5056,7 @@ static int ath10k_remain_on_channel(struct ieee80211_hw *hw, if (ret) goto exit; - duration = max(duration, WMI_SCAN_CHAN_MIN_TIME_MSEC); + scan_time_msec = ar->hw->wiphy->max_remain_on_channel_duration * 2; memset(&arg, 0, sizeof(arg)); ath10k_wmi_start_scan_init(ar, &arg); @@ -5063,9 +5064,9 @@ static int ath10k_remain_on_channel(struct ieee80211_hw *hw, arg.scan_id = ATH10K_SCAN_ID; arg.n_channels = 1; arg.channels[0] = chan->center_freq; - arg.dwell_time_active = duration; - arg.dwell_time_passive = duration; - arg.max_scan_time = 2 * duration; + arg.dwell_time_active = scan_time_msec; + arg.dwell_time_passive = scan_time_msec; + arg.max_scan_time = scan_time_msec; arg.scan_ctrl_flags |= WMI_SCAN_FLAG_PASSIVE; arg.scan_ctrl_flags |= WMI_SCAN_FILTER_PROBE_REQ; @@ -5090,6 +5091,9 @@ static int ath10k_remain_on_channel(struct ieee80211_hw *hw, goto exit; } + ieee80211_queue_delayed_work(ar->hw, &ar->scan.timeout, + msecs_to_jiffies(duration)); + ret = 0; exit: mutex_unlock(&ar->conf_mutex);