Messages in this thread | | | Date | Sat, 24 May 2008 23:34:33 +0100 | From | "Tom Spink" <> | Subject | Re: [PATCH 1/1] UIO: Add a write() function to enable/disable interrupts |
| |
2008/5/24 Thomas Gleixner <tglx@linutronix.de>: > On Fri, 23 May 2008, Greg KH wrote: > >> On Fri, May 23, 2008 at 01:55:57PM +0200, Hans J. Koch wrote: >> > Sometimes it is necessary to enable/disable the interrupt of a UIO device >> > from the userspace part of the driver. With this patch, the UIO kernel driver >> > can implement an "irqcontrol()" function that does this. Userspace can write >> > an s32 value to /dev/uioX (usually 0 or 1 to turn the irq off or on). The >> > UIO core will then call the driver's irqcontrol function. >> >> Why not just a new sysfs file for the uio device, irq_enabled, or >> something like that? That way our main read/write path is left alone.
Hi,
> It makes a certain amount of sense to use write. You hold the device > file descriptor anyway for the read (wait for interrupt) operation, > so using the same file descriptor is not a too bad idea:
What do you think about my ioctl idea, earlier in the thread?
> while (!stop) { > > /* wait for interrupt */ > read(fd); > > do_stuff(); > > /*reenable interrupt */ > write(fd); > }
So, instead of write, you'd use ioctl(fd, ...).
> I thought about using a sysfs entry for a while, but looking at the > actual use case made the write() solution a more natural choice.
I thought ioctl would be more natural, as [en,dis]abling interrupts is a "controlling" operation :-)
> Thanks, > > tglx
-- Tom Spink
| |