[v5] Thermal: introduce INT3406 thermal driver
diff mbox

Message ID 548934D0.8000502@intel.com
State Changes Requested
Delegated to: Zhang Rui
Headers show

Commit Message

Aaron Lu Dec. 11, 2014, 6:08 a.m. UTC
On 12/11/2014 10:37 AM, Zhang Rui wrote:
> On Wed, 2014-12-10 at 18:15 -0800, Olof Johansson wrote:
>> On Wed, Dec 10, 2014 at 5:02 PM, Aaron Lu <aaron.lu@intel.com> wrote:
>>> On Wed, Dec 10, 2014 at 11:53:25AM -0800, Olof Johansson wrote:
>>>> Hi,
>>>>
>>>> [+daniel vetter]
>>>>
>>>> On Mon, Dec 8, 2014 at 9:47 PM, Aaron Lu <aaron.lu@intel.com> wrote:
>>>>> INT3406 ACPI device object resembles an ACPI video output device, but its
>>>>> _BCM is said to be deprecated and should not be used. So we will make
>>>>> use of the raw interface to do the actual cooling. Due to this, the
>>>>> backlight core has some modifications. Also, to re-use some of the ACPI
>>>>> video module's code, one function has been exported.
>>>>>
>>>>> Signed-off-by: Aaron Lu <aaron.lu@intel.com>
>>>>> Signed-off-by: Zhang Rui <rui.zhang@intel.com>
>>>>> ---
>>>>> v5:
>>>>> Add the missing file drivers/thermal/int340x_thermal/Kconfig
>>>>> Remove the assignment of .owner field from the device_driver structure
>>>>
>>>>
>>>> Did this patch show up in -next for the first time last night, or did
>>>> some other change break this?
>>>>
>>>> It causes a panic in i915 when booting Minnowboard Max for me.
>>>
>>> Sorry for the trouble, I'm looking at this now.
>>> Is there anything special about the Minnowboard Max? I'll try to
>>> reproduce the issue here locally with a typical Intel desktop.
>>
>> Another good question is why the code showed up in -next today. Code
>> going in for 3.19 is supposed to have been baking there already, and
>> it's too early to stage anything for 3.20.
>>
>> Zhang?
> 
> well, my Linux machine happened to be broken when I was in travel in Oct
> and Nov, so that I got the 3.19 material prepared a little late.
> Thus I just took some fixes and driver specific patches and plan to push
> my pull request next week.
> For this one, it had been pushed to linux-next for 3.18, but was dropped
> because of some Kconfig problem. So I thought it was safe to include
> this one for 3.19.
> sorry for bring the trouble here.

It's my bad. In the meantime, I think I have found the problem:
If the system has a video output device that does not provide a correct
_BCL, the error path from the newly added code doesn't properly set the
error return value and that caused problem. The fix is simple:



Please let me know if you want to take this one incremental patch or an
update to the original one.

Thanks,
Aaron
--
To unsubscribe from this list: send the line "unsubscribe linux-pm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Aaron Lu Dec. 11, 2014, 6:10 a.m. UTC | #1
On 12/11/2014 02:08 PM, Aaron Lu wrote:
> On 12/11/2014 10:37 AM, Zhang Rui wrote:
>> On Wed, 2014-12-10 at 18:15 -0800, Olof Johansson wrote:
>>> On Wed, Dec 10, 2014 at 5:02 PM, Aaron Lu <aaron.lu@intel.com> wrote:
>>>> On Wed, Dec 10, 2014 at 11:53:25AM -0800, Olof Johansson wrote:
>>>>> Hi,
>>>>>
>>>>> [+daniel vetter]
>>>>>
>>>>> On Mon, Dec 8, 2014 at 9:47 PM, Aaron Lu <aaron.lu@intel.com> wrote:
>>>>>> INT3406 ACPI device object resembles an ACPI video output device, but its
>>>>>> _BCM is said to be deprecated and should not be used. So we will make
>>>>>> use of the raw interface to do the actual cooling. Due to this, the
>>>>>> backlight core has some modifications. Also, to re-use some of the ACPI
>>>>>> video module's code, one function has been exported.
>>>>>>
>>>>>> Signed-off-by: Aaron Lu <aaron.lu@intel.com>
>>>>>> Signed-off-by: Zhang Rui <rui.zhang@intel.com>
>>>>>> ---
>>>>>> v5:
>>>>>> Add the missing file drivers/thermal/int340x_thermal/Kconfig
>>>>>> Remove the assignment of .owner field from the device_driver structure
>>>>>
>>>>>
>>>>> Did this patch show up in -next for the first time last night, or did
>>>>> some other change break this?
>>>>>
>>>>> It causes a panic in i915 when booting Minnowboard Max for me.
>>>>
>>>> Sorry for the trouble, I'm looking at this now.
>>>> Is there anything special about the Minnowboard Max? I'll try to
>>>> reproduce the issue here locally with a typical Intel desktop.
>>>
>>> Another good question is why the code showed up in -next today. Code
>>> going in for 3.19 is supposed to have been baking there already, and
>>> it's too early to stage anything for 3.20.
>>>
>>> Zhang?
>>
>> well, my Linux machine happened to be broken when I was in travel in Oct
>> and Nov, so that I got the 3.19 material prepared a little late.
>> Thus I just took some fixes and driver specific patches and plan to push
>> my pull request next week.
>> For this one, it had been pushed to linux-next for 3.18, but was dropped
>> because of some Kconfig problem. So I thought it was safe to include
>> this one for 3.19.
>> sorry for bring the trouble here.
> 
> It's my bad. In the meantime, I think I have found the problem:
> If the system has a video output device that does not provide a correct
> _BCL, the error path from the newly added code doesn't properly set the
> error return value and that caused problem. The fix is simple:

