[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20220525015140.384-1-axe.yang@mediatek.com>
Date: Wed, 25 May 2022 09:51:37 +0800
From: Axe Yang <axe.yang@...iatek.com>
To: Ulf Hansson <ulf.hansson@...aro.org>,
Rob Herring <robh+dt@...nel.org>,
Chaotian Jing <chaotian.jing@...iatek.com>,
Matthias Brugger <matthias.bgg@...il.com>,
Adrian Hunter <adrian.hunter@...el.com>
CC: Yoshihiro Shimoda <yoshihiro.shimoda.uh@...esas.com>,
Satya Tangirala <satyat@...gle.com>,
Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
Wolfram Sang <wsa+renesas@...g-engineering.com>,
Axe Yang <axe.yang@...iatek.com>, Lucas Stach <dev@...xeye.de>,
Eric Biggers <ebiggers@...gle.com>,
Andrew Jeffery <andrew@...id.au>,
Stephen Boyd <swboyd@...omium.org>,
Kiwoong Kim <kwmad.kim@...sung.com>,
Yue Hu <huyue2@...ong.com>, Tian Tao <tiantao6@...ilicon.com>,
<angelogioacchino.delregno@...labora.com>,
<linux-mmc@...r.kernel.org>, <devicetree@...r.kernel.org>,
<linux-kernel@...r.kernel.org>,
<linux-arm-kernel@...ts.infradead.org>,
<linux-mediatek@...ts.infradead.org>,
<Project_Global_Chrome_Upstream_Group@...iatek.com>
Subject: [RESEND v12 0/3] mmc: mediatek: add support for SDIO async IRQ
Changes in v12:
- assign NULL to pins_eint directly instead of using kfree()
Changes in v11:
- remove '_irq' suffix in interrupts-names property
- fix yaml example build error
- refactor msdc_enable_sdio_irq(), free pins_eint if async irq is not supported
Changes in v10:
- add sample node for SDIO host which support wakeup interrupt in yaml
- skip MMC_PM_WAKE_SDIO_IRQ check before enable SDIO async interrupt
- add MMC_PM_KEEP_POWER check before SDIO eint pinstate parsing
- use dev_pm_set_dedicated_wake_irq_reverse() to correct irq control sequence
- set dedicated irq in msdc_enable_sdio_irq() rather than msdc_drv_probe()
- remove unnecessary wake irq control, rpm/dpm system shall manage that
- move wake irq/msdc irq control back to system suspend phase, use rpm_suspend
and rpm_resume to ensure irq control sequence:
disable msdc irq -> enable wake irq -> disable wake irq -> enable msdc irq
- simplify variables, check pins_eint to know whether wakeup settings are managed
Changes in v9:
- remove pinctrl "state_dat1"
Changes in v8:
- remove maxItems property under pinctrl-names property
Changes in v7:
- add device_init_wakeup() to register SDIO host as wakeup source
Changes in v6:
- abandon cap-sdio-async-irq flag, use wakeup-source flag instead
- extend interrupts and pinctrls in mediatek mmc host controller DT documents
- add mmc_card_enable_async_irq() to access enable_async_irq flag
- simplify wakeup irq implementation with dedicate wake up irq related interface
Changes in v5:
- resort variables to reversed xmas tree order
- restore old copyright year range and add current year back
Changes in v4:
- add MMC_CAP2_SDIO_ASYNC_IRQ judge before lookup eint pinctrl
- replace spin_lock_irqsave() variant with spin_lock() in eint irq handler
Changes in v3:
- correct abbreviations with capital letters in commit message
- replace copyright year with 2022 in mtk-sd.c
- remove unnessary pointer casting
- adjust variable order to reversed xmas tree
- remove a redundant blank line
- refine if statement, following standard pattern
Changes in v2:
- change flag name from 'cap-sdio-async-int' to 'cap-sdio-async-irq'
- change corresponding macro names from xxx_INT to xxx_IRQ
- resort new member in msdc_host structure
- refine function msdc_request_dat1_eint_irq()
- rename msdc_{suspend,resume} function names, add suffix '_noirq'
- add MMC_CAP2_NO_SDIO judgement before parse eint related pin setting
Axe Yang (3):
dt-bindings: mmc: mtk-sd: extend interrupts and pinctrls properties
mmc: core: Add support for SDIO wakeup interrupt
mmc: mediatek: add support for SDIO eint wakup IRQ
.../devicetree/bindings/mmc/mtk-sd.yaml | 50 +++++++++++-
drivers/mmc/core/sdio.c | 14 ++++
drivers/mmc/host/mtk-sd.c | 80 +++++++++++++++++--
include/linux/mmc/card.h | 8 +-
include/linux/mmc/sdio.h | 5 ++
5 files changed, 149 insertions(+), 8 deletions(-)
--
2.25.1
Powered by blists - more mailing lists