Messages in this thread | | | Subject | Re: [PATCH] SCSI midlayer power management | From | Nigel Cunningham <> | Date | Thu, 12 Aug 2004 19:39:51 +1000 |
| |
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.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |