Hi Alexander, alex.aring@xxxxxxxxx wrote on Thu, 13 Jan 2022 18:34:00 -0500: > Hi, > > On Thu, 13 Jan 2022 at 06:16, Miquel Raynal <miquel.raynal@xxxxxxxxxxx> wrote: > > > > Hi Alexander, > > > > alex.aring@xxxxxxxxx wrote on Wed, 12 Jan 2022 17:26:14 -0500: > > > > > Hi, > > > > > > On Wed, 12 Jan 2022 at 12:33, Miquel Raynal <miquel.raynal@xxxxxxxxxxx> wrote: > > > > > > > > The core now knows how to set the symbol duration in a few cases, when > > > > drivers correctly advertise the protocols used on each channel. For > > > > these drivers, there is no more need to bother with symbol duration, so > > > > just drop the duplicated code. > > > > > > > > Signed-off-by: Miquel Raynal <miquel.raynal@xxxxxxxxxxx> > > > > --- > > > > drivers/net/ieee802154/ca8210.c | 1 - > > > > drivers/net/ieee802154/mcr20a.c | 2 -- > > > > 2 files changed, 3 deletions(-) > > > > > > > > diff --git a/drivers/net/ieee802154/ca8210.c b/drivers/net/ieee802154/ca8210.c > > > > index 82b2a173bdbd..d3a9e4fe05f4 100644 > > > > --- a/drivers/net/ieee802154/ca8210.c > > > > +++ b/drivers/net/ieee802154/ca8210.c > > > > @@ -2977,7 +2977,6 @@ static void ca8210_hw_setup(struct ieee802154_hw *ca8210_hw) > > > > ca8210_hw->phy->cca.mode = NL802154_CCA_ENERGY_CARRIER; > > > > ca8210_hw->phy->cca.opt = NL802154_CCA_OPT_ENERGY_CARRIER_AND; > > > > ca8210_hw->phy->cca_ed_level = -9800; > > > > - ca8210_hw->phy->symbol_duration = 16 * 1000; > > > > ca8210_hw->phy->lifs_period = 40; > > > > ca8210_hw->phy->sifs_period = 12; > > > > ca8210_hw->flags = > > > > diff --git a/drivers/net/ieee802154/mcr20a.c b/drivers/net/ieee802154/mcr20a.c > > > > index 8aa87e9bf92e..da2ab19cb5ee 100644 > > > > --- a/drivers/net/ieee802154/mcr20a.c > > > > +++ b/drivers/net/ieee802154/mcr20a.c > > > > @@ -975,7 +975,6 @@ static void mcr20a_hw_setup(struct mcr20a_local *lp) > > > > > > > > dev_dbg(printdev(lp), "%s\n", __func__); > > > > > > > > - phy->symbol_duration = 16 * 1000; > > > > phy->lifs_period = 40; > > > > phy->sifs_period = 12; > > > > > > > > @@ -1010,7 +1009,6 @@ 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 * 1000; > > > > 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]; > > > > > > What's about the atrf86230 driver? > > > > I couldn't find reliable information about what this meant: > > > > /* SUB:0 and BPSK:0 -> BPSK-20 */ > > /* SUB:1 and BPSK:0 -> BPSK-40 */ > > /* SUB:0 and BPSK:1 -> OQPSK-100/200/400 */ > > /* SUB:1 and BPSK:1 -> OQPSK-250/500/1000 */ > > > > None of these comments match the spec so I don't know what to put > > there. If you know what these protocols are, I will immediately > > provide this information into the driver and ensure the core handles > > these durations properly before dropping the symbol_durations settings > > from the code. > > I think those are from the transceiver datasheets (which are free to > access). Can you not simply merge them or is there a conflict? Actually I misread the driver, it supports several kind of chips with different channel settings and this disturbed me. I downloaded the datasheet and figured that the number after the protocol is the bit rate. This helped me to make the connection with what I already know, so both atusb and atrf86230 drivers have been converted too. Thanks, Miquèl