From 34cbb135e7af9e4d29e3ef7f852c773fa7600db3 Mon Sep 17 00:00:00 2001 From: Alexander Motin Date: Sun, 14 Feb 2010 19:55:41 +0000 Subject: [PATCH] MFC r203347: NetCell is a PCI hardware RAID without cable and mode setting. --- sys/dev/ata/chipsets/ata-netcell.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/sys/dev/ata/chipsets/ata-netcell.c b/sys/dev/ata/chipsets/ata-netcell.c index f6a75451cea..8e5a9cbe8d2 100644 --- a/sys/dev/ata/chipsets/ata-netcell.c +++ b/sys/dev/ata/chipsets/ata-netcell.c @@ -54,6 +54,7 @@ __FBSDID("$FreeBSD$"); /* local prototypes */ static int ata_netcell_chipinit(device_t dev); static int ata_netcell_ch_attach(device_t dev); +static int ata_netcell_setmode(device_t dev, int target, int mode); /* * NetCell chipset support functions @@ -80,7 +81,7 @@ ata_netcell_chipinit(device_t dev) return ENXIO; ctlr->ch_attach = ata_netcell_ch_attach; - ctlr->setmode = ata_generic_setmode; + ctlr->setmode = ata_netcell_setmode; return 0; } @@ -95,7 +96,16 @@ ata_netcell_ch_attach(device_t dev) /* the NetCell only supports 16 bit PIO transfers */ ch->flags |= ATA_USE_16BIT; + /* It is a hardware RAID without cable. */ + ch->flags |= ATA_CHECKS_CABLE; return 0; } +static int +ata_netcell_setmode(device_t dev, int target, int mode) +{ + + return (min(mode, ATA_UDMA6)); +} + ATA_DECLARE_DRIVER(ata_netcell);