Message ID | 20200715130134.34988-1-nbd@nbd.name (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Felix Fietkau |
Headers | show |
Series | [v3,1/4] dt-bindings: net: wireless: mt76: add power-limits node | expand |
On Wed, Jul 15, 2020 at 03:01:34PM +0200, Felix Fietkau wrote: > This subnode can be used to set per-rate tx power limits either per > country code / regdomain or globally. > These limits are typically provided by the device manufacturers and are > used to limit sideband emissions and stay within regulatory limits > > Co-developed-by: Shayne Chen <shayne.chen@mediatek.com> > Signed-off-by: Shayne Chen <shayne.chen@mediatek.com> > Signed-off-by: Felix Fietkau <nbd@nbd.name> > --- > v3: > - fix S-o-b order > v2: > - merge 802.11ax rate changes from Shayne's patch > - document txs-delta property This is an extensive enough change that I think it needs to be in schema format. > .../bindings/net/wireless/mediatek,mt76.txt | 59 +++++++++++++++++++ > 1 file changed, 59 insertions(+) > > diff --git a/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.txt b/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.txt > index ab7e7a00e534..e4859c974ef4 100644 > --- a/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.txt > +++ b/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.txt > @@ -36,6 +36,7 @@ Optional nodes: > - led: Properties for a connected LED > Optional properties: > - led-sources: See Documentation/devicetree/bindings/leds/common.txt > +- power-limits: contains per-regdomain/channel rate power limit subnodes > > &pcie { > pcie0 { > @@ -76,3 +77,61 @@ wmac: wmac@18000000 { > > power-domains = <&scpsys MT7622_POWER_DOMAIN_WB>; > }; > + > + > +Subnodes of power-limits: > + > +Properties: > +- country: One or more country codes, as used by the cfg80211 regdomain code What are the values? cfg80211 is a Linux thing and doesn't belong in bindings. > +- regdomain: "FCC", "ETSI" or "JP" These aren't implied by the country code? > + > +If neither country, nor regdomain is specified, the power limits node is used > +as a fallback when no other subnode matches. > + > +Subnodes txpower-2g, txpower-5g: > + > +Properties: > +- channels: pairs of first and last channel number What's the range in terms of channel numbers and pairs? > +- cck: 4 half-dBm per-rate power limit values > +- ofdm: 8 half-dBm per-rate power limit values > +- mcs: > + sets of per-rate power limit values for 802.11n/802.11ac rates for > + multiple channel bandwidth settings. > + Each set starts with the number of channel bandwidth settings for > + which the rate set applies, followed by either 8 (MT7603/MT7628) or > + 10 (all other chips) power limit values. > + The order of the channel bandwidth settings is: 20, 40, 80, 160 MHz. The example only has 2 sets, so which channels are they? > +- ru: > + sets of per-rate power limit values for 802.11ax rates for multiple > + channel bandwidth or resource unit settings. > + Each set starts with the number of channel bandwidth or resource unit > + settings for which the rate set applies, followed by 12 power limit > + values. The order of the channel resource unit settings is: > + RU26, RU52, RU106, RU242/SU20, RU484/SU40, RU996/SU80, RU2x996/SU160. Could be 8-bit? Doesn't really matter much for the example, but what's the worst/typical case? > +- txs-delta: half-dBm power delta for different numbers of antennas (1, 2, ...) > + > + > +power-limit example: > + > +power-limits { > + r0 { What's 'r0'? Not documented. > + regdomain = "FCC"; > + txpower-5g { > + r1 { What's 'r1' and 'r2'? Not documented. > + channels = <36 48>; > + ofdm = <23 23 23 23 23 23 23 23>; > + mcs = <1 23 23 23 23 23 23 23 23 23 23>, > + <3 22 22 22 22 22 22 22 22 22 22>; > + ru = <3 22 22 22 22 22 22 22 22 22 22 22 22>, > + <4 20 20 20 20 20 20 20 20 20 20 20 20>; > + }; > + r2 { > + channels = <100 181>; > + ofdm = <14 14 14 14 14 14 14 14>; > + mcs = <4 14 14 14 14 14 14 14 14 14 14>; > + txs-delta = <12 9 6>; > + ru = <7 14 14 14 14 14 14 14 14 14 14 14 14>; > + }; > + }; > + }; > +}; > -- > 2.24.0 >
On 2020-07-21 05:04, Rob Herring wrote: > On Wed, Jul 15, 2020 at 03:01:34PM +0200, Felix Fietkau wrote: >> This subnode can be used to set per-rate tx power limits either per >> country code / regdomain or globally. >> These limits are typically provided by the device manufacturers and are >> used to limit sideband emissions and stay within regulatory limits >> >> Co-developed-by: Shayne Chen <shayne.chen@mediatek.com> >> Signed-off-by: Shayne Chen <shayne.chen@mediatek.com> >> Signed-off-by: Felix Fietkau <nbd@nbd.name> >> --- >> v3: >> - fix S-o-b order >> v2: >> - merge 802.11ax rate changes from Shayne's patch >> - document txs-delta property > > This is an extensive enough change that I think it needs to be in schema > format. Okay, I will convert the existing file soon and then add these changes afterwards. >> .../bindings/net/wireless/mediatek,mt76.txt | 59 +++++++++++++++++++ >> 1 file changed, 59 insertions(+) >> >> diff --git a/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.txt b/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.txt >> index ab7e7a00e534..e4859c974ef4 100644 >> --- a/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.txt >> +++ b/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.txt >> @@ -36,6 +36,7 @@ Optional nodes: >> - led: Properties for a connected LED >> Optional properties: >> - led-sources: See Documentation/devicetree/bindings/leds/common.txt >> +- power-limits: contains per-regdomain/channel rate power limit subnodes >> >> &pcie { >> pcie0 { >> @@ -76,3 +77,61 @@ wmac: wmac@18000000 { >> >> power-domains = <&scpsys MT7622_POWER_DOMAIN_WB>; >> }; >> + >> + >> +Subnodes of power-limits: >> + >> +Properties: >> +- country: One or more country codes, as used by the cfg80211 regdomain code > > What are the values? cfg80211 is a Linux thing and doesn't belong in > bindings. I'll change the description to leave out cfg80211. It's a simple alpha2 country code. >> +- regdomain: "FCC", "ETSI" or "JP" > > These aren't implied by the country code? You use either country code or regdomain. >> +If neither country, nor regdomain is specified, the power limits node is used >> +as a fallback when no other subnode matches. >> + >> +Subnodes txpower-2g, txpower-5g: >> + >> +Properties: >> +- channels: pairs of first and last channel number > > What's the range in terms of channel numbers and pairs? 802.11 channel numbers (0-255) >> +- cck: 4 half-dBm per-rate power limit values >> +- ofdm: 8 half-dBm per-rate power limit values >> +- mcs: >> + sets of per-rate power limit values for 802.11n/802.11ac rates for >> + multiple channel bandwidth settings. >> + Each set starts with the number of channel bandwidth settings for >> + which the rate set applies, followed by either 8 (MT7603/MT7628) or >> + 10 (all other chips) power limit values. >> + The order of the channel bandwidth settings is: 20, 40, 80, 160 MHz. > > The example only has 2 sets, so which channels are they? The format is <number_of_sets set_data>, so a set starting with <3 ...> would contain the values for 20, 40 and 80 MHz and you'd add another one with <1 ...> to describe 160 MHz. Sets often contain the same data for multiple channel bandwidths, so this reduces duplication. >> +- ru: >> + sets of per-rate power limit values for 802.11ax rates for multiple >> + channel bandwidth or resource unit settings. >> + Each set starts with the number of channel bandwidth or resource unit >> + settings for which the rate set applies, followed by 12 power limit >> + values. The order of the channel resource unit settings is: >> + RU26, RU52, RU106, RU242/SU20, RU484/SU40, RU996/SU80, RU2x996/SU160. > > Could be 8-bit? Doesn't really matter much for the example, but what's > the worst/typical case? Yes, 8 bit would also work. >> +- txs-delta: half-dBm power delta for different numbers of antennas (1, 2, ...) >> + >> + >> +power-limit example: >> + >> +power-limits { >> + r0 { > > What's 'r0'? Not documented. > >> + regdomain = "FCC"; >> + txpower-5g { >> + r1 { > > What's 'r1' and 'r2'? Not documented. You add an arbitrary number of subnodes (I just used r0, r1, ...) containing rules with the documented properties. - Felix
diff --git a/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.txt b/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.txt index ab7e7a00e534..e4859c974ef4 100644 --- a/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.txt +++ b/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.txt @@ -36,6 +36,7 @@ Optional nodes: - led: Properties for a connected LED Optional properties: - led-sources: See Documentation/devicetree/bindings/leds/common.txt +- power-limits: contains per-regdomain/channel rate power limit subnodes &pcie { pcie0 { @@ -76,3 +77,61 @@ wmac: wmac@18000000 { power-domains = <&scpsys MT7622_POWER_DOMAIN_WB>; }; + + +Subnodes of power-limits: + +Properties: +- country: One or more country codes, as used by the cfg80211 regdomain code +- regdomain: "FCC", "ETSI" or "JP" + +If neither country, nor regdomain is specified, the power limits node is used +as a fallback when no other subnode matches. + +Subnodes txpower-2g, txpower-5g: + +Properties: +- channels: pairs of first and last channel number +- cck: 4 half-dBm per-rate power limit values +- ofdm: 8 half-dBm per-rate power limit values +- mcs: + sets of per-rate power limit values for 802.11n/802.11ac rates for + multiple channel bandwidth settings. + Each set starts with the number of channel bandwidth settings for + which the rate set applies, followed by either 8 (MT7603/MT7628) or + 10 (all other chips) power limit values. + The order of the channel bandwidth settings is: 20, 40, 80, 160 MHz. +- ru: + sets of per-rate power limit values for 802.11ax rates for multiple + channel bandwidth or resource unit settings. + Each set starts with the number of channel bandwidth or resource unit + settings for which the rate set applies, followed by 12 power limit + values. The order of the channel resource unit settings is: + RU26, RU52, RU106, RU242/SU20, RU484/SU40, RU996/SU80, RU2x996/SU160. +- txs-delta: half-dBm power delta for different numbers of antennas (1, 2, ...) + + +power-limit example: + +power-limits { + r0 { + regdomain = "FCC"; + txpower-5g { + r1 { + channels = <36 48>; + ofdm = <23 23 23 23 23 23 23 23>; + mcs = <1 23 23 23 23 23 23 23 23 23 23>, + <3 22 22 22 22 22 22 22 22 22 22>; + ru = <3 22 22 22 22 22 22 22 22 22 22 22 22>, + <4 20 20 20 20 20 20 20 20 20 20 20 20>; + }; + r2 { + channels = <100 181>; + ofdm = <14 14 14 14 14 14 14 14>; + mcs = <4 14 14 14 14 14 14 14 14 14 14>; + txs-delta = <12 9 6>; + ru = <7 14 14 14 14 14 14 14 14 14 14 14 14>; + }; + }; + }; +};