> Disable BEACON timer during init and remove interrupt registers > initialization form generic code since they are PCIe specific. > > Signed-off-by: Stanislaw Gruszka <sgruszka@xxxxxxxxxx> > --- > drivers/net/wireless/mediatek/mt76/mt76x0/pci.c | 7 +++++++ > drivers/net/wireless/mediatek/mt76/mt76x02_util.c | 11 ++++------- > drivers/net/wireless/mediatek/mt76/mt76x2/pci_init.c | 8 ++++++++ > 3 files changed, 19 insertions(+), 7 deletions(-) > > diff --git a/drivers/net/wireless/mediatek/mt76/mt76x0/pci.c b/drivers/net/wireless/mediatek/mt76/mt76x0/pci.c > index 1472c8699b29..cb68af5b7478 100644 > --- a/drivers/net/wireless/mediatek/mt76/mt76x0/pci.c > +++ b/drivers/net/wireless/mediatek/mt76/mt76x0/pci.c > @@ -128,6 +128,13 @@ static int mt76x0e_register_device(struct mt76x02_dev *dev) > if (err < 0) > return err; > > + /* Beaconing: fire a pre-TBTT interrupt 8 ms before TBTT */ > + mt76_rmw_field(dev, MT_INT_TIMER_CFG, MT_INT_TIMER_CFG_PRE_TBTT, > + 8 << 4); > + mt76_rmw_field(dev, MT_INT_TIMER_CFG, MT_INT_TIMER_CFG_GP_TIMER, > + MT_DFS_GP_INTERVAL); > + mt76_wr(dev, MT_INT_TIMER_EN, 0); What about having a dedicated routine for that configuration since we need it for mt76x2 and mt76x0 drivers? > + > if (mt76_chip(&dev->mt76) == 0x7610) { > u16 val; > > diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_util.c b/drivers/net/wireless/mediatek/mt76/mt76x02_util.c > index 02139dce4800..741ecd723b8e 100644 > --- a/drivers/net/wireless/mediatek/mt76/mt76x02_util.c > +++ b/drivers/net/wireless/mediatek/mt76/mt76x02_util.c > @@ -667,13 +667,10 @@ void mt76x02_init_beacon_config(struct mt76x02_dev *dev) > { > int i; > > - /* Fire a pre-TBTT interrupt 8 ms before TBTT */ > - mt76_rmw_field(dev, MT_INT_TIMER_CFG, MT_INT_TIMER_CFG_PRE_TBTT, > - 8 << 4); > - mt76_rmw_field(dev, MT_INT_TIMER_CFG, MT_INT_TIMER_CFG_GP_TIMER, > - MT_DFS_GP_INTERVAL); > - mt76_wr(dev, MT_INT_TIMER_EN, 0); > - > + mt76_clear(dev, MT_BEACON_TIME_CFG, (MT_BEACON_TIME_CFG_TIMER_EN | > + MT_BEACON_TIME_CFG_SYNC_MODE | > + MT_BEACON_TIME_CFG_TBTT_EN | > + MT_BEACON_TIME_CFG_BEACON_TX)); > mt76_wr(dev, MT_BCN_BYPASS_MASK, 0xffff); > > for (i = 0; i < 8; i++) > diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2/pci_init.c b/drivers/net/wireless/mediatek/mt76/mt76x2/pci_init.c > index 0ccaa64d97ec..f86ff035fa7f 100644 > --- a/drivers/net/wireless/mediatek/mt76/mt76x2/pci_init.c > +++ b/drivers/net/wireless/mediatek/mt76/mt76x2/pci_init.c > @@ -121,6 +121,14 @@ static int mt76x2_mac_reset(struct mt76x02_dev *dev, bool hard) > > mt76x02_mac_setaddr(dev, macaddr); > mt76x02_init_beacon_config(dev); > + > + /* Fire a pre-TBTT interrupt 8 ms before TBTT */ > + mt76_rmw_field(dev, MT_INT_TIMER_CFG, MT_INT_TIMER_CFG_PRE_TBTT, > + 8 << 4); > + mt76_rmw_field(dev, MT_INT_TIMER_CFG, MT_INT_TIMER_CFG_GP_TIMER, > + MT_DFS_GP_INTERVAL); > + mt76_wr(dev, MT_INT_TIMER_EN, 0); > + > if (!hard) > return 0; > > -- > 1.9.3 >