Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 05 Dec 2002 22:54:14 +0000
From:      Ian Dowse <iedowse@maths.tcd.ie>
To:        Soeren Schmidt <sos@spider.deepcore.dk>
Cc:        sos@FreeBSD.org, cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/dev/ata ata-all.c ata-all.h ata-cbus.c ata-disk.c ata-dma.c ata-isa.c ata-pci.c atapi-fd.c 
Message-ID:   <200212052254.aa76768@salmon.maths.tcd.ie>
In-Reply-To: Your message of "Wed, 04 Dec 2002 19:56:52 %2B0100." <200212041856.gB4IuqsX064096@spider.deepcore.dk> 

next in thread | previous in thread | raw e-mail | index | archive | help
In message <200212041856.gB4IuqsX064096@spider.deepcore.dk>, Soeren Schmidt wri
tes:
>> In article <200212032019.gB3KJcdf074276@repoman.freebsd.org>
>> Søren Schmidt <sos@FreeBSD.org> writes:
>> 
>> > sos         2002/12/03 12:19:38 PST
>> 
>> >   Add support for the PC98 platform to the ATA driver.
>> >   This mostly consists of functionality to serialize accesses to
>> >   the two ATA channels (which can also be used to "fix" certain
>> >   PCI based controllers).

This seems to break pccard CD-ROM drives, as `intr_func' and
`lock_func' are not set in ata-card.c. Something like the following
patch should fix it.

(the two pccard CD-ROM drives that I have access to need more patches
to work with NEWCARD, but I guess that is more Warner's territory:
the ata_pccard_probe routine needs to do a pccard_product_lookup
on a list of devices, and I've found that I need to comment out the
'else return ENOMEM' in the case where getting the alt IO resource
fails).

Ian

Index: ata-card.c
===================================================================
RCS file: /home/iedowse/CVS/src/sys/dev/ata/ata-card.c,v
retrieving revision 1.6
diff -u -r1.6 ata-card.c
--- ata-card.c	20 Sep 2002 18:08:57 -0000	1.6
+++ ata-card.c	5 Dec 2002 22:39:42 -0000
@@ -63,6 +63,17 @@
 }
 
 static int
+ata_pccard_intrnoop(struct ata_channel *ch)
+{
+    return 1;
+}
+
+static void
+ata_pccard_locknoop(struct ata_channel *ch, int type)
+{
+}
+
+static int
 ata_pccard_probe(device_t dev)
 {
     struct ata_channel *ch = device_get_softc(dev);
@@ -106,6 +117,8 @@
 
     ch->unit = 0;
     ch->flags |= (ATA_USE_16BIT | ATA_NO_SLAVE);
+    ch->intr_func = ata_pccard_intrnoop;
+    ch->lock_func = ata_pccard_locknoop;
     return ata_probe(dev);
 }
 

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




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