mbox series

[v3,0/6] Add hw overheat IRQ support to Marvell thermal driver

Message ID 20181204190332.10351-1-miquel.raynal@bootlin.com (mailing list archive)
Headers show
Series Add hw overheat IRQ support to Marvell thermal driver | expand

Message

Miquel Raynal Dec. 4, 2018, 7:03 p.m. UTC
Hello,

This is the last batch of patches about the thermal driver that was
suspended, waiting for the ICU/SEI series to be merged. Now that
everything is ready in mainline, let's add hardware overheat interrupt
support to this driver.

Bindings and DT are updated accordingly. The interrupt will only be
triggered if the platform goes above ~102°C (threshold set to 100°C,
hysteresis to > 2°C). The interrupt property is of course not
mandatory.

In the mean time, I add myself to the MAINTAINERS file to receive and
review possible fixes/new features.

Thanks,
Miquèl

Changes since v2:
=================
* Remove useless goto statement.
* Move the hysteresis array out of the function using it and declare
  the array statically instead that doing so on the stack.
* Remove unnecessary cast.
* On error, avoid returning a value not compatible with irqreturn_t in
  the IRQ handler (and when doing so, re-enable interrupts
  first). This is simply handled with a goto statement.
* 0 is not a valid interrupt, take this into account during variables
  validation.

Changes *not* addressed since v2:
================================
* Overheat interrupt configuration has certain limitations on which
  Marc asked questions. I don't know if/what I need to change so
  keeping it like this for this version.
* Eduardo pointed that once a critical level has been reached, there
  is no way back, the system will shutdown. I designed the handler to
  recover from that and to enable the IRQ again if needed, but maybe
  this is useless and should be removed. While waiting for his answer,
  I am sending another version and will correct in a v4 if needed.

Changes since v1:
=================
* Use a threaded IRQ handler to avoid a potential lock depency when
  notifying the core of an overheat situation.


Miquel Raynal (6):
  thermal: armada: add overheat interrupt support
  MAINTAINERS: thermal: add entry for Marvell MVEBU thermal driver
  dt-bindings: ap806: document the thermal interrupt capabilities
  dt-bindings: cp110: document the thermal interrupt capabilities
  arm64: dts: marvell: add interrupt support to ap806 thermal node
  arm64: dts: marvell: add interrupt support to cp110 thermal node

 .../arm/marvell/ap806-system-controller.txt   |   8 +
 .../arm/marvell/cp110-system-controller.txt   |   9 +
 MAINTAINERS                                   |   5 +
 arch/arm64/boot/dts/marvell/armada-ap806.dtsi |  18 +-
 arch/arm64/boot/dts/marvell/armada-cp110.dtsi |  15 +-
 drivers/thermal/armada_thermal.c              | 270 +++++++++++++++++-
 6 files changed, 318 insertions(+), 7 deletions(-)