/* Check the blacklist and disable UDMA5 if matched  */
static unsigned long serverworks_csb_filter(struct ata_device *adev, unsigned long mask)
/* Check the blacklist and disable UDMA5 if matched  */
static unsigned long serverworks_csb_filter(struct ata_device *adev, unsigned long mask)
{
	const char *p;
	char model_num[ATA_ID_PROD_LEN + 1];
	int i;
	if (adev->class != ATA_DEV_ATA)
		return ata_bmdma_mode_filter(adev, mask);
	ata_id_c_string(adev->id, model_num, ATA_ID_PROD, sizeof(model_num));
	for (i = 0; (p = csb_bad_ata100[i]) != NULL; i++) {
		if (!strcmp(p, model_num))
			mask &= ~(0xE0 << ATA_SHIFT_UDMA);
	}
	return ata_bmdma_mode_filter(adev, mask);
}