Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Jan 2004 15:24:32 -0800
From:      Marcel Moolenaar <marcel@xcllnt.net>
To:        Vladimir Kushnir <vkushnir@Alfacom.net>
Cc:        current@freebsd.org
Subject:   Re: ATA still broken
Message-ID:  <20040120232432.GB67810@ns1.xcllnt.net>
In-Reply-To: <200401210059.24928.vkushnir@Alfacom.net>
References:  <200401210059.24928.vkushnir@Alfacom.net>

next in thread | previous in thread | raw e-mail | index | archive | help

--k1lZvvs/B4yU6o8G
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Wed, Jan 21, 2004 at 12:59:24AM +0200, Vladimir Kushnir wrote:
> Hello,
> An ATA problem seems to persist here. With last night's sources I still cannot 
> boot my -CURRENT box. Setup:
> MB - oldish 440BX - based ChainTech
> ata0: master - NEC CDRW, slave - none
> ata1: master - CDROM. slave - none
> External card (CMD649-based):
> ata2: master - 60G WD (the only HD), slave - none
> ata3 - nothing
> Tried both my customized config (with atapicam) and GENERIC, with or without 
> apic/ACPI - no difference.

I see you have a CMD649. Can you try the attached patch.

Thanks,

-- 
 Marcel Moolenaar	  USPA: A-39004		 marcel@xcllnt.net

--k1lZvvs/B4yU6o8G
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="ata.diff"

Index: sys/dev/ata/ata-chipset.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/ata/ata-chipset.c,v
retrieving revision 1.57
diff -u -r1.57 ata-chipset.c
--- sys/dev/ata/ata-chipset.c	17 Jan 2004 23:34:13 -0000	1.57
+++ sys/dev/ata/ata-chipset.c	20 Jan 2004 03:34:23 -0000
@@ -103,7 +103,6 @@
 static int ata_sii_mio_allocate(device_t, struct ata_channel *);
 static void ata_sii_reset(struct ata_channel *);
 static void ata_sii_intr(void *);
-static void ata_cmd_intr(void *);
 static void ata_cmd_old_intr(void *);
 static void ata_sii_setmode(struct ata_device *, int);
 static void ata_cmd_setmode(struct ata_device *, int);
@@ -1667,7 +1666,7 @@
     else {
 	if ((bus_setup_intr(dev, ctlr->r_irq, ATA_INTR_FLAGS,
 			    ctlr->chip->cfg2 & SIIINTR ? 
-			    ata_cmd_intr : ata_cmd_old_intr,
+			    ata_cmd_old_intr : ata_cmd_old_intr,
 			    ctlr, &ctlr->handle))) {
 	    device_printf(dev, "unable to setup interrupt\n");
 	    return ENXIO;
@@ -1756,6 +1755,7 @@
     }
 }
 
+#if 0
 static void
 ata_cmd_intr(void *data)
 {
@@ -1785,6 +1785,7 @@
 	}
     }
 }
+#endif
 
 static void
 ata_cmd_old_intr(void *data)

--k1lZvvs/B4yU6o8G--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040120232432.GB67810>