[PATCH] sata_sil: add suspend/sleep support

Add suspend/sleep support.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

authored by Tejun Heo and committed by Jeff Garzik afb5a7cb 3d8ec913

+17
+17
drivers/scsi/sata_sil.c
··· 109 109 }; 110 110 111 111 static int sil_init_one (struct pci_dev *pdev, const struct pci_device_id *ent); 112 + static int sil_pci_device_resume(struct pci_dev *pdev); 112 113 static void sil_dev_config(struct ata_port *ap, struct ata_device *dev); 113 114 static u32 sil_scr_read (struct ata_port *ap, unsigned int sc_reg); 114 115 static void sil_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val); ··· 161 160 .id_table = sil_pci_tbl, 162 161 .probe = sil_init_one, 163 162 .remove = ata_pci_remove_one, 163 + .suspend = ata_pci_device_suspend, 164 + .resume = sil_pci_device_resume, 164 165 }; 165 166 166 167 static struct scsi_host_template sil_sht = { ··· 181 178 .slave_configure = ata_scsi_slave_config, 182 179 .slave_destroy = ata_scsi_slave_destroy, 183 180 .bios_param = ata_std_bios_param, 181 + .suspend = ata_scsi_device_suspend, 182 + .resume = ata_scsi_device_resume, 184 183 }; 185 184 186 185 static const struct ata_port_operations sil_ops = { ··· 698 693 if (!pci_dev_busy) 699 694 pci_disable_device(pdev); 700 695 return rc; 696 + } 697 + 698 + static int sil_pci_device_resume(struct pci_dev *pdev) 699 + { 700 + struct ata_host_set *host_set = dev_get_drvdata(&pdev->dev); 701 + 702 + ata_pci_device_do_resume(pdev); 703 + sil_init_controller(pdev, host_set->n_ports, host_set->ports[0]->flags, 704 + host_set->mmio_base); 705 + ata_host_set_resume(host_set); 706 + 707 + return 0; 701 708 } 702 709 703 710 static int __init sil_init(void)