[PATCH 4/6] mt76: mt7921: introduce mt7921_wpdma_reinit_cond utility routine
sean.wang at mediatek.com
sean.wang at mediatek.com
Mon Apr 19 04:04:37 BST 2021
From: Sean Wang <sean.wang at mediatek.com>
>> From: Sean Wang <sean.wang at mediatek.com>
>
>I guess here we should use my 'From' tag
That is my fault, I'll change it in the next version.
>
>Regards,
>Lorenzo
>
>>
>> Add mt7921_wpdma_reinit_cond to check dummy reg if driver needs to
>> reinitialized WPDMA after driver_own operation
>>
>> Co-developed-by: Leon Yen <leon.yen at mediatek.com>
>> Signed-off-by: Leon Yen <leon.yen at mediatek.com>
>> Signed-off-by: Lorenzo Bianconi <lorenzo at kernel.org>
>> Signed-off-by: Sean Wang <sean.wang at mediatek.com>
>> ---
>> .../net/wireless/mediatek/mt76/mt76_connac.h | 4 +++
>> .../wireless/mediatek/mt76/mt7921/debugfs.c | 13 ++++++++++
>> .../net/wireless/mediatek/mt76/mt7921/dma.c | 25 +++++++++++++++++++
>> .../wireless/mediatek/mt76/mt7921/mt7921.h | 6 +++++
>> 4 files changed, 48 insertions(+)
>>
>> diff --git a/drivers/net/wireless/mediatek/mt76/mt76_connac.h
>> b/drivers/net/wireless/mediatek/mt76/mt76_connac.h
>> index b811f3c410a1..3b5bff80a462 100644
>> --- a/drivers/net/wireless/mediatek/mt76/mt76_connac.h
>> +++ b/drivers/net/wireless/mediatek/mt76/mt76_connac.h
>> @@ -58,6 +58,10 @@ struct mt76_connac_pm {
>> struct delayed_work ps_work;
>> unsigned long last_activity;
>> unsigned long idle_timeout;
>> +
>> + struct {
>> + unsigned int lp_wake;
>> + } stats;
>> };
>>
>> struct mt76_connac_coredump {
>> diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/debugfs.c
>> b/drivers/net/wireless/mediatek/mt76/mt7921/debugfs.c
>> index 5a54cd8d2ce4..bd2aca654767 100644
>> --- a/drivers/net/wireless/mediatek/mt76/mt7921/debugfs.c
>> +++ b/drivers/net/wireless/mediatek/mt76/mt7921/debugfs.c
>> @@ -256,6 +256,17 @@ mt7921_pm_get(void *data, u64 *val)
>>
>> DEFINE_DEBUGFS_ATTRIBUTE(fops_pm, mt7921_pm_get, mt7921_pm_set,
>> "%lld\n");
>>
>> +static int
>> +mt7921_pm_stats(struct seq_file *s, void *data) {
>> + struct mt7921_dev *dev = dev_get_drvdata(s->private);
>> + struct mt76_connac_pm *pm = &dev->pm;
>> +
>> + seq_printf(s, "low power wakes: %9d\n", pm->stats.lp_wake);
>> +
>> + return 0;
>> +}
>> +
>> static int
>> mt7921_pm_idle_timeout_set(void *data, u64 val) { @@ -322,6 +333,8
>> @@ int mt7921_init_debugfs(struct mt7921_dev *dev)
>> debugfs_create_file("idle-timeout", 0600, dir, dev,
>> &fops_pm_idle_timeout);
>> debugfs_create_file("chip_reset", 0600, dir, dev, &fops_reset);
>> + debugfs_create_devm_seqfile(dev->mt76.dev, "runtime_pm_stats", dir,
>> + mt7921_pm_stats);
>>
>> return 0;
>> }
>> diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/dma.c
>> b/drivers/net/wireless/mediatek/mt76/mt7921/dma.c
>> index 8c556ff3ae93..72f5704f8f11 100644
>> --- a/drivers/net/wireless/mediatek/mt76/mt7921/dma.c
>> +++ b/drivers/net/wireless/mediatek/mt76/mt7921/dma.c
>> @@ -329,6 +329,31 @@ int mt7921_wpdma_reset(struct mt7921_dev *dev, bool force)
>> return 0;
>> }
>>
>
<snip>
More information about the Linux-mediatek
mailing list