linux/drivers/macintosh
Wolfram Sang 38b17afb0e macintosh: therm_windtunnel: fix regression when instantiating devices
Removing attach_adapter from this driver caused a regression for at
least some machines. Those machines had the sensors described in their
DT, too, so they didn't need manual creation of the sensor devices. The
old code worked, though, because manual creation came first. Creation of
DT devices then failed later and caused error logs, but the sensors
worked nonetheless because of the manually created devices.

When removing attach_adaper, manual creation now comes later and loses
the race. The sensor devices were already registered via DT, yet with
another binding, so the driver could not be bound to it.

This fix refactors the code to remove the race and only manually creates
devices if there are no DT nodes present. Also, the DT binding is updated
to match both, the DT and manually created devices. Because we don't
know which device creation will be used at runtime, the code to start
the kthread is moved to do_probe() which will be called by both methods.

Fixes: 3e7bed5271 ("macintosh: therm_windtunnel: drop using attach_adapter")
Link: https://bugzilla.kernel.org/show_bug.cgi?id=201723
Reported-by: Erhard Furtner <erhard_f@mailbox.org>
Tested-by: Erhard Furtner <erhard_f@mailbox.org>
Acked-by: Michael Ellerman <mpe@ellerman.id.au> (powerpc)
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Cc: stable@kernel.org # v4.19+
2020-02-29 21:13:22 +01:00
..
ams treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
adb-iop.c macintosh/via-macii, macintosh/adb-iop: Clean up whitespace 2018-10-08 22:53:10 +11:00
adb.c macintosh/adb: Rework printk output again 2018-10-08 22:53:10 +11:00
adbhid.c macintosh/adb: Rework printk output again 2018-10-08 22:53:10 +11:00
ans-lcd.c macintosh: ans-lcd: make anslcd_logo static and __initconst 2019-11-06 00:28:59 +11:00
ans-lcd.h
apm_emu.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 118 2019-05-24 17:39:02 +02:00
Kconfig macintosh: Fix Kconfig indentation 2020-01-23 21:31:23 +11:00
mac_hid.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
macio_asic.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
macio_sysfs.c macintosh: Use device_type helpers to access the node type 2018-11-26 22:33:37 +11:00
macio-adb.c macintosh/adb: Use C99 initializers for struct adb_driver instances 2018-03-31 00:10:32 +11:00
Makefile macintosh/via-pmu: Replace via-pmu68k driver with via-pmu driver 2018-07-31 19:56:42 +10:00
mediabay.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
rack-meter.c rackmeter: Use vtime aware kcpustat accessor 2019-11-21 07:59:00 +01:00
smu.c drivers/macintosh/smu.c: Mark expected switch fall-through 2019-07-31 21:44:45 +10:00
therm_adt746x.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
therm_windtunnel.c macintosh: therm_windtunnel: fix regression when instantiating devices 2020-02-29 21:13:22 +01:00
via-cuda.c macintosh/via-cuda: Don't rely on Cuda to end a transfer 2019-01-22 10:21:45 +01:00
via-macii.c macintosh/via-macii, macintosh/adb-iop: Clean up whitespace 2018-10-08 22:53:10 +11:00
via-pmu-backlight.c
via-pmu-event.c
via-pmu-event.h
via-pmu-led.c
via-pmu.c proc: convert everything to "struct proc_ops" 2020-02-04 03:05:26 +00:00
windfarm_ad7417_sensor.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 246 2019-06-19 17:09:08 +02:00
windfarm_core.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 246 2019-06-19 17:09:08 +02:00
windfarm_cpufreq_clamp.c cpufreq: Use per-policy frequency QoS 2019-10-21 02:05:21 +02:00
windfarm_fcu_controls.c macintosh: Use pr_warn instead of pr_warning 2019-10-18 15:00:22 +02:00
windfarm_lm75_sensor.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 246 2019-06-19 17:09:08 +02:00
windfarm_lm87_sensor.c macintosh: Use pr_warn instead of pr_warning 2019-10-18 15:00:22 +02:00
windfarm_max6690_sensor.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 247 2019-06-19 17:09:08 +02:00
windfarm_mpu.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 246 2019-06-19 17:09:08 +02:00
windfarm_pid.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 246 2019-06-19 17:09:08 +02:00
windfarm_pid.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 246 2019-06-19 17:09:08 +02:00
windfarm_pm72.c macintosh: Use pr_warn instead of pr_warning 2019-10-18 15:00:22 +02:00
windfarm_pm81.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 246 2019-06-19 17:09:08 +02:00
windfarm_pm91.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 246 2019-06-19 17:09:08 +02:00
windfarm_pm112.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 247 2019-06-19 17:09:08 +02:00
windfarm_pm121.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 246 2019-06-19 17:09:08 +02:00
windfarm_rm31.c macintosh: Use pr_warn instead of pr_warning 2019-10-18 15:00:22 +02:00
windfarm_smu_controls.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 246 2019-06-19 17:09:08 +02:00
windfarm_smu_sat.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 375 2019-06-05 17:37:10 +02:00
windfarm_smu_sensors.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 246 2019-06-19 17:09:08 +02:00
windfarm.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 246 2019-06-19 17:09:08 +02:00