From: Keith W. <ke...@tu...> - 2002-09-23 10:32:19
|
Eric Anholt wrote: > On Sat, 2002-09-21 at 07:21, Michel D=E4nzer wrote: >=20 >>On Fre, 2002-09-20 at 17:30, Andreas Stenglein wrote:=20 >> >>>I tried to port Andreas Ehliar's mga-stereo-patch >>>(http://www.lysator.liu.se/~ehliar/3d/) >>>to current DRI-CVS. >>> >>>I think its almost done, but now the big problem for me >>>(as a "non-dri-developer") >>>is to get the vblank-irq and the pageflipping working >>>without locking up the machine. (file mga_dma.c) >>>The old mga-drm-driver was irq-driven and so the >>>additional vblank-irq-handling has been hooked >>>into the main irq-handler. >>>But this infrastructure isnt there anymore. >>> >>You may want to look at the radeon IRQ code on r200-0-2-branch and >> >>http://penguinppc.org/~daenzer/DRI/radeon-vblank.diff >> >>Let me know what you think about the interface in that patch, would be >>great if we could make this a template. >> >=20 > Here's the patch with FreeBSD and r200 added (partially). I've removed > the bottom half from the irq handler in the FreeBSD case -- wakeups and > a lot more can go in the top half in BSD just fine from what I've been > told.=20 This is an open question for me. Does linux require an irq bh just to do= a=20 wake_up_interruptible? Could/should we do something equivalent from the = tophalf? > Would anything else ever get added to the handler (for vbl or > other irq)? The r200 client lib doesn't check for the irq number, but = I > couldn't figure out what exactly that was being checked for. Also, it > seems the driver init macros should be functions. Is there any reason > why they aren't? Because they didn't use to do much, or because the oringal pre-templated=20 version of the init functions had those bits of code inlined, so the obvi= ous=20 transformation turned them into macros. There's nothing to stop us callin= g a=20 function from those macros. One worry I have with the radeon_irq.c code at the moment is the prolifer= ation=20 of ifdef's for linux vs. freebsd code. I'd like to see this get cleaned = up --=20 if nothing else it's ugly... Keith |