All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stanislaw Gruszka <sgruszka@redhat.com>
To: linux-wireless@vger.kernel.org
Cc: Helmut Schaa <helmut.schaa@googlemail.com>,
	Mathias Kresin <dev@kresin.me>
Subject: [PATCH 1/9] rt2800usb: remove watchdog
Date: Fri,  6 Jan 2017 14:05:10 +0100	[thread overview]
Message-ID: <1483707918-31480-2-git-send-email-sgruszka@redhat.com> (raw)
In-Reply-To: <1483707918-31480-1-git-send-email-sgruszka@redhat.com>

On rt2800usb, if we do not get TX status from HW, we assume frames were
posted and after entry->last_action timeout, we forcibly provide TX
status to mac80211. So it's not possible to detect hardware TX hung
based on the timeout. Additionally TXRQ_PCNT tells on number of frames
in the Packet Buffer (buffer between bus interface and chip MAC
subsystem), which can be non zero on normal conditions. To check HW hung
we will need provide some different mechanism, for now remove watchdog
as current implementation is wrong and not useful.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
 drivers/net/wireless/ralink/rt2x00/rt2800usb.c | 42 --------------------------
 1 file changed, 42 deletions(-)

diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800usb.c b/drivers/net/wireless/ralink/rt2x00/rt2800usb.c
index f38c440..8ec22c0 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800usb.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800usb.c
@@ -436,47 +436,6 @@ static int rt2800usb_set_device_state(struct rt2x00_dev *rt2x00dev,
 }
 
 /*
- * Watchdog handlers
- */
-static void rt2800usb_watchdog(struct rt2x00_dev *rt2x00dev)
-{
-	unsigned int i;
-	u32 reg;
-
-	rt2x00usb_register_read(rt2x00dev, TXRXQ_PCNT, &reg);
-	if (rt2x00_get_field32(reg, TXRXQ_PCNT_TX0Q)) {
-		rt2x00_warn(rt2x00dev, "TX HW queue 0 timed out, invoke forced kick\n");
-
-		rt2x00usb_register_write(rt2x00dev, PBF_CFG, 0xf40012);
-
-		for (i = 0; i < 10; i++) {
-			udelay(10);
-			if (!rt2x00_get_field32(reg, TXRXQ_PCNT_TX0Q))
-				break;
-		}
-
-		rt2x00usb_register_write(rt2x00dev, PBF_CFG, 0xf40006);
-	}
-
-	rt2x00usb_register_read(rt2x00dev, TXRXQ_PCNT, &reg);
-	if (rt2x00_get_field32(reg, TXRXQ_PCNT_TX1Q)) {
-		rt2x00_warn(rt2x00dev, "TX HW queue 1 timed out, invoke forced kick\n");
-
-		rt2x00usb_register_write(rt2x00dev, PBF_CFG, 0xf4000a);
-
-		for (i = 0; i < 10; i++) {
-			udelay(10);
-			if (!rt2x00_get_field32(reg, TXRXQ_PCNT_TX1Q))
-				break;
-		}
-
-		rt2x00usb_register_write(rt2x00dev, PBF_CFG, 0xf40006);
-	}
-
-	rt2x00usb_watchdog(rt2x00dev);
-}
-
-/*
  * TX descriptor initialization
  */
 static __le32 *rt2800usb_get_txwi(struct queue_entry *entry)
@@ -877,7 +836,6 @@ static const struct rt2x00lib_ops rt2800usb_rt2x00_ops = {
 	.link_tuner		= rt2800_link_tuner,
 	.gain_calibration	= rt2800_gain_calibration,
 	.vco_calibration	= rt2800_vco_calibration,
-	.watchdog		= rt2800usb_watchdog,
 	.start_queue		= rt2800usb_start_queue,
 	.kick_queue		= rt2x00usb_kick_queue,
 	.stop_queue		= rt2800usb_stop_queue,
-- 
2.7.4

  reply	other threads:[~2017-01-06 13:10 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-06 13:05 [PATCH 0/9] rt2800 patches 06.01.2017 Stanislaw Gruszka
2017-01-06 13:05 ` Stanislaw Gruszka [this message]
2017-01-17 11:59   ` [1/9] rt2800usb: remove watchdog Kalle Valo
2017-01-06 13:05 ` [PATCH 2/9] rt2800: increase TX timeout Stanislaw Gruszka
2017-01-06 15:15   ` Felix Fietkau
2017-01-06 15:34     ` Stanislaw Gruszka
2017-01-06 13:05 ` [PATCH 3/9] rt2x00: save conf settings before reset tuner Stanislaw Gruszka
2017-01-06 13:05 ` [PATCH 4/9] rt2800: change default retry settings Stanislaw Gruszka
2017-01-06 13:05 ` [PATCH 5/9] rt2800: tune TX_RTS_CFG config Stanislaw Gruszka
2017-01-06 13:05 ` [PATCH 6/9] rt2800: fallback from mcs8 to mcs7 Stanislaw Gruszka
2017-01-12 11:10   ` Felix Fietkau
2017-01-13  9:09     ` Stanislaw Gruszka
2017-01-13 10:11   ` [6/9] " Kalle Valo
2017-01-06 13:05 ` [PATCH 7/9] rt2800usb: mark tx failure on timeout Stanislaw Gruszka
2017-01-06 13:05 ` [PATCH 8/9] rt2x00: do not flush empty queue Stanislaw Gruszka
2017-01-06 13:05 ` [PATCH 9/9] rt2800: set max_psdu to 3 on usb devices Stanislaw Gruszka

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1483707918-31480-2-git-send-email-sgruszka@redhat.com \
    --to=sgruszka@redhat.com \
    --cc=dev@kresin.me \
    --cc=helmut.schaa@googlemail.com \
    --cc=linux-wireless@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.