diff options
Diffstat (limited to 'drivers/acpi/sbs.c')
| -rw-r--r-- | drivers/acpi/sbs.c | 8 | 
1 files changed, 6 insertions, 2 deletions
| diff --git a/drivers/acpi/sbs.c b/drivers/acpi/sbs.c index 295b59271189..96c5e27967f4 100644 --- a/drivers/acpi/sbs.c +++ b/drivers/acpi/sbs.c @@ -441,9 +441,13 @@ static int acpi_ac_get_present(struct acpi_sbs *sbs)  	/*  	 * The spec requires that bit 4 always be 1. If it's not set, assume -	 * that the implementation doesn't support an SBS charger +	 * that the implementation doesn't support an SBS charger. +	 * +	 * And on some MacBooks a status of 0xffff is always returned, no +	 * matter whether the charger is plugged in or not, which is also +	 * wrong, so ignore the SBS charger for those too.  	 */ -	if (!((status >> 4) & 0x1)) +	if (!((status >> 4) & 0x1) || status == 0xffff)  		return -ENODEV;  	sbs->charger_present = (status >> 15) & 0x1; |