linux-acpi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Less strict requirements for video device detection
@ 2009-08-20  9:14 Stefan Bader
  2009-08-21  1:17 ` Zhang Rui
  0 siblings, 1 reply; 9+ messages in thread
From: Stefan Bader @ 2009-08-20  9:14 UTC (permalink / raw)
  To: linux-acpi; +Cc: rui.zhang, Matthew Garrett

[-- Attachment #1: Type: text/plain, Size: 1046 bytes --]

Hardware: Acer 6920G (from a bug report)

Another case of a broken BIOS. In this case there are several definitions for 
video bus devices but only one has _DOS and _DOD defined. All other definitions 
only have _DOD.
In the past (2.6.27) _ADR was not evaluated to make sure of using a present 
video device, but with that bug brightness could be changed.

Now the video bus having _DOS and _DOD is detected as not being present. The 
other definitions are not considered because they are lacking the _DOS method.
Using the attached patch, would cause the detection code to consider the other 
definitions and has been tested to enable backlight control.

Would this be an acceptable approach? From the ACPI spec it rather sounds like 
_DOD and _DOS must be present for a device for display switching and _DOS would 
indicate possible backlight control as well. So the question might not be so 
much is it the right thing than is it safe enough to allow more compatibility 
with broken implementations without causing other problems...

-Stefan


[-- Attachment #2: 0001-acpi-video-Loosen-strictness-of-video-bus-detectio.patch --]
[-- Type: text/x-diff, Size: 1837 bytes --]

>From 302f148a5eee5226b15c1dec1dbdfb8326bfa17a Mon Sep 17 00:00:00 2001
From: Stefan Bader <stefan.bader@canonical.com>
Date: Thu, 20 Aug 2009 10:45:58 +0200
Subject: [PATCH] acpi: video: Loosen strictness of video bus detection code

BugLink: http://bugs.launchpad.net/bugs/333386

Currently a video bus device must (beside other criteria) define _DOD and
_DOS methods to be considered a video device.
Some broken BIOSes prevented working backlight control by only defining both
for one (non-existing bus) and only _DOD for the rest. With this patch in
place the other bus definitions were considered too and backlight control
started to work again.

Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
---
 drivers/acpi/video.c        |    2 +-
 drivers/acpi/video_detect.c |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
index 8851315..f9efeb8 100644
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -1083,7 +1083,7 @@ static int acpi_video_bus_check(struct acpi_video_bus *video)
 	 */
 
 	/* Does this device support video switching? */
-	if (video->cap._DOS) {
+	if (video->cap._DOS || video->cap._DOD) {
 		video->flags.multihead = 1;
 		status = 0;
 	}
diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
index 7cd2b63..bee5e34 100644
--- a/drivers/acpi/video_detect.c
+++ b/drivers/acpi/video_detect.c
@@ -82,7 +82,7 @@ long acpi_is_video_device(struct acpi_device *device)
 		return 0;
 
 	/* Does this device able to support video switching ? */
-	if (ACPI_SUCCESS(acpi_get_handle(device->handle, "_DOD", &h_dummy)) &&
+	if (ACPI_SUCCESS(acpi_get_handle(device->handle, "_DOD", &h_dummy)) ||
 	    ACPI_SUCCESS(acpi_get_handle(device->handle, "_DOS", &h_dummy)))
 		video_caps |= ACPI_VIDEO_OUTPUT_SWITCHING;
 
-- 
1.5.4.3


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: Less strict requirements for video device detection
  2009-08-20  9:14 Less strict requirements for video device detection Stefan Bader
@ 2009-08-21  1:17 ` Zhang Rui
  2009-08-21 10:00   ` Less strict requirements for video device detection (v2) Stefan Bader
  0 siblings, 1 reply; 9+ messages in thread
From: Zhang Rui @ 2009-08-21  1:17 UTC (permalink / raw)
  To: Stefan Bader; +Cc: linux-acpi@vger.kernel.org, Matthew Garrett

On Thu, 2009-08-20 at 17:14 +0800, Stefan Bader wrote:
> Hardware: Acer 6920G (from a bug report)
> 
> Another case of a broken BIOS. In this case there are several definitions for 
> video bus devices but only one has _DOS and _DOD defined. All other definitions 
> only have _DOD.

I have seen such kind of BIOS too.

> In the past (2.6.27) _ADR was not evaluated to make sure of using a present 
> video device, but with that bug brightness could be changed.
> 
> Now the video bus having _DOS and _DOD is detected as not being present. The 
> other definitions are not considered because they are lacking the _DOS method.
> Using the attached patch, would cause the detection code to consider the other 
> definitions and has been tested to enable backlight control.
> 

> Would this be an acceptable approach?

I think so. I generated a similar patch before, but didn't sent it out
for some reason.
My suggestion is that we should also print out a warning message if _DOS
is missed, what do you think?

thanks,
rui

>  From the ACPI spec it rather sounds like 
> _DOD and _DOS must be present for a device for display switching and _DOS would 
> indicate possible backlight control as well. So the question might not be so 
> much is it the right thing than is it safe enough to allow more compatibility 
> with broken implementations without causing other problems...
> 
> -Stefan
> 


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Less strict requirements for video device detection (v2)
  2009-08-21  1:17 ` Zhang Rui
@ 2009-08-21 10:00   ` Stefan Bader
  2009-08-24  1:19     ` Zhang Rui
  0 siblings, 1 reply; 9+ messages in thread
From: Stefan Bader @ 2009-08-21 10:00 UTC (permalink / raw)
  To: Zhang Rui; +Cc: linux-acpi@vger.kernel.org, Matthew Garrett

[-- Attachment #1: Type: text/plain, Size: 1923 bytes --]

Zhang Rui wrote:
> On Thu, 2009-08-20 at 17:14 +0800, Stefan Bader wrote:
>> Hardware: Acer 6920G (from a bug report)
>>
>> Another case of a broken BIOS. In this case there are several definitions for 
>> video bus devices but only one has _DOS and _DOD defined. All other definitions 
>> only have _DOD.
> 
> I have seen such kind of BIOS too.
> 
>> In the past (2.6.27) _ADR was not evaluated to make sure of using a present 
>> video device, but with that bug brightness could be changed.
>>
>> Now the video bus having _DOS and _DOD is detected as not being present. The 
>> other definitions are not considered because they are lacking the _DOS method.
>> Using the attached patch, would cause the detection code to consider the other 
>> definitions and has been tested to enable backlight control.
>>
> 
>> Would this be an acceptable approach?
> 
> I think so. I generated a similar patch before, but didn't sent it out
> for some reason.
> My suggestion is that we should also print out a warning message if _DOS
> is missed, what do you think?

Some indication about the problem can't hurt. Probably not in 
acpi_is_video_device as that would trigger for even unused devices.
So I added a warning to acpi_video_bus_check for the case when _DOS is missing. 
The case of _DOS being present but _DOD not might also be worth a warning but 
(though the check in acpi_is_video_device prevented this) would have been 
accepted by the current code.

-Stefan

> thanks,
> rui
> 
>>  From the ACPI spec it rather sounds like 
>> _DOD and _DOS must be present for a device for display switching and _DOS would 
>> indicate possible backlight control as well. So the question might not be so 
>> much is it the right thing than is it safe enough to allow more compatibility 
>> with broken implementations without causing other problems...
>>
>> -Stefan
>>
> 


-- 

When all other means of communication fail, try words!



[-- Attachment #2: 0001-acpi-video-Loosen-strictness-of-video-bus-detectio.patch --]
[-- Type: text/x-diff, Size: 1994 bytes --]

>From 6b483015524f67dee3ae2f08f3c0cef27c9d84c6 Mon Sep 17 00:00:00 2001
From: Stefan Bader <stefan.bader@canonical.com>
Date: Fri, 21 Aug 2009 11:03:05 +0200
Subject: [PATCH] acpi: video: Loosen strictness of video bus detection code

BugLink: http://bugs.launchpad.net/bugs/333386

Currently a video bus device must (beside other criteria) define _DOD and
_DOS methods to be considered a video device.
Some broken BIOSes prevented working backlight control by only defining both
for one (non-existing bus) and only _DOD for the rest. With this patch in
place the other bus definitions were considered too and backlight control
started to work again.

Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
---
 drivers/acpi/video.c        |    7 ++++++-
 drivers/acpi/video_detect.c |    2 +-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
index 8851315..acd4636 100644
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -1083,7 +1083,12 @@ static int acpi_video_bus_check(struct acpi_video_bus *video)
 	 */
 
 	/* Does this device support video switching? */
-	if (video->cap._DOS) {
+	if (video->cap._DOS || video->cap._DOD) {
+		if (!video->cap._DOS) {
+			printk(KERN_WARNING PREFIX
+				"BIOS bug: %s declares _DOD but not _DOS\n",
+				acpi_device_bid(video->device));
+		}
 		video->flags.multihead = 1;
 		status = 0;
 	}
diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
index 7cd2b63..bee5e34 100644
--- a/drivers/acpi/video_detect.c
+++ b/drivers/acpi/video_detect.c
@@ -82,7 +82,7 @@ long acpi_is_video_device(struct acpi_device *device)
 		return 0;
 
 	/* Does this device able to support video switching ? */
-	if (ACPI_SUCCESS(acpi_get_handle(device->handle, "_DOD", &h_dummy)) &&
+	if (ACPI_SUCCESS(acpi_get_handle(device->handle, "_DOD", &h_dummy)) ||
 	    ACPI_SUCCESS(acpi_get_handle(device->handle, "_DOS", &h_dummy)))
 		video_caps |= ACPI_VIDEO_OUTPUT_SWITCHING;
 
-- 
1.5.4.3


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: Less strict requirements for video device detection (v2)
  2009-08-21 10:00   ` Less strict requirements for video device detection (v2) Stefan Bader
@ 2009-08-24  1:19     ` Zhang Rui
  2009-08-24 14:44       ` Less strict requirements for video device detection (v3) Stefan Bader
  0 siblings, 1 reply; 9+ messages in thread
From: Zhang Rui @ 2009-08-24  1:19 UTC (permalink / raw)
  To: Stefan Bader; +Cc: linux-acpi@vger.kernel.org, Matthew Garrett

On Fri, 2009-08-21 at 18:00 +0800, Stefan Bader wrote:
> Zhang Rui wrote:
> > On Thu, 2009-08-20 at 17:14 +0800, Stefan Bader wrote:
> >> Hardware: Acer 6920G (from a bug report)
> >>
> >> Another case of a broken BIOS. In this case there are several definitions for 
> >> video bus devices but only one has _DOS and _DOD defined. All other definitions 
> >> only have _DOD.
> > 
> > I have seen such kind of BIOS too.
> > 
> >> In the past (2.6.27) _ADR was not evaluated to make sure of using a present 
> >> video device, but with that bug brightness could be changed.
> >>
> >> Now the video bus having _DOS and _DOD is detected as not being present. The 
> >> other definitions are not considered because they are lacking the _DOS method.
> >> Using the attached patch, would cause the detection code to consider the other 
> >> definitions and has been tested to enable backlight control.
> >>
> > 
> >> Would this be an acceptable approach?
> > 
> > I think so. I generated a similar patch before, but didn't sent it out
> > for some reason.
> > My suggestion is that we should also print out a warning message if _DOS
> > is missed, what do you think?
> 
> Some indication about the problem can't hurt. Probably not in 
> acpi_is_video_device as that would trigger for even unused devices.
> So I added a warning to acpi_video_bus_check for the case when _DOS is missing. 

how about using printk(KERN_WARNING FW_BUG "blabla")?

thanks,
rui

> The case of _DOS being present but _DOD not might also be worth a warning but 
> (though the check in acpi_is_video_device prevented this) would have been 
> accepted by the current code.
> -Stefan
> 
> > thanks,
> > rui
> > 
> >>  From the ACPI spec it rather sounds like 
> >> _DOD and _DOS must be present for a device for display switching and _DOS would 
> >> indicate possible backlight control as well. So the question might not be so 
> >> much is it the right thing than is it safe enough to allow more compatibility 
> >> with broken implementations without causing other problems...
> >>
> >> -Stefan
> >>
> > 
> 
> 

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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Less strict requirements for video device detection (v3)
  2009-08-24  1:19     ` Zhang Rui
@ 2009-08-24 14:44       ` Stefan Bader
  2009-08-25  1:08         ` Zhang Rui
  0 siblings, 1 reply; 9+ messages in thread
From: Stefan Bader @ 2009-08-24 14:44 UTC (permalink / raw)
  To: Zhang Rui; +Cc: linux-acpi@vger.kernel.org, Matthew Garrett

[-- Attachment #1: Type: text/plain, Size: 2254 bytes --]

Zhang Rui wrote:
> On Fri, 2009-08-21 at 18:00 +0800, Stefan Bader wrote:
>> Zhang Rui wrote:
>>> On Thu, 2009-08-20 at 17:14 +0800, Stefan Bader wrote:
>>>> Hardware: Acer 6920G (from a bug report)
>>>>
>>>> Another case of a broken BIOS. In this case there are several definitions for 
>>>> video bus devices but only one has _DOS and _DOD defined. All other definitions 
>>>> only have _DOD.
>>> I have seen such kind of BIOS too.
>>>
>>>> In the past (2.6.27) _ADR was not evaluated to make sure of using a present 
>>>> video device, but with that bug brightness could be changed.
>>>>
>>>> Now the video bus having _DOS and _DOD is detected as not being present. The 
>>>> other definitions are not considered because they are lacking the _DOS method.
>>>> Using the attached patch, would cause the detection code to consider the other 
>>>> definitions and has been tested to enable backlight control.
>>>>
>>>> Would this be an acceptable approach?
>>> I think so. I generated a similar patch before, but didn't sent it out
>>> for some reason.
>>> My suggestion is that we should also print out a warning message if _DOS
>>> is missed, what do you think?
>> Some indication about the problem can't hurt. Probably not in 
>> acpi_is_video_device as that would trigger for even unused devices.
>> So I added a warning to acpi_video_bus_check for the case when _DOS is missing. 
> 
> how about using printk(KERN_WARNING FW_BUG "blabla")?

I am not biased on that.

-Stefan
> thanks,
> rui
> 
>> The case of _DOS being present but _DOD not might also be worth a warning but 
>> (though the check in acpi_is_video_device prevented this) would have been 
>> accepted by the current code.
>> -Stefan
>>
>>> thanks,
>>> rui
>>>
>>>>  From the ACPI spec it rather sounds like 
>>>> _DOD and _DOS must be present for a device for display switching and _DOS would 
>>>> indicate possible backlight control as well. So the question might not be so 
>>>> much is it the right thing than is it safe enough to allow more compatibility 
>>>> with broken implementations without causing other problems...
>>>>
>>>> -Stefan
>>>>
>>
> 


-- 

When all other means of communication fail, try words!



[-- Attachment #2: 0001-acpi-video-Loosen-strictness-of-video-bus-detectio.patch --]
[-- Type: text/x-diff, Size: 1989 bytes --]

>From 6b483015524f67dee3ae2f08f3c0cef27c9d84c6 Mon Sep 17 00:00:00 2001
From: Stefan Bader <stefan.bader@canonical.com>
Date: Fri, 21 Aug 2009 11:03:05 +0200
Subject: [PATCH] acpi: video: Loosen strictness of video bus detection code

BugLink: http://bugs.launchpad.net/bugs/333386

Currently a video bus device must (beside other criteria) define _DOD and
_DOS methods to be considered a video device.
Some broken BIOSes prevented working backlight control by only defining both
for one (non-existing bus) and only _DOD for the rest. With this patch in
place the other bus definitions were considered too and backlight control
started to work again.

Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
---
 drivers/acpi/video.c        |    7 ++++++-
 drivers/acpi/video_detect.c |    2 +-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
index 8851315..acd4636 100644
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -1083,7 +1083,12 @@ static int acpi_video_bus_check(struct acpi_video_bus *video)
 	 */
 
 	/* Does this device support video switching? */
-	if (video->cap._DOS) {
+	if (video->cap._DOS || video->cap._DOD) {
+		if (!video->cap._DOS) {
+			printk(KERN_WARNING FW_BUG
+				"ACPI(%s) defines _DOD but not _DOS\n",
+				acpi_device_bid(video->device));
+		}
 		video->flags.multihead = 1;
 		status = 0;
 	}
diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
index 7cd2b63..bee5e34 100644
--- a/drivers/acpi/video_detect.c
+++ b/drivers/acpi/video_detect.c
@@ -82,7 +82,7 @@ long acpi_is_video_device(struct acpi_device *device)
 		return 0;
 
 	/* Does this device able to support video switching ? */
-	if (ACPI_SUCCESS(acpi_get_handle(device->handle, "_DOD", &h_dummy)) &&
+	if (ACPI_SUCCESS(acpi_get_handle(device->handle, "_DOD", &h_dummy)) ||
 	    ACPI_SUCCESS(acpi_get_handle(device->handle, "_DOS", &h_dummy)))
 		video_caps |= ACPI_VIDEO_OUTPUT_SWITCHING;
 
-- 
1.5.4.3


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: Less strict requirements for video device detection (v3)
  2009-08-24 14:44       ` Less strict requirements for video device detection (v3) Stefan Bader
@ 2009-08-25  1:08         ` Zhang Rui
  2009-09-30 20:23           ` Stefan Bader
  0 siblings, 1 reply; 9+ messages in thread
From: Zhang Rui @ 2009-08-25  1:08 UTC (permalink / raw)
  To: Stefan Bader; +Cc: linux-acpi@vger.kernel.org, Matthew Garrett

Acked-by: Zhang Rui <rui.zhang@intel.com>

On Mon, 2009-08-24 at 22:44 +0800, Stefan Bader wrote:
> Zhang Rui wrote:
> > On Fri, 2009-08-21 at 18:00 +0800, Stefan Bader wrote:
> >> Zhang Rui wrote:
> >>> On Thu, 2009-08-20 at 17:14 +0800, Stefan Bader wrote:
> >>>> Hardware: Acer 6920G (from a bug report)
> >>>>
> >>>> Another case of a broken BIOS. In this case there are several definitions for 
> >>>> video bus devices but only one has _DOS and _DOD defined. All other definitions 
> >>>> only have _DOD.
> >>> I have seen such kind of BIOS too.
> >>>
> >>>> In the past (2.6.27) _ADR was not evaluated to make sure of using a present 
> >>>> video device, but with that bug brightness could be changed.
> >>>>
> >>>> Now the video bus having _DOS and _DOD is detected as not being present. The 
> >>>> other definitions are not considered because they are lacking the _DOS method.
> >>>> Using the attached patch, would cause the detection code to consider the other 
> >>>> definitions and has been tested to enable backlight control.
> >>>>
> >>>> Would this be an acceptable approach?
> >>> I think so. I generated a similar patch before, but didn't sent it out
> >>> for some reason.
> >>> My suggestion is that we should also print out a warning message if _DOS
> >>> is missed, what do you think?
> >> Some indication about the problem can't hurt. Probably not in 
> >> acpi_is_video_device as that would trigger for even unused devices.
> >> So I added a warning to acpi_video_bus_check for the case when _DOS is missing. 
> > 
> > how about using printk(KERN_WARNING FW_BUG "blabla")?
> 
> I am not biased on that.
> 
> -Stefan
> > thanks,
> > rui
> > 
> >> The case of _DOS being present but _DOD not might also be worth a warning but 
> >> (though the check in acpi_is_video_device prevented this) would have been 
> >> accepted by the current code.
> >> -Stefan
> >>
> >>> thanks,
> >>> rui
> >>>
> >>>>  From the ACPI spec it rather sounds like 
> >>>> _DOD and _DOS must be present for a device for display switching and _DOS would 
> >>>> indicate possible backlight control as well. So the question might not be so 
> >>>> much is it the right thing than is it safe enough to allow more compatibility 
> >>>> with broken implementations without causing other problems...
> >>>>
> >>>> -Stefan
> >>>>
> >>
> > 
> 
> 

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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Less strict requirements for video device detection (v3)
  2009-08-25  1:08         ` Zhang Rui
@ 2009-09-30 20:23           ` Stefan Bader
  2009-10-09  1:30             ` Zhang Rui
  0 siblings, 1 reply; 9+ messages in thread
From: Stefan Bader @ 2009-09-30 20:23 UTC (permalink / raw)
  To: Zhang Rui; +Cc: linux-acpi@vger.kernel.org, Matthew Garrett, lenb

[-- Attachment #1: Type: text/plain, Size: 2439 bytes --]

Resending. It feels like being lost.

-Stefan

Zhang Rui wrote:
> Acked-by: Zhang Rui <rui.zhang@intel.com>
> 
> On Mon, 2009-08-24 at 22:44 +0800, Stefan Bader wrote:
>> Zhang Rui wrote:
>>> On Fri, 2009-08-21 at 18:00 +0800, Stefan Bader wrote:
>>>> Zhang Rui wrote:
>>>>> On Thu, 2009-08-20 at 17:14 +0800, Stefan Bader wrote:
>>>>>> Hardware: Acer 6920G (from a bug report)
>>>>>>
>>>>>> Another case of a broken BIOS. In this case there are several definitions for 
>>>>>> video bus devices but only one has _DOS and _DOD defined. All other definitions 
>>>>>> only have _DOD.
>>>>> I have seen such kind of BIOS too.
>>>>>
>>>>>> In the past (2.6.27) _ADR was not evaluated to make sure of using a present 
>>>>>> video device, but with that bug brightness could be changed.
>>>>>>
>>>>>> Now the video bus having _DOS and _DOD is detected as not being present. The 
>>>>>> other definitions are not considered because they are lacking the _DOS method.
>>>>>> Using the attached patch, would cause the detection code to consider the other 
>>>>>> definitions and has been tested to enable backlight control.
>>>>>>
>>>>>> Would this be an acceptable approach?
>>>>> I think so. I generated a similar patch before, but didn't sent it out
>>>>> for some reason.
>>>>> My suggestion is that we should also print out a warning message if _DOS
>>>>> is missed, what do you think?
>>>> Some indication about the problem can't hurt. Probably not in 
>>>> acpi_is_video_device as that would trigger for even unused devices.
>>>> So I added a warning to acpi_video_bus_check for the case when _DOS is missing. 
>>> how about using printk(KERN_WARNING FW_BUG "blabla")?
>> I am not biased on that.
>>
>> -Stefan
>>> thanks,
>>> rui
>>>
>>>> The case of _DOS being present but _DOD not might also be worth a warning but 
>>>> (though the check in acpi_is_video_device prevented this) would have been 
>>>> accepted by the current code.
>>>> -Stefan
>>>>
>>>>> thanks,
>>>>> rui
>>>>>
>>>>>>  From the ACPI spec it rather sounds like 
>>>>>> _DOD and _DOS must be present for a device for display switching and _DOS would 
>>>>>> indicate possible backlight control as well. So the question might not be so 
>>>>>> much is it the right thing than is it safe enough to allow more compatibility 
>>>>>> with broken implementations without causing other problems...
>>>>>>
>>>>>> -Stefan

[-- Attachment #2: 0001-acpi-video-Loosen-strictness-of-video-bus-detectio.patch --]
[-- Type: text/x-diff, Size: 2031 bytes --]

>From dbd8ac9a49a1b11eb7c5a49cfd44a93f1a5dd921 Mon Sep 17 00:00:00 2001
From: Stefan Bader <stefan.bader@canonical.com>
Date: Fri, 21 Aug 2009 11:03:05 +0200
Subject: [PATCH] acpi: video: Loosen strictness of video bus detection code

BugLink: http://bugs.launchpad.net/bugs/333386

Currently a video bus device must (beside other criteria) define _DOD and
_DOS methods to be considered a video device.
Some broken BIOSes prevented working backlight control by only defining both
for one (non-existing bus) and only _DOD for the rest. With this patch in
place the other bus definitions were considered too and backlight control
started to work again.

Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
Acked-by: Zhang Rui <rui.zhang@intel.com>
---
 drivers/acpi/video.c        |    7 ++++++-
 drivers/acpi/video_detect.c |    2 +-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
index a4fddb2..518910e 100644
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -1109,7 +1109,12 @@ static int acpi_video_bus_check(struct acpi_video_bus *video)
 	 */
 
 	/* Does this device support video switching? */
-	if (video->cap._DOS) {
+	if (video->cap._DOS || video->cap._DOD) {
+		if (!video->cap._DOS) {
+			printk(KERN_WARNING FW_BUG
+				"ACPI(%s) defines _DOD but not _DOS\n",
+				acpi_device_bid(video->device));
+		}
 		video->flags.multihead = 1;
 		status = 0;
 	}
diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
index 7032f25..575593a 100644
--- a/drivers/acpi/video_detect.c
+++ b/drivers/acpi/video_detect.c
@@ -84,7 +84,7 @@ long acpi_is_video_device(struct acpi_device *device)
 		return 0;
 
 	/* Does this device able to support video switching ? */
-	if (ACPI_SUCCESS(acpi_get_handle(device->handle, "_DOD", &h_dummy)) &&
+	if (ACPI_SUCCESS(acpi_get_handle(device->handle, "_DOD", &h_dummy)) ||
 	    ACPI_SUCCESS(acpi_get_handle(device->handle, "_DOS", &h_dummy)))
 		video_caps |= ACPI_VIDEO_OUTPUT_SWITCHING;
 
-- 
1.5.4.3


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: Less strict requirements for video device detection (v3)
  2009-09-30 20:23           ` Stefan Bader
@ 2009-10-09  1:30             ` Zhang Rui
  2009-10-13  6:52               ` Len Brown
  0 siblings, 1 reply; 9+ messages in thread
From: Zhang Rui @ 2009-10-09  1:30 UTC (permalink / raw)
  To: Stefan Bader; +Cc: linux-acpi@vger.kernel.org, Matthew Garrett, lenb@kernel.org

On Thu, 2009-10-01 at 04:23 +0800, Stefan Bader wrote:
> Resending. It feels like being lost.
> 
> -Stefan
> 
Hi, len,

can you apply this patch please? thanks.

From: Stefan Bader <stefan.bader@canonical.com>
Subject: [PATCH] acpi: video: Loosen strictness of video bus detection code

BugLink: http://bugs.launchpad.net/bugs/333386

Currently a video bus device must (beside other criteria) define _DOD and
_DOS methods to be considered a video device.
Some broken BIOSes prevented working backlight control by only defining both
for one (non-existing bus) and only _DOD for the rest. With this patch in
place the other bus definitions were considered too and backlight control
started to work again.

Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
Acked-by: Zhang Rui <rui.zhang@intel.com>
---
 drivers/acpi/video.c        |    7 ++++++-
 drivers/acpi/video_detect.c |    2 +-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
index a4fddb2..518910e 100644
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -1109,7 +1109,12 @@ static int acpi_video_bus_check(struct acpi_video_bus *video)
 	 */
 
 	/* Does this device support video switching? */
-	if (video->cap._DOS) {
+	if (video->cap._DOS || video->cap._DOD) {
+		if (!video->cap._DOS) {
+			printk(KERN_WARNING FW_BUG
+				"ACPI(%s) defines _DOD but not _DOS\n",
+				acpi_device_bid(video->device));
+		}
 		video->flags.multihead = 1;
 		status = 0;
 	}
diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
index 7032f25..575593a 100644
--- a/drivers/acpi/video_detect.c
+++ b/drivers/acpi/video_detect.c
@@ -84,7 +84,7 @@ long acpi_is_video_device(struct acpi_device *device)
 		return 0;
 
 	/* Does this device able to support video switching ? */
-	if (ACPI_SUCCESS(acpi_get_handle(device->handle, "_DOD", &h_dummy)) &&
+	if (ACPI_SUCCESS(acpi_get_handle(device->handle, "_DOD", &h_dummy)) ||
 	    ACPI_SUCCESS(acpi_get_handle(device->handle, "_DOS", &h_dummy)))
 		video_caps |= ACPI_VIDEO_OUTPUT_SWITCHING;
 
-- 
1.5.4.3




^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: Less strict requirements for video device detection (v3)
  2009-10-09  1:30             ` Zhang Rui
@ 2009-10-13  6:52               ` Len Brown
  0 siblings, 0 replies; 9+ messages in thread
From: Len Brown @ 2009-10-13  6:52 UTC (permalink / raw)
  To: Zhang Rui; +Cc: Stefan Bader, linux-acpi@vger.kernel.org, Matthew Garrett

> [PATCH] acpi: video: Loosen strictness of video bus detection code

applied

thanks,
Len Brown, Intel Open Source Technology Center


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2009-10-13  6:53 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-08-20  9:14 Less strict requirements for video device detection Stefan Bader
2009-08-21  1:17 ` Zhang Rui
2009-08-21 10:00   ` Less strict requirements for video device detection (v2) Stefan Bader
2009-08-24  1:19     ` Zhang Rui
2009-08-24 14:44       ` Less strict requirements for video device detection (v3) Stefan Bader
2009-08-25  1:08         ` Zhang Rui
2009-09-30 20:23           ` Stefan Bader
2009-10-09  1:30             ` Zhang Rui
2009-10-13  6:52               ` Len Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).