All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v8 0/2] Add Qualcomm MPM irqchip driver support
@ 2022-03-08  8:05 Shawn Guo
  2022-03-08  8:05 ` [PATCH v8 1/2] dt-bindings: interrupt-controller: Add Qualcomm MPM support Shawn Guo
  2022-03-08  8:05 ` [PATCH v8 2/2] irqchip: Add Qualcomm MPM controller driver Shawn Guo
  0 siblings, 2 replies; 5+ messages in thread
From: Shawn Guo @ 2022-03-08  8:05 UTC (permalink / raw)
  To: Marc Zyngier
  Cc: Thomas Gleixner, Maulik Shah, Bjorn Andersson, Sudeep Holla,
	Rob Herring, devicetree, linux-arm-msm, linux-kernel, Shawn Guo

It adds DT binding and driver support for Qualcomm MPM (MSM Power Manager)
interrupt controller.

Changes for v8:
- Drop include of arm-gic-v3.h
- Use __assign_bit() to set & clear bit
- Merge qcom_mpm_enter_sleep() into mpm_pd_power_off()
- Fix broken qcom_mpm_set_type() by respecting the downstream logic
- Initialize vMPM registers at probe time
- Enforce 1:1 hierarchy mapping between MPM pin and GIC interrupt

Changes for v7:
- Add the missing 'static' declaration for get_mpm_gic_map()
- Add PD in MPM driver and call qcom_mpm_enter_sleep() from .power_off
  hook of the PD
- Rename driver file to irq-qcom-mpm.c

Changes for v6:
- Add new event CPU_LAST_PM_ENTER (and CPU_FIRST_PM_EXIT) in cpu_pm
- Drop vendor driver notes from commit log
- Check NULL mpm_gic_map instead to save the use of MPM_NO_PARENT_IRQ
- Add lock protection for register read in qcom_mpm_handler()
- Return IRQ_NONE if there is no pending interrupt
- Drop IRQF_TRIGGER_RISING flag from devm_request_irq() call since it's
  being specified in DT
- Drop dev_set_drvdata() call which is a leftover from previous version
- Fix dt_binding_check errors reported by upgraded dtschema

Changes for v5:
- Drop inline attributes and let compiler to decide
- Use _irqsave/_irqrestore flavour for spin lock
- Assignment on a single for irq_resolve_mapping() call
- Add documentation to explain vMPM ownership transition
- Move MPM pin map data into device tree and so use a generic compatible
- Drop the code that counts CPUs in PM and use CPU_CLUSTER_PM_ENTER
  notification instead

Changes for v4:
- Add the missing include of <linux/interrupt.h> to fix build errors
  on arm architecture.
- Leave IRQCHIP_PLATFORM_DRIVER infrastructural unchanged, and use
  of_find_device_by_node() to get platform_device pointer.

Changes for v3:
- Support module build
- Use relaxed accessors
- Add barrier call to ensure MMIO write completes
- Use d->chip_data to pass driver private data
- Use raw spinlock
- USe BIT() for bit shift
- Create a single irq domain to cover both types of MPM pins
- Call irq_resolve_mapping() to find out Linux irq number
- Save the use of ternary conditional operator and use switch/case for
  .irq_set_type call
- Drop unnecessary .irq_disable hook
- Align qcom_mpm_chip and qcom_mpm_ops members vertically
- Use helper irq_domain_translate_twocell()
- Move mailbox requesting forward in probe function
- Improve the documentation on qcm2290_gic_pins[]
- Use IRQCHIP_PLATFORM_DRIVER infrastructural
- Use cpu_pm notifier instead of .suspend_late hook to write MPM for
  sleep, so that MPM can be set up for both suspend and idle context.
  The TIMER0/1 setup is currently omitted for idle use case though,
  as I haven't been able to successfully test the idle context.


Shawn Guo (2):
  dt-bindings: interrupt-controller: Add Qualcomm MPM support
  irqchip: Add Qualcomm MPM controller driver

 .../interrupt-controller/qcom,mpm.yaml        |  96 ++++
 drivers/irqchip/Kconfig                       |   8 +
 drivers/irqchip/Makefile                      |   1 +
 drivers/irqchip/irq-qcom-mpm.c                | 461 ++++++++++++++++++
 4 files changed, 566 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/interrupt-controller/qcom,mpm.yaml
 create mode 100644 drivers/irqchip/irq-qcom-mpm.c

-- 
2.25.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-03-11 19:23 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-08  8:05 [PATCH v8 0/2] Add Qualcomm MPM irqchip driver support Shawn Guo
2022-03-08  8:05 ` [PATCH v8 1/2] dt-bindings: interrupt-controller: Add Qualcomm MPM support Shawn Guo
2022-03-11 19:23   ` [irqchip: irq/irqchip-next] " irqchip-bot for Shawn Guo
2022-03-08  8:05 ` [PATCH v8 2/2] irqchip: Add Qualcomm MPM controller driver Shawn Guo
2022-03-11 19:23   ` [irqchip: irq/irqchip-next] " irqchip-bot for Shawn Guo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.