Message ID | 20181212093645.14752-1-miquel.raynal@bootlin.com (mailing list archive) |
---|---|
Headers | show |
Series | Add hw overheat IRQ support to Marvell thermal driver | expand |
On Wed, Dec 12, 2018 at 10:36:39AM +0100, Miquel Raynal wrote: > Hello, > I added the series in my -linus branch. You can also add my Acked-by: Eduardo Valentin <edubezval@gmail.com> in your DTS patches (4 and 6). > 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 v3: > ================= > * Added Rob's Reviewed-by on cp110 bindings. > * Addressed Rob comment on ap806 bindings by removing the reference to > the interrupt parent. > > 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 | 7 + > .../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, 317 insertions(+), 7 deletions(-) > > -- > 2.19.1 >
Hi Miquel, On mer., déc. 12 2018, Miquel Raynal <miquel.raynal@bootlin.com> wrote: > 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 v3: > ================= > * Added Rob's Reviewed-by on cp110 bindings. > * Addressed Rob comment on ap806 bindings by removing the reference to > the interrupt parent. > > 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 Both patches applied to mvebu/dt64 Thanks, Gregory > > .../arm/marvell/ap806-system-controller.txt | 7 + > .../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, 317 insertions(+), 7 deletions(-) > > -- > 2.19.1 >