From: "Hans J. Koch" <hjk@hansjkoch.de>
To: Greg Kroah-Hartman <gregkh@suse.de>
Cc: linux-kernel@vger.kernel.org, "Hans J. Koch" <hjk@hansjkoch.de>,
Michal Simek <monstr@monstr.eu>, Arnd Bergmann <arnd@arndb.de>,
John Williams <john.williams@petalogix.com>,
Grant Likely <grant.likely@secretlab.ca>,
Wolfram Sang <w.sang@pengutronix.de>
Subject: Re: [PATCH 09/11] uio: uio_pdrv_genirq: Add OF support
Date: Wed, 27 Jul 2011 10:17:48 +0200 [thread overview]
Message-ID: <20110727081748.GA18674@local> (raw)
In-Reply-To: <1311739521-11014-9-git-send-email-gregkh@suse.de>
On Tue, Jul 26, 2011 at 09:05:19PM -0700, Greg Kroah-Hartman wrote:
> From: "Hans J. Koch" <hjk@hansjkoch.de>
This should read From: Michal Simek <monstr@monstr.eu>
Thanks,
Hans
>
> Adding OF binding to genirq.
> Version string is setup to the "devicetree".
>
> Compatible string is not setup for now but you can add your
> custom compatible string to uio_of_genirq_match structure.
>
> For example with "vendor,device" compatible string:
> static const struct of_device_id __devinitconst uio_of_genirq_match[] = {
> { .compatible = "vendor,device", },
> { /* empty for now */ },
> };
>
> Signed-off-by: Michal Simek <monstr@monstr.eu>
> Signed-off-by: Hans J. Koch <hjk@hansjkoch.de>
> Reviewed-by: Wolfram Sang <w.sang@pengutronix.de>
> CC: Hans J. Koch <hjk@hansjkoch.de>
> CC: Arnd Bergmann <arnd@arndb.de>
> CC: John Williams <john.williams@petalogix.com>
> CC: Grant Likely <grant.likely@secretlab.ca>
> CC: Wolfram Sang <w.sang@pengutronix.de>
> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
> ---
> drivers/uio/uio_pdrv_genirq.c | 43 +++++++++++++++++++++++++++++++++++++++++
> 1 files changed, 43 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/uio/uio_pdrv_genirq.c b/drivers/uio/uio_pdrv_genirq.c
> index 0f424af..f8f81db 100644
> --- a/drivers/uio/uio_pdrv_genirq.c
> +++ b/drivers/uio/uio_pdrv_genirq.c
> @@ -23,6 +23,10 @@
> #include <linux/pm_runtime.h>
> #include <linux/slab.h>
>
> +#include <linux/of.h>
> +#include <linux/of_platform.h>
> +#include <linux/of_address.h>
> +
> #define DRIVER_NAME "uio_pdrv_genirq"
>
> struct uio_pdrv_genirq_platdata {
> @@ -97,6 +101,27 @@ static int uio_pdrv_genirq_probe(struct platform_device *pdev)
> int ret = -EINVAL;
> int i;
>
> + if (!uioinfo) {
> + int irq;
> +
> + /* alloc uioinfo for one device */
> + uioinfo = kzalloc(sizeof(*uioinfo), GFP_KERNEL);
> + if (!uioinfo) {
> + ret = -ENOMEM;
> + dev_err(&pdev->dev, "unable to kmalloc\n");
> + goto bad2;
> + }
> + uioinfo->name = pdev->dev.of_node->name;
> + uioinfo->version = "devicetree";
> +
> + /* Multiple IRQs are not supported */
> + irq = platform_get_irq(pdev, 0);
> + if (irq == -ENXIO)
> + uioinfo->irq = UIO_IRQ_NONE;
> + else
> + uioinfo->irq = irq;
> + }
> +
> if (!uioinfo || !uioinfo->name || !uioinfo->version) {
> dev_err(&pdev->dev, "missing platform_data\n");
> goto bad0;
> @@ -180,6 +205,10 @@ static int uio_pdrv_genirq_probe(struct platform_device *pdev)
> kfree(priv);
> pm_runtime_disable(&pdev->dev);
> bad0:
> + /* kfree uioinfo for OF */
> + if (pdev->dev.of_node)
> + kfree(uioinfo);
> + bad2:
> return ret;
> }
>
> @@ -193,6 +222,10 @@ static int uio_pdrv_genirq_remove(struct platform_device *pdev)
> priv->uioinfo->handler = NULL;
> priv->uioinfo->irqcontrol = NULL;
>
> + /* kfree uioinfo for OF */
> + if (pdev->dev.of_node)
> + kfree(priv->uioinfo);
> +
> kfree(priv);
> return 0;
> }
> @@ -219,6 +252,15 @@ static const struct dev_pm_ops uio_pdrv_genirq_dev_pm_ops = {
> .runtime_resume = uio_pdrv_genirq_runtime_nop,
> };
>
> +#ifdef CONFIG_OF
> +static const struct of_device_id __devinitconst uio_of_genirq_match[] = {
> + { /* empty for now */ },
> +};
> +MODULE_DEVICE_TABLE(of, uio_of_genirq_match);
> +#else
> +# define uio_of_genirq_match NULL
> +#endif
> +
> static struct platform_driver uio_pdrv_genirq = {
> .probe = uio_pdrv_genirq_probe,
> .remove = uio_pdrv_genirq_remove,
> @@ -226,6 +268,7 @@ static struct platform_driver uio_pdrv_genirq = {
> .name = DRIVER_NAME,
> .owner = THIS_MODULE,
> .pm = &uio_pdrv_genirq_dev_pm_ops,
> + .of_match_table = uio_of_genirq_match,
> },
> };
>
> --
> 1.7.6
>
>
next prev parent reply other threads:[~2011-07-27 9:04 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-26 4:57 [GIT PATCH] driver core merge for 3.1 Greg KH
2011-07-27 4:05 ` [PATCH 01/11] pti: pti_tty_install documentation mispelling Greg Kroah-Hartman
2011-07-27 4:05 ` [PATCH 02/11] DOCUMENTATION: Update overview.txt in Doc/driver-model Greg Kroah-Hartman
2011-07-27 4:05 ` [PATCH 03/11] DOCUMENTATION: Replace create_device() with device_create() Greg Kroah-Hartman
2011-07-27 4:05 ` [PATCH 04/11] driver-core: Kconfig grammar corrections in firmware configuration Greg Kroah-Hartman
2011-07-27 4:05 ` [PATCH 05/11] driver-core: modify FIRMWARE_IN_KERNEL help message Greg Kroah-Hartman
2011-07-27 4:05 ` [PATCH 06/11] driver core: add more help description for "path to uevent helper" Greg Kroah-Hartman
2011-07-27 4:05 ` [PATCH 07/11] Documentation/zh_CN: Fix messy code file email-clients.txt Greg Kroah-Hartman
2011-07-27 4:05 ` [PATCH 08/11] firmware: gsmi: remove sysfs entries when unload the module Greg Kroah-Hartman
2011-07-27 4:05 ` [PATCH 09/11] uio: uio_pdrv_genirq: Add OF support Greg Kroah-Hartman
2011-07-27 8:17 ` Hans J. Koch [this message]
2011-07-27 4:05 ` [PATCH 10/11] debugfs: add documentation for debugfs_create_x64 Greg Kroah-Hartman
2011-07-27 4:05 ` [PATCH 11/11] updated Documentation/ja_JP/SubmittingPatches Greg Kroah-Hartman
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=20110727081748.GA18674@local \
--to=hjk@hansjkoch.de \
--cc=arnd@arndb.de \
--cc=grant.likely@secretlab.ca \
--cc=gregkh@suse.de \
--cc=john.williams@petalogix.com \
--cc=linux-kernel@vger.kernel.org \
--cc=monstr@monstr.eu \
--cc=w.sang@pengutronix.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.