/* Block UDMA on devices that cause trouble with this controller.  */
static unsigned long pdc2027x_mode_filter(struct ata_device *adev, unsigned long mask)
/* Block UDMA on devices that cause trouble with this controller.  */
static unsigned long pdc2027x_mode_filter(struct ata_device *adev, unsigned long mask)
{
	unsigned char model_num[ATA_ID_PROD_LEN + 1];
	struct ata_device *pair = ata_dev_pair(adev);
	if (adev->class != ATA_DEV_ATA || adev->devno == 0 || pair == NULL)
		return ata_bmdma_mode_filter(adev, mask);
	ata_id_c_string(pair->id, model_num, ATA_ID_PROD,
			  ATA_ID_PROD_LEN + 1);
	if (strstr(model_num, "Maxtor") == NULL && pair->dma_mode == XFER_UDMA_6)
		mask &= ~ (1 << (6 + ATA_SHIFT_UDMA));
	return ata_bmdma_mode_filter(adev, mask);
}