ide: fix UDMA/MWDMA/SWDMA masks (v3)
* use 0x00 instead of 0x80 to disable ->{ultra,mwdma,swdma}_mask * add udma_mask field to ide_pci_device_t and use it to initialize ->ultra_mask in aec62xx, cmd64x, pdc202xx_{new,old} and piix drivers * fix UDMA masks to match with chipset specific *_ratemask() (alim15x3, hpt366, serverworks and siimage drivers need UDMA mask filtering method - done in the next patch) v2: * piix: fix cable detection for 82801AA_1 and 82372FB_1 [ Noticed by Sergei Shtylyov <sshtylyov@ru.mvista.com>. ] * cmd64x: use hwif->cds->udma_mask [ Suggested by Sergei Shtylyov <sshtylyov@ru.mvista.com>. ] * aec62xx: fix newly introduced bug - check DMA status not command register [ Noticed by Sergei Shtylyov <sshtylyov@ru.mvista.com>. ] v3: * piix: use hwif->cds->udma_mask [ Suggested by Sergei Shtylyov <sshtylyov@ru.mvista.com>. ] Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
@@ -478,7 +478,7 @@ static void __devinit init_hwif_pdc202xx(ide_hwif_t *hwif)
|
||||
|
||||
hwif->drives[0].autotune = hwif->drives[1].autotune = 1;
|
||||
|
||||
hwif->ultra_mask = 0x3f;
|
||||
hwif->ultra_mask = hwif->cds->udma_mask;
|
||||
hwif->mwdma_mask = 0x07;
|
||||
hwif->swdma_mask = 0x07;
|
||||
hwif->atapi_dma = 1;
|
||||
@@ -587,6 +587,7 @@ static ide_pci_device_t pdc202xx_chipsets[] __devinitdata = {
|
||||
.autodma = AUTODMA,
|
||||
.bootable = OFF_BOARD,
|
||||
.extra = 16,
|
||||
.udma_mask = 0x07, /* udma0-2 */
|
||||
},{ /* 1 */
|
||||
.name = "PDC20262",
|
||||
.init_setup = init_setup_pdc202ata4,
|
||||
@@ -597,6 +598,7 @@ static ide_pci_device_t pdc202xx_chipsets[] __devinitdata = {
|
||||
.autodma = AUTODMA,
|
||||
.bootable = OFF_BOARD,
|
||||
.extra = 48,
|
||||
.udma_mask = 0x1f, /* udma0-4 */
|
||||
},{ /* 2 */
|
||||
.name = "PDC20263",
|
||||
.init_setup = init_setup_pdc202ata4,
|
||||
@@ -607,6 +609,7 @@ static ide_pci_device_t pdc202xx_chipsets[] __devinitdata = {
|
||||
.autodma = AUTODMA,
|
||||
.bootable = OFF_BOARD,
|
||||
.extra = 48,
|
||||
.udma_mask = 0x1f, /* udma0-4 */
|
||||
},{ /* 3 */
|
||||
.name = "PDC20265",
|
||||
.init_setup = init_setup_pdc20265,
|
||||
@@ -617,6 +620,7 @@ static ide_pci_device_t pdc202xx_chipsets[] __devinitdata = {
|
||||
.autodma = AUTODMA,
|
||||
.bootable = OFF_BOARD,
|
||||
.extra = 48,
|
||||
.udma_mask = 0x3f, /* udma0-5 */
|
||||
},{ /* 4 */
|
||||
.name = "PDC20267",
|
||||
.init_setup = init_setup_pdc202xx,
|
||||
@@ -627,6 +631,7 @@ static ide_pci_device_t pdc202xx_chipsets[] __devinitdata = {
|
||||
.autodma = AUTODMA,
|
||||
.bootable = OFF_BOARD,
|
||||
.extra = 48,
|
||||
.udma_mask = 0x3f, /* udma0-5 */
|
||||
}
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user