http://bugzilla.kernel.org/show_bug.cgi?id=12011
Summary: battery info sometimes not available - bug already
solved (9823) is back again in 2.6.27.5
Product: ACPI
Version: 2.5
KernelVersion: 2.6.27.5
Platform: All
OS/Version: Linux
Tree: Mainline
Status: NEW
Severity: high
Priority: P1
Component: Power-Battery
AssignedTo: [EMAIL PROTECTED]
ReportedBy: [EMAIL PROTECTED]
CC: [EMAIL PROTECTED], [EMAIL PROTECTED],
[EMAIL PROTECTED]
Latest working kernel version: 2.6.27.4
Earliest failing kernel version:
Distribution: not related as it is already in
http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.5.tar.bz2
Hardware Environment: MSI GX700, EX600 laptops, maybe others from MSI
Software Environment:
Problem Description: battery again is not visible by acpi
Steps to reproduce: install newest kernel 2.6.27.5 and problem is back again
I checked what you have done in patch for 2.6.26 (patch:
http://bugzilla.kernel.org/show_bug.cgi?id=9823#c53
http://bugzilla.kernel.org/attachment.cgi?id=17174&action=view ) and it was
working ok as patch for 2.6.26 as well as early 2.6.27 kernels
but since 2.6.27.5 this DISAPPEARED from ec.c !!!
it was:
static int acpi_ec_wait(struct acpi_ec *ec, enum ec_event event, int
force_poll)
{
atomic_set(&ec->irq_count, 0);
if (likely(test_bit(EC_FLAGS_GPE_MODE, &ec->flags)) &&
likely(!force_poll)) {
if (wait_event_timeout(ec->wait, acpi_ec_check_status(ec,
event),
msecs_to_jiffies(ACPI_EC_DELAY)))
return 0;
clear_bit(EC_FLAGS_WAIT_GPE, &ec->flags);
if (acpi_ec_check_status(ec, event)) {
/* missing GPEs, switch back to poll mode */
if (printk_ratelimit())
pr_info(PREFIX "missing confirmations, "
"switch off interrupt
mode.\n");
ec_switch_to_poll_mode(ec);
ec_schedule_ec_poll(ec);
return 0;
}
} else {
unsigned long delay = jiffies +
msecs_to_jiffies(ACPI_EC_DELAY);
clear_bit(EC_FLAGS_WAIT_GPE, &ec->flags);
while (time_before(jiffies, delay)) {
if (acpi_ec_check_status(ec, event))
return 0;
msleep(1);
}
if (acpi_ec_check_status(ec,event))
return 0;
}
pr_err(PREFIX "acpi_ec_wait timeout, status = 0x%2.2x, event = %s\n",
acpi_ec_read_status(ec),
(event == ACPI_EC_EVENT_OBF_1) ? "\"b0=1\"" : "\"b1=0\"");
return -ETIME;
}
now it is:
static int acpi_ec_wait(struct acpi_ec *ec)
{
if (wait_event_timeout(ec->wait, ec_transaction_done(ec),
msecs_to_jiffies(ACPI_EC_DELAY)))
return 0;
/* missing GPEs, switch back to poll mode */
if (printk_ratelimit())
pr_info(PREFIX "missing confirmations, "
"switch off interrupt mode.\n");
set_bit(EC_FLAGS_NO_GPE, &ec->flags);
clear_bit(EC_FLAGS_GPE_MODE, &ec->flags);
return 1;
}
I'm not developer, but it BREAKS my acpi events:
2.6.27.5:
cat /proc/acpi/battery/BAT1/info
present: no
while with 2.6.27.4:
cat /proc/acpi/battery/BAT1/info
present: yes
design capacity: 4400 mAh
last full capacity: 3201 mAh
battery technology: rechargeable
design voltage: 10800 mV
design capacity warning: 0 mAh
design capacity low: 0 mAh
capacity granularity 1: 1 mAh
capacity granularity 2: 1 mAh
model number: MS-1719
serial number:
battery type: LION
OEM info: MSI Corp.
shit, I was waiting almost 1 year to see my battery properly working under
Linux and few days ago problem came back ;-(
--
Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
acpi-bugzilla mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla