From patchwork Thu May 18 16:17:46 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Martin Blumenstingl X-Patchwork-Id: 13247035 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id CACF4C77B7D for ; Thu, 18 May 2023 16:18:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229563AbjERQSC (ORCPT ); Thu, 18 May 2023 12:18:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49508 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229452AbjERQSB (ORCPT ); Thu, 18 May 2023 12:18:01 -0400 Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com [IPv6:2a00:1450:4864:20::532]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2669613E; Thu, 18 May 2023 09:18:00 -0700 (PDT) Received: by mail-ed1-x532.google.com with SMTP id 4fb4d7f45d1cf-50db91640d3so3406780a12.0; Thu, 18 May 2023 09:18:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20221208; t=1684426678; x=1687018678; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Tx7s4OrARk8t2mLBnmDH++pXkn/KMVh2OKBh1m33oDE=; b=NJXCXKeV++0l8oZ9PD5rxfVowNrQ2djGKKSh+Hl22SZ2KQFAyADbkDUJAdSioavIXD xUtjTjfpcdr4IFmRzOjzOJllar51eR2K9gRbIERsbIWTIasRR/JNQSrDLjwau0GU3RyO 3EvTkbY9U0LvLKExeU01EwV2B3INGRdRqLvG07oyO0SRsrrQF1ciXpQymTjOeKlp9Flx +Z1S87ikZ1AM551+FU8n4Jua4TPov4pC/elNhbqin0aF+kdFZB0n44Sb4E6KHq65JUur gQgCmeIYooes1E3usjf3tGyaupy4BIcRmKRhLdZWUePKD/O9NWJg038A02fbXSN94L4W vPXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684426678; x=1687018678; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Tx7s4OrARk8t2mLBnmDH++pXkn/KMVh2OKBh1m33oDE=; b=EB9v0eEkXwkVGf0Mj3u++fuwiQ7QKHQ5RyPrv2DcGty1HOryALsTywN2bEcDeD78kk 4XnmBWMW9Qk2JAqmF78lnEpDM46SLtgTbaIYCgdLd6HcxZGPN2OAhtHsbNtZALBzwgGj UhSsmgeP4d8yZkeP4I8KaTDSDO4XN14Z9TleeMj5r/hy6ul/SU+p9ENAnZ+pEwbxIubU XOflaQPBkSI0+63Pd4rYRIkge0bz5QzOCm9FdaJsXkzs7dc2NJn6nZqo27ac9wVBdy69 aAvjDQX3X+aupEnuwWPDpUFvyrpMtccHOteRCNnckrLxWI+ZhpykmYPK6LaD3jzYXEJs AzqA== X-Gm-Message-State: AC+VfDycmCFzGnZODm7NW2ghIIJBYmwq1qu++VjVgc84mA1ulXE2pb09 z7A/ZijfQjoF4ZrwWWnZh+HIv2p/dEg= X-Google-Smtp-Source: ACHHUZ4UcQBNymzA69E29b44BWwch+9k/SIYvZRLyVAXxbQGs3hj1Bbz0N1FYBMCWzIexLr8fcFfSw== X-Received: by 2002:a05:6402:b2f:b0:510:e902:9678 with SMTP id bo15-20020a0564020b2f00b00510e9029678mr1799893edb.8.1684426678013; Thu, 18 May 2023 09:17:58 -0700 (PDT) Received: from localhost.localdomain (dynamic-2a01-0c22-73e5-9e00-0000-0000-0000-0e63.c22.pool.telefonica.de. [2a01:c22:73e5:9e00::e63]) by smtp.googlemail.com with ESMTPSA id c14-20020aa7c74e000000b0050bc13e5aa9sm756307eds.63.2023.05.18.09.17.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 May 2023 09:17:57 -0700 (PDT) From: Martin Blumenstingl To: linux-wireless@vger.kernel.org Cc: linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, ulf.hansson@linaro.org, kvalo@kernel.org, tony0620emma@gmail.com, Peter Robinson , Ping-Ke Shih , jernej.skrabec@gmail.com, Martin Blumenstingl Subject: [PATCH wireless-next v1 1/4] wifi: rtw88: sdio: Check the HISR RX_REQUEST bit in rtw_sdio_rx_isr() Date: Thu, 18 May 2023 18:17:46 +0200 Message-Id: <20230518161749.1311949-2-martin.blumenstingl@googlemail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230518161749.1311949-1-martin.blumenstingl@googlemail.com> References: <20230518161749.1311949-1-martin.blumenstingl@googlemail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-mmc@vger.kernel.org rtw_sdio_rx_isr() is responsible for receiving data from the wifi chip and is called from the SDIO interrupt handler when the interrupt status register (HISR) has the RX_REQUEST bit set. After the first batch of data has been processed by the driver the wifi chip may have more data ready to be read, which is managed by a loop in rtw_sdio_rx_isr(). It turns out that there are cases where the RX buffer length (from the REG_SDIO_RX0_REQ_LEN register) does not match the data we receive. The following two cases were observed with a RTL8723DS card: - RX length is smaller than the total packet length including overhead and actual data bytes (whose length is part of the buffer we read from the wifi chip and is stored in rtw_rx_pkt_stat.pkt_len). This can result in errors like: skbuff: skb_over_panic: text:ffff8000011924ac len:3341 put:3341 (one case observed was: RX buffer length = 1536 bytes but rtw_rx_pkt_stat.pkt_len = 1546 bytes, this is not valid as it means we need to read beyond the end of the buffer) - RX length looks valid but rtw_rx_pkt_stat.pkt_len is zero Check if the RX_REQUEST is set in the HISR register for each iteration inside rtw_sdio_rx_isr(). This mimics what the RTL8723DS vendor driver does and makes the driver only read more data if the RX_REQUEST bit is set (which seems to be a way for the card's hardware or firmware to tell the host that data is ready to be processed). For RTW_WCPU_11AC chips this check is not needed. The RTL8822BS vendor driver for example states that this check is unnecessary (but still uses it) and the RTL8822CS drops this check entirely. Signed-off-by: Martin Blumenstingl Reviewed-by: Ping-Ke Shih --- drivers/net/wireless/realtek/rtw88/sdio.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw88/sdio.c b/drivers/net/wireless/realtek/rtw88/sdio.c index 06fce7c3adda..32b8c9194b2c 100644 --- a/drivers/net/wireless/realtek/rtw88/sdio.c +++ b/drivers/net/wireless/realtek/rtw88/sdio.c @@ -998,9 +998,9 @@ static void rtw_sdio_rxfifo_recv(struct rtw_dev *rtwdev, u32 rx_len) static void rtw_sdio_rx_isr(struct rtw_dev *rtwdev) { - u32 rx_len, total_rx_bytes = 0; + u32 rx_len, hisr, total_rx_bytes = 0; - while (total_rx_bytes < SZ_64K) { + do { if (rtw_chip_wcpu_11n(rtwdev)) rx_len = rtw_read16(rtwdev, REG_SDIO_RX0_REQ_LEN); else @@ -1012,7 +1012,24 @@ static void rtw_sdio_rx_isr(struct rtw_dev *rtwdev) rtw_sdio_rxfifo_recv(rtwdev, rx_len); total_rx_bytes += rx_len; - } + + if (rtw_chip_wcpu_11n(rtwdev)) + /* Stop if no more RX requests are pending, even if + * rx_len could be greater than zero in the next + * iteration. This is needed because the RX buffer may + * already contain data while either HW or FW are not + * done filling that buffer yet. Still reading the + * buffer can result in packets where + * rtw_rx_pkt_stat.pkt_len is zero or points beyond the + * end of the buffer. + */ + hisr = rtw_read32(rtwdev, REG_SDIO_HISR); + else + /* RTW_WCPU_11AC chips have improved hardware or + * firmware and can use rx_len unconditionally. + */ + hisr = REG_SDIO_HISR_RX_REQUEST; + } while (total_rx_bytes < SZ_64K && hisr & REG_SDIO_HISR_RX_REQUEST); } static void rtw_sdio_handle_interrupt(struct sdio_func *sdio_func) From patchwork Thu May 18 16:17:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Martin Blumenstingl X-Patchwork-Id: 13247036 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2EE90C7EE25 for ; Thu, 18 May 2023 16:18:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229610AbjERQSE (ORCPT ); Thu, 18 May 2023 12:18:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49514 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229582AbjERQSC (ORCPT ); Thu, 18 May 2023 12:18:02 -0400 Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com [IPv6:2a00:1450:4864:20::534]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8509D19A; Thu, 18 May 2023 09:18:00 -0700 (PDT) Received: by mail-ed1-x534.google.com with SMTP id 4fb4d7f45d1cf-510d9218506so2752400a12.1; Thu, 18 May 2023 09:18:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20221208; t=1684426679; x=1687018679; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=OJG7cNfD9GJybjbmQLXmdru6I/qiVuV5EUWE6EfH08w=; b=F2/4bzQPc9xF0srjvaUH+bvGf11gMRAY4Q/OK4Yvx6mbtCo12zyhemvO5saLArEOeQ Kvjt1h+9f3DUuB0YahG13iXnTZI/q0TwrpdjpfWvd6CiEdZk/qo3dJRizjsprPNiV1Dx nq0+1uGg3F820o4QxMHROit5fBjO4AaAwBAhbEqDfRTK+jVmTm1iL2c4gWkzX+ux4RNw MkVugWS3k9iW6RYZolxEUakz1QRFhFSkoLRqgRSx2V/OvGxWoaPR2QIsuXSmmzkhbka1 08S6QWzWP7y5AgbLFWAvM2jYiqceJDJwSIudKuPBzi94IvT1/IwOww2n0ojLY+ulp5/f Oqzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684426679; x=1687018679; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=OJG7cNfD9GJybjbmQLXmdru6I/qiVuV5EUWE6EfH08w=; b=gzoFRi1TKq/UC5CObSmqwbz0bwOBAjMcR0tHxU+QfCQLFMREOHPjkL+s+ROWf0RiC1 kc9z6vwA4AVO5Qwv5cfDSroyz7Q5ohaooIUuAwg7e7KWfS70f8Fh9Z4Y0pDAcMrR+BFs BvNQ2GJMFMFzPVRZxXFTSRVio7yki5rlwQp8n34TQhGbXf0L2Tvl5IZToIAOQOP9aj8v JFkNyKdqaiSG1GGx1Uiy/Nfd2iKXQhi8PucuzjJ1BpWggL/GIxWE78cb9tKLZYG8qTOf KZRCM96xFsEljclqzz5R+YmWSevsSX3YO/ewcfTR90GbN/5cRNNO7Lbd7pBiXIOq1CrD TbmQ== X-Gm-Message-State: AC+VfDxxUAv/G+nYiQPYrqhhCdNkstcwUOTczKTw6/MOmMMwFJ5DNKzf eBLT+vkwq+PzUu60xHN0MedU82WKX+I= X-Google-Smtp-Source: ACHHUZ7tZ9FPO+whTVEVld8RsRFVt+us6oGHxp/7xjOf4Z2biT8gvgHiU6MAUiN/GVD7NNrLZqVwcA== X-Received: by 2002:a05:6402:26ca:b0:50c:1603:654 with SMTP id x10-20020a05640226ca00b0050c16030654mr5774678edd.16.1684426678717; Thu, 18 May 2023 09:17:58 -0700 (PDT) Received: from localhost.localdomain (dynamic-2a01-0c22-73e5-9e00-0000-0000-0000-0e63.c22.pool.telefonica.de. [2a01:c22:73e5:9e00::e63]) by smtp.googlemail.com with ESMTPSA id c14-20020aa7c74e000000b0050bc13e5aa9sm756307eds.63.2023.05.18.09.17.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 May 2023 09:17:58 -0700 (PDT) From: Martin Blumenstingl To: linux-wireless@vger.kernel.org Cc: linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, ulf.hansson@linaro.org, kvalo@kernel.org, tony0620emma@gmail.com, Peter Robinson , Ping-Ke Shih , jernej.skrabec@gmail.com, Martin Blumenstingl Subject: [PATCH wireless-next v1 2/4] wifi: rtw88: rtw8723d: Implement RTL8723DS (SDIO) efuse parsing Date: Thu, 18 May 2023 18:17:47 +0200 Message-Id: <20230518161749.1311949-3-martin.blumenstingl@googlemail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230518161749.1311949-1-martin.blumenstingl@googlemail.com> References: <20230518161749.1311949-1-martin.blumenstingl@googlemail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-mmc@vger.kernel.org The efuse of the SDIO RTL8723DS chip has only one known member: the mac address is at offset 0x11a. Add a struct rtw8723ds_efuse describing this and use it for copying the mac address when the SDIO bus is used. Signed-off-by: Martin Blumenstingl Reviewed-by: Ping-Ke Shih --- drivers/net/wireless/realtek/rtw88/rtw8723d.c | 9 +++++++++ drivers/net/wireless/realtek/rtw88/rtw8723d.h | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/drivers/net/wireless/realtek/rtw88/rtw8723d.c b/drivers/net/wireless/realtek/rtw88/rtw8723d.c index 06e7454c9ca6..cadf66f4e854 100644 --- a/drivers/net/wireless/realtek/rtw88/rtw8723d.c +++ b/drivers/net/wireless/realtek/rtw88/rtw8723d.c @@ -216,6 +216,12 @@ static void rtw8723du_efuse_parsing(struct rtw_efuse *efuse, ether_addr_copy(efuse->addr, map->u.mac_addr); } +static void rtw8723ds_efuse_parsing(struct rtw_efuse *efuse, + struct rtw8723d_efuse *map) +{ + ether_addr_copy(efuse->addr, map->s.mac_addr); +} + static int rtw8723d_read_efuse(struct rtw_dev *rtwdev, u8 *log_map) { struct rtw_efuse *efuse = &rtwdev->efuse; @@ -248,6 +254,9 @@ static int rtw8723d_read_efuse(struct rtw_dev *rtwdev, u8 *log_map) case RTW_HCI_TYPE_USB: rtw8723du_efuse_parsing(efuse, map); break; + case RTW_HCI_TYPE_SDIO: + rtw8723ds_efuse_parsing(efuse, map); + break; default: /* unsupported now */ return -ENOTSUPP; diff --git a/drivers/net/wireless/realtek/rtw88/rtw8723d.h b/drivers/net/wireless/realtek/rtw88/rtw8723d.h index a356318a5c15..3642a2c7f80c 100644 --- a/drivers/net/wireless/realtek/rtw88/rtw8723d.h +++ b/drivers/net/wireless/realtek/rtw88/rtw8723d.h @@ -49,6 +49,11 @@ struct rtw8723du_efuse { u8 mac_addr[ETH_ALEN]; /* 0x107 */ }; +struct rtw8723ds_efuse { + u8 res4[0x4a]; /* 0xd0 */ + u8 mac_addr[ETH_ALEN]; /* 0x11a */ +}; + struct rtw8723d_efuse { __le16 rtl_id; u8 rsvd[2]; @@ -80,6 +85,7 @@ struct rtw8723d_efuse { union { struct rtw8723de_efuse e; struct rtw8723du_efuse u; + struct rtw8723ds_efuse s; }; }; From patchwork Thu May 18 16:17:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Martin Blumenstingl X-Patchwork-Id: 13247037 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 16754C7EE2C for ; Thu, 18 May 2023 16:18:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229452AbjERQSF (ORCPT ); Thu, 18 May 2023 12:18:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49518 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229586AbjERQSC (ORCPT ); Thu, 18 May 2023 12:18:02 -0400 Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com [IPv6:2a00:1450:4864:20::631]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4D1B2130; Thu, 18 May 2023 09:18:01 -0700 (PDT) Received: by mail-ej1-x631.google.com with SMTP id a640c23a62f3a-965ac4dd11bso431478966b.2; Thu, 18 May 2023 09:18:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20221208; t=1684426679; x=1687018679; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5XW1YARE7E8K+MhlpqrqLzPXi7UUbr9A30X0rShV3GA=; b=LSbx/kUGhv7jlzMGDp6/+uLQKWlrnlIxuB5wnTCX4yO8RFnUKUMzpmCvZ/6l6Y2aMU tHyv+f+aLoZuy5CYp5s8BGbJFEzZInmGwWaxXshvXSoFCM36gHMUSj2NyaU738LvzfYL AOsAr7oeSpraAfZO7zFhgghN50flUsLJp5Qcn/tv/rw681S2negkLW1xQIag6St2EfoR yb0fk3uTWkmTn0WprFtWUIneV9fsFdGhb14YJrkCkl5nFdTYvTgiwJGuBRleN4K9R+Mj sJUTcO3yBAxzpu6tv3wp6860RejArJZIaxjlF4a8jT9GdHNk3dGEp9yUGc1xXV8IFoTI miaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684426679; x=1687018679; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5XW1YARE7E8K+MhlpqrqLzPXi7UUbr9A30X0rShV3GA=; b=blz4HiObGvXOzzknGs4oQx2NQamhJRSMtVzVJFzoWyXQypxxgm4KjUAWTy2dpK5wkG ThRI//lIksx7zmyvKIpBBDOAzAGyqOIGL8ZOHEWA90o9ddGaQC5OyagIauC+Q0kyYhN2 Fr56xgSDtig7dIQVmBTNz+fEBfYbNDl+BBiCLWzaQuLd0tfU4TkCstaOEbSowiD0XTHB al6xX8ms5ptE9mKGCEPa9HZNk6Ti2Su9fLhKBAkGypAKWH8uVGhJFPpp61t9CCl2i7dq ao+7OzSvlWaO6uJFP8hi4Q1bAIGEw5mgzUOHegqQTG9BRgUEdRcALx3pdAESXS0KlNje m7Aw== X-Gm-Message-State: AC+VfDygrP8k9Fu+dqo/9XK59QykdNjf1YbS4V53E5zNNTNtivhDjhR3 fim4GyXkkTCq4I0+a3GuOZB69svLz6U= X-Google-Smtp-Source: ACHHUZ5ySQcXTbv70UijR3P/lbLGTK0uiUtd2zWmkV9xU/1iU5IHKgar/xj/CR/FSazv4tLd48YRCA== X-Received: by 2002:a50:ee11:0:b0:50b:febd:3cde with SMTP id g17-20020a50ee11000000b0050bfebd3cdemr5264776eds.42.1684426679492; Thu, 18 May 2023 09:17:59 -0700 (PDT) Received: from localhost.localdomain (dynamic-2a01-0c22-73e5-9e00-0000-0000-0000-0e63.c22.pool.telefonica.de. [2a01:c22:73e5:9e00::e63]) by smtp.googlemail.com with ESMTPSA id c14-20020aa7c74e000000b0050bc13e5aa9sm756307eds.63.2023.05.18.09.17.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 May 2023 09:17:59 -0700 (PDT) From: Martin Blumenstingl To: linux-wireless@vger.kernel.org Cc: linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, ulf.hansson@linaro.org, kvalo@kernel.org, tony0620emma@gmail.com, Peter Robinson , Ping-Ke Shih , jernej.skrabec@gmail.com, Martin Blumenstingl Subject: [PATCH wireless-next v1 3/4] mmc: sdio: Add/rename SDIO ID of the RTL8723DS SDIO wifi cards Date: Thu, 18 May 2023 18:17:48 +0200 Message-Id: <20230518161749.1311949-4-martin.blumenstingl@googlemail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230518161749.1311949-1-martin.blumenstingl@googlemail.com> References: <20230518161749.1311949-1-martin.blumenstingl@googlemail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-mmc@vger.kernel.org RTL8723DS comes in two variant and each of them has their own SDIO ID: - 0xd723 can connect two antennas. The WiFi part is still 1x1 so the second antenna can be dedicated to Bluetooth - 0xd724 can only connect one antenna so it's shared between WiFi and Bluetooth Add a new entry for the single antenna RTL8723DS (0xd724) which can be found on the MangoPi MQ-Quad. Also rename the existing RTL8723DS entry (0xd723) so it's name reflects that it's the variant with support for two antennas. Signed-off-by: Martin Blumenstingl Reviewed-by: Ping-Ke Shih --- include/linux/mmc/sdio_ids.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/linux/mmc/sdio_ids.h b/include/linux/mmc/sdio_ids.h index c653accdc7fd..7fada7a714fe 100644 --- a/include/linux/mmc/sdio_ids.h +++ b/include/linux/mmc/sdio_ids.h @@ -121,7 +121,8 @@ #define SDIO_DEVICE_ID_REALTEK_RTW8822BS 0xb822 #define SDIO_DEVICE_ID_REALTEK_RTW8821CS 0xc821 #define SDIO_DEVICE_ID_REALTEK_RTW8822CS 0xc822 -#define SDIO_DEVICE_ID_REALTEK_RTW8723DS 0xd723 +#define SDIO_DEVICE_ID_REALTEK_RTW8723DS_2ANT 0xd723 +#define SDIO_DEVICE_ID_REALTEK_RTW8723DS_1ANT 0xd724 #define SDIO_DEVICE_ID_REALTEK_RTW8821DS 0xd821 #define SDIO_VENDOR_ID_SIANO 0x039a From patchwork Thu May 18 16:17:49 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Martin Blumenstingl X-Patchwork-Id: 13247038 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 82829C7EE2F for ; Thu, 18 May 2023 16:18:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229624AbjERQSG (ORCPT ); Thu, 18 May 2023 12:18:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49524 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229595AbjERQSD (ORCPT ); Thu, 18 May 2023 12:18:03 -0400 Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com [IPv6:2a00:1450:4864:20::532]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 51D4F13E; Thu, 18 May 2023 09:18:02 -0700 (PDT) Received: by mail-ed1-x532.google.com with SMTP id 4fb4d7f45d1cf-510d6b939bfso3491211a12.0; Thu, 18 May 2023 09:18:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20221208; t=1684426680; x=1687018680; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=gVuUzhjr+2NlfNCMwyqYcJUkzoS2xm3xsSK+vysljqE=; b=YVCinwZm3Gpv165ZjZWCIZri/1QZyYQIn49J9Kna/LVRhk/XIwcv1WY5QUr8Q9Icu3 cMb/ONAZxrlMVXZhp/YyKT2rQHoS2qKCMR8BoJNraCeeEmshi/25pkRvIp4XFU3Tr9yH p0lXXjLx4UNsmdPhM6//okX+LaoS5s1KjaekoR/um3vqF5YXO9SuLE2zAr9SBnI4WUkD JUWN8p0E8yvngOA+LoUY6arbd8uxvmJ1MAtaGxgBPSGzKg26Bwp0VWc1cV/uzfSXsK/p bR0hdNi2GsR/srkw+Xl/Z85XnlldRR2c0NwmFl06UVo/9ZA0P893nrJ5yFsCcJFXzDPH 8KNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684426680; x=1687018680; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gVuUzhjr+2NlfNCMwyqYcJUkzoS2xm3xsSK+vysljqE=; b=egpNzWzZWM/NubZnNGuiwMj+u1HDBLnbWYOlbjjo2lgaHHpo79LnGTdsTAMN+y0NYW kp/N+fjB69xkBE0pGh5JeMSnZy1CTirvQPuFGIpBjhHebkI3ncylBgdh0GwGLdHK7woW bILF2SHNfabgLy4Xax7glF+COJog/q/4zpqxtLawkRwsgirJb8BkOrTaXx5NEc8rkl45 JhzHFPzltNTTeC7ix2Z4sjU/ONjmmEa0gejjWGQQ40Hl6LUFT6xDOMMwpqVfLU3ZWi4/ 6zlmz/D9KoTGeL0VxGLDl8l/5tuUNd7c6SzM9cFF7B/24LjVg+YPRu6OIDSkjQDDVqne f7gA== X-Gm-Message-State: AC+VfDyFVd1wdr242DLfjVP9+R8NDZzXEnyPqa1b8+tDTGb+6zLW3gd5 ZSB/axLcety77X/0ol7PlXU3SE27ogQ= X-Google-Smtp-Source: ACHHUZ4SCXgMWbeecxLrsOOUibPYuErb/E+Wn+uaw1/dOF9iex4ZUNGyodWojXCBkYT4U1FrcdWZaA== X-Received: by 2002:a05:6402:53:b0:4fa:b302:84d4 with SMTP id f19-20020a056402005300b004fab30284d4mr5088857edu.13.1684426680518; Thu, 18 May 2023 09:18:00 -0700 (PDT) Received: from localhost.localdomain (dynamic-2a01-0c22-73e5-9e00-0000-0000-0000-0e63.c22.pool.telefonica.de. [2a01:c22:73e5:9e00::e63]) by smtp.googlemail.com with ESMTPSA id c14-20020aa7c74e000000b0050bc13e5aa9sm756307eds.63.2023.05.18.09.17.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 May 2023 09:18:00 -0700 (PDT) From: Martin Blumenstingl To: linux-wireless@vger.kernel.org Cc: linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, ulf.hansson@linaro.org, kvalo@kernel.org, tony0620emma@gmail.com, Peter Robinson , Ping-Ke Shih , jernej.skrabec@gmail.com, Martin Blumenstingl Subject: [PATCH wireless-next v1 4/4] wifi: rtw88: Add support for the SDIO based RTL8723DS chipset Date: Thu, 18 May 2023 18:17:49 +0200 Message-Id: <20230518161749.1311949-5-martin.blumenstingl@googlemail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230518161749.1311949-1-martin.blumenstingl@googlemail.com> References: <20230518161749.1311949-1-martin.blumenstingl@googlemail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-mmc@vger.kernel.org Wire up RTL8723DS chipset support using the rtw88 SDIO HCI code as well as the existing RTL8723D chipset code. Signed-off-by: Martin Blumenstingl Reviewed-by: Ping-Ke Shih --- drivers/net/wireless/realtek/rtw88/Kconfig | 11 +++++ drivers/net/wireless/realtek/rtw88/Makefile | 3 ++ .../net/wireless/realtek/rtw88/rtw8723ds.c | 41 +++++++++++++++++++ 3 files changed, 55 insertions(+) create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8723ds.c diff --git a/drivers/net/wireless/realtek/rtw88/Kconfig b/drivers/net/wireless/realtek/rtw88/Kconfig index 29eb2f8e0eb7..cffad1c01249 100644 --- a/drivers/net/wireless/realtek/rtw88/Kconfig +++ b/drivers/net/wireless/realtek/rtw88/Kconfig @@ -111,6 +111,17 @@ config RTW88_8723DE 802.11n PCIe wireless network adapter +config RTW88_8723DS + tristate "Realtek 8723DS SDIO wireless network adapter" + depends on MMC + select RTW88_CORE + select RTW88_SDIO + select RTW88_8723D + help + Select this option will enable support for 8723DS chipset + + 802.11n SDIO wireless network adapter + config RTW88_8723DU tristate "Realtek 8723DU USB wireless network adapter" depends on USB diff --git a/drivers/net/wireless/realtek/rtw88/Makefile b/drivers/net/wireless/realtek/rtw88/Makefile index 82979b30ae8d..fd212c09d88a 100644 --- a/drivers/net/wireless/realtek/rtw88/Makefile +++ b/drivers/net/wireless/realtek/rtw88/Makefile @@ -50,6 +50,9 @@ rtw88_8723d-objs := rtw8723d.o rtw8723d_table.o obj-$(CONFIG_RTW88_8723DE) += rtw88_8723de.o rtw88_8723de-objs := rtw8723de.o +obj-$(CONFIG_RTW88_8723DS) += rtw88_8723ds.o +rtw88_8723ds-objs := rtw8723ds.o + obj-$(CONFIG_RTW88_8723DU) += rtw88_8723du.o rtw88_8723du-objs := rtw8723du.o diff --git a/drivers/net/wireless/realtek/rtw88/rtw8723ds.c b/drivers/net/wireless/realtek/rtw88/rtw8723ds.c new file mode 100644 index 000000000000..e5b6960ba0a0 --- /dev/null +++ b/drivers/net/wireless/realtek/rtw88/rtw8723ds.c @@ -0,0 +1,41 @@ +// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause +/* Copyright(c) Martin Blumenstingl + */ + +#include +#include +#include +#include "main.h" +#include "rtw8723d.h" +#include "sdio.h" + +static const struct sdio_device_id rtw_8723ds_id_table[] = { + { + SDIO_DEVICE(SDIO_VENDOR_ID_REALTEK, + SDIO_DEVICE_ID_REALTEK_RTW8723DS_1ANT), + .driver_data = (kernel_ulong_t)&rtw8723d_hw_spec, + }, + { + SDIO_DEVICE(SDIO_VENDOR_ID_REALTEK, + SDIO_DEVICE_ID_REALTEK_RTW8723DS_2ANT), + .driver_data = (kernel_ulong_t)&rtw8723d_hw_spec, + }, + {} +}; +MODULE_DEVICE_TABLE(sdio, rtw_8723ds_id_table); + +static struct sdio_driver rtw_8723ds_driver = { + .name = "rtw_8723ds", + .probe = rtw_sdio_probe, + .remove = rtw_sdio_remove, + .id_table = rtw_8723ds_id_table, + .drv = { + .pm = &rtw_sdio_pm_ops, + .shutdown = rtw_sdio_shutdown, + } +}; +module_sdio_driver(rtw_8723ds_driver); + +MODULE_AUTHOR("Martin Blumenstingl "); +MODULE_DESCRIPTION("Realtek 802.11n wireless 8723ds driver"); +MODULE_LICENSE("Dual BSD/GPL");