From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
To: Larry Finger <Larry.Finger@lwfinger.net>,
"linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>
Cc: Ping-Ke Shih <pkshih@realtek.com>, Sascha Hauer <sha@pengutronix.de>
Subject: Re: [PATCH] wifi: rtw88: usb: Simplify rtw_usb_write_data
Date: Fri, 3 May 2024 12:53:32 +0300 [thread overview]
Message-ID: <cb7db549-23bf-4c9d-be1d-4480eb8f2b77@gmail.com> (raw)
In-Reply-To: <a4307823-f834-4cea-8206-6e966bb091ff@lwfinger.net>
On 03/05/2024 01:18, Larry Finger wrote:
> On 5/2/24 4:23 PM, Bitterblue Smith wrote:
>> The skb created in this function always has the same headroom,
>> the chip's TX descriptor size. Use chip->tx_pkt_desc_sz directly.
>>
>> Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
>> ---
>> This is the patch I promised earlier:
>> https://lore.kernel.org/linux-wireless/cae2d330-a4fb-4570-9dde-09684af23ffd@gmail.com/
>> ---
>> drivers/net/wireless/realtek/rtw88/usb.c | 14 +++++---------
>> 1 file changed, 5 insertions(+), 9 deletions(-)
>>
>> diff --git a/usb.c b/usb.c
>> index 1dfe7c6ae4ba..ff57976b9d3b 100644
>> --- a/usb.c
>> +++ b/usb.c
>> @@ -440,23 +440,21 @@ static int rtw_usb_write_data(struct rtw_dev *rtwdev,
>> {
>> const struct rtw_chip_info *chip = rtwdev->chip;
>> struct sk_buff *skb;
>> - unsigned int desclen, headsize, size;
>> + unsigned int size;
>> u8 qsel;
>> int ret = 0;
>> size =pkt_info->tx_pkt_size;
>> qsel = pkt_info->qsel;
>> - desclen = chip->tx_pkt_desc_sz;
>> - headsize = pkt_info->offset ? pkt_info->offset : desclen;
>> - skb = dev_alloc_skb(headsize + size);
>> + skb = dev_alloc_skb(chip->tx_pkt_desc_sz + size);
>> if (unlikely(!skb))
>> return -ENOMEM;
>> - skb_reserve(skb, headsize);
>> + skb_reserve(skb, chip->tx_pkt_desc_sz);
>> skb_put_data(skb, buf, size);
>> - skb_push(skb, headsize);
>> - memset(skb->data, 0, headsize);
>> + skb_push(skb, chip->tx_pkt_desc_sz);
>> + memset(skb->data, 0, chip->tx_pkt_desc_sz);
>> rtw_tx_fill_tx_desc(pkt_info, skb);
>> rtw_tx_fill_txdesc_checksum(rtwdev, pkt_info, skb->data);
>> @@ -471,12 +469,10 @@ static int rtw_usb_write_data(struct rtw_dev *rtwdev,
>> static int rtw_usb_write_data_rsvd_page(struct rtw_dev *rtwdev, u8 *buf,
>> u32 size)
>> {
>> - const struct rtw_chip_info *chip = rtwdev->chip;
>> struct rtw_tx_pkt_info pkt_info = {0};
>> pkt_info.tx_pkt_size = size;
>> pkt_info.qsel = TX_DESC_QSEL_BEACON;
>> - pkt_info.offset = chip->tx_pkt_desc_sz;
>> return rtw_usb_write_data(rtwdev, &pkt_info, buf);
>> }
>
> This patch doesn't work. When I add it and start an 8822bu, I get:
>
> [ 46.695755] usb 3-6: new high-speed USB device number 4 using xhci_hcd
> [ 46.844397] usb 3-6: New USB device found, idVendor=0bda, idProduct=b82c, bcdDevice= 2.10
> [ 46.844404] usb 3-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
> [ 46.844406] usb 3-6: Product: 802.11ac NIC
> [ 46.844408] usb 3-6: Manufacturer: Realtek
> [ 46.844410] usb 3-6: SerialNumber: 123456
> [ 47.524214] rtw_8822bu 3-6:1.2: Firmware version 27.2.0, H2C version 13
> [ 47.573043] rtw_8822bu 3-6:1.2: error beacon valid
> [ 47.573165] rtw_8822bu 3-6:1.2: failed to download rsvd page
> [ 47.573488] rtw_8822bu 3-6:1.2: failed to download firmware
> [ 47.576745] rtw_8822bu 3-6:1.2: failed to setup chip efuse info
> [ 47.576750] rtw_8822bu 3-6:1.2: failed to setup chip information
> [ 47.577302] rtw_8822bu 3-6:1.2: probe with driver rtw_8822bu failed with error -16
>
> When I added code to test if chip->tx_pkt_desc_sz was equal to pkt_info->tx_pkt_size at entry, it reported that there was a difference.
>
> This patch may work for some of the devices, but clearly not for all.
>
> NACK.
>
> Larry
Thank you for testing. Indeed, the second hunk is breaking
the firmware upload.
next prev parent reply other threads:[~2024-05-03 9:53 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-02 21:23 [PATCH] wifi: rtw88: usb: Simplify rtw_usb_write_data Bitterblue Smith
2024-05-02 22:18 ` Larry Finger
2024-05-03 0:38 ` Ping-Ke Shih
2024-05-03 9:53 ` Bitterblue Smith [this message]
2024-05-03 0:35 ` Ping-Ke Shih
2024-05-03 10:13 ` Bitterblue Smith
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=cb7db549-23bf-4c9d-be1d-4480eb8f2b77@gmail.com \
--to=rtl8821cerfe2@gmail.com \
--cc=Larry.Finger@lwfinger.net \
--cc=linux-wireless@vger.kernel.org \
--cc=pkshih@realtek.com \
--cc=sha@pengutronix.de \
/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.