Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8c3832eb authored by Tejun Heo's avatar Tejun Heo Committed by Jeff Garzik
Browse files

ata_piix: implement piix_borken_suspend()



Separate out broken suspend blacklist matching into
piix_broken_suspend().

Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent 0b62e13b
Loading
Loading
Loading
Loading
+30 −30
Original line number Diff line number Diff line
@@ -890,7 +890,9 @@ static void ich_set_dmamode (struct ata_port *ap, struct ata_device *adev)
}

#ifdef CONFIG_PM
static struct dmi_system_id piix_broken_suspend_dmi_table[] = {
static int piix_broken_suspend(void)
{
	static struct dmi_system_id sysids[] = {
		{
			.ident = "TECRA M5",
			.matches = {
@@ -898,13 +900,6 @@ static struct dmi_system_id piix_broken_suspend_dmi_table[] = {
				DMI_MATCH(DMI_PRODUCT_NAME, "TECRA M5"),
			},
		},
	{
		.ident = "Satellite U200",
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
			DMI_MATCH(DMI_PRODUCT_NAME, "Satellite U200"),
		},
	},
		{
			.ident = "Satellite U205",
			.matches = {
@@ -922,6 +917,12 @@ static struct dmi_system_id piix_broken_suspend_dmi_table[] = {
		{ }
	};

	if (dmi_check_system(sysids))
		return 1;

	return 0;
}

static int piix_pci_device_suspend(struct pci_dev *pdev, pm_message_t mesg)
{
	struct ata_host *host = dev_get_drvdata(&pdev->dev);
@@ -937,8 +938,7 @@ static int piix_pci_device_suspend(struct pci_dev *pdev, pm_message_t mesg)
	 * cycles and power trying to do something to the sleeping
	 * beauty.
	 */
	if (dmi_check_system(piix_broken_suspend_dmi_table) &&
	    mesg.event == PM_EVENT_SUSPEND) {
	if (piix_broken_suspend() && mesg.event == PM_EVENT_SUSPEND) {
		pci_save_state(pdev);

		/* mark its power state as "unknown", since we don't