Thread (85 messages) 85 messages, 6 authors, 2013-01-04

Re: [PATCH v9 06/10] ata: zpodd: check zero power ready status

From: Aaron Lu <hidden>
Date: 2012-11-20 08:59:45
Also in: linux-acpi, linux-pm, linux-scsi

On 11/20/2012 02:00 PM, Aaron Lu wrote:
On 11/19/2012 10:56 PM, Tejun Heo wrote:
quoted
I really think we need a way for (auto)pm and event polling to talk to
each other so that autopm can tell event poll to sod off while pm is
in effect.  Trying to solve this from inside libata doesn't seem
right.  The problem, again, seems to be figuring out which hardware
device maps to which block device.  Hmmm... Any good ideas?
A possible way of doing this is using pm qos.

We currently have 2 pm qos flags, NO_POWER_OFF and REMOTE_WAKEUP, and we
can add another one: NO_POLL, use it like the following:
1 Set the NO_POLL pm qos flag when the underlying driver thinks it is no
  longer necessary. In the ZPODD's case, it should be set when the
  device is to be powered off;
2 Clear it when poll is necessary again. In the ZPODD's case, when power
  is re-gained, this flag will be cleared.
3 In the disk_events_workfn, check if this flag is set, if so, simply
  return.
It should be, skip calling disk->fops->check_events, but still queue the
work for next time's poll.

-Aaron
The disk->driverfs_dev can be used to host the pm qos flag, ATA layer
can access it through ata_device->sdev->sdev_gendev.

Is this OK?

Thanks,
Aaron
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help