All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Boyd <sboyd@codeaurora.org>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-input@vger.kernel.org
Subject: Re: [PATCH v2 02/10] genirq: Add devm_request_any_context_irq()
Date: Tue, 14 Jan 2014 12:47:34 -0800	[thread overview]
Message-ID: <52D5A266.5000504@codeaurora.org> (raw)
In-Reply-To: <52CB2D29.3050107@codeaurora.org>

On 01/06/14 14:24, Stephen Boyd wrote:
> On 01/02/14 16:37, Stephen Boyd wrote:
>> Some drivers use request_any_context_irq() but there isn't a
>> devm_* function for it. Add one so that these drivers don't need
>> to explicitly free the irq on driver detach.
>>
>> Cc: Thomas Gleixner <tglx@linutronix.de>
>> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
> Thomas, can you please review this patch?

ping?

>> ---
>>  include/linux/interrupt.h |  5 +++++
>>  kernel/irq/devres.c       | 45 +++++++++++++++++++++++++++++++++++++++++++++
>>  2 files changed, 50 insertions(+)
>>
>> diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
>> index 0053adde0ed9..a2678d35b5a2 100644
>> --- a/include/linux/interrupt.h
>> +++ b/include/linux/interrupt.h
>> @@ -158,6 +158,11 @@ devm_request_irq(struct device *dev, unsigned int irq, irq_handler_t handler,
>>  					 devname, dev_id);
>>  }
>>  
>> +extern int __must_check
>> +devm_request_any_context_irq(struct device *dev, unsigned int irq,
>> +		 irq_handler_t handler, unsigned long irqflags,
>> +		 const char *devname, void *dev_id);
>> +
>>  extern void devm_free_irq(struct device *dev, unsigned int irq, void *dev_id);
>>  
>>  /*
>> diff --git a/kernel/irq/devres.c b/kernel/irq/devres.c
>> index bd8e788d71e0..1ef0606797c9 100644
>> --- a/kernel/irq/devres.c
>> +++ b/kernel/irq/devres.c
>> @@ -73,6 +73,51 @@ int devm_request_threaded_irq(struct device *dev, unsigned int irq,
>>  EXPORT_SYMBOL(devm_request_threaded_irq);
>>  
>>  /**
>> + *	devm_request_any_context_irq - allocate an interrupt line for a managed device
>> + *	@dev: device to request interrupt for
>> + *	@irq: Interrupt line to allocate
>> + *	@handler: Function to be called when the IRQ occurs
>> + *	@thread_fn: function to be called in a threaded interrupt context. NULL
>> + *		    for devices which handle everything in @handler
>> + *	@irqflags: Interrupt type flags
>> + *	@devname: An ascii name for the claiming device
>> + *	@dev_id: A cookie passed back to the handler function
>> + *
>> + *	Except for the extra @dev argument, this function takes the
>> + *	same arguments and performs the same function as
>> + *	request_any_context_irq().  IRQs requested with this function will be
>> + *	automatically freed on driver detach.
>> + *
>> + *	If an IRQ allocated with this function needs to be freed
>> + *	separately, devm_free_irq() must be used.
>> + */
>> +int devm_request_any_context_irq(struct device *dev, unsigned int irq,
>> +			      irq_handler_t handler, unsigned long irqflags,
>> +			      const char *devname, void *dev_id)
>> +{
>> +	struct irq_devres *dr;
>> +	int rc;
>> +
>> +	dr = devres_alloc(devm_irq_release, sizeof(struct irq_devres),
>> +			  GFP_KERNEL);
>> +	if (!dr)
>> +		return -ENOMEM;
>> +
>> +	rc = request_any_context_irq(irq, handler, irqflags, devname, dev_id);
>> +	if (rc) {
>> +		devres_free(dr);
>> +		return rc;
>> +	}
>> +
>> +	dr->irq = irq;
>> +	dr->dev_id = dev_id;
>> +	devres_add(dev, dr);
>> +
>> +	return 0;
>> +}
>> +EXPORT_SYMBOL(devm_request_any_context_irq);
>> +
>> +/**
>>   *	devm_free_irq - free an interrupt
>>   *	@dev: device to free interrupt for
>>   *	@irq: Interrupt line to free


-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation


WARNING: multiple messages have this Message-ID (diff)
From: sboyd@codeaurora.org (Stephen Boyd)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 02/10] genirq: Add devm_request_any_context_irq()
Date: Tue, 14 Jan 2014 12:47:34 -0800	[thread overview]
Message-ID: <52D5A266.5000504@codeaurora.org> (raw)
In-Reply-To: <52CB2D29.3050107@codeaurora.org>

On 01/06/14 14:24, Stephen Boyd wrote:
> On 01/02/14 16:37, Stephen Boyd wrote:
>> Some drivers use request_any_context_irq() but there isn't a
>> devm_* function for it. Add one so that these drivers don't need
>> to explicitly free the irq on driver detach.
>>
>> Cc: Thomas Gleixner <tglx@linutronix.de>
>> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
> Thomas, can you please review this patch?

ping?

>> ---
>>  include/linux/interrupt.h |  5 +++++
>>  kernel/irq/devres.c       | 45 +++++++++++++++++++++++++++++++++++++++++++++
>>  2 files changed, 50 insertions(+)
>>
>> diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
>> index 0053adde0ed9..a2678d35b5a2 100644
>> --- a/include/linux/interrupt.h
>> +++ b/include/linux/interrupt.h
>> @@ -158,6 +158,11 @@ devm_request_irq(struct device *dev, unsigned int irq, irq_handler_t handler,
>>  					 devname, dev_id);
>>  }
>>  
>> +extern int __must_check
>> +devm_request_any_context_irq(struct device *dev, unsigned int irq,
>> +		 irq_handler_t handler, unsigned long irqflags,
>> +		 const char *devname, void *dev_id);
>> +
>>  extern void devm_free_irq(struct device *dev, unsigned int irq, void *dev_id);
>>  
>>  /*
>> diff --git a/kernel/irq/devres.c b/kernel/irq/devres.c
>> index bd8e788d71e0..1ef0606797c9 100644
>> --- a/kernel/irq/devres.c
>> +++ b/kernel/irq/devres.c
>> @@ -73,6 +73,51 @@ int devm_request_threaded_irq(struct device *dev, unsigned int irq,
>>  EXPORT_SYMBOL(devm_request_threaded_irq);
>>  
>>  /**
>> + *	devm_request_any_context_irq - allocate an interrupt line for a managed device
>> + *	@dev: device to request interrupt for
>> + *	@irq: Interrupt line to allocate
>> + *	@handler: Function to be called when the IRQ occurs
>> + *	@thread_fn: function to be called in a threaded interrupt context. NULL
>> + *		    for devices which handle everything in @handler
>> + *	@irqflags: Interrupt type flags
>> + *	@devname: An ascii name for the claiming device
>> + *	@dev_id: A cookie passed back to the handler function
>> + *
>> + *	Except for the extra @dev argument, this function takes the
>> + *	same arguments and performs the same function as
>> + *	request_any_context_irq().  IRQs requested with this function will be
>> + *	automatically freed on driver detach.
>> + *
>> + *	If an IRQ allocated with this function needs to be freed
>> + *	separately, devm_free_irq() must be used.
>> + */
>> +int devm_request_any_context_irq(struct device *dev, unsigned int irq,
>> +			      irq_handler_t handler, unsigned long irqflags,
>> +			      const char *devname, void *dev_id)
>> +{
>> +	struct irq_devres *dr;
>> +	int rc;
>> +
>> +	dr = devres_alloc(devm_irq_release, sizeof(struct irq_devres),
>> +			  GFP_KERNEL);
>> +	if (!dr)
>> +		return -ENOMEM;
>> +
>> +	rc = request_any_context_irq(irq, handler, irqflags, devname, dev_id);
>> +	if (rc) {
>> +		devres_free(dr);
>> +		return rc;
>> +	}
>> +
>> +	dr->irq = irq;
>> +	dr->dev_id = dev_id;
>> +	devres_add(dev, dr);
>> +
>> +	return 0;
>> +}
>> +EXPORT_SYMBOL(devm_request_any_context_irq);
>> +
>> +/**
>>   *	devm_free_irq - free an interrupt
>>   *	@dev: device to free interrupt for
>>   *	@irq: Interrupt line to free


-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation

  reply	other threads:[~2014-01-14 20:47 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-03  0:37 [PATCH v2 00/10] Use regmap+devm+DT in pm8xxx input drivers Stephen Boyd
2014-01-03  0:37 ` Stephen Boyd
2014-01-03  0:37 ` [PATCH v2 01/10] Input: pmic8xxx-pwrkey - switch to using managed resources Stephen Boyd
2014-01-03  0:37   ` Stephen Boyd
2014-01-03  0:37 ` [PATCH v2 02/10] genirq: Add devm_request_any_context_irq() Stephen Boyd
2014-01-03  0:37   ` Stephen Boyd
2014-01-06 22:24   ` Stephen Boyd
2014-01-06 22:24     ` Stephen Boyd
2014-01-14 20:47     ` Stephen Boyd [this message]
2014-01-14 20:47       ` Stephen Boyd
2014-02-07 21:08       ` Stephen Boyd
2014-02-07 21:08         ` Stephen Boyd
2014-02-09 14:30   ` [tip:irq/core] " tip-bot for Stephen Boyd
2014-02-11  6:46     ` Stephen Boyd
2014-02-11  7:19       ` Ingo Molnar
2014-02-11 14:32       ` Thomas Gleixner
2014-02-11 16:39         ` Dmitry Torokhov
2014-02-18 22:11           ` Stephen Boyd
2014-01-03  0:37 ` [PATCH v2 03/10] Input: pmic8xxx-keypad - Switch to using managed resources Stephen Boyd
2014-01-03  0:37   ` Stephen Boyd
2014-01-03  0:37   ` Stephen Boyd
2014-01-03  0:37 ` [PATCH v2 04/10] Input: pmic8xxx-keypad - Migrate to regmap APIs Stephen Boyd
2014-01-03  0:37   ` Stephen Boyd
2014-01-03  0:37 ` [PATCH v2 05/10] Input: pmic8xxx-pwrkey - Migrate to DT Stephen Boyd
2014-01-03  0:37   ` Stephen Boyd
2014-01-03  0:37 ` [PATCH v2 06/10] Input: pm8xxx-vibrator - Add DT match table Stephen Boyd
2014-01-03  0:37   ` Stephen Boyd
2014-01-03  1:17   ` Dmitry Torokhov
2014-01-03  1:17     ` Dmitry Torokhov
2014-01-03  1:17     ` Dmitry Torokhov
2014-01-03  1:27     ` Stephen Boyd
2014-01-03  1:27       ` Stephen Boyd
2014-01-03  0:37 ` [PATCH v2 07/10] Input: pmic8xxx-keypad - Migrate to DT Stephen Boyd
2014-01-03  0:37   ` Stephen Boyd
2014-01-03  0:37 ` [PATCH v2 08/10] devicetree: bindings: Document PM8921/8058 keypads Stephen Boyd
2014-01-03  0:37   ` Stephen Boyd
2014-01-03  0:37   ` Stephen Boyd
2014-01-03  0:37 ` [PATCH v2 09/10] devicetree: bindings: Document PM8921/8058 power keys Stephen Boyd
2014-01-03  0:37   ` Stephen Boyd
2014-01-03  0:37   ` Stephen Boyd
2014-01-03  0:37 ` [PATCH v2 10/10] devicetree: bindings: Document PM8921/8058 vibrators Stephen Boyd
2014-01-03  0:37   ` Stephen Boyd
2014-01-03  0:37   ` Stephen Boyd

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=52D5A266.5000504@codeaurora.org \
    --to=sboyd@codeaurora.org \
    --cc=dmitry.torokhov@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --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 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.