Messages in this thread Patch in this message | | | Date | Wed, 15 Jan 2014 22:42:31 +0800 | From | Lan Tianyu <> | Subject | Re: [PATCH V2] ACPI/Battery: Add a _BIX quirk for NEC LZ750/LS |
| |
On 01/15/2014 06:17 AM, Rafael J. Wysocki wrote: > On Tuesday, January 14, 2014 09:24:06 PM Matthew Garrett wrote: >> On Tue, Jan 14, 2014 at 10:37:02PM +0100, Rafael J. Wysocki wrote: >>> On Tuesday, January 14, 2014 04:06:01 PM Matthew Garrett wrote: >>>> On Mon, Jan 06, 2014 at 11:25:53PM +0100, Rafael J. Wysocki wrote: >>>> >>>>> Queued up as a fix for 3.13 (I fixed up the indentation). >>>> >>>> Ah, sorry, I missed this chunk of the thread. If the system provides >>>> valid _BIF data then we should possibly just fall back to that rather >>>> than adding another quirk table. >>> >>> The problem is to know that _BIX is broken. If we could figure that out >>> upfront, we woulnd't need the quirk table in any case. >> >> It's obvious that it is in this case - the package is the wrong size. > > Then Tianyu should be able to come up with a better fix relatively easily. :-) > Hi Rafael&Matthew:
I think we can evaluate _BIX before setting ACPI_BATTERY_XINFO_PRESENT flag. CA routine(acpi_ns_check_package) will check the package size and return error code when there is wrong size package.
Something like this.
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c index fbf1ace..e98fa83 100644 --- a/drivers/acpi/battery.c +++ b/drivers/acpi/battery.c @@ -770,7 +770,7 @@ static int acpi_battery_add(struct acpi_device *device) device->driver_data = battery; mutex_init(&battery->lock); mutex_init(&battery->sysfs_lock); - if (acpi_has_method(battery->device->handle, "_BIX")) + if (acpi_evaluate_object(device->handle, "_BIX", NULL, &buffer);) set_bit(ACPI_BATTERY_XINFO_PRESENT, &battery->flags); result = acpi_battery_update(battery); if (result)
-- Best Regards Tianyu Lan
| |