History log of /openbsd-current/sys/dev/fdt/sxitemp.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.9 24-Oct-2021 mpi

Constify struct cfattach.

ok visa@ a long time ago, ok patrick@


Revision tags: OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE
# 1.8 15-Jul-2020 dtucker

Run the sxitemp(4) at IPL_SOFTCLOCK instead of IPL_VM. Prevents "panic:
mtx ...: locking against myself" on Orange Pi Zero.

Analysis by patrick@:

"The thermal sensor framework uses its own taskq with IPL_SOFTCLOCK.
sxitemp(4) calls thermal_sensor_update() from interrupt context, and
sxitemp(4) is using IPL_VM (memory allocation?!) for its interrupt.

IPL_VM is obviously higher than IPL_SOFTCLOCK, so it ends up being able
to interrupt the taskq. Even though we're in msleep_nsec, I think we
have *not yet* given up the mutex, that we are holding while looking for
more work, only releasing it while sleeping.

Thus, the interrupt runs task_add(), which tries to grab the taskq's
mutex, even though the taskq already holds it!"

ok patrick@ kettenis@


Revision tags: OPENBSD_6_7_BASE
# 1.7 23-Jan-2020 kettenis

Make thermal framework support in sxitemp(4) interrupt driven such that
it works with future Linux device trees.

ok patrick@


# 1.6 23-Jan-2020 kettenis

Use information from nvmem (provided by sxisid(4)) to calibrate the
temperature sensors.

ok patrick@


Revision tags: OPENBSD_6_6_BASE
# 1.5 21-Sep-2019 kettenis

Register sxitemp(4) as a thermal sensor with the thermal zone support code.
From Krystian Lewandowski.


Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.4 27-May-2018 kettenis

Add Allwinner A64 support.


# 1.3 27-May-2018 kettenis

Add support for the Allwinner H3 SoC.


Revision tags: OPENBSD_6_3_BASE
# 1.2 31-Dec-2017 kettenis

Add Allwinner R40/V40 support.


# 1.1 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.8 15-Jul-2020 dtucker

Run the sxitemp(4) at IPL_SOFTCLOCK instead of IPL_VM. Prevents "panic:
mtx ...: locking against myself" on Orange Pi Zero.

Analysis by patrick@:

"The thermal sensor framework uses its own taskq with IPL_SOFTCLOCK.
sxitemp(4) calls thermal_sensor_update() from interrupt context, and
sxitemp(4) is using IPL_VM (memory allocation?!) for its interrupt.

IPL_VM is obviously higher than IPL_SOFTCLOCK, so it ends up being able
to interrupt the taskq. Even though we're in msleep_nsec, I think we
have *not yet* given up the mutex, that we are holding while looking for
more work, only releasing it while sleeping.

Thus, the interrupt runs task_add(), which tries to grab the taskq's
mutex, even though the taskq already holds it!"

ok patrick@ kettenis@


Revision tags: OPENBSD_6_7_BASE
# 1.7 23-Jan-2020 kettenis

Make thermal framework support in sxitemp(4) interrupt driven such that
it works with future Linux device trees.

ok patrick@


# 1.6 23-Jan-2020 kettenis

Use information from nvmem (provided by sxisid(4)) to calibrate the
temperature sensors.

ok patrick@


Revision tags: OPENBSD_6_6_BASE
# 1.5 21-Sep-2019 kettenis

Register sxitemp(4) as a thermal sensor with the thermal zone support code.
From Krystian Lewandowski.


Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.4 27-May-2018 kettenis

Add Allwinner A64 support.


# 1.3 27-May-2018 kettenis

Add support for the Allwinner H3 SoC.


Revision tags: OPENBSD_6_3_BASE
# 1.2 31-Dec-2017 kettenis

Add Allwinner R40/V40 support.


# 1.1 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.7 23-Jan-2020 kettenis

Make thermal framework support in sxitemp(4) interrupt driven such that
it works with future Linux device trees.

ok patrick@


# 1.6 23-Jan-2020 kettenis

Use information from nvmem (provided by sxisid(4)) to calibrate the
temperature sensors.

ok patrick@


Revision tags: OPENBSD_6_6_BASE
# 1.5 21-Sep-2019 kettenis

Register sxitemp(4) as a thermal sensor with the thermal zone support code.
From Krystian Lewandowski.


Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.4 27-May-2018 kettenis

Add Allwinner A64 support.


# 1.3 27-May-2018 kettenis

Add support for the Allwinner H3 SoC.


Revision tags: OPENBSD_6_3_BASE
# 1.2 31-Dec-2017 kettenis

Add Allwinner R40/V40 support.


# 1.1 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.6 23-Jan-2020 kettenis

Use information from nvmem (provided by sxisid(4)) to calibrate the
temperature sensors.

ok patrick@


Revision tags: OPENBSD_6_6_BASE
# 1.5 21-Sep-2019 kettenis

Register sxitemp(4) as a thermal sensor with the thermal zone support code.
From Krystian Lewandowski.


Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.4 27-May-2018 kettenis

Add Allwinner A64 support.


# 1.3 27-May-2018 kettenis

Add support for the Allwinner H3 SoC.


Revision tags: OPENBSD_6_3_BASE
# 1.2 31-Dec-2017 kettenis

Add Allwinner R40/V40 support.


# 1.1 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.5 21-Sep-2019 kettenis

Register sxitemp(4) as a thermal sensor with the thermal zone support code.
From Krystian Lewandowski.


Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.4 27-May-2018 kettenis

Add Allwinner A64 support.


# 1.3 27-May-2018 kettenis

Add support for the Allwinner H3 SoC.


Revision tags: OPENBSD_6_3_BASE
# 1.2 31-Dec-2017 kettenis

Add Allwinner R40/V40 support.


# 1.1 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.4 27-May-2018 kettenis

Add Allwinner A64 support.


# 1.3 27-May-2018 kettenis

Add support for the Allwinner H3 SoC.


Revision tags: OPENBSD_6_3_BASE
# 1.2 31-Dec-2017 kettenis

Add Allwinner R40/V40 support.


# 1.1 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.2 31-Dec-2017 kettenis

Add Allwinner R40/V40 support.


# 1.1 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.