summaryrefslogtreecommitdiff
path: root/drivers/thermal/intel_soc_dts_thermal.c
AgeCommit message (Collapse)AuthorFilesLines
2015-05-01Thermal: Intel SoC: DTS thermal use common APIsSrinivas Pandruvada1-409/+21
There is no change in functionality but using the common IOSF core APIs. This driver is now just responsible for enumeration and call relevant API to create thermal zone and register critical trip. Also cpuid 0x4c is now handled in the int340x processor thermal driver with the same functionality. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2015-01-29thermal: Intel SoC DTS: Add Braswell supportSrinivas Pandruvada1-16/+30
Added Intel Braswell CPU id for SOC DTS. Since this doesn't support APIC IRQ, the driver is modified to have capability to not register any modifiable trips. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Signed-off-by: Zhang Rui <rui.zhang@intel.com>
2014-12-09thermal: Intel SoC DTS: Don't do thermal zone update inside spin_lockMaurice Petallo1-5/+7
The driver calls spin_lock_irqsave during DTS interrupt. The interrupt handle then calls thermal_zone_device_update which implicitly calls a sleep function and produce the following bug: BUG: sleeping function called from invalid context at kernel/locking/mutex.c:97 in_atomic(): 1, irqs_disabled(): 1, pid: 920, name: irq/86-soc_dts CPU: 0 PID: 920 Comm: irq/86-soc_dts Tainted: G E 3.17.0-rc2+ #1 Hardware name: Intel Corp. VALLEYVIEW B3 PLATFORM/NOTEBOOK, BIOS BYTICRB1.86C.0092.R31.1408290850 08/29/2014 00000000 00000000 c25dbe74 c1818cfd f3cc488c c25dbe9c c1059305 c1b4063b 00000001 00000001 00000398 f3cc488c f6817644 f6817644 f3ecc6c0 c25dbea8 c18208f2 f6817400 c25dbebc c159b0bb c25dbedc f6817400 f32a2300 c25dbee8 Call Trace: [<c1818cfd>] dump_stack+0x48/0x60 [<c1059305>] __might_sleep+0xec/0xf4 [<c18208f2>] mutex_lock+0x1c/0x34 [<c159b0bb>] thermal_zone_get_temp+0x34/0x59 [<c159bde5>] thermal_zone_device_update+0x2d/0xcb [<f85da16a>] ? iosf_mbi_write+0x6c/0x74 [iosf_mbi] [<f7c7445d>] soc_irq_thread_fn+0x10c/0x163 [intel_soc_dts_thermal] [<c107b72b>] irq_thread_fn+0x18/0x2a [<c107bedb>] irq_thread+0x81/0x11f [<c107b713>] ? irq_finalize_oneshot+0x7c/0x7c [<c107bf79>] ? irq_thread+0x11f/0x11f [<c107be5a>] ? wake_threads_waitq+0x31/0x31 [<c1054217>] kthread+0x87/0x8c [<c1821e41>] ret_from_kernel_thread+0x21/0x30 [<c1054190>] ? __kthread_parkme+0x55/0x55 Signed-off-by: Maurice Petallo <mauricex.r.petallo@intel.com> Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Acked-by: Eduardo Valentin <edubezval@gmail.com> CC: Kweh, Hock Leong <hock.leong.kweh@intel.com> Signed-off-by: Zhang Rui <rui.zhang@intel.com>
2014-05-15thermal: Intel SoC DTS thermalSrinivas Pandruvada1-0/+479
In the Intel SoCs like Bay Trail, there are 2 additional digital temperature sensors(DTS), in addition to the standard DTSs in the core. Also they support 4 programmable thresholds, out of which two can be used by OSPM. These thresholds can be used by OSPM thermal control. Out of these two thresholds, one is used by driver and one user mode can change via thermal sysfs to get notifications on threshold violations. The driver defines one critical trip points, which is set to TJ MAX - offset. The offset can be changed via module parameter (default 5C). Also it uses one of the thresholds to get notification for this temperature violation. This is very important for orderly shutdown as the many of these devices don't have ACPI thermal zone, and expects that there is some other thermal control mechanism present in OSPM. When a Linux distro is used without additional specialized thermal control program, BIOS can do force shutdown when thermals are not under control. When temperature reaches critical, the Linux thermal core will initiate an orderly shutdown. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Signed-off-by: Zhang Rui <rui.zhang@intel.com>