Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Aug 1998 20:08:36 +0100 (BST)
From:      Karl Pielorz <kpielorz@tdx.co.uk>
To:        hackers@FreeBSD.ORG
Subject:   High? Latency device-driver with no IRQ's?
Message-ID:  <Pine.BSF.3.96.980818193217.2981A-100000@caladan.tdx.co.uk>

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

Hi All,

The device driver I've been designing / writing for FreeBSD is starting to
shape nicely, except I've hit a problem...

The driver needs a 10us delay for the card to carry out some operations,
rising to up to 30us delay for others...

What's the best way of getting this delay? - I can get the card to
generate interrupts or I can wait 10us (for the 30us delay I just have to
wait, i.e. there is no irq at the end of the operation).

The interrupt fires after every word has been transfered (it uses a 16
bit i/o port)... I'd gather this isn't to hot a thing to do? (causing
excessive irq's) - am I better off waiting around in the kernel rather
than issuing a sleep() only to be woken up 10us later?

If I am better waiting is there a better way to wait? (I can poll the card 
until it's ready, but it seems a little draconian) - I gather sleep(lbolt)
/ delay are all tied to the 100hz 'tick'?

Thanks in advance for any advice (apart from: Dump the card ;-)

Regards,

Karl Pielorz


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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.96.980818193217.2981A-100000>