Search Linux Wireless

Re: [PATCH 1/2] wifi: rtl8xxxu: Report the RSSI to the firmware

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 03/01/2023 10:05, Ping-Ke Shih wrote:
> 
> 
>> -----Original Message-----
>> From: Bitterblue Smith <rtl8821cerfe2@xxxxxxxxx>
>> Sent: Saturday, December 31, 2022 12:52 AM
>> To: linux-wireless@xxxxxxxxxxxxxxx
>> Cc: Jes Sorensen <Jes.Sorensen@xxxxxxxxx>; Ping-Ke Shih <pkshih@xxxxxxxxxxx>
>> Subject: [PATCH 1/2] wifi: rtl8xxxu: Report the RSSI to the firmware
>>
>> Or in the case of RTL8188EU, report the RSSI to the rate control code.
>>
>> The rate control code for RTL8188EU is less likely to switch to a lower
>> rate when the RSSI is high. The firmware-based rate control in the other
>> chips probably works the same way.
>>
>> This affects all the chips, but it was only tested with RTL8188EU,
>> RTL8188FU, and RTL8192EU.
>>
>> Signed-off-by: Bitterblue Smith <rtl8821cerfe2@xxxxxxxxx>
>> ---
>>  .../net/wireless/realtek/rtl8xxxu/rtl8xxxu.h  | 23 +++++++++++++
>>  .../realtek/rtl8xxxu/rtl8xxxu_8188e.c         |  6 ++++
>>  .../realtek/rtl8xxxu/rtl8xxxu_8188f.c         |  1 +
>>  .../realtek/rtl8xxxu/rtl8xxxu_8192c.c         |  1 +
>>  .../realtek/rtl8xxxu/rtl8xxxu_8192e.c         |  1 +
>>  .../realtek/rtl8xxxu/rtl8xxxu_8723a.c         |  1 +
>>  .../realtek/rtl8xxxu/rtl8xxxu_8723b.c         |  1 +
>>  .../wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 34 +++++++++++++++++++
>>  8 files changed, 68 insertions(+)
>>
> 
> [...]
> 
>> diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
>> b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
>> index fd97c040948a..f5fd3c448587 100644
>> --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
>> +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
>> @@ -4461,6 +4461,37 @@ void rtl8xxxu_gen2_report_connect(struct rtl8xxxu_priv *priv,
>>  	rtl8xxxu_gen2_h2c_cmd(priv, &h2c, sizeof(h2c.media_status_rpt));
>>  }
>>
>> +void rtl8xxxu_gen1_report_rssi(struct rtl8xxxu_priv *priv, u8 macid, u8 rssi)
>> +{
>> +	struct h2c_cmd h2c;
>> +	const int h2c_size = 3;
> 
> Shouldn't it be 4?
> 
> 		struct {
> 			u8 cmd;
> 			u8 macid;
> 			u8 unknown0;
> 			u8 rssi;  // you fill this field.
> 

I probably copied that from the vendor driver, which doesn't count the
cmd field. But it turns out it doesn't matter. 3 and 4 will have the
same effect here. rtl8xxxu_gen1_h2c_cmd() only checks if the size is
greater than 4 or not.

But I suppose 4 is less confusing, so I'll change it.

>> +
>> +	memset(&h2c, 0, sizeof(struct h2c_cmd));
>> +
>> +	h2c.rssi_report.cmd = H2C_SET_RSSI;
>> +	h2c.rssi_report.macid = macid;
>> +	h2c.rssi_report.rssi = rssi;
>> +
>> +	rtl8xxxu_gen1_h2c_cmd(priv, &h2c, h2c_size);
>> +}
>> +
> 
> [...]
> 
> 




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux