mt76: mt7663s: move drv_own/fw_own in mt7615_mcu_ops
Initialize set_drv_ctrl and set_fw_ctrl function pointers in mt7663s_mcu_init. This is a preliminary patch to enable runtime-pm for mt7663s chipset. Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
186b659c08
commit
d6e08f2be7
@ -678,8 +678,6 @@ int mt7663u_mcu_init(struct mt7615_dev *dev);
|
||||
/* sdio */
|
||||
u32 mt7663s_read_pcr(struct mt7615_dev *dev);
|
||||
int mt7663s_mcu_init(struct mt7615_dev *dev);
|
||||
int mt7663s_driver_own(struct mt7615_dev *dev);
|
||||
int mt7663s_firmware_own(struct mt7615_dev *dev);
|
||||
int mt7663s_kthread_run(void *data);
|
||||
void mt7663s_sdio_irq(struct sdio_func *func);
|
||||
|
||||
|
@ -428,7 +428,7 @@ static int mt7663s_suspend(struct device *dev)
|
||||
|
||||
mt76s_stop_txrx(&mdev->mt76);
|
||||
|
||||
return mt7663s_firmware_own(mdev);
|
||||
return mt7615_mcu_set_fw_ctrl(mdev);
|
||||
}
|
||||
|
||||
static int mt7663s_resume(struct device *dev)
|
||||
@ -437,7 +437,7 @@ static int mt7663s_resume(struct device *dev)
|
||||
struct mt7615_dev *mdev = sdio_get_drvdata(func);
|
||||
int err;
|
||||
|
||||
err = mt7663s_driver_own(mdev);
|
||||
err = mt7615_mcu_set_drv_ctrl(mdev);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
|
@ -63,7 +63,7 @@ out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
int mt7663s_driver_own(struct mt7615_dev *dev)
|
||||
static int mt7663s_mcu_drv_pmctrl(struct mt7615_dev *dev)
|
||||
{
|
||||
struct sdio_func *func = dev->mt76.sdio.func;
|
||||
struct mt76_phy *mphy = &dev->mt76.phy;
|
||||
@ -95,7 +95,7 @@ out:
|
||||
return 0;
|
||||
}
|
||||
|
||||
int mt7663s_firmware_own(struct mt7615_dev *dev)
|
||||
static int mt7663s_mcu_fw_pmctrl(struct mt7615_dev *dev)
|
||||
{
|
||||
struct sdio_func *func = dev->mt76.sdio.func;
|
||||
struct mt76_phy *mphy = &dev->mt76.phy;
|
||||
@ -132,9 +132,10 @@ int mt7663s_mcu_init(struct mt7615_dev *dev)
|
||||
.mcu_rr = mt7615_mcu_reg_rr,
|
||||
.mcu_wr = mt7615_mcu_reg_wr,
|
||||
};
|
||||
struct mt7615_mcu_ops *mcu_ops;
|
||||
int ret;
|
||||
|
||||
ret = mt7663s_driver_own(dev);
|
||||
ret = mt7663s_mcu_drv_pmctrl(dev);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@ -152,6 +153,15 @@ int mt7663s_mcu_init(struct mt7615_dev *dev)
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
mcu_ops = devm_kmemdup(dev->mt76.dev, dev->mcu_ops, sizeof(*mcu_ops),
|
||||
GFP_KERNEL);
|
||||
if (!mcu_ops)
|
||||
return -ENOMEM;
|
||||
|
||||
mcu_ops->set_drv_ctrl = mt7663s_mcu_drv_pmctrl;
|
||||
mcu_ops->set_fw_ctrl = mt7663s_mcu_fw_pmctrl;
|
||||
dev->mcu_ops = mcu_ops;
|
||||
|
||||
ret = mt7663s_mcu_init_sched(dev);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
Loading…
x
Reference in New Issue
Block a user