Re: [net-next 01/18] ieee802154: hwsim: Ensure proper channel selection at probe time
flat view
From: Alexander Aring <alex.aring@gmail.com>
Date: 2021-12-28 21:05:59
Also in:
lkml
Hi, On Wed, 22 Dec 2021 at 10:57, Miquel Raynal [off-list ref] wrote:
A default channel is selected by default (13), let's clarify that this is page 0 channel 13. Call the right helper to ensure the necessary configuration for this channel has been applied. So far there is very little configuration done in this helper but we will soon add more information (like the symbol duration which is missing) and having this helper called at probe time will prevent us to this type of initialization at two different locations.
I see why this patch is necessary because in later patches the symbol duration is set at ".set_channel()" callback like the at86rf230 driver is doing it. However there is an old TODO [0]. I think we should combine it and implement it in ieee802154_set_channel() of "net/mac802154/cfg.c". Also do the symbol duration setting according to the channel/page when we call ieee802154_register_hw(), so we have it for the default settings.
quoted hunk ↗ jump to hunk
So far there is very little configuration done in this helper but thanks to this improvement, future enhancements in this area (like setting a symbol duration, which is missing) will be reflected automatically in the default probe state. Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> --- drivers/net/ieee802154/mac802154_hwsim.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)diff --git a/drivers/net/ieee802154/mac802154_hwsim.c b/drivers/net/ieee802154/mac802154_hwsim.c index 62ced7a30d92..b1a4ee7dceda 100644 --- a/drivers/net/ieee802154/mac802154_hwsim.c +++ b/drivers/net/ieee802154/mac802154_hwsim.c@@ -778,8 +778,6 @@ static int hwsim_add_one(struct genl_info *info, struct device *dev, ieee802154_random_extended_addr(&hw->phy->perm_extended_addr); - /* hwsim phy channel 13 as default */ - hw->phy->current_channel = 13; pib = kzalloc(sizeof(*pib), GFP_KERNEL); if (!pib) { err = -ENOMEM;@@ -793,6 +791,11 @@ static int hwsim_add_one(struct genl_info *info, struct device *dev, hw->flags = IEEE802154_HW_PROMISCUOUS | IEEE802154_HW_RX_DROP_BAD_CKSUM;
sadly this patch doesn't apply on current net-next/master because IEEE802154_HW_RX_DROP_BAD_CKSUM is not set. I agree that it should be set, so we need a patch for it. - Alex [0] https://elixir.bootlin.com/linux/v5.16-rc7/source/drivers/net/ieee802154/at86rf230.c#L1059