ata_piix: add borked Tecra M4 to broken suspend list

Tecra M4 sometimes forget what it is and reports bogus data via DMI
which makes the machine evade broken suspend matching and thus fail
suspend/resume. This patch updates piix_broken_suspend() such that it
can match such case. As the borked DMI data is a bit generic,
matching many entries to make the match more specific is necessary.
As the usual DMI matching is limited to four entries, this patch uses
hard coded manual matching.

This is reported by Alexandru Romanescu.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Alexandru Romanescu <a_romanescu@yahoo.co.uk>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>

authored by Tejun Heo and committed by Jeff Garzik 1eedb4a9 d9d060a9

+15
+15
drivers/ata/ata_piix.c
··· 1066 1066 if (dmi_find_device(DMI_DEV_TYPE_OEM_STRING, oemstrs[i], NULL)) 1067 1067 return 1; 1068 1068 1069 + /* TECRA M4 sometimes forgets its identify and reports bogus 1070 + * DMI information. As the bogus information is a bit 1071 + * generic, match as many entries as possible. This manual 1072 + * matching is necessary because dmi_system_id.matches is 1073 + * limited to four entries. 1074 + */ 1075 + if (!strcmp(dmi_get_system_info(DMI_SYS_VENDOR), "TOSHIBA") && 1076 + !strcmp(dmi_get_system_info(DMI_PRODUCT_NAME), "000000") && 1077 + !strcmp(dmi_get_system_info(DMI_PRODUCT_VERSION), "000000") && 1078 + !strcmp(dmi_get_system_info(DMI_PRODUCT_SERIAL), "000000") && 1079 + !strcmp(dmi_get_system_info(DMI_BOARD_VENDOR), "TOSHIBA") && 1080 + !strcmp(dmi_get_system_info(DMI_BOARD_NAME), "Portable PC") && 1081 + !strcmp(dmi_get_system_info(DMI_BOARD_VERSION), "Version A0")) 1082 + return 1; 1083 + 1069 1084 return 0; 1070 1085 } 1071 1086