Re: [PATCH 2/2] ahci: imx: software workaround for phy reset issue in resume

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Apr 14, 2014 at 11:41 PM, Shawn Guo <shawn.guo@xxxxxxxxxxxxx> wrote:
> When suspending imx6q systems which have rootfs on SATA, the following
> error will likely be seen in resume.  The SATA link will fail to come
> up, and it results in an unusable system across the suspend/resume
> cycle.
>
> $ echo mem > /sys/power/state
> PM: Syncing filesystems ... done.
> PM: Preparing system for mem sleep
> Freezing user space processes ... (elapsed 0.002 seconds) done.
> Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done.
> PM: Entering mem sleep
> sd 0:0:0:0: [sda] Synchronizing SCSI cache
> sd 0:0:0:0: [sda] Stopping disk
> PM: suspend of devices complete after 61.914 msecs
> PM: suspend devices took 0.070 seconds
> PM: late suspend of devices complete after 4.906 msecs
> PM: noirq suspend of devices complete after 4.521 msecs
> Disabling non-boot CPUs ...
> CPU1: shutdown
> CPU2: shutdown
> CPU3: shutdown
> Enabling non-boot CPUs ...
> CPU1: Booted secondary processor
> CPU1 is up
> CPU2: Booted secondary processor
> CPU2 is up
> CPU3: Booted secondary processor
> CPU3 is up
> PM: noirq resume of devices complete after 10.486 msecs
> PM: early resume of devices complete after 4.679 msecs
> sd 0:0:0:0: [sda] Starting disk
> PM: resume of devices complete after 22.674 msecs
> PM: resume devices took 0.030 seconds
> PM: Finishing wakeup.
> Restarting tasks ... done.
> $ ata1: SATA link down (SStatus 1 SControl 300)
> ata1: SATA link down (SStatus 1 SControl 300)
> ata1: limiting SATA link speed to 1.5 Gbps
> ata1: SATA link down (SStatus 1 SControl 310)
> ata1.00: disabled
> ata1: exception Emask 0x10 SAct 0x0 SErr 0x4040000 action 0xe frozen t4
> ata1: irq_stat 0x00000040, connection status changed
> ata1: SError: { CommWake DevExch }
> ata1: hard resetting link
> sd 0:0:0:0: rejecting I/O to offline device
> sd 0:0:0:0: killing request
> sd 0:0:0:0: rejecting I/O to offline device
> Aborting journal on device sda2-8.
> sd 0:0:0:0: rejecting I/O to offline device
> EXT4-fs warning (device sda2): ext4_end_bio:317: I/O error writing to inode 132577 (offset 0 size 0 starting block 26235)
> Buffer I/O error on device sda2, logical block 10169
> ...
>
> It's caused by a silicon issue that SATA phy does not get reset by
> controller when coming back from LPM.  The patch adds a software
> workaround for this issue.  It enforces a software reset on SATA phy
> in imx_sata_enable() function, so that we can ensure SATA link will
> come up properly in both power-on and resume.
>
> The software reset is implemented by writing phy reset register through
> the phy control register bus interface.  Functions
> imx_phy_reg_[addressing|write|read]() implement this bus interface, while
> imx_sata_phy_reset() performs the actually reset operation.
>
> Signed-off-by: Richard Zhu <r65037@xxxxxxxxxxxxx>
> Signed-off-by: Shawn Guo <shawn.guo@xxxxxxxxxxxxx>


Tested-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>

This fixes the warning I reported at:
http://www.spinics.net/lists/arm-kernel/msg318745.html

Thanks,

Fabio Estevam
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux