lkml.org 
[lkml]   [2010]   [Mar]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[149/156] ahci: use BIOS date in broken_suspend list
    2.6.33-stable review patch.  If anyone has any objections, please let us know.

    ------------------

    From: Tejun Heo <tj@kernel.org>

    commit 9deb343189b3cf45e84dd08480f330575ffe2004 upstream.

    HP is recycling both DMI_PRODUCT_NAME and DMI_BIOS_VERSION making
    ahci_broken_suspend() trigger for later products which are not
    affected by the original problems. Match BIOS date instead of version
    and add references to bko's so that full information can be found
    easier later.

    This fixes http://bugzilla.kernel.org/show_bug.cgi?id=15462

    Signed-off-by: Tejun Heo <tj@kernel.org>
    Reported-by: tigerfishdaisy@gmail.com
    Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    drivers/ata/ahci.c | 28 ++++++++++++++++++++--------
    1 file changed, 20 insertions(+), 8 deletions(-)

    --- a/drivers/ata/ahci.c
    +++ b/drivers/ata/ahci.c
    @@ -2831,6 +2831,14 @@ static bool ahci_broken_suspend(struct p
    * On HP dv[4-6] and HDX18 with earlier BIOSen, link
    * to the harddisk doesn't become online after
    * resuming from STR. Warn and fail suspend.
    + *
    + * http://bugzilla.kernel.org/show_bug.cgi?id=12276
    + *
    + * Use dates instead of versions to match as HP is
    + * apparently recycling both product and version
    + * strings.
    + *
    + * http://bugzilla.kernel.org/show_bug.cgi?id=15462
    */
    {
    .ident = "dv4",
    @@ -2839,7 +2847,7 @@ static bool ahci_broken_suspend(struct p
    DMI_MATCH(DMI_PRODUCT_NAME,
    "HP Pavilion dv4 Notebook PC"),
    },
    - .driver_data = "F.30", /* cutoff BIOS version */
    + .driver_data = "20090105", /* F.30 */
    },
    {
    .ident = "dv5",
    @@ -2848,7 +2856,7 @@ static bool ahci_broken_suspend(struct p
    DMI_MATCH(DMI_PRODUCT_NAME,
    "HP Pavilion dv5 Notebook PC"),
    },
    - .driver_data = "F.16", /* cutoff BIOS version */
    + .driver_data = "20090506", /* F.16 */
    },
    {
    .ident = "dv6",
    @@ -2857,7 +2865,7 @@ static bool ahci_broken_suspend(struct p
    DMI_MATCH(DMI_PRODUCT_NAME,
    "HP Pavilion dv6 Notebook PC"),
    },
    - .driver_data = "F.21", /* cutoff BIOS version */
    + .driver_data = "20090423", /* F.21 */
    },
    {
    .ident = "HDX18",
    @@ -2866,7 +2874,7 @@ static bool ahci_broken_suspend(struct p
    DMI_MATCH(DMI_PRODUCT_NAME,
    "HP HDX18 Notebook PC"),
    },
    - .driver_data = "F.23", /* cutoff BIOS version */
    + .driver_data = "20090430", /* F.23 */
    },
    /*
    * Acer eMachines G725 has the same problem. BIOS
    @@ -2874,6 +2882,8 @@ static bool ahci_broken_suspend(struct p
    * work. Inbetween, there are V1.06, V2.06 and V3.03
    * that we don't have much idea about. For now,
    * blacklist anything older than V3.04.
    + *
    + * http://bugzilla.kernel.org/show_bug.cgi?id=15104
    */
    {
    .ident = "G725",
    @@ -2881,19 +2891,21 @@ static bool ahci_broken_suspend(struct p
    DMI_MATCH(DMI_SYS_VENDOR, "eMachines"),
    DMI_MATCH(DMI_PRODUCT_NAME, "eMachines G725"),
    },
    - .driver_data = "V3.04", /* cutoff BIOS version */
    + .driver_data = "20091216", /* V3.04 */
    },
    { } /* terminate list */
    };
    const struct dmi_system_id *dmi = dmi_first_match(sysids);
    - const char *ver;
    + int year, month, date;
    + char buf[9];

    if (!dmi || pdev->bus->number || pdev->devfn != PCI_DEVFN(0x1f, 2))
    return false;

    - ver = dmi_get_system_info(DMI_BIOS_VERSION);
    + dmi_get_date(DMI_BIOS_DATE, &year, &month, &date);
    + snprintf(buf, sizeof(buf), "%04d%02d%02d", year, month, date);

    - return !ver || strcmp(ver, dmi->driver_data) < 0;
    + return strcmp(buf, dmi->driver_data) < 0;
    }

    static bool ahci_broken_online(struct pci_dev *pdev)



    \
     
     \ /
      Last update: 2010-03-31 01:29    [W:3.962 / U:0.116 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site