* 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.