Commit 5fb3f026 authored by Alexander Aring's avatar Alexander Aring Committed by Marcel Holtmann

mac802154: remove mac_params in sdata

This patch removes the mac_params from subif data struct. Instead we
manipulate the wpan attributes directly.
Signed-off-by: default avatarAlexander Aring <alex.aring@gmail.com>
Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
parent 863e88f2
...@@ -84,8 +84,6 @@ struct ieee802154_sub_if_data { ...@@ -84,8 +84,6 @@ struct ieee802154_sub_if_data {
spinlock_t mib_lock; spinlock_t mib_lock;
struct ieee802154_mac_params mac_params;
/* protects sec from concurrent access by netlink. access by /* protects sec from concurrent access by netlink. access by
* encrypt/decrypt/header_create safe without additional protection. * encrypt/decrypt/header_create safe without additional protection.
*/ */
......
...@@ -205,22 +205,21 @@ static int mac802154_wpan_open(struct net_device *dev) ...@@ -205,22 +205,21 @@ static int mac802154_wpan_open(struct net_device *dev)
} }
if (local->hw.flags & IEEE802154_HW_LBT) { if (local->hw.flags & IEEE802154_HW_LBT) {
rc = drv_set_lbt_mode(local, sdata->mac_params.lbt); rc = drv_set_lbt_mode(local, wpan_dev->lbt);
if (rc < 0) if (rc < 0)
goto out; goto out;
} }
if (local->hw.flags & IEEE802154_HW_CSMA_PARAMS) { if (local->hw.flags & IEEE802154_HW_CSMA_PARAMS) {
rc = drv_set_csma_params(local, sdata->mac_params.min_be, rc = drv_set_csma_params(local, wpan_dev->min_be,
sdata->mac_params.max_be, wpan_dev->max_be,
sdata->mac_params.csma_retries); wpan_dev->csma_retries);
if (rc < 0) if (rc < 0)
goto out; goto out;
} }
if (local->hw.flags & IEEE802154_HW_FRAME_RETRIES) { if (local->hw.flags & IEEE802154_HW_FRAME_RETRIES) {
rc = drv_set_max_frame_retries(local, rc = drv_set_max_frame_retries(local, wpan_dev->frame_retries);
sdata->mac_params.frame_retries);
if (rc < 0) if (rc < 0)
goto out; goto out;
} }
...@@ -410,11 +409,11 @@ ieee802154_setup_sdata(struct ieee802154_sub_if_data *sdata, int type) ...@@ -410,11 +409,11 @@ ieee802154_setup_sdata(struct ieee802154_sub_if_data *sdata, int type)
get_random_bytes(&wpan_dev->dsn, 1); get_random_bytes(&wpan_dev->dsn, 1);
/* defaults per 802.15.4-2011 */ /* defaults per 802.15.4-2011 */
sdata->mac_params.min_be = 3; wpan_dev->min_be = 3;
sdata->mac_params.max_be = 5; wpan_dev->max_be = 5;
sdata->mac_params.csma_retries = 4; wpan_dev->csma_retries = 4;
/* for compatibility, actual default is 3 */ /* for compatibility, actual default is 3 */
sdata->mac_params.frame_retries = -1; wpan_dev->frame_retries = -1;
ieee802154_be64_to_le64(&wpan_dev->extended_addr, sdata->dev->dev_addr); ieee802154_be64_to_le64(&wpan_dev->extended_addr, sdata->dev->dev_addr);
wpan_dev->pan_id = cpu_to_le16(IEEE802154_PANID_BROADCAST); wpan_dev->pan_id = cpu_to_le16(IEEE802154_PANID_BROADCAST);
......
...@@ -72,10 +72,21 @@ static int mac802154_set_mac_params(struct net_device *dev, ...@@ -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_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev);
struct ieee802154_local *local = sdata->local; struct ieee802154_local *local = sdata->local;
struct wpan_dev *wpan_dev = &sdata->wpan_dev;
int ret; int ret;
mutex_lock(&sdata->local->iflist_mtx); 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); mutex_unlock(&sdata->local->iflist_mtx);
if (local->hw.flags & IEEE802154_HW_TXPOWER) { if (local->hw.flags & IEEE802154_HW_TXPOWER) {
...@@ -103,9 +114,20 @@ static void mac802154_get_mac_params(struct net_device *dev, ...@@ -103,9 +114,20 @@ static void mac802154_get_mac_params(struct net_device *dev,
struct ieee802154_mac_params *params) struct ieee802154_mac_params *params)
{ {
struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); 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); 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); mutex_unlock(&sdata->local->iflist_mtx);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment