Hi Marc, Are you fine with current series? Please help to get this move forward. Thanks, Sameer. On 3/22/2019 5:43 PM, Sameer Pujar wrote:
Currently gic-pm driver is not getting used by any of the Tegra devices. In fact, the driver is not getting compiled. This series is to ensure, * build support for driver * update driver with usage of clk_bulk APIs. * fix suspend path This is used by AGIC(Audio Generic Interrupt Controller) block in audio pipeline. Changelog ========= v4->v5: ------- Following changes are made in current series. [patch 1/3] arm64: tegra: select ARM_GIC_PM * no change [patch 2/3] irqchip/gic-pm: update driver to use clk_bulk APIs * removed unnecessary null check on 'dev' * memory for chip_pm is allocated after device match is found * removed gic_get_clocks() to simplify and probe does required setup [patch 3/3] irqchip/gic-pm: fix suspend handling * no change v3->v4: ------- Following changes made in current series. [patch 1/3] arm64: tegra: select ARM_GIC_PM * no change [patch 2/3] irqchip/gic-pm: update driver to use clk_bulk APIs * commit subject and description changed for clarity * platform_set_drvdata is replaced by dev_set_drvdata * NULL check on dev is moved to probe * replaced devm_kzalloc with devm_kcalloc for chip_pm->clks * fixed formatting and some cosmetic changes [patch 3/3] irqchip/gic-pm: fix suspend handling * no change v2->v3: ------- Following are the deltas from previous series [patch 1/3] arm64: tegra: select ARM_GIC_PM * no change [patch 2/3] irqchip/gic-pm: use devm_clk to keep clock state balanced * commit subject is changed * 'struct clk_bulk_data' is used instead of 'struct clk' in gic_pm * clk_bulk() and devm_clk_bulk() APIs are used simplify the code * Minor changes to line breaks and declaration of variables to make code more readable [patch 3/3] irqchip/gic-pm: fix suspend handling * no change v1->v2: ------- following patches are dropped from v1 *[patch 1/5] irqchip/gic-pm: add driver remove support *[patch 2/5] irqchip/gic: allow gic-pm driver to be used as module *[patch 3/5] arm64: defconfig: build gic-pm driver as module The reason for this is, removing gic-pm driver would lead to potential kernel panic or memory corruption. Thus module option for gic-pm is rejected. v2 has 3 patches and the details are below, [patch 1/3] arm64: tegra: select ARM_GIC_PM * ARM_GIC_PM is selected for 64-bit Tegra devices [patch 2/3] irqchip/gic-pm: use devm_clk_*() helpers * similar to patch 4/5 in v1 [patch 3/3] irqchip/gic-pm: fix suspend handling * similar to patch 5/5 in v1 v1: ------- [patch 1/5] irqchip/gic-pm: add driver remove support * preparatory patch for making gic-pm driver module * adds remove path in the driver * gic_teardown() exported from gic driver [patch 2/5] irqchip/gic: allow gic-pm driver to be used as module * ARM_GIC_PM config is changed to tristate to allow it to be module * build errors are fixed by exporting necessary functions from gic driver * fixed load and unload errors [patch 3/5] arm64: defconfig: build gic-pm driver as module * defconfig change to make driver a kernel module [patch 4/5] irqchip/gic-pm: use devm_clk_*() helpers * pm_clk interface is replaced with devm_clk [patch 5/5] irqchip/gic-pm: fix suspend handling * system sleep callbacks added to avoid issues during system wide PM transitions. Sameer Pujar (3): arm64: tegra: select ARM_GIC_PM irqchip/gic-pm: update driver to use clk_bulk APIs irqchip/gic-pm: fix suspend handling arch/arm64/Kconfig.platforms | 1 + drivers/irqchip/irq-gic-pm.c | 76 ++++++++++++++++++++------------------ 2 files changed, 40 insertions(+), 37 deletions(-)