Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp266731iob; Wed, 18 May 2022 01:34:56 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy/el95aSc/4UFeXq2Vr8LP4w3Lfju7Of0GX82k5rgAmsJ47iLkMMSZBf4qAfbVfoYLxquB X-Received: by 2002:a17:90a:5ae1:b0:1db:d0a4:30a4 with SMTP id n88-20020a17090a5ae100b001dbd0a430a4mr29473985pji.128.1652862896133; Wed, 18 May 2022 01:34:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1652862896; cv=none; d=google.com; s=arc-20160816; b=lzkhf2asuoLYWS/AIh7cJrxCvA7WRiEhy08yKM55bWWypC0iRCt6mE7g5Sqc58fah2 sHFh+X+0RYuDoNM6Mf0Z1pktstebuM8+0hLw/w9UHAMuQLfHpBfuz8ti1fA6E3OXbw1k 8B5h2m+JX5cgl4jVrQ8CAoy3wbCvhyN2bImhxYNqSaQZcHknSViKKYptwIeaIJerT4tD vbBVpDWYXOlpD9+QQcvKqz+0VHvQNKvZT+S8mLd9PJkJYoYRP74rxLvlscq/r3YbjrDF KzYc1Jg860k4OuuUb3HdnTVJS0YBv36n5ywYTrt3+M6YpDjMq3sADunguBYjlQkXVJdI a+zw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date; bh=DK1TQ1nJbVh0PYE1EQYpAOn+U2kEwtw1VVJyNifK6KU=; b=wQ36V/PKe1G09fq4d7oCvJMi2Qu2s2Kn3O8gmIAfLVFEToleTmi/wGJx2tBTDviHTi jP45hEvVGCrxaSf2YxUFXcw6FLbtjp5l+WAvB6tDkJGpcu0IGKtMUr5mEbeC9re3WybC hzrflu3/hrHuCvnHhVusqWOC5JBAlDOB8+0aZZyhOhUqPawinMiaDnPYIpZwBUz3tA9i eAyFpS2uh9uWjjIcDKIkGKrLOyhYoyIdpUm4NpRpCGmkDtN57ONDxA7dXFeunSUwSMKJ X9Y9DSTRRb5nTiXQuJj6iz7Lb1MEV5V6n0gEyGXG15OCACAV74jpzigGnUcNJ7ifr9IT 0wTw== ARC-Authentication-Results: i=1; mx.google.com; spf=softfail (google.com: domain of transitioning linux-wireless-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id 23-20020a17090a0b9700b001dbd09939c7si5727441pjr.14.2022.05.18.01.34.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 May 2022 01:34:56 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-wireless-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; spf=softfail (google.com: domain of transitioning linux-wireless-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 553954EDC5; Wed, 18 May 2022 01:32:46 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233195AbiERIcl (ORCPT + 71 others); Wed, 18 May 2022 04:32:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47368 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233120AbiERIck (ORCPT ); Wed, 18 May 2022 04:32:40 -0400 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C14824ECCD for ; Wed, 18 May 2022 01:32:38 -0700 (PDT) Received: from ptx.hi.pengutronix.de ([2001:67c:670:100:1d::c0]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nrF6i-0005rw-Ea; Wed, 18 May 2022 10:32:36 +0200 Received: from sha by ptx.hi.pengutronix.de with local (Exim 4.92) (envelope-from ) id 1nrF6c-0002Y8-VS; Wed, 18 May 2022 10:32:30 +0200 Date: Wed, 18 May 2022 10:32:30 +0200 From: Sascha Hauer To: linux-wireless@vger.kernel.org Cc: Ping-Ke Shih , Hans Ulli Kroll , Martin Blumenstingl , netdev@vger.kernel.org, Kalle Valo , Yan-Hsuan Chuang , linux-kernel@vger.kernel.org, Neo Jou , kernel@pengutronix.de, Johannes Berg , neo_jou Subject: Re: [PATCH 06/10] rtw88: Add common USB chip support Message-ID: <20220518083230.GR25578@pengutronix.de> References: <20220518082318.3898514-1-s.hauer@pengutronix.de> <20220518082318.3898514-7-s.hauer@pengutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20220518082318.3898514-7-s.hauer@pengutronix.de> X-Sent-From: Pengutronix Hildesheim X-URL: http://www.pengutronix.de/ X-IRC: #ptxdist @freenode X-Accept-Language: de,en X-Accept-Content-Type: text/plain X-Uptime: 10:27:57 up 48 days, 20:57, 79 users, load average: 0.07, 0.10, 0.09 User-Agent: Mutt/1.10.1 (2018-07-13) X-SA-Exim-Connect-IP: 2001:67c:670:100:1d::c0 X-SA-Exim-Mail-From: sha@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-wireless@vger.kernel.org X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RDNS_NONE, SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org On Wed, May 18, 2022 at 10:23:14AM +0200, Sascha Hauer wrote: > Add the common bits and pieces to add USB support to the RTW88 driver. > This is based on https://github.com/ulli-kroll/rtw88-usb.git which > itself is first written by Neo Jou. > > Signed-off-by: neo_jou > Signed-off-by: Hans Ulli Kroll > Signed-off-by: Sascha Hauer > --- > drivers/net/wireless/realtek/rtw88/Kconfig | 3 + > drivers/net/wireless/realtek/rtw88/Makefile | 2 + > drivers/net/wireless/realtek/rtw88/mac.c | 3 + > drivers/net/wireless/realtek/rtw88/main.c | 5 + > drivers/net/wireless/realtek/rtw88/main.h | 4 + > drivers/net/wireless/realtek/rtw88/reg.h | 1 + > drivers/net/wireless/realtek/rtw88/tx.h | 31 + > drivers/net/wireless/realtek/rtw88/usb.c | 1051 +++++++++++++++++++ > drivers/net/wireless/realtek/rtw88/usb.h | 109 ++ > 9 files changed, 1209 insertions(+) > create mode 100644 drivers/net/wireless/realtek/rtw88/usb.c > create mode 100644 drivers/net/wireless/realtek/rtw88/usb.h > > diff --git a/drivers/net/wireless/realtek/rtw88/Kconfig b/drivers/net/wireless/realtek/rtw88/Kconfig > index e3d7cb6c12902..1624c5db69bac 100644 > --- a/drivers/net/wireless/realtek/rtw88/Kconfig > +++ b/drivers/net/wireless/realtek/rtw88/Kconfig > @@ -16,6 +16,9 @@ config RTW88_CORE > config RTW88_PCI > tristate > > +config RTW88_USB > + tristate > + > config RTW88_8822B > tristate > > diff --git a/drivers/net/wireless/realtek/rtw88/Makefile b/drivers/net/wireless/realtek/rtw88/Makefile > index 834c66ec0af9e..9e095f8181483 100644 > --- a/drivers/net/wireless/realtek/rtw88/Makefile > +++ b/drivers/net/wireless/realtek/rtw88/Makefile > @@ -45,4 +45,6 @@ obj-$(CONFIG_RTW88_8821CE) += rtw88_8821ce.o > rtw88_8821ce-objs := rtw8821ce.o > > obj-$(CONFIG_RTW88_PCI) += rtw88_pci.o > +obj-$(CONFIG_RTW88_USB) += rtw88_usb.o > rtw88_pci-objs := pci.o > +rtw88_usb-objs := usb.o > diff --git a/drivers/net/wireless/realtek/rtw88/mac.c b/drivers/net/wireless/realtek/rtw88/mac.c > index d1678aed9d9cb..19728c705eaa9 100644 > --- a/drivers/net/wireless/realtek/rtw88/mac.c > +++ b/drivers/net/wireless/realtek/rtw88/mac.c > @@ -1032,6 +1032,9 @@ static int txdma_queue_mapping(struct rtw_dev *rtwdev) > if (rtw_chip_wcpu_11ac(rtwdev)) > rtw_write32(rtwdev, REG_H2CQ_CSR, BIT_H2CQ_FULL); > > + if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_USB) > + rtw_write8_set(rtwdev, REG_TXDMA_PQ_MAP, BIT_RXDMA_ARBBW_EN); > + > return 0; > } > > diff --git a/drivers/net/wireless/realtek/rtw88/main.c b/drivers/net/wireless/realtek/rtw88/main.c > index 5afb8bef9696a..162fa432ce0d1 100644 > --- a/drivers/net/wireless/realtek/rtw88/main.c > +++ b/drivers/net/wireless/realtek/rtw88/main.c > @@ -1715,6 +1715,10 @@ static int rtw_chip_parameter_setup(struct rtw_dev *rtwdev) > rtwdev->hci.rpwm_addr = 0x03d9; > rtwdev->hci.cpwm_addr = 0x03da; > break; > + case RTW_HCI_TYPE_USB: > + rtwdev->hci.rpwm_addr = 0xfe58; > + rtwdev->hci.cpwm_addr = 0xfe57; > + break; > default: > rtw_err(rtwdev, "unsupported hci type\n"); > return -EINVAL; > @@ -2105,6 +2109,7 @@ int rtw_register_hw(struct rtw_dev *rtwdev, struct ieee80211_hw *hw) > hw->wiphy->available_antennas_rx = hal->antenna_rx; > > hw->wiphy->flags |= WIPHY_FLAG_SUPPORTS_TDLS | > + WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL | > WIPHY_FLAG_TDLS_EXTERNAL_SETUP; This change should be in a separate patch. I don't have an idea though what it's good for anyway. Is this change desired for the PCI variants as well or only for USB? Do we want to have this change at all? Sascha -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |