public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: linux-arm-kernel@lists.infradead.org
Cc: Pratheesh Gangadhar <pratheesh@ti.com>,
	davinci-linux-open-source@linux.davincidsp.com, gregkh@suse.de,
	amit.chatterjee@ti.com, hjk@linutronix.de,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2] PRUSS UIO driver support
Date: Fri, 18 Feb 2011 16:44:17 +0100	[thread overview]
Message-ID: <201102181644.17634.arnd@arndb.de> (raw)
In-Reply-To: <1298041530-26855-2-git-send-email-pratheesh@ti.com>

On Friday 18 February 2011, Pratheesh Gangadhar wrote:
> Signed-off-by: Pratheesh Gangadhar <pratheesh@ti.com>
> 
> This patch implements PRUSS (Programmable Real-time Unit Sub System)
> UIO driver which exports SOC resources associated with PRUSS like
> I/O, memories and IRQs to user space. PRUSS is dual 32-bit RISC
> processors which is efficient in performing embedded tasks that
> require manipulation of packed memory mapped data structures and
> efficient in handling system events that have tight real time
> constraints. This driver is currently supported on Texas Instruments
> DA850, AM18xx and OMAPL1-38 devices.
> For example, PRUSS runs firmware for real-time critical industrial
> communication data link layer and communicates with application stack
> running in user space via shared memory and IRQs.

Looks basically ok, but there are two limitations that I see that you
might consider fixing.

Oh, and you should put the Signed-off-by statement below the changelog,
not above it, but that has nothing to do with the code.

> +/*
> + * Host event IRQ numbers from PRUSS 	
> + * 3 PRU_EVTOUT0 PRUSS Interrupt
> + * 4 PRU_EVTOUT1 PRUSS Interrupt
> + * 5 PRU_EVTOUT2 PRUSS Interrupt
> + * 6 PRU_EVTOUT3 PRUSS Interrupt
> + * 7 PRU_EVTOUT4 PRUSS Interrupt
> + * 8 PRU_EVTOUT5 PRUSS Interrupt
> + * 9 PRU_EVTOUT6 PRUSS Interrupt
> + * 10 PRU_EVTOUT7 PRUSS Interrupt
> +*/
> +
> +#define MAX_PRUSS_EVTOUT_INSTANCE	(8)
> +
> +static struct clk *pruss_clk;
> +static struct uio_info *info[MAX_PRUSS_EVTOUT_INSTANCE];
> +static void *ddr_virt_addr;
> +static dma_addr_t ddr_phy_addr;

By making all of these static variables, you limit youself to
a single PRUSS instance in the system. It's generally better
to write device drivers in a way that makes it possible to
have multiple instances, e.g. by moving these four variables
into the 'priv' part of struct uio_info.

> +static irqreturn_t pruss_handler(int irq, struct uio_info *dev_info)
> +{
> +	return IRQ_HANDLED;
> +}

An empty interrupt handler is rather pointless. I guess you really
notify user space when the interrupt handler gets called, as this
is the main point of a UIO driver as far as I understand it.

	Arnd

  parent reply	other threads:[~2011-02-18 15:44 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-18 15:05 [PATCH 0/2] Add PRUSS UIO driver support Pratheesh Gangadhar
2011-02-18 15:05 ` [PATCH 1/2] " Pratheesh Gangadhar
2011-02-18 15:05   ` [PATCH 2/2] Defines DA850/AM18xx/OMAPL1-38 SOC resources used by PRUSS UIO driver Pratheesh Gangadhar
2011-02-21 17:10     ` Sergei Shtylyov
2011-02-22 11:38       ` TK, Pratheesh Gangadhar
2011-02-18 15:44   ` Arnd Bergmann [this message]
2011-02-18 16:15     ` [PATCH 1/2] PRUSS UIO driver support Thomas Gleixner
2011-02-18 16:31       ` Arnd Bergmann
2011-02-18 17:03         ` Thomas Gleixner
2011-02-19 15:40           ` TK, Pratheesh Gangadhar
2011-02-19 18:34             ` Hans J. Koch
2011-02-21  3:57               ` TK, Pratheesh Gangadhar
2011-02-21 19:33                 ` Hans J. Koch
2011-02-21 19:37                   ` Thomas Gleixner
2011-02-21 19:53                   ` Sergei Shtylyov
2011-02-22 12:06                     ` TK, Pratheesh Gangadhar
2011-02-19 10:19     ` TK, Pratheesh Gangadhar
2011-02-18 16:31   ` Hans J. Koch
2011-02-18 17:05     ` Greg KH
2011-02-19 16:06       ` TK, Pratheesh Gangadhar
2011-02-19 11:30     ` TK, Pratheesh Gangadhar
2011-02-18 16:51   ` Thomas Gleixner
2011-02-19 12:47     ` TK, Pratheesh Gangadhar
2011-02-19 13:26   ` Russell King - ARM Linux

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=201102181644.17634.arnd@arndb.de \
    --to=arnd@arndb.de \
    --cc=amit.chatterjee@ti.com \
    --cc=davinci-linux-open-source@linux.davincidsp.com \
    --cc=gregkh@suse.de \
    --cc=hjk@linutronix.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pratheesh@ti.com \
    /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