cfg80211: support ieee80211-freq-limit DT property
This patch adds a helper for reading that new property and applying limitations of supported channels specified this way. It is used with devices that normally support a wide wireless band but in a given config are limited to some part of it (usually due to board design). For example a dual-band chipset may be able to support one band only because of used antennas. It's also common that tri-band routers have separated radios for lower and higher part of 5 GHz band and it may be impossible to say which is which without a DT info. Signed-off-by: Rafał Miłecki <rafal@milecki.pl> [add new function to documentation, fix link] Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
committed by
Johannes Berg
parent
4787cfa084
commit
e691ac2f75
@@ -311,6 +311,34 @@ struct ieee80211_supported_band {
|
||||
struct ieee80211_sta_vht_cap vht_cap;
|
||||
};
|
||||
|
||||
/**
|
||||
* wiphy_read_of_freq_limits - read frequency limits from device tree
|
||||
*
|
||||
* @wiphy: the wireless device to get extra limits for
|
||||
*
|
||||
* Some devices may have extra limitations specified in DT. This may be useful
|
||||
* for chipsets that normally support more bands but are limited due to board
|
||||
* design (e.g. by antennas or external power amplifier).
|
||||
*
|
||||
* This function reads info from DT and uses it to *modify* channels (disable
|
||||
* unavailable ones). It's usually a *bad* idea to use it in drivers with
|
||||
* shared channel data as DT limitations are device specific. You should make
|
||||
* sure to call it only if channels in wiphy are copied and can be modified
|
||||
* without affecting other devices.
|
||||
*
|
||||
* As this function access device node it has to be called after set_wiphy_dev.
|
||||
* It also modifies channels so they have to be set first.
|
||||
* If using this helper, call it before wiphy_register().
|
||||
*/
|
||||
#ifdef CONFIG_OF
|
||||
void wiphy_read_of_freq_limits(struct wiphy *wiphy);
|
||||
#else /* CONFIG_OF */
|
||||
static inline void wiphy_read_of_freq_limits(struct wiphy *wiphy)
|
||||
{
|
||||
}
|
||||
#endif /* !CONFIG_OF */
|
||||
|
||||
|
||||
/*
|
||||
* Wireless hardware/device configuration structures and methods
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user