diff options
Diffstat (limited to 'drivers/ata')
-rw-r--r-- | drivers/ata/libata-core.c | 25 | ||||
-rw-r--r-- | drivers/ata/libata-sff.c | 170 | ||||
-rw-r--r-- | drivers/ata/pata_acpi.c | 4 | ||||
-rw-r--r-- | drivers/ata/pata_ali.c | 2 | ||||
-rw-r--r-- | drivers/ata/pata_at91.c | 1 | ||||
-rw-r--r-- | drivers/ata/pata_bf54x.c | 2 | ||||
-rw-r--r-- | drivers/ata/pata_cmd640.c | 6 | ||||
-rw-r--r-- | drivers/ata/pata_hpt366.c | 2 | ||||
-rw-r--r-- | drivers/ata/pata_hpt37x.c | 4 | ||||
-rw-r--r-- | drivers/ata/pata_icside.c | 2 | ||||
-rw-r--r-- | drivers/ata/pata_it821x.c | 2 | ||||
-rw-r--r-- | drivers/ata/pata_macio.c | 2 | ||||
-rw-r--r-- | drivers/ata/pata_pdc2027x.c | 4 | ||||
-rw-r--r-- | drivers/ata/pata_pdc202xx_old.c | 2 | ||||
-rw-r--r-- | drivers/ata/pata_platform.c | 1 | ||||
-rw-r--r-- | drivers/ata/pata_scc.c | 6 | ||||
-rw-r--r-- | drivers/ata/pata_serverworks.c | 6 | ||||
-rw-r--r-- | drivers/ata/pata_via.c | 4 | ||||
-rw-r--r-- | drivers/ata/pdc_adma.c | 4 | ||||
-rw-r--r-- | drivers/ata/sata_inic162x.c | 5 | ||||
-rw-r--r-- | drivers/ata/sata_mv.c | 2 | ||||
-rw-r--r-- | drivers/ata/sata_nv.c | 6 | ||||
-rw-r--r-- | drivers/ata/sata_promise.c | 3 | ||||
-rw-r--r-- | drivers/ata/sata_qstor.c | 4 | ||||
-rw-r--r-- | drivers/ata/sata_sx4.c | 5 | ||||
-rw-r--r-- | drivers/ata/sata_uli.c | 4 |
26 files changed, 113 insertions, 165 deletions
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 3d8b62f7441..cc49a0d3089 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c | |||
@@ -5506,30 +5506,6 @@ void ata_host_resume(struct ata_host *host) | |||
5506 | #endif | 5506 | #endif |
5507 | 5507 | ||
5508 | /** | 5508 | /** |
5509 | * ata_port_start - Set port up for dma. | ||
5510 | * @ap: Port to initialize | ||
5511 | * | ||
5512 | * Called just after data structures for each port are | ||
5513 | * initialized. Allocates space for PRD table. | ||
5514 | * | ||
5515 | * May be used as the port_start() entry in ata_port_operations. | ||
5516 | * | ||
5517 | * LOCKING: | ||
5518 | * Inherited from caller. | ||
5519 | */ | ||
5520 | int ata_port_start(struct ata_port *ap) | ||
5521 | { | ||
5522 | struct device *dev = ap->dev; | ||
5523 | |||
5524 | ap->prd = dmam_alloc_coherent(dev, ATA_PRD_TBL_SZ, &ap->prd_dma, | ||
5525 | GFP_KERNEL); | ||
5526 | if (!ap->prd) | ||
5527 | return -ENOMEM; | ||
5528 | |||
5529 | return 0; | ||
5530 | } | ||
5531 | |||
5532 | /** | ||
5533 | * ata_dev_init - Initialize an ata_device structure | 5509 | * ata_dev_init - Initialize an ata_device structure |
5534 | * @dev: Device structure to initialize | 5510 | * @dev: Device structure to initialize |
5535 | * | 5511 | * |
@@ -6757,7 +6733,6 @@ EXPORT_SYMBOL_GPL(ata_xfer_mode2mask); | |||
6757 | EXPORT_SYMBOL_GPL(ata_xfer_mode2shift); | 6733 | EXPORT_SYMBOL_GPL(ata_xfer_mode2shift); |
6758 | EXPORT_SYMBOL_GPL(ata_mode_string); | 6734 | EXPORT_SYMBOL_GPL(ata_mode_string); |
6759 | EXPORT_SYMBOL_GPL(ata_id_xfermask); | 6735 | EXPORT_SYMBOL_GPL(ata_id_xfermask); |
6760 | EXPORT_SYMBOL_GPL(ata_port_start); | ||
6761 | EXPORT_SYMBOL_GPL(ata_do_set_mode); | 6736 | EXPORT_SYMBOL_GPL(ata_do_set_mode); |
6762 | EXPORT_SYMBOL_GPL(ata_std_qc_defer); | 6737 | EXPORT_SYMBOL_GPL(ata_std_qc_defer); |
6763 | EXPORT_SYMBOL_GPL(ata_noop_qc_prep); | 6738 | EXPORT_SYMBOL_GPL(ata_noop_qc_prep); |
diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c index 6400e875139..f1c99a3e8b2 100644 --- a/drivers/ata/libata-sff.c +++ b/drivers/ata/libata-sff.c | |||
@@ -66,8 +66,6 @@ const struct ata_port_operations ata_sff_port_ops = { | |||
66 | .sff_irq_clear = ata_sff_irq_clear, | 66 | .sff_irq_clear = ata_sff_irq_clear, |
67 | 67 | ||
68 | .lost_interrupt = ata_sff_lost_interrupt, | 68 | .lost_interrupt = ata_sff_lost_interrupt, |
69 | |||
70 | .port_start = ata_sff_port_start, | ||
71 | }; | 69 | }; |
72 | EXPORT_SYMBOL_GPL(ata_sff_port_ops); | 70 | EXPORT_SYMBOL_GPL(ata_sff_port_ops); |
73 | 71 | ||
@@ -2444,50 +2442,6 @@ void ata_sff_post_internal_cmd(struct ata_queued_cmd *qc) | |||
2444 | EXPORT_SYMBOL_GPL(ata_sff_post_internal_cmd); | 2442 | EXPORT_SYMBOL_GPL(ata_sff_post_internal_cmd); |
2445 | 2443 | ||
2446 | /** | 2444 | /** |
2447 | * ata_sff_port_start - Set port up for dma. | ||
2448 | * @ap: Port to initialize | ||
2449 | * | ||
2450 | * Called just after data structures for each port are | ||
2451 | * initialized. Allocates space for PRD table if the device | ||
2452 | * is DMA capable SFF. | ||
2453 | * | ||
2454 | * May be used as the port_start() entry in ata_port_operations. | ||
2455 | * | ||
2456 | * LOCKING: | ||
2457 | * Inherited from caller. | ||
2458 | */ | ||
2459 | int ata_sff_port_start(struct ata_port *ap) | ||
2460 | { | ||
2461 | if (ap->ioaddr.bmdma_addr) | ||
2462 | return ata_port_start(ap); | ||
2463 | return 0; | ||
2464 | } | ||
2465 | EXPORT_SYMBOL_GPL(ata_sff_port_start); | ||
2466 | |||
2467 | /** | ||
2468 | * ata_sff_port_start32 - Set port up for dma. | ||
2469 | * @ap: Port to initialize | ||
2470 | * | ||
2471 | * Called just after data structures for each port are | ||
2472 | * initialized. Allocates space for PRD table if the device | ||
2473 | * is DMA capable SFF. | ||
2474 | * | ||
2475 | * May be used as the port_start() entry in ata_port_operations for | ||
2476 | * devices that are capable of 32bit PIO. | ||
2477 | * | ||
2478 | * LOCKING: | ||
2479 | * Inherited from caller. | ||
2480 | */ | ||
2481 | int ata_sff_port_start32(struct ata_port *ap) | ||
2482 | { | ||
2483 | ap->pflags |= ATA_PFLAG_PIO32 | ATA_PFLAG_PIO32CHANGE; | ||
2484 | if (ap->ioaddr.bmdma_addr) | ||
2485 | return ata_port_start(ap); | ||
2486 | return 0; | ||
2487 | } | ||
2488 | EXPORT_SYMBOL_GPL(ata_sff_port_start32); | ||
2489 | |||
2490 | /** | ||
2491 | * ata_sff_std_ports - initialize ioaddr with standard port offsets. | 2445 | * ata_sff_std_ports - initialize ioaddr with standard port offsets. |
2492 | * @ioaddr: IO address structure to be initialized | 2446 | * @ioaddr: IO address structure to be initialized |
2493 | * | 2447 | * |
@@ -2646,21 +2600,12 @@ int ata_pci_sff_prepare_host(struct pci_dev *pdev, | |||
2646 | goto err_out; | 2600 | goto err_out; |
2647 | 2601 | ||
2648 | /* init DMA related stuff */ | 2602 | /* init DMA related stuff */ |
2649 | rc = ata_pci_bmdma_init(host); | 2603 | ata_pci_bmdma_init(host); |
2650 | if (rc) | ||
2651 | goto err_bmdma; | ||
2652 | 2604 | ||
2653 | devres_remove_group(&pdev->dev, NULL); | 2605 | devres_remove_group(&pdev->dev, NULL); |
2654 | *r_host = host; | 2606 | *r_host = host; |
2655 | return 0; | 2607 | return 0; |
2656 | 2608 | ||
2657 | err_bmdma: | ||
2658 | /* This is necessary because PCI and iomap resources are | ||
2659 | * merged and releasing the top group won't release the | ||
2660 | * acquired resources if some of those have been acquired | ||
2661 | * before entering this function. | ||
2662 | */ | ||
2663 | pcim_iounmap_regions(pdev, 0xf); | ||
2664 | err_out: | 2609 | err_out: |
2665 | devres_release_group(&pdev->dev, NULL); | 2610 | devres_release_group(&pdev->dev, NULL); |
2666 | return rc; | 2611 | return rc; |
@@ -2843,12 +2788,12 @@ EXPORT_SYMBOL_GPL(ata_pci_sff_init_one); | |||
2843 | const struct ata_port_operations ata_bmdma_port_ops = { | 2788 | const struct ata_port_operations ata_bmdma_port_ops = { |
2844 | .inherits = &ata_sff_port_ops, | 2789 | .inherits = &ata_sff_port_ops, |
2845 | 2790 | ||
2846 | .mode_filter = ata_bmdma_mode_filter, | ||
2847 | |||
2848 | .bmdma_setup = ata_bmdma_setup, | 2791 | .bmdma_setup = ata_bmdma_setup, |
2849 | .bmdma_start = ata_bmdma_start, | 2792 | .bmdma_start = ata_bmdma_start, |
2850 | .bmdma_stop = ata_bmdma_stop, | 2793 | .bmdma_stop = ata_bmdma_stop, |
2851 | .bmdma_status = ata_bmdma_status, | 2794 | .bmdma_status = ata_bmdma_status, |
2795 | |||
2796 | .port_start = ata_bmdma_port_start, | ||
2852 | }; | 2797 | }; |
2853 | EXPORT_SYMBOL_GPL(ata_bmdma_port_ops); | 2798 | EXPORT_SYMBOL_GPL(ata_bmdma_port_ops); |
2854 | 2799 | ||
@@ -2856,22 +2801,10 @@ const struct ata_port_operations ata_bmdma32_port_ops = { | |||
2856 | .inherits = &ata_bmdma_port_ops, | 2801 | .inherits = &ata_bmdma_port_ops, |
2857 | 2802 | ||
2858 | .sff_data_xfer = ata_sff_data_xfer32, | 2803 | .sff_data_xfer = ata_sff_data_xfer32, |
2859 | .port_start = ata_sff_port_start32, | 2804 | .port_start = ata_bmdma_port_start32, |
2860 | }; | 2805 | }; |
2861 | EXPORT_SYMBOL_GPL(ata_bmdma32_port_ops); | 2806 | EXPORT_SYMBOL_GPL(ata_bmdma32_port_ops); |
2862 | 2807 | ||
2863 | unsigned long ata_bmdma_mode_filter(struct ata_device *adev, | ||
2864 | unsigned long xfer_mask) | ||
2865 | { | ||
2866 | /* Filter out DMA modes if the device has been configured by | ||
2867 | the BIOS as PIO only */ | ||
2868 | |||
2869 | if (adev->link->ap->ioaddr.bmdma_addr == NULL) | ||
2870 | xfer_mask &= ~(ATA_MASK_MWDMA | ATA_MASK_UDMA); | ||
2871 | return xfer_mask; | ||
2872 | } | ||
2873 | EXPORT_SYMBOL_GPL(ata_bmdma_mode_filter); | ||
2874 | |||
2875 | /** | 2808 | /** |
2876 | * ata_bmdma_setup - Set up PCI IDE BMDMA transaction | 2809 | * ata_bmdma_setup - Set up PCI IDE BMDMA transaction |
2877 | * @qc: Info associated with this ATA transaction. | 2810 | * @qc: Info associated with this ATA transaction. |
@@ -2976,6 +2909,53 @@ u8 ata_bmdma_status(struct ata_port *ap) | |||
2976 | } | 2909 | } |
2977 | EXPORT_SYMBOL_GPL(ata_bmdma_status); | 2910 | EXPORT_SYMBOL_GPL(ata_bmdma_status); |
2978 | 2911 | ||
2912 | |||
2913 | /** | ||
2914 | * ata_bmdma_port_start - Set port up for bmdma. | ||
2915 | * @ap: Port to initialize | ||
2916 | * | ||
2917 | * Called just after data structures for each port are | ||
2918 | * initialized. Allocates space for PRD table. | ||
2919 | * | ||
2920 | * May be used as the port_start() entry in ata_port_operations. | ||
2921 | * | ||
2922 | * LOCKING: | ||
2923 | * Inherited from caller. | ||
2924 | */ | ||
2925 | int ata_bmdma_port_start(struct ata_port *ap) | ||
2926 | { | ||
2927 | if (ap->mwdma_mask || ap->udma_mask) { | ||
2928 | ap->prd = dmam_alloc_coherent(ap->host->dev, ATA_PRD_TBL_SZ, | ||
2929 | &ap->prd_dma, GFP_KERNEL); | ||
2930 | if (!ap->prd) | ||
2931 | return -ENOMEM; | ||
2932 | } | ||
2933 | |||
2934 | return 0; | ||
2935 | } | ||
2936 | EXPORT_SYMBOL_GPL(ata_bmdma_port_start); | ||
2937 | |||
2938 | /** | ||
2939 | * ata_bmdma_port_start32 - Set port up for dma. | ||
2940 | * @ap: Port to initialize | ||
2941 | * | ||
2942 | * Called just after data structures for each port are | ||
2943 | * initialized. Enables 32bit PIO and allocates space for PRD | ||
2944 | * table. | ||
2945 | * | ||
2946 | * May be used as the port_start() entry in ata_port_operations for | ||
2947 | * devices that are capable of 32bit PIO. | ||
2948 | * | ||
2949 | * LOCKING: | ||
2950 | * Inherited from caller. | ||
2951 | */ | ||
2952 | int ata_bmdma_port_start32(struct ata_port *ap) | ||
2953 | { | ||
2954 | ap->pflags |= ATA_PFLAG_PIO32 | ATA_PFLAG_PIO32CHANGE; | ||
2955 | return ata_bmdma_port_start(ap); | ||
2956 | } | ||
2957 | EXPORT_SYMBOL_GPL(ata_bmdma_port_start32); | ||
2958 | |||
2979 | #ifdef CONFIG_PCI | 2959 | #ifdef CONFIG_PCI |
2980 | 2960 | ||
2981 | /** | 2961 | /** |
@@ -3004,6 +2984,19 @@ int ata_pci_bmdma_clear_simplex(struct pci_dev *pdev) | |||
3004 | } | 2984 | } |
3005 | EXPORT_SYMBOL_GPL(ata_pci_bmdma_clear_simplex); | 2985 | EXPORT_SYMBOL_GPL(ata_pci_bmdma_clear_simplex); |
3006 | 2986 | ||
2987 | static void ata_bmdma_nodma(struct ata_host *host, const char *reason) | ||
2988 | { | ||
2989 | int i; | ||
2990 | |||
2991 | dev_printk(KERN_ERR, host->dev, "BMDMA: %s, falling back to PIO\n", | ||
2992 | reason); | ||
2993 | |||
2994 | for (i = 0; i < 2; i++) { | ||
2995 | host->ports[i]->mwdma_mask = 0; | ||
2996 | host->ports[i]->udma_mask = 0; | ||
2997 | } | ||
2998 | } | ||
2999 | |||
3007 | /** | 3000 | /** |
3008 | * ata_pci_bmdma_init - acquire PCI BMDMA resources and init ATA host | 3001 | * ata_pci_bmdma_init - acquire PCI BMDMA resources and init ATA host |
3009 | * @host: target ATA host | 3002 | * @host: target ATA host |
@@ -3012,33 +3005,40 @@ EXPORT_SYMBOL_GPL(ata_pci_bmdma_clear_simplex); | |||
3012 | * | 3005 | * |
3013 | * LOCKING: | 3006 | * LOCKING: |
3014 | * Inherited from calling layer (may sleep). | 3007 | * Inherited from calling layer (may sleep). |
3015 | * | ||
3016 | * RETURNS: | ||
3017 | * 0 on success, -errno otherwise. | ||
3018 | */ | 3008 | */ |
3019 | int ata_pci_bmdma_init(struct ata_host *host) | 3009 | void ata_pci_bmdma_init(struct ata_host *host) |
3020 | { | 3010 | { |
3021 | struct device *gdev = host->dev; | 3011 | struct device *gdev = host->dev; |
3022 | struct pci_dev *pdev = to_pci_dev(gdev); | 3012 | struct pci_dev *pdev = to_pci_dev(gdev); |
3023 | int i, rc; | 3013 | int i, rc; |
3024 | 3014 | ||
3025 | /* No BAR4 allocation: No DMA */ | 3015 | /* No BAR4 allocation: No DMA */ |
3026 | if (pci_resource_start(pdev, 4) == 0) | 3016 | if (pci_resource_start(pdev, 4) == 0) { |
3027 | return 0; | 3017 | ata_bmdma_nodma(host, "BAR4 is zero"); |
3018 | return; | ||
3019 | } | ||
3028 | 3020 | ||
3029 | /* TODO: If we get no DMA mask we should fall back to PIO */ | 3021 | /* |
3022 | * Some controllers require BMDMA region to be initialized | ||
3023 | * even if DMA is not in use to clear IRQ status via | ||
3024 | * ->sff_irq_clear method. Try to initialize bmdma_addr | ||
3025 | * regardless of dma masks. | ||
3026 | */ | ||
3030 | rc = pci_set_dma_mask(pdev, ATA_DMA_MASK); | 3027 | rc = pci_set_dma_mask(pdev, ATA_DMA_MASK); |
3031 | if (rc) | 3028 | if (rc) |
3032 | return rc; | 3029 | ata_bmdma_nodma(host, "failed to set dma mask"); |
3033 | rc = pci_set_consistent_dma_mask(pdev, ATA_DMA_MASK); | 3030 | if (!rc) { |
3034 | if (rc) | 3031 | rc = pci_set_consistent_dma_mask(pdev, ATA_DMA_MASK); |
3035 | return rc; | 3032 | if (rc) |
3033 | ata_bmdma_nodma(host, | ||
3034 | "failed to set consistent dma mask"); | ||
3035 | } | ||
3036 | 3036 | ||
3037 | /* request and iomap DMA region */ | 3037 | /* request and iomap DMA region */ |
3038 | rc = pcim_iomap_regions(pdev, 1 << 4, dev_driver_string(gdev)); | 3038 | rc = pcim_iomap_regions(pdev, 1 << 4, dev_driver_string(gdev)); |
3039 | if (rc) { | 3039 | if (rc) { |
3040 | dev_printk(KERN_ERR, gdev, "failed to request/iomap BAR4\n"); | 3040 | ata_bmdma_nodma(host, "failed to request/iomap BAR4"); |
3041 | return -ENOMEM; | 3041 | return; |
3042 | } | 3042 | } |
3043 | host->iomap = pcim_iomap_table(pdev); | 3043 | host->iomap = pcim_iomap_table(pdev); |
3044 | 3044 | ||
@@ -3057,8 +3057,6 @@ int ata_pci_bmdma_init(struct ata_host *host) | |||
3057 | ata_port_desc(ap, "bmdma 0x%llx", | 3057 | ata_port_desc(ap, "bmdma 0x%llx", |
3058 | (unsigned long long)pci_resource_start(pdev, 4) + 8 * i); | 3058 | (unsigned long long)pci_resource_start(pdev, 4) + 8 * i); |
3059 | } | 3059 | } |
3060 | |||
3061 | return 0; | ||
3062 | } | 3060 | } |
3063 | EXPORT_SYMBOL_GPL(ata_pci_bmdma_init); | 3061 | EXPORT_SYMBOL_GPL(ata_pci_bmdma_init); |
3064 | 3062 | ||
diff --git a/drivers/ata/pata_acpi.c b/drivers/ata/pata_acpi.c index 1ea2be0f4b9..1a5a309abcc 100644 --- a/drivers/ata/pata_acpi.c +++ b/drivers/ata/pata_acpi.c | |||
@@ -101,7 +101,7 @@ static unsigned long pacpi_discover_modes(struct ata_port *ap, struct ata_device | |||
101 | static unsigned long pacpi_mode_filter(struct ata_device *adev, unsigned long mask) | 101 | static unsigned long pacpi_mode_filter(struct ata_device *adev, unsigned long mask) |
102 | { | 102 | { |
103 | struct pata_acpi *acpi = adev->link->ap->private_data; | 103 | struct pata_acpi *acpi = adev->link->ap->private_data; |
104 | return ata_bmdma_mode_filter(adev, mask & acpi->mask[adev->devno]); | 104 | return mask & acpi->mask[adev->devno]; |
105 | } | 105 | } |
106 | 106 | ||
107 | /** | 107 | /** |
@@ -205,7 +205,7 @@ static int pacpi_port_start(struct ata_port *ap) | |||
205 | return -ENOMEM; | 205 | return -ENOMEM; |
206 | acpi->mask[0] = pacpi_discover_modes(ap, &ap->link.device[0]); | 206 | acpi->mask[0] = pacpi_discover_modes(ap, &ap->link.device[0]); |
207 | acpi->mask[1] = pacpi_discover_modes(ap, &ap->link.device[1]); | 207 | acpi->mask[1] = pacpi_discover_modes(ap, &ap->link.device[1]); |
208 | ret = ata_sff_port_start(ap); | 208 | ret = ata_bmdma_port_start(ap); |
209 | if (ret < 0) | 209 | if (ret < 0) |
210 | return ret; | 210 | return ret; |
211 | 211 | ||
diff --git a/drivers/ata/pata_ali.c b/drivers/ata/pata_ali.c index dc61b72f751..f306e10c748 100644 --- a/drivers/ata/pata_ali.c +++ b/drivers/ata/pata_ali.c | |||
@@ -124,7 +124,7 @@ static unsigned long ali_20_filter(struct ata_device *adev, unsigned long mask) | |||
124 | ata_id_c_string(adev->id, model_num, ATA_ID_PROD, sizeof(model_num)); | 124 | ata_id_c_string(adev->id, model_num, ATA_ID_PROD, sizeof(model_num)); |
125 | if (strstr(model_num, "WDC")) | 125 | if (strstr(model_num, "WDC")) |
126 | return mask &= ~ATA_MASK_UDMA; | 126 | return mask &= ~ATA_MASK_UDMA; |
127 | return ata_bmdma_mode_filter(adev, mask); | 127 | return mask; |
128 | } | 128 | } |
129 | 129 | ||
130 | /** | 130 | /** |
diff --git a/drivers/ata/pata_at91.c b/drivers/ata/pata_at91.c index c6a946aa252..0da0dcc7dd0 100644 --- a/drivers/ata/pata_at91.c +++ b/drivers/ata/pata_at91.c | |||
@@ -202,7 +202,6 @@ static struct ata_port_operations pata_at91_port_ops = { | |||
202 | .sff_data_xfer = pata_at91_data_xfer_noirq, | 202 | .sff_data_xfer = pata_at91_data_xfer_noirq, |
203 | .set_piomode = pata_at91_set_piomode, | 203 | .set_piomode = pata_at91_set_piomode, |
204 | .cable_detect = ata_cable_40wire, | 204 | .cable_detect = ata_cable_40wire, |
205 | .port_start = ATA_OP_NULL, | ||
206 | }; | 205 | }; |
207 | 206 | ||
208 | static int __devinit pata_at91_probe(struct platform_device *pdev) | 207 | static int __devinit pata_at91_probe(struct platform_device *pdev) |
diff --git a/drivers/ata/pata_bf54x.c b/drivers/ata/pata_bf54x.c index 3d94c800e9d..6422cfd13d0 100644 --- a/drivers/ata/pata_bf54x.c +++ b/drivers/ata/pata_bf54x.c | |||
@@ -1450,8 +1450,6 @@ static struct ata_port_operations bfin_pata_ops = { | |||
1450 | 1450 | ||
1451 | .port_start = bfin_port_start, | 1451 | .port_start = bfin_port_start, |
1452 | .port_stop = bfin_port_stop, | 1452 | .port_stop = bfin_port_stop, |
1453 | |||
1454 | .mode_filter = ATA_OP_NULL, /* will be removed soon */ | ||
1455 | }; | 1453 | }; |
1456 | 1454 | ||
1457 | static struct ata_port_info bfin_port_info[] = { | 1455 | static struct ata_port_info bfin_port_info[] = { |
diff --git a/drivers/ata/pata_cmd640.c b/drivers/ata/pata_cmd640.c index 60ab2d2b1cc..e5f289f59ca 100644 --- a/drivers/ata/pata_cmd640.c +++ b/drivers/ata/pata_cmd640.c | |||
@@ -153,16 +153,12 @@ static int cmd640_port_start(struct ata_port *ap) | |||
153 | struct pci_dev *pdev = to_pci_dev(ap->host->dev); | 153 | struct pci_dev *pdev = to_pci_dev(ap->host->dev); |
154 | struct cmd640_reg *timing; | 154 | struct cmd640_reg *timing; |
155 | 155 | ||
156 | int ret = ata_sff_port_start(ap); | ||
157 | if (ret < 0) | ||
158 | return ret; | ||
159 | |||
160 | timing = devm_kzalloc(&pdev->dev, sizeof(struct cmd640_reg), GFP_KERNEL); | 156 | timing = devm_kzalloc(&pdev->dev, sizeof(struct cmd640_reg), GFP_KERNEL); |
161 | if (timing == NULL) | 157 | if (timing == NULL) |
162 | return -ENOMEM; | 158 | return -ENOMEM; |
163 | timing->last = -1; /* Force a load */ | 159 | timing->last = -1; /* Force a load */ |
164 | ap->private_data = timing; | 160 | ap->private_data = timing; |
165 | return ret; | 161 | return 0; |
166 | } | 162 | } |
167 | 163 | ||
168 | static struct scsi_host_template cmd640_sht = { | 164 | static struct scsi_host_template cmd640_sht = { |
diff --git a/drivers/ata/pata_hpt366.c b/drivers/ata/pata_hpt366.c index af49bfb5724..8580eb3cd54 100644 --- a/drivers/ata/pata_hpt366.c +++ b/drivers/ata/pata_hpt366.c | |||
@@ -182,7 +182,7 @@ static unsigned long hpt366_filter(struct ata_device *adev, unsigned long mask) | |||
182 | } else if (adev->class == ATA_DEV_ATAPI) | 182 | } else if (adev->class == ATA_DEV_ATAPI) |
183 | mask &= ~(ATA_MASK_MWDMA | ATA_MASK_UDMA); | 183 | mask &= ~(ATA_MASK_MWDMA | ATA_MASK_UDMA); |
184 | 184 | ||
185 | return ata_bmdma_mode_filter(adev, mask); | 185 | return mask; |
186 | } | 186 | } |
187 | 187 | ||
188 | static int hpt36x_cable_detect(struct ata_port *ap) | 188 | static int hpt36x_cable_detect(struct ata_port *ap) |
diff --git a/drivers/ata/pata_hpt37x.c b/drivers/ata/pata_hpt37x.c index 8839307a64c..98b498b6907 100644 --- a/drivers/ata/pata_hpt37x.c +++ b/drivers/ata/pata_hpt37x.c | |||
@@ -282,7 +282,7 @@ static unsigned long hpt370_filter(struct ata_device *adev, unsigned long mask) | |||
282 | if (hpt_dma_blacklisted(adev, "UDMA100", bad_ata100_5)) | 282 | if (hpt_dma_blacklisted(adev, "UDMA100", bad_ata100_5)) |
283 | mask &= ~(0xE0 << ATA_SHIFT_UDMA); | 283 | mask &= ~(0xE0 << ATA_SHIFT_UDMA); |
284 | } | 284 | } |
285 | return ata_bmdma_mode_filter(adev, mask); | 285 | return mask; |
286 | } | 286 | } |
287 | 287 | ||
288 | /** | 288 | /** |
@@ -298,7 +298,7 @@ static unsigned long hpt370a_filter(struct ata_device *adev, unsigned long mask) | |||
298 | if (hpt_dma_blacklisted(adev, "UDMA100", bad_ata100_5)) | 298 | if (hpt_dma_blacklisted(adev, "UDMA100", bad_ata100_5)) |
299 | mask &= ~(0xE0 << ATA_SHIFT_UDMA); | 299 | mask &= ~(0xE0 << ATA_SHIFT_UDMA); |
300 | } | 300 | } |
301 | return ata_bmdma_mode_filter(adev, mask); | 301 | return mask; |
302 | } | 302 | } |
303 | 303 | ||
304 | /** | 304 | /** |
diff --git a/drivers/ata/pata_icside.c b/drivers/ata/pata_icside.c index 832c8ccd0e8..ee85a9ce0a1 100644 --- a/drivers/ata/pata_icside.c +++ b/drivers/ata/pata_icside.c | |||
@@ -335,7 +335,7 @@ static struct ata_port_operations pata_icside_port_ops = { | |||
335 | .postreset = pata_icside_postreset, | 335 | .postreset = pata_icside_postreset, |
336 | .post_internal_cmd = pata_icside_bmdma_stop, | 336 | .post_internal_cmd = pata_icside_bmdma_stop, |
337 | 337 | ||
338 | .mode_filter = ATA_OP_NULL, /* will be removed soon */ | 338 | .port_start = ATA_OP_NULL, /* don't need PRD table */ |
339 | }; | 339 | }; |
340 | 340 | ||
341 | static void __devinit | 341 | static void __devinit |
diff --git a/drivers/ata/pata_it821x.c b/drivers/ata/pata_it821x.c index 5cb286fd839..8d73438f292 100644 --- a/drivers/ata/pata_it821x.c +++ b/drivers/ata/pata_it821x.c | |||
@@ -739,7 +739,7 @@ static int it821x_port_start(struct ata_port *ap) | |||
739 | struct it821x_dev *itdev; | 739 | struct it821x_dev *itdev; |
740 | u8 conf; | 740 | u8 conf; |
741 | 741 | ||
742 | int ret = ata_sff_port_start(ap); | 742 | int ret = ata_bmdma_port_start(ap); |
743 | if (ret < 0) | 743 | if (ret < 0) |
744 | return ret; | 744 | return ret; |
745 | 745 | ||
diff --git a/drivers/ata/pata_macio.c b/drivers/ata/pata_macio.c index 17e4e5d1969..25df50f51c0 100644 --- a/drivers/ata/pata_macio.c +++ b/drivers/ata/pata_macio.c | |||
@@ -720,6 +720,8 @@ static int pata_macio_port_start(struct ata_port *ap) | |||
720 | if (priv->dma_table_cpu == NULL) { | 720 | if (priv->dma_table_cpu == NULL) { |
721 | dev_err(priv->dev, "Unable to allocate DMA command list\n"); | 721 | dev_err(priv->dev, "Unable to allocate DMA command list\n"); |
722 | ap->ioaddr.bmdma_addr = NULL; | 722 | ap->ioaddr.bmdma_addr = NULL; |
723 | ap->mwdma_mask = 0; | ||
724 | ap->udma_mask = 0; | ||
723 | } | 725 | } |
724 | return 0; | 726 | return 0; |
725 | } | 727 | } |
diff --git a/drivers/ata/pata_pdc2027x.c b/drivers/ata/pata_pdc2027x.c index ca5cad0fd80..09f1f22c030 100644 --- a/drivers/ata/pata_pdc2027x.c +++ b/drivers/ata/pata_pdc2027x.c | |||
@@ -265,7 +265,7 @@ static unsigned long pdc2027x_mode_filter(struct ata_device *adev, unsigned long | |||
265 | struct ata_device *pair = ata_dev_pair(adev); | 265 | struct ata_device *pair = ata_dev_pair(adev); |
266 | 266 | ||
267 | if (adev->class != ATA_DEV_ATA || adev->devno == 0 || pair == NULL) | 267 | if (adev->class != ATA_DEV_ATA || adev->devno == 0 || pair == NULL) |
268 | return ata_bmdma_mode_filter(adev, mask); | 268 | return mask; |
269 | 269 | ||
270 | /* Check for slave of a Maxtor at UDMA6 */ | 270 | /* Check for slave of a Maxtor at UDMA6 */ |
271 | ata_id_c_string(pair->id, model_num, ATA_ID_PROD, | 271 | ata_id_c_string(pair->id, model_num, ATA_ID_PROD, |
@@ -274,7 +274,7 @@ static unsigned long pdc2027x_mode_filter(struct ata_device *adev, unsigned long | |||
274 | if (strstr(model_num, "Maxtor") == NULL && pair->dma_mode == XFER_UDMA_6) | 274 | if (strstr(model_num, "Maxtor") == NULL && pair->dma_mode == XFER_UDMA_6) |
275 | mask &= ~ (1 << (6 + ATA_SHIFT_UDMA)); | 275 | mask &= ~ (1 << (6 + ATA_SHIFT_UDMA)); |
276 | 276 | ||
277 | return ata_bmdma_mode_filter(adev, mask); | 277 | return mask; |
278 | } | 278 | } |
279 | 279 | ||
280 | /** | 280 | /** |
diff --git a/drivers/ata/pata_pdc202xx_old.c b/drivers/ata/pata_pdc202xx_old.c index 9ac0897cf8b..fa1e2f3bc0f 100644 --- a/drivers/ata/pata_pdc202xx_old.c +++ b/drivers/ata/pata_pdc202xx_old.c | |||
@@ -249,7 +249,7 @@ static int pdc2026x_port_start(struct ata_port *ap) | |||
249 | u8 burst = ioread8(bmdma + 0x1f); | 249 | u8 burst = ioread8(bmdma + 0x1f); |
250 | iowrite8(burst | 0x01, bmdma + 0x1f); | 250 | iowrite8(burst | 0x01, bmdma + 0x1f); |
251 | } | 251 | } |
252 | return ata_sff_port_start(ap); | 252 | return ata_bmdma_port_start(ap); |
253 | } | 253 | } |
254 | 254 | ||
255 | /** | 255 | /** |
diff --git a/drivers/ata/pata_platform.c b/drivers/ata/pata_platform.c index 3f6ebc6c665..50400fa120f 100644 --- a/drivers/ata/pata_platform.c +++ b/drivers/ata/pata_platform.c | |||
@@ -53,7 +53,6 @@ static struct ata_port_operations pata_platform_port_ops = { | |||
53 | .sff_data_xfer = ata_sff_data_xfer_noirq, | 53 | .sff_data_xfer = ata_sff_data_xfer_noirq, |
54 | .cable_detect = ata_cable_unknown, | 54 | .cable_detect = ata_cable_unknown, |
55 | .set_mode = pata_platform_set_mode, | 55 | .set_mode = pata_platform_set_mode, |
56 | .port_start = ATA_OP_NULL, | ||
57 | }; | 56 | }; |
58 | 57 | ||
59 | static void pata_platform_setup_port(struct ata_ioports *ioaddr, | 58 | static void pata_platform_setup_port(struct ata_ioports *ioaddr, |
diff --git a/drivers/ata/pata_scc.c b/drivers/ata/pata_scc.c index d3988991ca6..70d549e28f0 100644 --- a/drivers/ata/pata_scc.c +++ b/drivers/ata/pata_scc.c | |||
@@ -265,7 +265,7 @@ unsigned long scc_mode_filter(struct ata_device *adev, unsigned long mask) | |||
265 | printk(KERN_INFO "%s: limit ATAPI UDMA to UDMA4\n", DRV_NAME); | 265 | printk(KERN_INFO "%s: limit ATAPI UDMA to UDMA4\n", DRV_NAME); |
266 | mask &= ~(0xE0 << ATA_SHIFT_UDMA); | 266 | mask &= ~(0xE0 << ATA_SHIFT_UDMA); |
267 | } | 267 | } |
268 | return ata_bmdma_mode_filter(adev, mask); | 268 | return mask; |
269 | } | 269 | } |
270 | 270 | ||
271 | /** | 271 | /** |
@@ -892,7 +892,7 @@ static void scc_irq_clear (struct ata_port *ap) | |||
892 | * scc_port_start - Set port up for dma. | 892 | * scc_port_start - Set port up for dma. |
893 | * @ap: Port to initialize | 893 | * @ap: Port to initialize |
894 | * | 894 | * |
895 | * Allocate space for PRD table using ata_port_start(). | 895 | * Allocate space for PRD table using ata_bmdma_port_start(). |
896 | * Set PRD table address for PTERADD. (PRD Transfer End Read) | 896 | * Set PRD table address for PTERADD. (PRD Transfer End Read) |
897 | */ | 897 | */ |
898 | 898 | ||
@@ -901,7 +901,7 @@ static int scc_port_start (struct ata_port *ap) | |||
901 | void __iomem *mmio = ap->ioaddr.bmdma_addr; | 901 | void __iomem *mmio = ap->ioaddr.bmdma_addr; |
902 | int rc; | 902 | int rc; |
903 | 903 | ||
904 | rc = ata_port_start(ap); | 904 | rc = ata_bmdma_port_start(ap); |
905 | if (rc) | 905 | if (rc) |
906 | return rc; | 906 | return rc; |
907 | 907 | ||
diff --git a/drivers/ata/pata_serverworks.c b/drivers/ata/pata_serverworks.c index 9524d54035f..43ea389df2b 100644 --- a/drivers/ata/pata_serverworks.c +++ b/drivers/ata/pata_serverworks.c | |||
@@ -198,7 +198,7 @@ static unsigned long serverworks_osb4_filter(struct ata_device *adev, unsigned l | |||
198 | { | 198 | { |
199 | if (adev->class == ATA_DEV_ATA) | 199 | if (adev->class == ATA_DEV_ATA) |
200 | mask &= ~ATA_MASK_UDMA; | 200 | mask &= ~ATA_MASK_UDMA; |
201 | return ata_bmdma_mode_filter(adev, mask); | 201 | return mask; |
202 | } | 202 | } |
203 | 203 | ||
204 | 204 | ||
@@ -218,7 +218,7 @@ static unsigned long serverworks_csb_filter(struct ata_device *adev, unsigned lo | |||
218 | 218 | ||
219 | /* Disk, UDMA */ | 219 | /* Disk, UDMA */ |
220 | if (adev->class != ATA_DEV_ATA) | 220 | if (adev->class != ATA_DEV_ATA) |
221 | return ata_bmdma_mode_filter(adev, mask); | 221 | return mask; |
222 | 222 | ||
223 | /* Actually do need to check */ | 223 | /* Actually do need to check */ |
224 | ata_id_c_string(adev->id, model_num, ATA_ID_PROD, sizeof(model_num)); | 224 | ata_id_c_string(adev->id, model_num, ATA_ID_PROD, sizeof(model_num)); |
@@ -227,7 +227,7 @@ static unsigned long serverworks_csb_filter(struct ata_device *adev, unsigned lo | |||
227 | if (!strcmp(p, model_num)) | 227 | if (!strcmp(p, model_num)) |
228 | mask &= ~(0xE0 << ATA_SHIFT_UDMA); | 228 | mask &= ~(0xE0 << ATA_SHIFT_UDMA); |
229 | } | 229 | } |
230 | return ata_bmdma_mode_filter(adev, mask); | 230 | return mask; |
231 | } | 231 | } |
232 | 232 | ||
233 | /** | 233 | /** |
diff --git a/drivers/ata/pata_via.c b/drivers/ata/pata_via.c index 87fb89e407f..7e3e0a5598b 100644 --- a/drivers/ata/pata_via.c +++ b/drivers/ata/pata_via.c | |||
@@ -355,7 +355,7 @@ static unsigned long via_mode_filter(struct ata_device *dev, unsigned long mask) | |||
355 | mask &= ~ ATA_MASK_UDMA; | 355 | mask &= ~ ATA_MASK_UDMA; |
356 | } | 356 | } |
357 | } | 357 | } |
358 | return ata_bmdma_mode_filter(dev, mask); | 358 | return mask; |
359 | } | 359 | } |
360 | 360 | ||
361 | /** | 361 | /** |
@@ -424,7 +424,7 @@ static int via_port_start(struct ata_port *ap) | |||
424 | struct via_port *vp; | 424 | struct via_port *vp; |
425 | struct pci_dev *pdev = to_pci_dev(ap->host->dev); | 425 | struct pci_dev *pdev = to_pci_dev(ap->host->dev); |
426 | 426 | ||
427 | int ret = ata_sff_port_start(ap); | 427 | int ret = ata_bmdma_port_start(ap); |
428 | if (ret < 0) | 428 | if (ret < 0) |
429 | return ret; | 429 | return ret; |
430 | 430 | ||
diff --git a/drivers/ata/pdc_adma.c b/drivers/ata/pdc_adma.c index ed18d8b42c5..bb4f838655b 100644 --- a/drivers/ata/pdc_adma.c +++ b/drivers/ata/pdc_adma.c | |||
@@ -556,11 +556,7 @@ static int adma_port_start(struct ata_port *ap) | |||
556 | { | 556 | { |
557 | struct device *dev = ap->host->dev; | 557 | struct device *dev = ap->host->dev; |
558 | struct adma_port_priv *pp; | 558 | struct adma_port_priv *pp; |
559 | int rc; | ||
560 | 559 | ||
561 | rc = ata_port_start(ap); | ||
562 | if (rc) | ||
563 | return rc; | ||
564 | adma_enter_reg_mode(ap); | 560 | adma_enter_reg_mode(ap); |
565 | pp = devm_kzalloc(dev, sizeof(*pp), GFP_KERNEL); | 561 | pp = devm_kzalloc(dev, sizeof(*pp), GFP_KERNEL); |
566 | if (!pp) | 562 | if (!pp) |
diff --git a/drivers/ata/sata_inic162x.c b/drivers/ata/sata_inic162x.c index d3e1bab2a7a..a36149ebf4a 100644 --- a/drivers/ata/sata_inic162x.c +++ b/drivers/ata/sata_inic162x.c | |||
@@ -682,7 +682,6 @@ static int inic_port_start(struct ata_port *ap) | |||
682 | { | 682 | { |
683 | struct device *dev = ap->host->dev; | 683 | struct device *dev = ap->host->dev; |
684 | struct inic_port_priv *pp; | 684 | struct inic_port_priv *pp; |
685 | int rc; | ||
686 | 685 | ||
687 | /* alloc and initialize private data */ | 686 | /* alloc and initialize private data */ |
688 | pp = devm_kzalloc(dev, sizeof(*pp), GFP_KERNEL); | 687 | pp = devm_kzalloc(dev, sizeof(*pp), GFP_KERNEL); |
@@ -691,10 +690,6 @@ static int inic_port_start(struct ata_port *ap) | |||
691 | ap->private_data = pp; | 690 | ap->private_data = pp; |
692 | 691 | ||
693 | /* Alloc resources */ | 692 | /* Alloc resources */ |
694 | rc = ata_port_start(ap); | ||
695 | if (rc) | ||
696 | return rc; | ||
697 | |||
698 | pp->pkt = dmam_alloc_coherent(dev, sizeof(struct inic_pkt), | 693 | pp->pkt = dmam_alloc_coherent(dev, sizeof(struct inic_pkt), |
699 | &pp->pkt_dma, GFP_KERNEL); | 694 | &pp->pkt_dma, GFP_KERNEL); |
700 | if (!pp->pkt) | 695 | if (!pp->pkt) |
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c index a0337107599..83491861d11 100644 --- a/drivers/ata/sata_mv.c +++ b/drivers/ata/sata_mv.c | |||
@@ -717,8 +717,6 @@ static struct ata_port_operations mv6_ops = { | |||
717 | 717 | ||
718 | .port_start = mv_port_start, | 718 | .port_start = mv_port_start, |
719 | .port_stop = mv_port_stop, | 719 | .port_stop = mv_port_stop, |
720 | |||
721 | .mode_filter = ATA_OP_NULL, /* will be removed soon */ | ||
722 | }; | 720 | }; |
723 | 721 | ||
724 | static struct ata_port_operations mv_iie_ops = { | 722 | static struct ata_port_operations mv_iie_ops = { |
diff --git a/drivers/ata/sata_nv.c b/drivers/ata/sata_nv.c index 20cc510595d..a007b20c199 100644 --- a/drivers/ata/sata_nv.c +++ b/drivers/ata/sata_nv.c | |||
@@ -1156,7 +1156,8 @@ static int nv_adma_port_start(struct ata_port *ap) | |||
1156 | if (rc) | 1156 | if (rc) |
1157 | return rc; | 1157 | return rc; |
1158 | 1158 | ||
1159 | rc = ata_port_start(ap); | 1159 | /* we might fallback to bmdma, allocate bmdma resources */ |
1160 | rc = ata_bmdma_port_start(ap); | ||
1160 | if (rc) | 1161 | if (rc) |
1161 | return rc; | 1162 | return rc; |
1162 | 1163 | ||
@@ -1985,7 +1986,8 @@ static int nv_swncq_port_start(struct ata_port *ap) | |||
1985 | struct nv_swncq_port_priv *pp; | 1986 | struct nv_swncq_port_priv *pp; |
1986 | int rc; | 1987 | int rc; |
1987 | 1988 | ||
1988 | rc = ata_port_start(ap); | 1989 | /* we might fallback to bmdma, allocate bmdma resources */ |
1990 | rc = ata_bmdma_port_start(ap); | ||
1989 | if (rc) | 1991 | if (rc) |
1990 | return rc; | 1992 | return rc; |
1991 | 1993 | ||
diff --git a/drivers/ata/sata_promise.c b/drivers/ata/sata_promise.c index 2c029ea12c5..e80628a7766 100644 --- a/drivers/ata/sata_promise.c +++ b/drivers/ata/sata_promise.c | |||
@@ -333,7 +333,8 @@ static int pdc_common_port_start(struct ata_port *ap) | |||
333 | struct pdc_port_priv *pp; | 333 | struct pdc_port_priv *pp; |
334 | int rc; | 334 | int rc; |
335 | 335 | ||
336 | rc = ata_port_start(ap); | 336 | /* we use the same prd table as bmdma, allocate it */ |
337 | rc = ata_bmdma_port_start(ap); | ||
337 | if (rc) | 338 | if (rc) |
338 | return rc; | 339 | return rc; |
339 | 340 | ||
diff --git a/drivers/ata/sata_qstor.c b/drivers/ata/sata_qstor.c index febc6e74842..da84ea9e4fb 100644 --- a/drivers/ata/sata_qstor.c +++ b/drivers/ata/sata_qstor.c | |||
@@ -504,11 +504,7 @@ static int qs_port_start(struct ata_port *ap) | |||
504 | void __iomem *mmio_base = qs_mmio_base(ap->host); | 504 | void __iomem *mmio_base = qs_mmio_base(ap->host); |
505 | void __iomem *chan = mmio_base + (ap->port_no * 0x4000); | 505 | void __iomem *chan = mmio_base + (ap->port_no * 0x4000); |
506 | u64 addr; | 506 | u64 addr; |
507 | int rc; | ||
508 | 507 | ||
509 | rc = ata_port_start(ap); | ||
510 | if (rc) | ||
511 | return rc; | ||
512 | pp = devm_kzalloc(dev, sizeof(*pp), GFP_KERNEL); | 508 | pp = devm_kzalloc(dev, sizeof(*pp), GFP_KERNEL); |
513 | if (!pp) | 509 | if (!pp) |
514 | return -ENOMEM; | 510 | return -ENOMEM; |
diff --git a/drivers/ata/sata_sx4.c b/drivers/ata/sata_sx4.c index 7e3a25ec93b..a4e552a325b 100644 --- a/drivers/ata/sata_sx4.c +++ b/drivers/ata/sata_sx4.c | |||
@@ -302,11 +302,6 @@ static int pdc_port_start(struct ata_port *ap) | |||
302 | { | 302 | { |
303 | struct device *dev = ap->host->dev; | 303 | struct device *dev = ap->host->dev; |
304 | struct pdc_port_priv *pp; | 304 | struct pdc_port_priv *pp; |
305 | int rc; | ||
306 | |||
307 | rc = ata_port_start(ap); | ||
308 | if (rc) | ||
309 | return rc; | ||
310 | 305 | ||
311 | pp = devm_kzalloc(dev, sizeof(*pp), GFP_KERNEL); | 306 | pp = devm_kzalloc(dev, sizeof(*pp), GFP_KERNEL); |
312 | if (!pp) | 307 | if (!pp) |
diff --git a/drivers/ata/sata_uli.c b/drivers/ata/sata_uli.c index 011e098590d..d8dac17dc2c 100644 --- a/drivers/ata/sata_uli.c +++ b/drivers/ata/sata_uli.c | |||
@@ -181,9 +181,7 @@ static int uli_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
181 | if (rc) | 181 | if (rc) |
182 | return rc; | 182 | return rc; |
183 | 183 | ||
184 | rc = ata_pci_bmdma_init(host); | 184 | ata_pci_bmdma_init(host); |
185 | if (rc) | ||
186 | return rc; | ||
187 | 185 | ||
188 | iomap = host->iomap; | 186 | iomap = host->iomap; |
189 | 187 | ||