Re: [PATCH] SCSI midlayer power management

Nigel Cunningham
2004-08-12T09:43:29Z

Hi.

On Thu, 2004-08-12 at 08:48, Nathan Bryant wrote:
> Just to speculate about what would be required for swsusp: you probably
> need to be using a SCSI LLD that properly implements pci suspend/resume,
> which implies you need to make sure the card's DMA state machine is
> flushed and idle before suspend completes. I've got a patch that fixes
> this much up for aic7xxx. And my other midlayer-level patch may also
> help... What happens during resume is interesting. I think maybe the
> problem is not what the drive is expecting, but what the card's state
> engine is expecting when it tries to map commands to command buffers in
> DMA space. Maybe you need to suspend the LLD from the context of the
> kernel that is doing the image load, and then resume from the context of
> the kernel that was just loaded.

I fully agree. That's what I'm doing at the moment; it's been a while
since I looked at swsusp though, so can't say anything about Pavel &
Patrick's implementation.

> >With my 'device tree' code, I'm getting the struct dev of the device
> >we're using via the struct block_device in the swap_info struct.
> >
> Right, though you also need to get the host adapter's struct device, if
> you're not already doing so, that is. Many IDE host drivers don't bother
> with suspend/resume callbacks at the pci_driver level, but SCSI needs
> callbacks because the BIOS usually doesn't handle things for us.

The host adapter isn't in the device's chain of parents?

Nigel

--
Nigel Cunningham
Christian Reformed Church of Tuggeranong
PO Box 1004, Tuggeranong, ACT 2901

Many today claim to be tolerant. But true tolerance can cope with others
being intolerant.