aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac802154/mac_cmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac802154/mac_cmd.c')
-rw-r--r--net/mac802154/mac_cmd.c26
1 files changed, 24 insertions, 2 deletions
diff --git a/net/mac802154/mac_cmd.c b/net/mac802154/mac_cmd.c
index 00b2b214770e..b8bd95263aab 100644
--- a/net/mac802154/mac_cmd.c
+++ b/net/mac802154/mac_cmd.c
@@ -72,10 +72,21 @@ static int mac802154_set_mac_params(struct net_device *dev,
72{ 72{
73 struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); 73 struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev);
74 struct ieee802154_local *local = sdata->local; 74 struct ieee802154_local *local = sdata->local;
75 struct wpan_dev *wpan_dev = &sdata->wpan_dev;
75 int ret; 76 int ret;
76 77
77 mutex_lock(&sdata->local->iflist_mtx); 78 mutex_lock(&sdata->local->iflist_mtx);
78 sdata->mac_params = *params; 79 /* PHY */
80 wpan_dev->wpan_phy->transmit_power = params->transmit_power;
81 wpan_dev->wpan_phy->cca_mode = params->cca_mode;
82 wpan_dev->wpan_phy->cca_ed_level = params->cca_ed_level;
83
84 /* MAC */
85 wpan_dev->min_be = params->min_be;
86 wpan_dev->max_be = params->max_be;
87 wpan_dev->csma_retries = params->csma_retries;
88 wpan_dev->frame_retries = params->frame_retries;
89 wpan_dev->lbt = params->lbt;
79 mutex_unlock(&sdata->local->iflist_mtx); 90 mutex_unlock(&sdata->local->iflist_mtx);
80 91
81 if (local->hw.flags & IEEE802154_HW_TXPOWER) { 92 if (local->hw.flags & IEEE802154_HW_TXPOWER) {
@@ -103,9 +114,20 @@ static void mac802154_get_mac_params(struct net_device *dev,
103 struct ieee802154_mac_params *params) 114 struct ieee802154_mac_params *params)
104{ 115{
105 struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); 116 struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev);
117 struct wpan_dev *wpan_dev = &sdata->wpan_dev;
106 118
107 mutex_lock(&sdata->local->iflist_mtx); 119 mutex_lock(&sdata->local->iflist_mtx);
108 *params = sdata->mac_params; 120 /* PHY */
121 params->transmit_power = wpan_dev->wpan_phy->transmit_power;
122 params->cca_mode = wpan_dev->wpan_phy->cca_mode;
123 params->cca_ed_level = wpan_dev->wpan_phy->cca_ed_level;
124
125 /* MAC */
126 params->min_be = wpan_dev->min_be;
127 params->max_be = wpan_dev->max_be;
128 params->csma_retries = wpan_dev->csma_retries;
129 params->frame_retries = wpan_dev->frame_retries;
130 params->lbt = wpan_dev->lbt;
109 mutex_unlock(&sdata->local->iflist_mtx); 131 mutex_unlock(&sdata->local->iflist_mtx);
110} 132}
111 133