|
@@ -72,10 +72,21 @@ static int mac802154_set_mac_params(struct net_device *dev,
|
|
|
{
|
|
|
struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev);
|
|
|
struct ieee802154_local *local = sdata->local;
|
|
|
+ struct wpan_dev *wpan_dev = &sdata->wpan_dev;
|
|
|
int ret;
|
|
|
|
|
|
mutex_lock(&sdata->local->iflist_mtx);
|
|
|
- sdata->mac_params = *params;
|
|
|
+ /* PHY */
|
|
|
+ wpan_dev->wpan_phy->transmit_power = params->transmit_power;
|
|
|
+ wpan_dev->wpan_phy->cca_mode = params->cca_mode;
|
|
|
+ wpan_dev->wpan_phy->cca_ed_level = params->cca_ed_level;
|
|
|
+
|
|
|
+ /* MAC */
|
|
|
+ wpan_dev->min_be = params->min_be;
|
|
|
+ wpan_dev->max_be = params->max_be;
|
|
|
+ wpan_dev->csma_retries = params->csma_retries;
|
|
|
+ wpan_dev->frame_retries = params->frame_retries;
|
|
|
+ wpan_dev->lbt = params->lbt;
|
|
|
mutex_unlock(&sdata->local->iflist_mtx);
|
|
|
|
|
|
if (local->hw.flags & IEEE802154_HW_TXPOWER) {
|
|
@@ -103,9 +114,20 @@ static void mac802154_get_mac_params(struct net_device *dev,
|
|
|
struct ieee802154_mac_params *params)
|
|
|
{
|
|
|
struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev);
|
|
|
+ struct wpan_dev *wpan_dev = &sdata->wpan_dev;
|
|
|
|
|
|
mutex_lock(&sdata->local->iflist_mtx);
|
|
|
- *params = sdata->mac_params;
|
|
|
+ /* PHY */
|
|
|
+ params->transmit_power = wpan_dev->wpan_phy->transmit_power;
|
|
|
+ params->cca_mode = wpan_dev->wpan_phy->cca_mode;
|
|
|
+ params->cca_ed_level = wpan_dev->wpan_phy->cca_ed_level;
|
|
|
+
|
|
|
+ /* MAC */
|
|
|
+ params->min_be = wpan_dev->min_be;
|
|
|
+ params->max_be = wpan_dev->max_be;
|
|
|
+ params->csma_retries = wpan_dev->csma_retries;
|
|
|
+ params->frame_retries = wpan_dev->frame_retries;
|
|
|
+ params->lbt = wpan_dev->lbt;
|
|
|
mutex_unlock(&sdata->local->iflist_mtx);
|
|
|
}
|
|
|
|