Commit 6ddd68615ae9b21096545d7d6ab0f04113ae8b42

Authored by Alan Cox
Committed by Jeff Garzik
1 parent 29e8c3c304

pata_hpt*, pata_serverworks: fix UDMA masking

When masking, mask out the modes that are unsupported not the ones
that are supported.  This makes life happier.

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

Showing 3 changed files with 7 additions and 7 deletions Side-by-side Diff

drivers/ata/pata_hpt366.c
... ... @@ -27,7 +27,7 @@
27 27 #include <linux/libata.h>
28 28  
29 29 #define DRV_NAME "pata_hpt366"
30   -#define DRV_VERSION "0.6.1"
  30 +#define DRV_VERSION "0.6.2"
31 31  
32 32 struct hpt_clock {
33 33 u8 xfer_speed;
34 34  
... ... @@ -180,9 +180,9 @@
180 180 if (hpt_dma_blacklisted(adev, "UDMA", bad_ata33))
181 181 mask &= ~ATA_MASK_UDMA;
182 182 if (hpt_dma_blacklisted(adev, "UDMA3", bad_ata66_3))
183   - mask &= ~(0x07 << ATA_SHIFT_UDMA);
  183 + mask &= ~(0xF8 << ATA_SHIFT_UDMA);
184 184 if (hpt_dma_blacklisted(adev, "UDMA4", bad_ata66_4))
185   - mask &= ~(0x0F << ATA_SHIFT_UDMA);
  185 + mask &= ~(0xF0 << ATA_SHIFT_UDMA);
186 186 }
187 187 return ata_pci_default_filter(adev, mask);
188 188 }
drivers/ata/pata_hpt37x.c
... ... @@ -24,7 +24,7 @@
24 24 #include <linux/libata.h>
25 25  
26 26 #define DRV_NAME "pata_hpt37x"
27   -#define DRV_VERSION "0.6.9"
  27 +#define DRV_VERSION "0.6.11"
28 28  
29 29 struct hpt_clock {
30 30 u8 xfer_speed;
... ... @@ -281,7 +281,7 @@
281 281 if (hpt_dma_blacklisted(adev, "UDMA", bad_ata33))
282 282 mask &= ~ATA_MASK_UDMA;
283 283 if (hpt_dma_blacklisted(adev, "UDMA100", bad_ata100_5))
284   - mask &= ~(0x1F << ATA_SHIFT_UDMA);
  284 + mask &= ~(0xE0 << ATA_SHIFT_UDMA);
285 285 }
286 286 return ata_pci_default_filter(adev, mask);
287 287 }
... ... @@ -297,7 +297,7 @@
297 297 {
298 298 if (adev->class == ATA_DEV_ATA) {
299 299 if (hpt_dma_blacklisted(adev, "UDMA100", bad_ata100_5))
300   - mask &= ~ (0x1F << ATA_SHIFT_UDMA);
  300 + mask &= ~(0xE0 << ATA_SHIFT_UDMA);
301 301 }
302 302 return ata_pci_default_filter(adev, mask);
303 303 }
drivers/ata/pata_serverworks.c
... ... @@ -226,7 +226,7 @@
226 226  
227 227 for (i = 0; (p = csb_bad_ata100[i]) != NULL; i++) {
228 228 if (!strcmp(p, model_num))
229   - mask &= ~(0x1F << ATA_SHIFT_UDMA);
  229 + mask &= ~(0xE0 << ATA_SHIFT_UDMA);
230 230 }
231 231 return ata_pci_default_filter(adev, mask);
232 232 }