]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
fsi: aspeed: Reset master errors after CFAM reset
authorEddie James <eajames@linux.ibm.com>
Mon, 12 Jun 2023 19:56:50 +0000 (14:56 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 13 Sep 2023 07:48:30 +0000 (09:48 +0200)
[ Upstream commit 52300909f4670ac552bfeb33c1355b896eac8c06 ]

It has been observed that sometimes the FSI master will return all 0xffs
after a CFAM has been taken out of reset, without presenting any error.
Resetting the FSI master errors resolves the issue.

Fixes: 4a851d714ead ("fsi: aspeed: Support CFAM reset GPIO")
Signed-off-by: Eddie James <eajames@linux.ibm.com>
Link: https://lore.kernel.org/r/20230612195657.245125-8-eajames@linux.ibm.com
Signed-off-by: Joel Stanley <joel@jms.id.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/fsi/fsi-master-aspeed.c

index 7cec1772820d344ccc35c0bb24f1235be2a75b01..5eccab175e86bf68684ee0ec96a3d77e06197140 100644 (file)
@@ -454,6 +454,8 @@ static ssize_t cfam_reset_store(struct device *dev, struct device_attribute *att
        gpiod_set_value(aspeed->cfam_reset_gpio, 1);
        usleep_range(900, 1000);
        gpiod_set_value(aspeed->cfam_reset_gpio, 0);
+       usleep_range(900, 1000);
+       opb_writel(aspeed, ctrl_base + FSI_MRESP0, cpu_to_be32(FSI_MRESP_RST_ALL_MASTER));
        mutex_unlock(&aspeed->lock);
        trace_fsi_master_aspeed_cfam_reset(false);