linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: anarsoul@gmail.com (Vasily Khoruzhick)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] s3c24xx-adc: resume convertions interrupted by going to suspend
Date: Fri, 23 Oct 2009 08:57:26 +0300	[thread overview]
Message-ID: <200910230857.35780.anarsoul@gmail.com> (raw)
In-Reply-To: <20091022190524.GB8096@trinity.fluff.org>

? ????????? ?? 22 ??????? 2009 22:05:24 ????? Ben Dooks ???????:

> > -	client->select_cb(client, 1);
> > +	if (!client->selected) {
> > +		client->selected = 1;
> > +		client->select_cb(client, 1);
> > +	}
> 
> You seem to have added something other than just a bugfix to this patch,
> you've changed the behaviour of the select callback. Is this really
> necessary for the function of the fix or something that dropped in by
> accident?

No, select callback behaviour is not changed, this check is necessary to avoid 
calling select callback when client was already selected (for example, after 
resuming from suspend)
 
> >  	writel(adc->prescale | S3C2410_ADCCON_PRSCEN,
> >  	       adc->regs + S3C2410_ADCCON);
> > +	/* Schedule task if there are clients pending. */
> > +	if (!list_empty(&adc_pending) || adc_dev->ts_pend) {
> > +		INIT_WORK(&resume_work, adc_resume_work);
> > +		if (!schedule_work(&resume_work))
> > +			dev_err(&pdev->dev,
> > +				"Failed to schedule adc_resume work!\n");
> > +	}
> 
> Is the work being used here to avoid trying to do things that may
> sleep? IIRC, none of the calls should need to sleep.

It's used to prevent calling callbacks (that may sleep) in atomic context 
(AFAIK resume handler is in atomic context)
 
> I was just wondering whether it would be better to abort any calls in
> progress before sleep and get the clients themselves to restart once
> they themselves have been resumed. We may end up with the case where the
> callbacks are being triggered before the client has been resumed.

Maybe, but sometimes it's tricky to abort waiting for callback in client 
driver. Anyway, resume_work will be called only after all drivers has been 
resumed, so situation when callbacks are being triggered before the client has 
been resumed is impossible.

Regards,
Vasily
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20091023/d2de15d2/attachment.sig>

      reply	other threads:[~2009-10-23  5:57 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-20 14:19 [PATCH] s3c24xx-adc: resume convertions interrupted by going to suspend Vasily Khoruzhick
2009-10-22 11:10 ` Vasily Khoruzhick
2009-10-22 11:46   ` Mark Brown
2009-10-22 18:59   ` Ben Dooks
2009-10-23  6:01     ` Vasily Khoruzhick
2009-10-24  6:59   ` Nelson Castillo
2009-10-29  7:49     ` Vasily Khoruzhick
2009-11-04 18:27       ` Vasily Khoruzhick
2009-10-22 19:05 ` Ben Dooks
2009-10-23  5:57   ` Vasily Khoruzhick [this message]

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=200910230857.35780.anarsoul@gmail.com \
    --to=anarsoul@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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;
as well as URLs for NNTP newsgroup(s).