X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=drivers%2Facpi%2Fsbshc.c;h=a4e3767b8c64241c6bd1c11010f0c2001fd7e7c1;hb=f4d2a6c2096b764decb20070b1bf4356de9144a8;hp=bcf2c70fca87f498b9a3c5af5e0037248c488b37;hpb=78514c106b90b628a90c630a3bc87a6538aed865;p=linux-2.6-omap-h63xx.git diff --git a/drivers/acpi/sbshc.c b/drivers/acpi/sbshc.c index bcf2c70fca8..a4e3767b8c6 100644 --- a/drivers/acpi/sbshc.c +++ b/drivers/acpi/sbshc.c @@ -107,6 +107,13 @@ static int wait_transaction_complete(struct acpi_smb_hc *hc, int timeout) if (wait_event_timeout(hc->wait, smb_check_done(hc), msecs_to_jiffies(timeout))) return 0; + /* + * After the timeout happens, OS will try to check the status of SMbus. + * If the status is what OS expected, it will be regarded as the bogus + * timeout. + */ + if (smb_check_done(hc)) + return 0; else return -ETIME; }