The patch titled pata_hpt3x3: suspend/resume support has been added to the -mm tree. Its filename is pata_hpt3x3-suspend-resume-support.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: pata_hpt3x3: suspend/resume support From: Alan Cox <alan@xxxxxxxxxx> Again split the chipset init away and call it both on resume and on setup Signed-off-by: Alan Cox <alan@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- drivers/ata/pata_hpt3x3.c | 46 ++++++++++++++++++++++++++---------- 1 files changed, 34 insertions(+), 12 deletions(-) diff -puN drivers/ata/pata_hpt3x3.c~pata_hpt3x3-suspend-resume-support drivers/ata/pata_hpt3x3.c --- a/drivers/ata/pata_hpt3x3.c~pata_hpt3x3-suspend-resume-support +++ a/drivers/ata/pata_hpt3x3.c @@ -23,7 +23,7 @@ #include <linux/libata.h> #define DRV_NAME "pata_hpt3x3" -#define DRV_VERSION "0.4.1" +#define DRV_VERSION "0.4.2" static int hpt3x3_probe_init(struct ata_port *ap) { @@ -119,6 +119,8 @@ static struct scsi_host_template hpt3x3_ .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 hpt3x3_port_ops = { @@ -157,6 +159,27 @@ static struct ata_port_operations hpt3x3 }; /** + * hpt3x3_init_chipset - chip setup + * @dev: PCI device + * + * Perform the setup required at boot and on resume. + */ + +static void hpt3x3_init_chipset(struct pci_dev *dev) +{ + u16 cmd; + /* Initialize the board */ + pci_write_config_word(dev, 0x80, 0x00); + /* Check if it is a 343 or a 363. 363 has COMMAND_MEMORY set */ + pci_read_config_word(dev, PCI_COMMAND, &cmd); + if (cmd & PCI_COMMAND_MEMORY) + pci_write_config_byte(dev, PCI_LATENCY_TIMER, 0xF0); + else + pci_write_config_byte(dev, PCI_LATENCY_TIMER, 0x20); +} + + +/** * hpt3x3_init_one - Initialise an HPT343/363 * @dev: PCI device * @id: Entry in match table @@ -177,21 +200,18 @@ static int hpt3x3_init_one(struct pci_de .port_ops = &hpt3x3_port_ops }; static struct ata_port_info *port_info[2] = { &info, &info }; - u16 cmd; - - /* Initialize the board */ - pci_write_config_word(dev, 0x80, 0x00); - /* Check if it is a 343 or a 363. 363 has COMMAND_MEMORY set */ - pci_read_config_word(dev, PCI_COMMAND, &cmd); - if (cmd & PCI_COMMAND_MEMORY) - pci_write_config_byte(dev, PCI_LATENCY_TIMER, 0xF0); - else - pci_write_config_byte(dev, PCI_LATENCY_TIMER, 0x20); + hpt3x3_init_chipset(dev); /* Now kick off ATA set up */ return ata_pci_init_one(dev, port_info, 2); } +static int hpt3x3_reinit_one(struct pci_dev *dev) +{ + hpt3x3_init_chipset(dev); + return ata_pci_device_resume(dev); +} + static const struct pci_device_id hpt3x3[] = { { PCI_VDEVICE(TTI, PCI_DEVICE_ID_TTI_HPT343), }, @@ -202,7 +222,9 @@ static struct pci_driver hpt3x3_pci_driv .name = DRV_NAME, .id_table = hpt3x3, .probe = hpt3x3_init_one, - .remove = ata_pci_remove_one + .remove = ata_pci_remove_one, + .suspend = ata_pci_device_suspend, + .resume = hpt3x3_reinit_one, }; static int __init hpt3x3_init(void) _ Patches currently in -mm which might be from alan@xxxxxxxxxx are git-libata-all.patch pata_hpt366-more-enable-bits.patch pci-move-pci_vdevice-from-libata-to-core.patch pata-libata-suspend-resume-simple-cases.patch pata-libata-suspend-resume-simple-cases-fix.patch pata_cmd64x-suspend-resume.patch pata_cs5520-resume-support.patch pata_jmicron-fix-jmb368-support-add-suspend-resume.patch pata_cs5530-suspend-resume-support.patch pata_cs5530-suspend-resume-support-tweak.patch pata_rz1000-force-readahead-off-on-resume.patch pata_ali-suspend-resume-support.patch pata_sil680-suspend-resume.patch pata_sil680-suspend-resume-tidy.patch pata_it821x-suspend-resume-support.patch pata_serverworks-suspend-resume.patch pata_via-suspend-resume-support.patch pata_amd-suspend-resume.patch hpt36x-suspend-resume-support.patch pata_hpt3x3-suspend-resume-support.patch pata-more-drivers-that-need-only-standard-suspend-and.patch pata_marvell-merge-mandriva-patches.patch git-mtd.patch git-netdev-all.patch resend-iphase-64bit-cleanup.patch pci-introduce-pci_find_present.patch pci-fix-multiple-problems-with-via-hardware.patch pci-fix-multiple-problems-with-via-hardware-warning-fix.patch pci_module_init-convertion-in-tmscsimc.patch x86_64-smpboot-remove-unused-variable.patch alpha-switch-to-pci_get-api.patch ioremap-balanced-with-iounmap-for-drivers-char-rio-rio_linuxc.patch ioremap-balanced-with-iounmap-for-drivers-char-moxac.patch ioremap-balanced-with-iounmap-for-drivers-char-istallionc.patch ide-complete-switch-to-pci_get.patch remove-drivers-pci-searchcpci_find_device_reverse.patch via82cxxx-handle-error-condition-properly.patch hz-300hz-support.patch tty-signal-tty-locking.patch tty-signal-tty-locking-3270-fix.patch pci-mxser-pci-refcounts.patch tty-preparatory-structures-for-termios-revamp.patch tty-preparatory-structures-for-termios-revamp-strip-fix.patch tty-switch-to-ktermios-and-new-framework.patch tty-switch-to-ktermios-and-new-framework-warning-fix.patch tty-switch-to-ktermios-and-new-framework-irda-fix.patch tty-switch-to-ktermios.patch tty-switch-to-ktermios-nozomi-fix.patch tty-switch-to-ktermios-sclp-fix.patch tty-switch-to-ktermios-powerpc-fix.patch tty-switch-to-ktermios-uml-fix-2.patch tty_ioctl-use-termios-for-the-old-structure-and-termios2.patch tty_ioctl-use-termios-for-the-old-structure-and-termios2-fix.patch tty_ioctl-use-termios-for-the-old-structure-and-termios2-update.patch termios-enable-new-style-termios-ioctls-on-x86-64.patch char-isicom-expand-function.patch char-isicom-rename-init-function.patch char-isicom-remove-isa-code.patch char-isicom-remove-unneeded-memset.patch char-isicom-move-to-tty_register_device.patch char-isicom-use-pci_request_region.patch char-isicom-check-kmalloc-retval.patch drivers-isdn-trivial-vsnprintf-conversion.patch ide-more-conversion-to-pci_get-apis.patch igafb-switch-to-pci_get-api.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html