* mptsas suspend not working?
@ 2006-10-11 23:30 Darrick J. Wong
2007-01-11 21:25 ` [PATCH] mptbase: Reset ioc initiator after PCI resume Darrick J. Wong
0 siblings, 1 reply; 2+ messages in thread
From: Darrick J. Wong @ 2006-10-11 23:30 UTC (permalink / raw)
To: linux-scsi; +Cc: Eric Moore
Hi Eric, et. al.:
I tried to put a mptsas controller into D3 suspend state while preparing
to put a system into standby mode. When I went out of standby, I got
these errors in dmesg and all disk I/O ceased. Any idea what's going on
here? Kernel is 2.6.19-rc1, btw.
--D
[514076.973779] mptsas 0000:01:00.0: suspend
[514076.973786] mptbase: ioc0: pci-suspend: pdev=0xffff8100bb13c800, slot=0000:01:00.0, Entering operating state [D3]
[514077.361178] mptsas 0000:01:00.0: LATE suspend
[514129.109268] mptsas 0000:01:00.0: EARLY resume
[514129.388680] mptsas 0000:01:00.0: resuming
[514129.388684] mptbase: ioc0: pci-resume: pdev=0xffff8100bb13c800, slot=0000:01:00.0, Previous operating state [D3]
[514129.512441] mptbase: ioc0: pci-resume: ioc-state=0x1,doorbell=0x10000000
[514129.512443] mptbase: Initiating ioc0 recovery
[514132.364805] mptbase: ioc0: ERROR - Invalid IOC facts reply, msgLength=0 offsetof=6!
[514132.420725] mptbase: ioc0: ERROR - Invalid IOC facts reply, msgLength=0 offsetof=6!
[514132.476662] mptbase: ioc0: ERROR - Invalid IOC facts reply, msgLength=0 offsetof=6!
[514132.484649] mptbase: ioc0: pci-resume: Cannot recover, error:[fffffffe]
^ permalink raw reply [flat|nested] 2+ messages in thread
* [PATCH] mptbase: Reset ioc initiator after PCI resume
2006-10-11 23:30 mptsas suspend not working? Darrick J. Wong
@ 2007-01-11 21:25 ` Darrick J. Wong
0 siblings, 0 replies; 2+ messages in thread
From: Darrick J. Wong @ 2007-01-11 21:25 UTC (permalink / raw)
To: linux-scsi, Eric Moore
It appears that the LSI SAS 1064E chip needs to be reset after a
suspend/resume cycle before the driver attempts further communications with
the chip. This patch gets rid of these error messages:
mptbase: ioc0: ERROR - Invalid IOC facts reply, msgLength=0 offsetof=6!
after a system wakes up from sleep. I've also tested it on a 53c1030 chip
with no observable regressions.
Signed-off-by: Darrick J. Wong <djwong@us.ibm.com>
---
drivers/message/fusion/mptbase.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c
index b3f28a0..b228e4c 100644
--- a/drivers/message/fusion/mptbase.c
+++ b/drivers/message/fusion/mptbase.c
@@ -1545,6 +1545,12 @@ mpt_resume(struct pci_dev *pdev)
(mpt_GetIocState(ioc, 1) >> MPI_IOC_STATE_SHIFT),
CHIPREG_READ32(&ioc->chip->Doorbell));
+ /* put ioc into READY_STATE */
+ if(SendIocReset(ioc, MPI_FUNCTION_IOC_MESSAGE_UNIT_RESET, CAN_SLEEP)) {
+ printk(MYIOC_s_ERR_FMT
+ "pci-resume: IOC msg unit reset failed!\n", ioc->name);
+ }
+
/* bring ioc to operational state */
if ((recovery_state = mpt_do_ioc_recovery(ioc,
MPT_HOSTEVENT_IOC_RECOVER, CAN_SLEEP)) != 0) {
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2007-01-11 21:26 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-10-11 23:30 mptsas suspend not working? Darrick J. Wong
2007-01-11 21:25 ` [PATCH] mptbase: Reset ioc initiator after PCI resume Darrick J. Wong
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).