[PATCH v2 04/11] mt76: mt7915: add firmware support for mt7916

bo.jiao bo.jiao at mediatek.com
Sun Nov 14 18:21:37 PST 2021


On Fri, 2021-11-12 at 14:30 -0800, Ben Greear wrote:
> On 11/5/21 3:02 AM, Bo Jiao wrote:
> > From: Bo Jiao <Bo.Jiao at mediatek.com>
> > 
> > Update firmware initialization for mt7916.
> > This is an intermediate patch to add mt7916 support.
> > 
> > Co-developed-by: Sujuan Chen <sujuan.chen at mediatek.com>
> > Signed-off-by: Sujuan Chen <sujuan.chen at mediatek.com>
> > Co-developed-by: Ryder Lee <ryder.lee at mediatek.com>
> > Signed-off-by: Ryder Lee <ryder.lee at mediatek.com>
> > Signed-off-by: Bo Jiao <Bo.Jiao at mediatek.com>
> > ---
> >   .../net/wireless/mediatek/mt76/mt7915/init.c  |  6 --
> >   .../net/wireless/mediatek/mt76/mt7915/mcu.c   | 78
> > +++++++++++++++----
> >   .../wireless/mediatek/mt76/mt7915/mt7915.h    |  4 +
> >   .../net/wireless/mediatek/mt76/mt7915/pci.c   |  3 +
> >   .../net/wireless/mediatek/mt76/mt7915/regs.h  |  5 +-
> >   5 files changed, 72 insertions(+), 24 deletions(-)
> > 
> > diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/init.c
> > b/drivers/net/wireless/mediatek/mt76/mt7915/init.c
> > index f455c12..a4e2d85 100644
> > --- a/drivers/net/wireless/mediatek/mt76/mt7915/init.c
> > +++ b/drivers/net/wireless/mediatek/mt76/mt7915/init.c
> > @@ -567,12 +567,6 @@ static int mt7915_init_hardware(struct
> > mt7915_dev *dev)
> >   
> >   	set_bit(MT76_STATE_INITIALIZED, &dev->mphy.state);
> >   
> > -	/*
> > -	 * force firmware operation mode into normal state,
> > -	 * which should be set before firmware download stage.
> > -	 */
> > -	mt76_wr(dev, MT_SWDEF_MODE, MT_SWDEF_NORMAL_MODE);
> > -
> >   	ret = mt7915_mcu_init(dev);
> >   	if (ret) {
> >   		/* Reset and try again */
> > diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
> > b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
> > index ee9952d..43ddbc1 100644
> > --- a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
> > +++ b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
> > @@ -2713,16 +2713,20 @@ static int mt7915_mcu_start_patch(struct
> > mt7915_dev *dev)
> >   				 sizeof(req), true);
> >   }
> >   
> > -static int mt7915_driver_own(struct mt7915_dev *dev)
> > +static int mt7915_driver_own(struct mt7915_dev *dev, u8 band)
> >   {
> > -	mt76_wr(dev, MT_TOP_LPCR_HOST_BAND0,
> > MT_TOP_LPCR_HOST_DRV_OWN);
> > -	if (!mt76_poll_msec(dev, MT_TOP_LPCR_HOST_BAND0,
> > +	mt76_wr(dev, MT_TOP_LPCR_HOST_BAND(band),
> > MT_TOP_LPCR_HOST_DRV_OWN);
> > +	if (!mt76_poll_msec(dev, MT_TOP_LPCR_HOST_BAND(band),
> >   			    MT_TOP_LPCR_HOST_FW_OWN_STAT,
> 
> I think that MT_TOP_LPCR_HOST_FW_OWN_STAT is not defined in the
> upstream kernel...
> 
> Maybe a patch from owrt was not added to upstream yet?
> 
> Thanks,
> Ben
> 
> 
> 
This definition is available on the latest mt76 version
#define MT_TOP_LPCR_HOST_FW_OWN_STAT	BIT(2)

thanks
Bo Jiao


More information about the Linux-mediatek mailing list