All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: Vignesh R <vigneshr@ti.com>
Cc: Jonathan Cameron <jic23@kernel.org>,
	Lee Jones <lee.jones@linaro.org>,
	linux-iio@vger.kernel.org, linux-omap@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-input@vger.kernel.org
Subject: Re: [PATCH 2/5] Input: ti_am335x_tsc: Mark TSC device as wakeup source
Date: Wed, 18 Jul 2018 17:06:42 +0000	[thread overview]
Message-ID: <20180718170642.2ebl5msdn6aahdas@penguin> (raw)
In-Reply-To: <20180630103318.25355-3-vigneshr@ti.com>

On Sat, Jun 30, 2018 at 04:03:15PM +0530, Vignesh R wrote:
> Instead of TSCADC MFD device, mark TSC as wakeup source and change all
> wakeup related PM calls to operate on TSC device.
> 
> Signed-off-by: Vignesh R <vigneshr@ti.com>

Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

> ---
>  drivers/input/touchscreen/ti_am335x_tsc.c | 16 +++++++++++-----
>  1 file changed, 11 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/input/touchscreen/ti_am335x_tsc.c b/drivers/input/touchscreen/ti_am335x_tsc.c
> index b86c1e5fbc11..a4f25a915ffc 100644
> --- a/drivers/input/touchscreen/ti_am335x_tsc.c
> +++ b/drivers/input/touchscreen/ti_am335x_tsc.c
> @@ -46,6 +46,7 @@ static const int config_pins[] = {
>  struct titsc {
>  	struct input_dev	*input;
>  	struct ti_tscadc_dev	*mfd_tscadc;
> +	struct device		*dev;
>  	unsigned int		irq;
>  	unsigned int		wires;
>  	unsigned int		x_plate_resistance;
> @@ -276,7 +277,7 @@ static irqreturn_t titsc_irq(int irq, void *dev)
>  	if (status & IRQENB_HW_PEN) {
>  		ts_dev->pen_down = true;
>  		irqclr |= IRQENB_HW_PEN;
> -		pm_stay_awake(ts_dev->mfd_tscadc->dev);
> +		pm_stay_awake(ts_dev->dev);
>  	}
>  
>  	if (status & IRQENB_PENUP) {
> @@ -286,7 +287,7 @@ static irqreturn_t titsc_irq(int irq, void *dev)
>  			input_report_key(input_dev, BTN_TOUCH, 0);
>  			input_report_abs(input_dev, ABS_PRESSURE, 0);
>  			input_sync(input_dev);
> -			pm_relax(ts_dev->mfd_tscadc->dev);
> +			pm_relax(ts_dev->dev);
>  		} else {
>  			ts_dev->pen_down = true;
>  		}
> @@ -422,6 +423,7 @@ static int titsc_probe(struct platform_device *pdev)
>  	ts_dev->mfd_tscadc = tscadc_dev;
>  	ts_dev->input = input_dev;
>  	ts_dev->irq = tscadc_dev->irq;
> +	ts_dev->dev = &pdev->dev;
>  
>  	err = titsc_parse_dt(pdev, ts_dev);
>  	if (err) {
> @@ -436,6 +438,8 @@ static int titsc_probe(struct platform_device *pdev)
>  		goto err_free_mem;
>  	}
>  
> +	device_init_wakeup(&pdev->dev, true);
> +
>  	titsc_writel(ts_dev, REG_IRQSTATUS, TSC_IRQENB_MASK);
>  	titsc_writel(ts_dev, REG_IRQENABLE, IRQENB_FIFO0THRES);
>  	titsc_writel(ts_dev, REG_IRQENABLE, IRQENB_EOS);
> @@ -467,6 +471,7 @@ static int titsc_probe(struct platform_device *pdev)
>  	return 0;
>  
>  err_free_irq:
> +	device_init_wakeup(&pdev->dev, false);
>  	free_irq(ts_dev->irq, ts_dev);
>  err_free_mem:
>  	input_free_device(input_dev);
> @@ -479,6 +484,7 @@ static int titsc_remove(struct platform_device *pdev)
>  	struct titsc *ts_dev = platform_get_drvdata(pdev);
>  	u32 steps;
>  
> +	device_init_wakeup(&pdev->dev, false);
>  	free_irq(ts_dev->irq, ts_dev);
>  
>  	/* total steps followed by the enable mask */
> @@ -499,7 +505,7 @@ static int __maybe_unused titsc_suspend(struct device *dev)
>  	unsigned int idle;
>  
>  	tscadc_dev = ti_tscadc_dev_get(to_platform_device(dev));
> -	if (device_may_wakeup(tscadc_dev->dev)) {
> +	if (device_may_wakeup(dev)) {
>  		titsc_writel(ts_dev, REG_IRQSTATUS, TSC_IRQENB_MASK);
>  		idle = titsc_readl(ts_dev, REG_IRQENABLE);
>  		titsc_writel(ts_dev, REG_IRQENABLE,
> @@ -515,11 +521,11 @@ static int __maybe_unused titsc_resume(struct device *dev)
>  	struct ti_tscadc_dev *tscadc_dev;
>  
>  	tscadc_dev = ti_tscadc_dev_get(to_platform_device(dev));
> -	if (device_may_wakeup(tscadc_dev->dev)) {
> +	if (device_may_wakeup(dev)) {
>  		titsc_writel(ts_dev, REG_IRQWAKEUP,
>  				0x00);
>  		titsc_writel(ts_dev, REG_IRQCLR, IRQENB_HW_PEN);
> -		pm_relax(ts_dev->mfd_tscadc->dev);
> +		pm_relax(dev);
>  	}
>  	titsc_step_config(ts_dev);
>  	titsc_writel(ts_dev, REG_FIFO0THR,
> -- 
> 2.18.0
> 

-- 
Dmitry

  reply	other threads:[~2018-07-18 17:06 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-30 10:33 [PATCH 0/5] ti_am335x_tsc: Enable wakeup capability Vignesh R
2018-06-30 10:33 ` Vignesh R
2018-06-30 10:33 ` [PATCH 1/5] mfd: ti_am335x_tscadc: Don't mark TSCADC MFD as wakeup capable Vignesh R
2018-06-30 10:33   ` Vignesh R
2018-07-04  7:38   ` Lee Jones
2018-10-09 10:29   ` Lee Jones
2018-06-30 10:33 ` [PATCH 2/5] Input: ti_am335x_tsc: Mark TSC device as wakeup source Vignesh R
2018-06-30 10:33   ` Vignesh R
2018-07-18 17:06   ` Dmitry Torokhov [this message]
2018-10-09 10:29   ` Lee Jones
2018-06-30 10:33 ` [PATCH 3/5] mfd: ti_am335x_tscadc: Keep ADC interface on if child is wakeup capable Vignesh R
2018-06-30 10:33   ` Vignesh R
2018-07-04  7:39   ` Lee Jones
2018-10-09 10:30   ` Lee Jones
2018-06-30 10:33 ` [PATCH 4/5] iio: adc: ti_am335x_adc: Disable ADC during suspend unconditionally Vignesh R
2018-06-30 10:33   ` Vignesh R
2018-06-30 15:18   ` Jonathan Cameron
2018-06-30 15:18     ` Jonathan Cameron
2018-07-04 14:40     ` Vignesh R
2018-10-09 10:30   ` Lee Jones
2018-06-30 10:33 ` [PATCH 5/5] Input: ti_am335x_tsc: Mark IRQ as wakeup capable Vignesh R
2018-06-30 10:33   ` Vignesh R
2018-07-18 17:06   ` Dmitry Torokhov
2018-10-09 10:30   ` Lee Jones
2018-07-17 11:45 ` [PATCH 0/5] ti_am335x_tsc: Enable wakeup capability Vignesh R
2018-07-17 11:45   ` Vignesh R
2018-07-18  7:47   ` Lee Jones
2018-07-18 17:09     ` Dmitry Torokhov
2018-07-21 18:09       ` Jonathan Cameron
2018-07-23  5:37       ` Lee Jones
2018-07-24 17:33         ` Vignesh R
2018-07-24 17:33           ` Vignesh R
2018-07-25  5:26           ` Lee Jones
2018-09-28  6:12             ` Vignesh R
2018-09-28  6:12               ` Vignesh R
2018-10-05  5:11               ` Vignesh R
2018-10-05  5:11                 ` Vignesh R
2018-10-09 10:33 ` [GIT PULL] Immutable branch between MFD, IIO and Input due for the v4.20 merge window Lee Jones

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=20180718170642.2ebl5msdn6aahdas@penguin \
    --to=dmitry.torokhov@gmail.com \
    --cc=jic23@kernel.org \
    --cc=lee.jones@linaro.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=vigneshr@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.