public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Randy Dunlap <randy.dunlap@oracle.com>
To: "Hans J. Koch" <hjk@linutronix.de>
Cc: "Uwe Kleine-König" <Uwe.Kleine-Koenig@digi.com>,
	linux-kernel@vger.kernel.org,
	"Greg Kroah-Hartman" <gregkh@suse.de>,
	"Jan Altenberg" <jan.altenberg@linutronix.de>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Magnus Damm" <magnus.damm@gmail.com>
Subject: Re: [PATCH 1/1] UIO: Add a write() function to enable/disable interrupts
Date: Fri, 23 May 2008 11:36:50 -0700	[thread overview]
Message-ID: <20080523113650.2467f2ee.randy.dunlap@oracle.com> (raw)
In-Reply-To: <20080523135557.27fe4855@bluebox.local>

On Fri, 23 May 2008 13:55:57 +0200 Hans J. Koch wrote:

>  Documentation/DocBook/uio-howto.tmpl |   40 ++++++++++++++++++++++++++++++++++-
>  drivers/uio/uio.c                    |   26 ++++++++++++++++++++++
>  include/linux/uio_driver.h           |    2 +
>  3 files changed, 67 insertions(+), 1 deletion(-)
> 
> Index: linux-2.6.26-rc/Documentation/DocBook/uio-howto.tmpl
> ===================================================================
> --- linux-2.6.26-rc.orig/Documentation/DocBook/uio-howto.tmpl	2008-05-22 20:22:57.000000000 +0200
> +++ linux-2.6.26-rc/Documentation/DocBook/uio-howto.tmpl	2008-05-23 11:57:23.000000000 +0200
> @@ -30,6 +30,12 @@
>  
>  <revhistory>
>  	<revision>
> +	<revnumber>0.5</revnumber>
> +	<date>2008-05-22</date>
> +	<authorinitials>hjk</authorinitials>
> +	<revremark>Added description of write() function.</revremark>
> +	</revision>
> +	<revision>
>  	<revnumber>0.4</revnumber>
>  	<date>2007-11-26</date>
>  	<authorinitials>hjk</authorinitials>
> @@ -64,7 +70,7 @@
>  <?dbhtml filename="copyright.html"?>
>  <title>Copyright and License</title>
>  <para>
> -      Copyright (c) 2006 by Hans-Jürgen Koch.</para>
> +      Copyright (c) 2006-2008 by Hans-Jürgen Koch.</para>
>  <para>
>  This documentation is Free Software licensed under the terms of the
>  GPL version 2.
> @@ -189,6 +195,30 @@
>  	represents the total interrupt count. You can use this number
>  	to figure out if you missed some interrupts.
>  	</para>
> +	<para>
> +	For some hardware that has more than one interrupt source internally,
> +	but not seperate IRQ mask and status registers, there might be

	        separate

> +	situations where userspace cannot determine what the interrupt source
> +	was if the kernel handler disables them by writing to the chip's IRQ
> +	register. In such a case, the kernel has to disable the IRQ completely
> +	to leave the chip's register untouched. Now the userspace part can
> +	determine the cause of the interrupt, but it cannot re-enable
> +	interrupts. Another cornercase are chips where re-enabling interrupts

	                               is

> +	is a read-modify-write operation to a combined IRQ status/acknowledge
> +	register. This would be racy if a new interrupt occured

	                                                occurred

> +	simultaneously.
> +	</para>
> +	<para>
> +	To address these problems, UIO also implements a write() function. It
> +	is normally not used and can be ignored for hardware that has only a
> +	single interrupt source or has seperate IRQ mask and status registers.

	                               separate
["There's <a rat> in separate."]

> +	If you need it, however, a write to <filename>/dev/uioX</filename>
> +	will call the <function>irqcontrol()</function> function implemented
> +	by the driver. You have to write a 32-bit value that is usually either
> +	0 or 1 do disable or enable interrupts. If a driver does not implement

	       to

> +	<function>irqcontrol()</function>, <function>write()</function> will
> +	return with <varname>-ENOSYS</varname>.
> +	</para>

---
~Randy

  parent reply	other threads:[~2008-05-23 18:37 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-22 19:22 [PATCH 0/1] UIO: Add a write() function to enable/disable interrupts Hans J. Koch
2008-05-22 19:26 ` [PATCH 1/1] " Hans J. Koch
2008-05-22 19:47   ` Tom Spink
2008-05-22 20:08     ` Hans J. Koch
2008-05-22 20:26       ` Tom Spink
2008-05-23  5:41         ` Uwe Kleine-König
2008-05-23  8:51           ` Hans J. Koch
2008-05-23 11:48           ` Tom Spink
2008-05-23 11:58             ` Uwe Kleine-König
2008-05-23 12:00               ` Tom Spink
2008-05-23 12:14                 ` Hans J. Koch
2008-05-23 12:20                   ` Tom Spink
2008-05-23 13:01                     ` Hans J. Koch
2008-05-23  5:55   ` Uwe Kleine-König
2008-05-23  8:44     ` Hans J. Koch
2008-05-23  9:10       ` Uwe Kleine-König
2008-05-23 10:03         ` Hans J. Koch
2008-05-23 10:56           ` Uwe Kleine-König
2008-05-23 11:55             ` Hans J. Koch
2008-05-23 12:03               ` Uwe Kleine-König
2008-05-23 18:36               ` Randy Dunlap [this message]
2008-05-23 22:49                 ` Hans-Jürgen Koch
2008-06-04  6:30                   ` Uwe Kleine-König
2008-06-04  7:05                     ` Thomas Gleixner
2008-05-23 20:44               ` Leon Woestenberg
2008-05-23 22:43                 ` Hans J. Koch
2008-05-24  0:02                   ` Leon Woestenberg
2008-05-24  4:43               ` Greg KH
2008-05-24 22:20                 ` Hans J. Koch
2008-05-24 22:22                 ` Thomas Gleixner
2008-05-24 22:34                   ` Tom Spink
2008-05-24 22:46                     ` Thomas Gleixner
2008-05-24 23:00                       ` Tom Spink
2008-05-27 17:55                   ` Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080523113650.2467f2ee.randy.dunlap@oracle.com \
    --to=randy.dunlap@oracle.com \
    --cc=Uwe.Kleine-Koenig@digi.com \
    --cc=gregkh@suse.de \
    --cc=hjk@linutronix.de \
    --cc=jan.altenberg@linutronix.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=magnus.damm@gmail.com \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox