Patch 6/9: Since now the polling code path uses freeze()/thaw() regardless of old EH or new EH. Add freeze()/thaw() to old EH LLDDs for use by the polling code. Signed-off-by: Albert Lee <albertcc@xxxxxxxxxx> --- diff -Nrup 05_convert_hsm_to_freeze/drivers/ata/pata_ixp4xx_cf.c 06_add_freeze_thaw_to_lldd/drivers/ata/pata_ixp4xx_cf.c --- 05_convert_hsm_to_freeze/drivers/ata/pata_ixp4xx_cf.c 2007-06-11 17:09:16.000000000 +0800 +++ 06_add_freeze_thaw_to_lldd/drivers/ata/pata_ixp4xx_cf.c 2007-06-12 14:38:03.000000000 +0800 @@ -131,6 +131,9 @@ static struct ata_port_operations ixp4xx .data_xfer = ixp4xx_mmio_data_xfer, .cable_detect = ata_cable_40wire, + .freeze = ata_bmdma_freeze, + .thaw = ata_bmdma_thaw, + .irq_clear = ixp4xx_irq_clear, .irq_on = ata_irq_on, .irq_off = ata_irq_off, diff -Nrup 05_convert_hsm_to_freeze/drivers/ata/pata_scc.c 06_add_freeze_thaw_to_lldd/drivers/ata/pata_scc.c --- 05_convert_hsm_to_freeze/drivers/ata/pata_scc.c 2007-06-12 14:58:06.000000000 +0800 +++ 06_add_freeze_thaw_to_lldd/drivers/ata/pata_scc.c 2007-06-12 14:58:15.000000000 +0800 @@ -879,6 +879,18 @@ static void scc_bmdma_freeze (struct ata } /** + * scc_bmdma_thaw - Thaw BMDMA controller port + * @ap: port to thaw + * + * Note: Original code is ata_bmdma_thaw(). + */ + +static void scc_bmdma_thaw (struct ata_port *ap) +{ + scc_irq_on(ap); +} + +/** * scc_pata_prereset - prepare for reset * @ap: ATA port to be reset * @deadline: deadline jiffies for the operation @@ -1025,6 +1037,7 @@ static const struct ata_port_operations .qc_issue = ata_qc_issue_prot, .freeze = scc_bmdma_freeze, + .thaw = scc_bmdma_thaw, .error_handler = scc_error_handler, .post_internal_cmd = scc_bmdma_stop, diff -Nrup 05_convert_hsm_to_freeze/drivers/ata/pdc_adma.c 06_add_freeze_thaw_to_lldd/drivers/ata/pdc_adma.c --- 05_convert_hsm_to_freeze/drivers/ata/pdc_adma.c 2007-06-11 17:21:35.000000000 +0800 +++ 06_add_freeze_thaw_to_lldd/drivers/ata/pdc_adma.c 2007-06-12 14:45:21.000000000 +0800 @@ -171,6 +171,8 @@ static const struct ata_port_operations .qc_issue = adma_qc_issue, .eng_timeout = adma_eng_timeout, .data_xfer = ata_data_xfer, + .freeze = ata_bmdma_freeze, + .thaw = ata_bmdma_thaw, .irq_clear = adma_irq_clear, .irq_on = ata_irq_on, .irq_off = ata_irq_off, diff -Nrup 05_convert_hsm_to_freeze/drivers/ata/sata_mv.c 06_add_freeze_thaw_to_lldd/drivers/ata/sata_mv.c --- 05_convert_hsm_to_freeze/drivers/ata/sata_mv.c 2007-06-11 17:22:29.000000000 +0800 +++ 06_add_freeze_thaw_to_lldd/drivers/ata/sata_mv.c 2007-06-12 14:46:22.000000000 +0800 @@ -453,6 +453,9 @@ static const struct ata_port_operations .eng_timeout = mv_eng_timeout, + .freeze = ata_bmdma_freeze, + .thaw = ata_bmdma_thaw, + .irq_clear = mv_irq_clear, .irq_on = ata_irq_on, .irq_off = ata_irq_off, @@ -483,6 +486,9 @@ static const struct ata_port_operations .eng_timeout = mv_eng_timeout, + .freeze = ata_bmdma_freeze, + .thaw = ata_bmdma_thaw, + .irq_clear = mv_irq_clear, .irq_on = ata_irq_on, .irq_off = ata_irq_off, @@ -513,6 +519,9 @@ static const struct ata_port_operations .eng_timeout = mv_eng_timeout, + .freeze = ata_bmdma_freeze, + .thaw = ata_bmdma_thaw, + .irq_clear = mv_irq_clear, .irq_on = ata_irq_on, .irq_off = ata_irq_off, diff -Nrup 05_convert_hsm_to_freeze/drivers/ata/sata_qstor.c 06_add_freeze_thaw_to_lldd/drivers/ata/sata_qstor.c --- 05_convert_hsm_to_freeze/drivers/ata/sata_qstor.c 2007-06-11 17:24:00.000000000 +0800 +++ 06_add_freeze_thaw_to_lldd/drivers/ata/sata_qstor.c 2007-06-12 14:46:48.000000000 +0800 @@ -157,6 +157,8 @@ static const struct ata_port_operations .qc_issue = qs_qc_issue, .data_xfer = ata_data_xfer, .eng_timeout = qs_eng_timeout, + .freeze = ata_bmdma_freeze, + .thaw = ata_bmdma_thaw, .irq_clear = qs_irq_clear, .irq_on = ata_irq_on, .irq_off = ata_irq_off, diff -Nrup 05_convert_hsm_to_freeze/drivers/ata/sata_sx4.c 06_add_freeze_thaw_to_lldd/drivers/ata/sata_sx4.c --- 05_convert_hsm_to_freeze/drivers/ata/sata_sx4.c 2007-06-11 17:25:03.000000000 +0800 +++ 06_add_freeze_thaw_to_lldd/drivers/ata/sata_sx4.c 2007-06-12 14:47:01.000000000 +0800 @@ -203,6 +203,8 @@ static const struct ata_port_operations .qc_issue = pdc20621_qc_issue_prot, .data_xfer = ata_data_xfer, .eng_timeout = pdc_eng_timeout, + .freeze = ata_bmdma_freeze, + .thaw = ata_bmdma_thaw, .irq_clear = pdc20621_irq_clear, .irq_on = ata_irq_on, .irq_off = ata_irq_off, - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html