From: Alan Cox Add the suspend/resume callbacks for drivers which don't need any additional help (beyond the pci resume quirk patch I posted earlier anyway). Also bring version numbers back inline with master copies. Signed-off-by: Alan Cox Cc: Jeff Garzik Signed-off-by: Andrew Morton --- drivers/ata/ata_generic.c | 8 ++++++-- drivers/ata/pata_atiixp.c | 8 ++++++-- drivers/ata/pata_cs5535.c | 6 +++++- drivers/ata/pata_cypress.c | 8 ++++++-- drivers/ata/pata_efar.c | 6 +++++- drivers/ata/pata_marvell.c | 6 +++++- drivers/ata/pata_mpiix.c | 8 ++++++-- drivers/ata/pata_netcell.c | 6 +++++- drivers/ata/pata_ns87410.c | 8 ++++++-- drivers/ata/pata_oldpiix.c | 4 ++++ drivers/ata/pata_opti.c | 33 ++++++--------------------------- drivers/ata/pata_optidma.c | 8 ++++++-- drivers/ata/pata_radisys.c | 4 ++++ drivers/ata/pata_sc1200.c | 8 ++++++-- drivers/ata/pata_triflex.c | 8 ++++++-- 15 files changed, 82 insertions(+), 47 deletions(-) diff -puN drivers/ata/ata_generic.c~pata-libata-suspend-resume-simple-cases drivers/ata/ata_generic.c --- a/drivers/ata/ata_generic.c~pata-libata-suspend-resume-simple-cases +++ a/drivers/ata/ata_generic.c @@ -26,7 +26,7 @@ #include #define DRV_NAME "ata_generic" -#define DRV_VERSION "0.2.7" +#define DRV_VERSION "0.2.10" /* * A generic parallel ATA driver using libata @@ -117,6 +117,8 @@ static struct scsi_host_template generic .dma_boundary = ATA_DMA_BOUNDARY, .slave_configure = ata_scsi_slave_config, .bios_param = ata_std_bios_param, + .resume = ata_scsi_device_resume, + .suspend = ata_scsi_device_suspend, }; static struct ata_port_operations generic_port_ops = { @@ -225,7 +227,9 @@ static struct pci_driver ata_generic_pci .name = DRV_NAME, .id_table = ata_generic, .probe = ata_generic_init_one, - .remove = ata_pci_remove_one + .remove = ata_pci_remove_one, + .suspend = ata_pci_device_suspend, + .resume = ata_pci_device_resume, }; static int __init ata_generic_init(void) diff -puN drivers/ata/pata_atiixp.c~pata-libata-suspend-resume-simple-cases drivers/ata/pata_atiixp.c --- a/drivers/ata/pata_atiixp.c~pata-libata-suspend-resume-simple-cases +++ a/drivers/ata/pata_atiixp.c @@ -22,7 +22,7 @@ #include #define DRV_NAME "pata_atiixp" -#define DRV_VERSION "0.4.3" +#define DRV_VERSION "0.4.4" enum { ATIIXP_IDE_PIO_TIMING = 0x40, @@ -217,6 +217,8 @@ static struct scsi_host_template atiixp_ .dma_boundary = ATA_DMA_BOUNDARY, .slave_configure = ata_scsi_slave_config, .bios_param = ata_std_bios_param, + .resume = ata_scsi_device_resume, + .suspend = ata_scsi_device_suspend, }; static struct ata_port_operations atiixp_port_ops = { @@ -280,7 +282,9 @@ static struct pci_driver atiixp_pci_driv .name = DRV_NAME, .id_table = atiixp, .probe = atiixp_init_one, - .remove = ata_pci_remove_one + .remove = ata_pci_remove_one, + .resume = ata_pci_device_resume, + .suspend = ata_pci_device_suspend, }; static int __init atiixp_init(void) diff -puN drivers/ata/pata_cs5535.c~pata-libata-suspend-resume-simple-cases drivers/ata/pata_cs5535.c --- a/drivers/ata/pata_cs5535.c~pata-libata-suspend-resume-simple-cases +++ a/drivers/ata/pata_cs5535.c @@ -39,7 +39,7 @@ #include #define DRV_NAME "cs5535" -#define DRV_VERSION "0.2.10" +#define DRV_VERSION "0.2.11" /* * The Geode (Aka Athlon GX now) uses an internal MSR based @@ -185,6 +185,8 @@ static struct scsi_host_template cs5535_ .dma_boundary = ATA_DMA_BOUNDARY, .slave_configure = ata_scsi_slave_config, .bios_param = ata_std_bios_param, + .resume = ata_scsi_device_resume, + .suspend = ata_scsi_device_suspend, }; static struct ata_port_operations cs5535_port_ops = { @@ -268,6 +270,8 @@ static struct pci_driver cs5535_pci_driv .id_table = cs5535, .probe = cs5535_init_one, .remove = ata_pci_remove_one + .suspend = ata_pci_device_suspend, + .resume = ata_pci_device_resume, }; static int __init cs5535_init(void) diff -puN drivers/ata/pata_cypress.c~pata-libata-suspend-resume-simple-cases drivers/ata/pata_cypress.c --- a/drivers/ata/pata_cypress.c~pata-libata-suspend-resume-simple-cases +++ a/drivers/ata/pata_cypress.c @@ -18,7 +18,7 @@ #include #define DRV_NAME "pata_cypress" -#define DRV_VERSION "0.1.2" +#define DRV_VERSION "0.1.4" /* here are the offset definitions for the registers */ @@ -136,6 +136,8 @@ static struct scsi_host_template cy82c69 .dma_boundary = ATA_DMA_BOUNDARY, .slave_configure = ata_scsi_slave_config, .bios_param = ata_std_bios_param, + .resume = ata_scsi_device_resume, + .suspend = ata_scsi_device_suspend, }; static struct ata_port_operations cy82c693_port_ops = { @@ -203,7 +205,9 @@ static struct pci_driver cy82c693_pci_dr .name = DRV_NAME, .id_table = cy82c693, .probe = cy82c693_init_one, - .remove = ata_pci_remove_one + .remove = ata_pci_remove_one, + .suspend = ata_pci_device_suspend, + .resume = ata_pci_device_resume, }; static int __init cy82c693_init(void) diff -puN drivers/ata/pata_efar.c~pata-libata-suspend-resume-simple-cases drivers/ata/pata_efar.c --- a/drivers/ata/pata_efar.c~pata-libata-suspend-resume-simple-cases +++ a/drivers/ata/pata_efar.c @@ -22,7 +22,7 @@ #include #define DRV_NAME "pata_efar" -#define DRV_VERSION "0.4.2" +#define DRV_VERSION "0.4.3" /** * efar_pre_reset - check for 40/80 pin @@ -234,6 +234,8 @@ static struct scsi_host_template efar_sh .dma_boundary = ATA_DMA_BOUNDARY, .slave_configure = ata_scsi_slave_config, .bios_param = ata_std_bios_param, + .resume = ata_scsi_device_resume, + .suspend = ata_scsi_device_suspend, }; static const struct ata_port_operations efar_ops = { @@ -315,6 +317,8 @@ static struct pci_driver efar_pci_driver .id_table = efar_pci_tbl, .probe = efar_init_one, .remove = ata_pci_remove_one, + .suspend = ata_pci_device_suspend, + .resume = ata_pci_device_resume, }; static int __init efar_init(void) diff -puN drivers/ata/pata_marvell.c~pata-libata-suspend-resume-simple-cases drivers/ata/pata_marvell.c --- a/drivers/ata/pata_marvell.c~pata-libata-suspend-resume-simple-cases +++ a/drivers/ata/pata_marvell.c @@ -20,7 +20,7 @@ #include #define DRV_NAME "pata_marvell" -#define DRV_VERSION "0.0.5u" +#define DRV_VERSION "0.1.1" /** * marvell_pre_reset - check for 40/80 pin @@ -103,6 +103,8 @@ static struct scsi_host_template marvell .slave_configure = ata_scsi_slave_config, /* Use standard CHS mapping rules */ .bios_param = ata_std_bios_param, + .resume = ata_scsi_device_resume, + .suspend = ata_scsi_device_suspend, }; static const struct ata_port_operations marvell_ops = { @@ -197,6 +199,8 @@ static struct pci_driver marvell_pci_dri .id_table = marvell_pci_tbl, .probe = marvell_init_one, .remove = ata_pci_remove_one, + .suspend = ata_pci_device_suspend, + .resume = ata_pci_device_resume, }; static int __init marvell_init(void) diff -puN drivers/ata/pata_mpiix.c~pata-libata-suspend-resume-simple-cases drivers/ata/pata_mpiix.c --- a/drivers/ata/pata_mpiix.c~pata-libata-suspend-resume-simple-cases +++ a/drivers/ata/pata_mpiix.c @@ -35,7 +35,7 @@ #include #define DRV_NAME "pata_mpiix" -#define DRV_VERSION "0.7.2" +#define DRV_VERSION "0.7.3" enum { IDETIM = 0x6C, /* IDE control register */ @@ -167,6 +167,8 @@ static struct scsi_host_template mpiix_s .dma_boundary = ATA_DMA_BOUNDARY, .slave_configure = ata_scsi_slave_config, .bios_param = ata_std_bios_param, + .resume = ata_scsi_device_resume, + .suspend = ata_scsi_device_suspend, }; static struct ata_port_operations mpiix_port_ops = { @@ -284,7 +286,9 @@ static struct pci_driver mpiix_pci_drive .name = DRV_NAME, .id_table = mpiix, .probe = mpiix_init_one, - .remove = mpiix_remove_one + .remove = mpiix_remove_one, + .suspend = ata_pci_device_suspend, + .resume = ata_pci_device_resume, }; static int __init mpiix_init(void) diff -puN drivers/ata/pata_netcell.c~pata-libata-suspend-resume-simple-cases drivers/ata/pata_netcell.c --- a/drivers/ata/pata_netcell.c~pata-libata-suspend-resume-simple-cases +++ a/drivers/ata/pata_netcell.c @@ -16,7 +16,7 @@ #include #define DRV_NAME "pata_netcell" -#define DRV_VERSION "0.1.5" +#define DRV_VERSION "0.1.6" /** * netcell_probe_init - check for 40/80 pin @@ -64,6 +64,8 @@ static struct scsi_host_template netcell .slave_configure = ata_scsi_slave_config, /* Use standard CHS mapping rules */ .bios_param = ata_std_bios_param, + .resume = ata_scsi_device_resume, + .suspend = ata_scsi_device_suspend, }; static const struct ata_port_operations netcell_ops = { @@ -152,6 +154,8 @@ static struct pci_driver netcell_pci_dri .id_table = netcell_pci_tbl, .probe = netcell_init_one, .remove = ata_pci_remove_one, + .suspend = ata_pci_device_suspend, + .resume = ata_pci_device_resume, }; static int __init netcell_init(void) diff -puN drivers/ata/pata_ns87410.c~pata-libata-suspend-resume-simple-cases drivers/ata/pata_ns87410.c --- a/drivers/ata/pata_ns87410.c~pata-libata-suspend-resume-simple-cases +++ a/drivers/ata/pata_ns87410.c @@ -28,7 +28,7 @@ #include #define DRV_NAME "pata_ns87410" -#define DRV_VERSION "0.4.2" +#define DRV_VERSION "0.4.3" /** * ns87410_pre_reset - probe begin @@ -157,6 +157,8 @@ static struct scsi_host_template ns87410 .dma_boundary = ATA_DMA_BOUNDARY, .slave_configure = ata_scsi_slave_config, .bios_param = ata_std_bios_param, + .resume = ata_scsi_device_resume, + .suspend = ata_scsi_device_suspend, }; static struct ata_port_operations ns87410_port_ops = { @@ -209,7 +211,9 @@ static struct pci_driver ns87410_pci_dri .name = DRV_NAME, .id_table = ns87410, .probe = ns87410_init_one, - .remove = ata_pci_remove_one + .remove = ata_pci_remove_one, + .suspend = ata_pci_device_suspend, + .resume = ata_pci_device_resume, }; static int __init ns87410_init(void) diff -puN drivers/ata/pata_oldpiix.c~pata-libata-suspend-resume-simple-cases drivers/ata/pata_oldpiix.c --- a/drivers/ata/pata_oldpiix.c~pata-libata-suspend-resume-simple-cases +++ a/drivers/ata/pata_oldpiix.c @@ -232,6 +232,8 @@ static struct scsi_host_template oldpiix .dma_boundary = ATA_DMA_BOUNDARY, .slave_configure = ata_scsi_slave_config, .bios_param = ata_std_bios_param, + .resume = ata_scsi_device_resume, + .suspend = ata_scsi_device_suspend, }; static const struct ata_port_operations oldpiix_pata_ops = { @@ -313,6 +315,8 @@ static struct pci_driver oldpiix_pci_dri .id_table = oldpiix_pci_tbl, .probe = oldpiix_init_one, .remove = ata_pci_remove_one, + .suspend = ata_pci_device_suspend, + .resume = ata_pci_device_resume, }; static int __init oldpiix_init(void) diff -puN drivers/ata/pata_opti.c~pata-libata-suspend-resume-simple-cases drivers/ata/pata_opti.c --- a/drivers/ata/pata_opti.c~pata-libata-suspend-resume-simple-cases +++ a/drivers/ata/pata_opti.c @@ -34,7 +34,7 @@ #include #define DRV_NAME "pata_opti" -#define DRV_VERSION "0.2.5" +#define DRV_VERSION "0.2.7" enum { READ_REG = 0, /* index of Read cycle timing register */ @@ -109,30 +109,6 @@ static void opti_write_reg(struct ata_po outb(0x83, regio + 2); } -#if 0 -/** - * opti_read_reg - control register read - * @ap: ATA port - * @reg: control register number - * - * The Opti uses magic 'trapdoor' register accesses to do configuration - * rather than using PCI space as other controllers do. The double inw - * on the error register activates configuration mode. We can then read - * the control register - */ - -static u8 opti_read_reg(struct ata_port *ap, int reg) -{ - unsigned long regio = ap->ioaddr.cmd_addr; - u8 ret; - inw(regio + 1); - inw(regio + 1); - outb(3, regio + 2); - ret = inb(regio + reg); - outb(0x83, regio + 2); -} -#endif - /** * opti_set_piomode - set initial PIO mode data * @ap: ATA interface @@ -203,12 +179,13 @@ static struct scsi_host_template opti_sh .dma_boundary = ATA_DMA_BOUNDARY, .slave_configure = ata_scsi_slave_config, .bios_param = ata_std_bios_param, + .resume = ata_scsi_device_resume, + .suspend = ata_scsi_device_suspend, }; static struct ata_port_operations opti_port_ops = { .port_disable = ata_port_disable, .set_piomode = opti_set_piomode, -/* .set_dmamode = opti_set_dmamode, */ .tf_load = ata_tf_load, .tf_read = ata_tf_read, .check_status = ata_check_status, @@ -266,7 +243,9 @@ static struct pci_driver opti_pci_driver .name = DRV_NAME, .id_table = opti, .probe = opti_init_one, - .remove = ata_pci_remove_one + .remove = ata_pci_remove_one, + .suspend = ata_pci_device_suspend, + .resume = ata_pci_device_resume, }; static int __init opti_init(void) diff -puN drivers/ata/pata_optidma.c~pata-libata-suspend-resume-simple-cases drivers/ata/pata_optidma.c --- a/drivers/ata/pata_optidma.c~pata-libata-suspend-resume-simple-cases +++ a/drivers/ata/pata_optidma.c @@ -33,7 +33,7 @@ #include #define DRV_NAME "pata_optidma" -#define DRV_VERSION "0.2.2" +#define DRV_VERSION "0.2.3" enum { READ_REG = 0, /* index of Read cycle timing register */ @@ -360,6 +360,8 @@ static struct scsi_host_template optidma .dma_boundary = ATA_DMA_BOUNDARY, .slave_configure = ata_scsi_slave_config, .bios_param = ata_std_bios_param, + .resume = ata_scsi_device_resume, + .suspend = ata_scsi_device_suspend, }; static struct ata_port_operations optidma_port_ops = { @@ -521,7 +523,9 @@ static struct pci_driver optidma_pci_dri .name = DRV_NAME, .id_table = optidma, .probe = optidma_init_one, - .remove = ata_pci_remove_one + .remove = ata_pci_remove_one, + .suspend = ata_pci_device_suspend, + .resume = ata_pci_device_resume, }; static int __init optidma_init(void) diff -puN drivers/ata/pata_radisys.c~pata-libata-suspend-resume-simple-cases drivers/ata/pata_radisys.c --- a/drivers/ata/pata_radisys.c~pata-libata-suspend-resume-simple-cases +++ a/drivers/ata/pata_radisys.c @@ -228,6 +228,8 @@ static struct scsi_host_template radisys .dma_boundary = ATA_DMA_BOUNDARY, .slave_configure = ata_scsi_slave_config, .bios_param = ata_std_bios_param, + .resume = ata_scsi_device_resume, + .suspend = ata_scsi_device_suspend, }; static const struct ata_port_operations radisys_pata_ops = { @@ -310,6 +312,8 @@ static struct pci_driver radisys_pci_dri .id_table = radisys_pci_tbl, .probe = radisys_init_one, .remove = ata_pci_remove_one, + .suspend = ata_pci_device_suspend, + .resume = ata_pci_device_resume, }; static int __init radisys_init(void) diff -puN drivers/ata/pata_sc1200.c~pata-libata-suspend-resume-simple-cases drivers/ata/pata_sc1200.c --- a/drivers/ata/pata_sc1200.c~pata-libata-suspend-resume-simple-cases +++ a/drivers/ata/pata_sc1200.c @@ -40,7 +40,7 @@ #include #define DRV_NAME "sc1200" -#define DRV_VERSION "0.2.3" +#define DRV_VERSION "0.2.4" #define SC1200_REV_A 0x00 #define SC1200_REV_B1 0x01 @@ -194,6 +194,8 @@ static struct scsi_host_template sc1200_ .dma_boundary = ATA_DMA_BOUNDARY, .slave_configure = ata_scsi_slave_config, .bios_param = ata_std_bios_param, + .resume = ata_scsi_device_resume, + .suspend = ata_scsi_device_suspend, }; static struct ata_port_operations sc1200_port_ops = { @@ -263,7 +265,9 @@ static struct pci_driver sc1200_pci_driv .name = DRV_NAME, .id_table = sc1200, .probe = sc1200_init_one, - .remove = ata_pci_remove_one + .remove = ata_pci_remove_one, + .suspend = ata_pci_device_suspend, + .resume = ata_pci_device_resume, }; static int __init sc1200_init(void) diff -puN drivers/ata/pata_triflex.c~pata-libata-suspend-resume-simple-cases drivers/ata/pata_triflex.c --- a/drivers/ata/pata_triflex.c~pata-libata-suspend-resume-simple-cases +++ a/drivers/ata/pata_triflex.c @@ -43,7 +43,7 @@ #include #define DRV_NAME "pata_triflex" -#define DRV_VERSION "0.2.5" +#define DRV_VERSION "0.2.7" /** * triflex_prereset - probe begin @@ -193,6 +193,8 @@ static struct scsi_host_template triflex .dma_boundary = ATA_DMA_BOUNDARY, .slave_configure = ata_scsi_slave_config, .bios_param = ata_std_bios_param, + .resume = ata_scsi_device_resume, + .suspend = ata_scsi_device_suspend, }; static struct ata_port_operations triflex_port_ops = { @@ -257,7 +259,9 @@ static struct pci_driver triflex_pci_dri .name = DRV_NAME, .id_table = triflex, .probe = triflex_init_one, - .remove = ata_pci_remove_one + .remove = ata_pci_remove_one, + .suspend = ata_pci_device_suspend, + .resume = ata_pci_device_resume, }; static int __init triflex_init(void) _