<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/drivers/net/wireless/realtek/rtw88/phy.c, branch linux-6.2.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-6.2.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-6.2.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2022-12-08T14:48:41Z</updated>
<entry>
<title>wifi: rtw88: iterate over vif/sta list non-atomically</title>
<updated>2022-12-08T14:48:41Z</updated>
<author>
<name>Sascha Hauer</name>
<email>s.hauer@pengutronix.de</email>
</author>
<published>2022-12-02T08:12:19Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=78d5bf925f30bf9f79a69ce77386902672defe68'/>
<id>urn:sha1:78d5bf925f30bf9f79a69ce77386902672defe68</id>
<content type='text'>
The driver uses ieee80211_iterate_active_interfaces_atomic()
and ieee80211_iterate_stations_atomic() in several places and does
register accesses in the iterators. This doesn't cope with upcoming
USB support as registers can only be accessed non-atomically.

Split these into a two stage process: First use the atomic iterator
functions to collect all active interfaces or stations on a list, then
iterate over the list non-atomically and call the iterator on each
entry.

Signed-off-by: Sascha Hauer &lt;s.hauer@pengutronix.de&gt;
Suggested-by: Ping-Ke shih &lt;pkshih@realtek.com&gt;
Reviewed-by: Ping-Ke Shih &lt;pkshih@realtek.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@kernel.org&gt;
Link: https://lore.kernel.org/r/20221202081224.2779981-7-s.hauer@pengutronix.de
</content>
</entry>
<entry>
<title>wifi: rtw88: access chip_info by const pointer</title>
<updated>2022-08-09T05:48:59Z</updated>
<author>
<name>Ping-Ke Shih</name>
<email>pkshih@realtek.com</email>
</author>
<published>2022-07-27T06:52:32Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=dcbf179cbc18f66976740d28fbcfab75be514d16'/>
<id>urn:sha1:dcbf179cbc18f66976740d28fbcfab75be514d16</id>
<content type='text'>
Since chip_info has became const table, we must access them via const
pointer to avoid invalid writing.

Signed-off-by: Ping-Ke Shih &lt;pkshih@realtek.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@kernel.org&gt;
Link: https://lore.kernel.org/r/20220727065232.28510-1-pkshih@realtek.com
</content>
</entry>
<entry>
<title>wifi: rtw88: phy: fix warning of possible buffer overflow</title>
<updated>2022-08-09T05:48:08Z</updated>
<author>
<name>Zong-Zhe Yang</name>
<email>kevin_yang@realtek.com</email>
</author>
<published>2022-07-27T06:50:03Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=86331c7e0cd819bf0c1d0dcf895e0c90b0aa9a6f'/>
<id>urn:sha1:86331c7e0cd819bf0c1d0dcf895e0c90b0aa9a6f</id>
<content type='text'>
reported by smatch

