Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4688441pxj; Wed, 12 May 2021 10:55:56 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwHQ62N7j2vGbvhbXXDsGDtERo67Y3f/5UOilluytSlye2/gLtNcCwD6zQt7525kGdv6Nxe X-Received: by 2002:a50:ff08:: with SMTP id a8mr13064338edu.46.1620842049661; Wed, 12 May 2021 10:54:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620842049; cv=none; d=google.com; s=arc-20160816; b=m0pGNmq9thMVrBPcbftUsNp+/PTc0C3NAQeqHlVnD94R9otobkwNvIqjjemZTQfQhS EFI9EWf3ghjr+8yst88SHBjjrpYOM7J60T81Oxya549FTN486ZhWT7gOxtBEvGfekfiP +WTpkxOv/9PJA3dc4hTpFqmJvo9uWZ/6OvRcxrhC9+IHa+kAEE8g3qSAc//9dpjxV2bB 3RU0mBQrJHMqKrN6iA4cwRQFTY8MKkRYgOTtZBi8+V8X/k7KRJkPVz+Dim6jzW+aZ7wo jZRr/CwsFQoAJuski9Z6ngFrwd7v80B0Hr5JiizAFvk292gq3mMVdKIinnMOD9uRCN1w pMkA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=ATAm8FDX7FL4aQs7/wXyH4HpB8UjQNPfwIE0+UoHoYo=; b=pUFhwuq9zYV9yoPgP+1elUKT/TdRIg4VkrDvEPCnh2EOK6FueAv5U36fYlJjs4cVbG iP+StQzytuBKaAGnGdQSsGmxYEF7ghu4L8nj/Yf3EoIkyoo+Y8EircbyBvZhb6+AKQat wIN0w3t1lUxE/tbDquCaKeQk4tJ3n+ERHD8vOYJ02bUSyehPAbRTKRsWQXb0UZfY9NK2 YvenU1XKa2M28sX0zEdLSzAsjLeBPI73AgUoxmL7/oloSPGDKVhS9OI/xD5P/taKJ0px 2q8W32uhBvgA1/WOmEqbsvAjxLVvqfmxi2RC80YJfgylPpUEhJQ/uqmQ9pEPUyCKYUfL SoYQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=ucUeC1NO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l27si537290eji.726.2021.05.12.10.53.44; Wed, 12 May 2021 10:54:09 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=ucUeC1NO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1349847AbhELRqo (ORCPT + 99 others); Wed, 12 May 2021 13:46:44 -0400 Received: from mail.kernel.org ([198.145.29.99]:59022 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240577AbhELQSW (ORCPT ); Wed, 12 May 2021 12:18:22 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id F261261D77; Wed, 12 May 2021 15:44:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1620834271; bh=s3bfPF3oHxBiUjwM5Vv+Oy2OVq6HW7wgTAH5gF//9Gc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ucUeC1NOFv2Iep2Xo1HdYFXp9iNau9yrURKlgeEodAI3+/jzVdLgvbM0cupHqHw6M cVG5Mo/LFbGMhqfFxCxIFZGE2pwQxNPCGY1pVFZ4J/t90U3071Mg41Hgh5H0gQlyI6 iwzzX1WV2P23xDUTYYgThIl/ff0ANAW+gBevu5Gc= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Felix Fietkau , Sasha Levin Subject: [PATCH 5.11 476/601] mt76: mt7915: bring up the WA event rx queue for band1 Date: Wed, 12 May 2021 16:49:13 +0200 Message-Id: <20210512144843.521147903@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210512144827.811958675@linuxfoundation.org> References: <20210512144827.811958675@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Felix Fietkau [ Upstream commit 76027f40f5ee04bf15cde3a83af9b873c2affa28 ] This is needed for DBDC cards to work correctly on both bands simultaneously Signed-off-by: Felix Fietkau Signed-off-by: Sasha Levin --- drivers/net/wireless/mediatek/mt76/mt76.h | 1 + drivers/net/wireless/mediatek/mt76/mt7915/dma.c | 8 ++++++++ drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h | 1 + drivers/net/wireless/mediatek/mt76/mt7915/pci.c | 4 ++++ drivers/net/wireless/mediatek/mt76/mt7915/regs.h | 3 ++- 5 files changed, 16 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt76.h b/drivers/net/wireless/mediatek/mt76/mt76.h index 3e496a188bf0..5da6b74687ed 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76.h +++ b/drivers/net/wireless/mediatek/mt76/mt76.h @@ -81,6 +81,7 @@ enum mt76_rxq_id { MT_RXQ_MCU, MT_RXQ_MCU_WA, MT_RXQ_EXT, + MT_RXQ_EXT_WA, __MT_RXQ_MAX }; diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/dma.c b/drivers/net/wireless/mediatek/mt76/mt7915/dma.c index 8c1f9c77b14f..d47d8f4376c6 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7915/dma.c +++ b/drivers/net/wireless/mediatek/mt76/mt7915/dma.c @@ -286,6 +286,14 @@ int mt7915_dma_init(struct mt7915_dev *dev) rx_buf_size, MT_RX_DATA_RING_BASE); if (ret) return ret; + + /* event from WA */ + ret = mt76_queue_alloc(dev, &dev->mt76.q_rx[MT_RXQ_EXT_WA], + MT7915_RXQ_MCU_WA_EXT, + MT7915_RX_MCU_RING_SIZE, + rx_buf_size, MT_RX_EVENT_RING_BASE); + if (ret) + return ret; } ret = mt76_init_queues(dev); diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h b/drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h index fe88ff24f241..6bfb6f1bb878 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h +++ b/drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h @@ -61,6 +61,7 @@ enum mt7915_rxq_id { MT7915_RXQ_BAND1, MT7915_RXQ_MCU_WM = 0, MT7915_RXQ_MCU_WA, + MT7915_RXQ_MCU_WA_EXT, }; struct mt7915_sta_stats { diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/pci.c b/drivers/net/wireless/mediatek/mt76/mt7915/pci.c index aeb86fbea41c..99f11588601d 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7915/pci.c +++ b/drivers/net/wireless/mediatek/mt76/mt7915/pci.c @@ -26,6 +26,7 @@ mt7915_rx_poll_complete(struct mt76_dev *mdev, enum mt76_rxq_id q) [MT_RXQ_EXT] = MT_INT_RX_DONE_DATA1, [MT_RXQ_MCU] = MT_INT_RX_DONE_WM, [MT_RXQ_MCU_WA] = MT_INT_RX_DONE_WA, + [MT_RXQ_EXT_WA] = MT_INT_RX_DONE_WA_EXT, }; mt7915_irq_enable(dev, rx_irq_mask[q]); @@ -67,6 +68,9 @@ static irqreturn_t mt7915_irq_handler(int irq, void *dev_instance) if (intr & MT_INT_RX_DONE_WA) napi_schedule(&dev->mt76.napi[MT_RXQ_MCU_WA]); + if (intr & MT_INT_RX_DONE_WA_EXT) + napi_schedule(&dev->mt76.napi[MT_RXQ_EXT_WA]); + if (intr & MT_INT_MCU_CMD) { u32 val = mt76_rr(dev, MT_MCU_CMD); diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/regs.h b/drivers/net/wireless/mediatek/mt76/mt7915/regs.h index 848703e6eb7c..294cc0769331 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7915/regs.h +++ b/drivers/net/wireless/mediatek/mt76/mt7915/regs.h @@ -342,7 +342,8 @@ #define MT_INT_RX_DONE_DATA1 BIT(17) #define MT_INT_RX_DONE_WM BIT(0) #define MT_INT_RX_DONE_WA BIT(1) -#define MT_INT_RX_DONE_ALL (BIT(0) | BIT(1) | GENMASK(17, 16)) +#define MT_INT_RX_DONE_WA_EXT BIT(2) +#define MT_INT_RX_DONE_ALL (GENMASK(2, 0) | GENMASK(17, 16)) #define MT_INT_TX_DONE_MCU_WA BIT(15) #define MT_INT_TX_DONE_FWDL BIT(26) #define MT_INT_TX_DONE_MCU_WM BIT(27) -- 2.30.2