summaryrefslogtreecommitdiff
path: root/drivers/net/ieee802154/mcr20a.c
diff options
context:
space:
mode:
authorMiquel Raynal <miquel.raynal@bootlin.com>2022-02-01 19:06:27 +0100
committerStefan Schmidt <stefan@datenfreihafen.org>2022-02-10 15:41:58 +0100
commit731cddce6dd110fb2cdee34eddb48599e7251517 (patch)
tree54ba2afeedaa1a2a7a96fdc9201acb79aace6037 /drivers/net/ieee802154/mcr20a.c
parentcfa1e01ecf516511bfc0fa87f96aa19bc6ee401f (diff)
net: mac802154: Convert the symbol duration into nanoseconds
Tdsym is often given in the spec as pretty small numbers in microseconds and hence was reflected in the code as symbol_duration and was stored as a u8. Actually, for UWB PHYs, the symbol duration is given in nanoseconds and are as precise as picoseconds. In order to handle better these PHYs, change the type of symbol_duration to u32 and store this value in nanoseconds. All the users of this variable are updated in a mechanical way. Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Acked-by: Alexander Aring <aahringo@redhat.com> Link: https://lore.kernel.org/r/20220201180629.93410-3-miquel.raynal@bootlin.com Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
Diffstat (limited to 'drivers/net/ieee802154/mcr20a.c')
-rw-r--r--drivers/net/ieee802154/mcr20a.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/ieee802154/mcr20a.c b/drivers/net/ieee802154/mcr20a.c
index 383231b85464..c925e629ddf3 100644
--- a/drivers/net/ieee802154/mcr20a.c
+++ b/drivers/net/ieee802154/mcr20a.c
@@ -975,9 +975,9 @@ static void mcr20a_hw_setup(struct mcr20a_local *lp)
dev_dbg(printdev(lp), "%s\n", __func__);
- phy->symbol_duration = 16;
- phy->lifs_period = 40 * phy->symbol_duration;
- phy->sifs_period = 12 * phy->symbol_duration;
+ phy->symbol_duration = 16 * NSEC_PER_USEC;
+ phy->lifs_period = (40 * phy->symbol_duration) / NSEC_PER_USEC;
+ phy->sifs_period = (12 * phy->symbol_duration) / NSEC_PER_USEC;
hw->flags = IEEE802154_HW_TX_OMIT_CKSUM |
IEEE802154_HW_AFILT |
@@ -1006,7 +1006,7 @@ static void mcr20a_hw_setup(struct mcr20a_local *lp)
phy->current_page = 0;
/* MCR20A default reset value */
phy->current_channel = 20;
- phy->symbol_duration = 16;
+ phy->symbol_duration = 16 * NSEC_PER_USEC;
phy->supported.tx_powers = mcr20a_powers;
phy->supported.tx_powers_size = ARRAY_SIZE(mcr20a_powers);
phy->cca_ed_level = phy->supported.cca_ed_levels[75];