phy.c:854 rtw_phy_linear_2_db() error: buffer overflow 'db_invert_table[i]'
8 &lt;= 8 (assuming for loop doesn't break)

However, it seems to be a false alarm because we prevent it originally via
       if (linear &gt;= db_invert_table[11][7])
               return 96; /* maximum 96 dB */

Still, we adjust the code to be more readable and avoid smatch warning.

Signed-off-by: Zong-Zhe Yang &lt;kevin_yang@realtek.com&gt;
Signed-off-by: Ping-Ke Shih &lt;pkshih@realtek.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@kernel.org&gt;
Link: https://lore.kernel.org/r/20220727065003.28340-5-pkshih@realtek.com
</content>
</entry>
<entry>
<title>rtw88: add ieee80211:sta_rc_update ops</title>
<updated>2022-04-12T13:52:05Z</updated>
<author>
<name>Po-Hao Huang</name>
<email>phhuang@realtek.com</email>
</author>
<published>2022-04-07T09:58:53Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=c1edc86472fc3a5aa3b5c5c53c4e20f6a24992a6'/>
<id>urn:sha1:c1edc86472fc3a5aa3b5c5c53c4e20f6a24992a6</id>
<content type='text'>
Adding this allows us to get notification when bitrate configuration
of the station changes. Update according parameters to firmware so
the rate control algorithm can work properly.

Signed-off-by: Po-Hao Huang &lt;phhuang@realtek.com&gt;
Signed-off-by: Ping-Ke Shih &lt;pkshih@realtek.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@kernel.org&gt;
Link: https://lore.kernel.org/r/20220407095858.46807-2-pkshih@realtek.com
</content>
</entry>
<entry>
<title>rtw88: support SAR via kernel common API</title>
<updated>2021-12-21T18:22:38Z</updated>
<author>
<name>Zong-Zhe Yang</name>
<email>kevin_yang@realtek.com</email>
</author>
<published>2021-12-20T09:36:56Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=8704d0befb59304eed60204e5524d5051de1d171'/>
<id>urn:sha1:8704d0befb59304eed60204e5524d5051de1d171</id>
<content type='text'>
Register cfg80211_sar_capa with type NL80211_SAR_TYPE_POWER and four
frequency ranges for configurations in unit of 0.25 dBm. And handle
callback set_sar_specs.

Originally, TX power has three main parameters, i.e. power base,
power by rate, and power limit. The formula can be simply considered
as TX power = power base + min(power by rate, power limit). With the
support of SAR which can be treated as another power limit, there is
one more parameter for TX power. And the formula will evolve into
TX power = power base + min(power by rate, power limit, power sar).

Besides, debugfs tx_pwr_tbl is also refined to show SAR information.
The following is an example for the difference.
Before supporting SAR,
-----------------------------------
...
path rate       pwr       base      (byr  lmt ) rem
   A  CCK_1M     66(0x42)   78  -12 (  12  -12)    0
   A  CCK_2M     66(0x42)   78  -12 (   8  -12)    0
...
-----------------------------------
After supporting SAR and making some configurations,
-----------------------------------
...
path rate       pwr       base      (byr  lmt  sar ) rem
   A  CCK_1M     62(0x3e)   78  -16 (  12  -12  -16)    0
   A  CCK_2M     62(0x3e)   78  -16 (   8  -12  -16)    0
...
-----------------------------------

Signed-off-by: Zong-Zhe Yang &lt;kevin_yang@realtek.com&gt;
Signed-off-by: Ping-Ke Shih &lt;pkshih@realtek.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@kernel.org&gt;
Link: https://lore.kernel.org/r/20211220093656.65312-1-pkshih@realtek.com
</content>
</entry>
<entry>
<title>rtw88: move adaptivity mechanism to firmware</title>
<updated>2021-09-21T14:51:57Z</updated>
<author>
<name>Chin-Yen Lee</name>
<email>timlee@realtek.com</email>
</author>
<published>2021-08-30T07:20:14Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=fe7bc23a8c5eba8a49061c1d15d0a9d45ef18130'/>
<id>urn:sha1:fe7bc23a8c5eba8a49061c1d15d0a9d45ef18130</id>
<content type='text'>
Current adaptivity mechanism is achieved in driver, by periodically
referencing the IGI value and then updating related registers.
But we find that this way may halt TX activity too long if huge
and temporary energy is detected frequently. So we move the mechanism
to firmware for immediately reacting this case to recover TX rapidly.

Signed-off-by: Chin-Yen Lee &lt;timlee@realtek.com&gt;
Signed-off-by: Zong-Zhe Yang &lt;kevin_yang@realtek.com&gt;
Signed-off-by: Ping-Ke Shih &lt;pkshih@realtek.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Link: https://lore.kernel.org/r/20210830072014.12250-5-pkshih@realtek.com
</content>
</entry>
<entry>
<title>rtw88: support adaptivity for ETSI/JP DFS region</title>
<updated>2021-09-21T14:51:56Z</updated>
<author>
<name>Zong-Zhe Yang</name>
<email>kevin_yang@realtek.com</email>
</author>
<published>2021-08-30T07:20:13Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=7285eb9693a2e360e58a449ab121be505b87a9d5'/>
<id>urn:sha1:7285eb9693a2e360e58a449ab121be505b87a9d5</id>
<content type='text'>
Add Energy Detected CCA (EDCCA) mechanism to detect energy on the channel.
And EDCCA support adaptivity mode now. From MIC Ordinance Regulating Radio
Equipment article 49.20, ETSI EN-300-328 and EN-301-893, the device should
be able to dynamically pause TX activity when energy detected on the air.
According to ETSI/JP DFS region, driver will set corresponding threshold
and stop TX activity if the detected energy exceeds the threshold. For now,
we support it on 8822b and 8822c first.

By default, EDCCA mechanism is turned on. For ETSI/JP DFS region, it will
turn to adaptivity mode. However, with adaptivity, if environment is too
noisy, TX may often be halted. So, a debugfs for EDCCA is added. It can
show what EDCCA mode is used currently. And EDCCA mechanism can be turned
on/off through the debugfs while debugging.

Signed-off-by: Zong-Zhe Yang &lt;kevin_yang@realtek.com&gt;
Signed-off-by: Ping-Ke Shih &lt;pkshih@realtek.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Link: https://lore.kernel.org/r/20210830072014.12250-4-pkshih@realtek.com
</content>
</entry>
<entry>
<title>rtw88: upgrade rtw_regulatory mechanism and mapping</title>
<updated>2021-09-21T14:51:56Z</updated>
<author>
<name>Zong-Zhe Yang</name>
<email>kevin_yang@realtek.com</email>
</author>
<published>2021-08-30T07:20:11Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=f8509c38ececde7fb0f0bc9959f79d2a34be577d'/>
<id>urn:sha1:f8509c38ececde7fb0f0bc9959f79d2a34be577d</id>
<content type='text'>
Mapping table from country code to rtw_regulatory, which manages tx power
limit according to countries, is updated. And mapping architecture is also
upgraded. For more precise control on tx power limit, it allows different
rtw_regulatory for different bands logically. Besides, a helper function
to query rtw_regulatory for current band under current country is provided.

For older chips, some newly added rtw_regulatory may not be configured.
To avoid that those chips have no limit on some countries mapping to a
newer rtw_regulatory after table update, a backward selection mechanism
of rtw_regulatory is introduced. It can help chips use a rtw_regulatory
which has been configured as an alternative of a newer one which is not
configured.

In addition, rtw88 actually doesn't manage channel plans by itself.
Instead, it follows them from stack. So, correct some naming about
chplan with regd, and remove the unnecessary channel control for now.

Signed-off-by: Zong-Zhe Yang &lt;kevin_yang@realtek.com&gt;
Signed-off-by: Ping-Ke Shih &lt;pkshih@realtek.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Link: https://lore.kernel.org/r/20210830072014.12250-2-pkshih@realtek.com
</content>
</entry>
<entry>
<title>rtw88: add path diversity</title>
<updated>2021-06-22T15:18:16Z</updated>
<author>
<name>Po-Hao Huang</name>
<email>phhuang@realtek.com</email>
</author>
<published>2021-04-26T01:32:51Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=1188301fd8ef370ef344a98fbbf04b8b07148294'/>
<id>urn:sha1:1188301fd8ef370ef344a98fbbf04b8b07148294</id>
<content type='text'>
This feature chooses to transmit with antenna that has better signal
strength periodically under 1ss rate.

It can benefit connection quality in the following cases:
1. User is far away from the AP.
2. The far-field pattern of the antenna showed significant signal
strength difference.

Signed-off-by: Po-Hao Huang &lt;phhuang@realtek.com&gt;
Signed-off-by: Ping-Ke Shih &lt;pkshih@realtek.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Link: https://lore.kernel.org/r/20210426013252.5665-2-pkshih@realtek.com
</content>
</entry>
<entry>
<title>rtw88: 8822c: add CFO tracking</title>
<updated>2021-04-18T06:38:27Z</updated>
<author>
<name>Po-Hao Huang</name>
<email>phhuang@realtek.com</email>
</author>
<published>2021-04-16T03:09:01Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=fb8517f4fade44fa5e42e29ca4d6e4a7ed50b512'/>
<id>urn:sha1:fb8517f4fade44fa5e42e29ca4d6e4a7ed50b512</id>
<content type='text'>
Add CFO tracking, which stands for central frequency offset tracking, to
adjust oscillator to align central frequency of connected AP. Then, it can
yield better performance.

Signed-off-by: Po-Hao Huang &lt;phhuang@realtek.com&gt;
Signed-off-by: Ping-Ke Shih &lt;pkshih@realtek.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Link: https://lore.kernel.org/r/20210416030901.7099-1-pkshih@realtek.com
</content>
</entry>
</feed>
