All of lore.kernel.org
 help / color / mirror / Atom feed
From: Todd Poynor <toddpoynor@google.com>
To: Santosh Shilimkar <santosh.shilimkar@ti.com>
Cc: linux-omap@vger.kernel.org, Samuel Ortiz <sameo@linux.intel.com>
Subject: Re: [PATCH] mfd: twl6030: Setup irq_wake infrastructure.
Date: Thu, 15 Sep 2011 13:37:38 -0700	[thread overview]
Message-ID: <20110915203738.GA23208@google.com> (raw)
In-Reply-To: <1315324770-14530-1-git-send-email-santosh.shilimkar@ti.com>

On Tue, Sep 06, 2011 at 09:29:30PM +0530, Santosh Shilimkar wrote:
> TWL6030 devices have an interrupt line which is connected to
> application processor like OMAP. These devices support multiple features
> such as MMC card detect, USB cable detect, RTC interrupt, etc. that must
> wake up the application processor.
> 
> With this change, TWL6030 client drivers can make use of
> irq_wake() if the wakeup is desirable on it's irq events.
> 
> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
> cc: Samuel Ortiz <sameo@linux.intel.com>
> ---
>  drivers/mfd/twl6030-irq.c |    9 +++++++++
>  1 files changed, 9 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/mfd/twl6030-irq.c b/drivers/mfd/twl6030-irq.c
> index eb3b5f8..4477134 100644
> --- a/drivers/mfd/twl6030-irq.c
> +++ b/drivers/mfd/twl6030-irq.c
> @@ -187,6 +187,13 @@ static inline void activate_irq(int irq)
>  #endif
>  }
>  
> +int twl6030_irq_set_wake(struct irq_data *d, unsigned int on)
> +{
> +	int twl_irq = (int)irq_get_chip_data(d->irq);
> +
> +	return irq_set_irq_wake(twl_irq, on);

Note that when running with this previously, LOCKDEP warnings
were seen.  LOCKDEP explicitly sets all irq_desc locks as a single
lock-class, causing "possible recursive locking detected" when the TWL
RTC (or other) driver calls through enable_irq_wake to
twl6030_irq_set_wake, which recursively calls irq_set_irq_wake.
Although the irq_desc and lock are different, LOCKDEP treats these as
equivalent, presumably due to problems that can be incurred when
locking more than one irq_desc.

Currently we're running with twl6030_irq_set_wake keeping a count of
sub-module wakeirqs, and setting the wakeup status for the twl_irq
enabled or disabled as needed at suspend time.  Can send a patch if
wanted.

> +}
> +
>  /*----------------------------------------------------------------------*/
>  
>  static unsigned twl6030_irq_next;
> @@ -318,10 +325,12 @@ int twl6030_init_irq(int irq_num, unsigned irq_base, unsigned irq_end)
>  	twl6030_irq_chip = dummy_irq_chip;
>  	twl6030_irq_chip.name = "twl6030";
>  	twl6030_irq_chip.irq_set_type = NULL;
> +	twl6030_irq_chip.irq_set_wake = twl6030_irq_set_wake;
>  
>  	for (i = irq_base; i < irq_end; i++) {
>  		irq_set_chip_and_handler(i, &twl6030_irq_chip,
>  					 handle_simple_irq);
> +		irq_set_chip_data(i, (void *)irq_num);
>  		activate_irq(i);
>  	}
>  
> -- 
> 1.7.4.1
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2011-09-15 20:37 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-06 15:59 [PATCH] mfd: twl6030: Setup irq_wake infrastructure Santosh Shilimkar
2011-09-15 17:02 ` Samuel Ortiz
2011-09-15 17:26   ` Shilimkar, Santosh
2011-09-15 20:37 ` Todd Poynor [this message]
2011-09-16  4:37   ` Shilimkar, Santosh
2011-09-26  8:50   ` Samuel Ortiz
2011-09-26  9:31     ` Santosh Shilimkar
2011-09-26 22:58       ` Todd Poynor

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=20110915203738.GA23208@google.com \
    --to=toddpoynor@google.com \
    --cc=linux-omap@vger.kernel.org \
    --cc=sameo@linux.intel.com \
    --cc=santosh.shilimkar@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 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.