BTW, this is verified with a laptop that would expose the same call
trace as posted by Olof with the original commit.

Thanks,
Aaron
--
To unsubscribe from this list: send the line "unsubscribe linux-pm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Zhang Rui Dec. 11, 2014, 8:33 a.m. UTC | #2
On Thu, 2014-12-11 at 14:08 +0800, Aaron Lu wrote:
> On 12/11/2014 10:37 AM, Zhang Rui wrote:
> > On Wed, 2014-12-10 at 18:15 -0800, Olof Johansson wrote:
> >> On Wed, Dec 10, 2014 at 5:02 PM, Aaron Lu <aaron.lu@intel.com> wrote:
> >>> On Wed, Dec 10, 2014 at 11:53:25AM -0800, Olof Johansson wrote:
> >>>> Hi,
> >>>>
> >>>> [+daniel vetter]
> >>>>
> >>>> On Mon, Dec 8, 2014 at 9:47 PM, Aaron Lu <aaron.lu@intel.com> wrote:
> >>>>> INT3406 ACPI device object resembles an ACPI video output device, but its
> >>>>> _BCM is said to be deprecated and should not be used. So we will make
> >>>>> use of the raw interface to do the actual cooling. Due to this, the
> >>>>> backlight core has some modifications. Also, to re-use some of the ACPI
> >>>>> video module's code, one function has been exported.
> >>>>>
> >>>>> Signed-off-by: Aaron Lu <aaron.lu@intel.com>
> >>>>> Signed-off-by: Zhang Rui <rui.zhang@intel.com>
> >>>>> ---
> >>>>> v5:
> >>>>> Add the missing file drivers/thermal/int340x_thermal/Kconfig
> >>>>> Remove the assignment of .owner field from the device_driver structure
> >>>>
> >>>>
> >>>> Did this patch show up in -next for the first time last night, or did
> >>>> some other change break this?
> >>>>
> >>>> It causes a panic in i915 when booting Minnowboard Max for me.
> >>>
> >>> Sorry for the trouble, I'm looking at this now.
> >>> Is there anything special about the Minnowboard Max? I'll try to
> >>> reproduce the issue here locally with a typical Intel desktop.
> >>
> >> Another good question is why the code showed up in -next today. Code
> >> going in for 3.19 is supposed to have been baking there already, and
> >> it's too early to stage anything for 3.20.
> >>
> >> Zhang?
> > 
> > well, my Linux machine happened to be broken when I was in travel in Oct
> > and Nov, so that I got the 3.19 material prepared a little late.
> > Thus I just took some fixes and driver specific patches and plan to push
> > my pull request next week.
> > For this one, it had been pushed to linux-next for 3.18, but was dropped
> > because of some Kconfig problem. So I thought it was safe to include
> > this one for 3.19.
> > sorry for bring the trouble here.
> 
> It's my bad. In the meantime, I think I have found the problem:
> If the system has a video output device that does not provide a correct
> _BCL, the error path from the newly added code doesn't properly set the
> error return value and that caused problem. The fix is simple:
> 
> 
> diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
> index 5a41f89c4ce4..32880e6c8da4 100644
> --- a/drivers/acpi/video.c
> +++ b/drivers/acpi/video.c
> @@ -721,7 +721,7 @@ int acpi_video_get_levels(struct acpi_device *device,
>  	int i, max_level = 0, count = 0, level_ac_battery = 0;
>  	union acpi_object *o;
>  	struct acpi_video_device_brightness *br = NULL;
> -	int result = 0;
> +	int result = -EINVAL;
>  	u32 value;
>  
>  	if (!ACPI_SUCCESS(acpi_video_device_lcd_query_levels(device->handle,
> @@ -799,6 +799,7 @@ int acpi_video_get_levels(struct acpi_device *device,
>  
>  	br->count = count;
>  	*dev_br = br;
> +	result = 0;
>  
>  out:
>  	kfree(obj);
> 
> Please let me know if you want to take this one incremental patch or an
> update to the original one.
> 
As the patch has not been in upstream yet, you should include this fix
in your original patch.

thanks,
rui

> Thanks,
> Aaron


--
To unsubscribe from this list: send the line "unsubscribe linux-pm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch
diff mbox

diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
index 5a41f89c4ce4..32880e6c8da4 100644
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -721,7 +721,7 @@  int acpi_video_get_levels(struct acpi_device *device,
 	int i, max_level = 0, count = 0, level_ac_battery = 0;
 	union acpi_object *o;
 	struct acpi_video_device_brightness *br = NULL;
-	int result = 0;
+	int result = -EINVAL;
 	u32 value;
 
 	if (!ACPI_SUCCESS(acpi_video_device_lcd_query_levels(device->handle,
@@ -799,6 +799,7 @@  int acpi_video_get_levels(struct acpi_device *device,
 
 	br->count = count;
 	*dev_br = br;
+	result = 0;
 
 out:
 	kfree(obj);