summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward A. James <eajames@us.ibm.com>2017-03-27 20:54:16 +0300
committerJoel Stanley <joel@jms.id.au>2017-03-28 07:47:52 +0300
commit6786cab8778ba96d84d89c7aec34374b5f4f1968 (patch)
treef52902597b17b987f627f7b6f07accc0db529f51
parente9ea27cca39262bebfbe207a345ed701a35b986b (diff)
downloadlinux-6786cab8778ba96d84d89c7aec34374b5f4f1968.tar.xz
drivers: fsi: scom: Remove scom reset before every putscom
Reset was causing PIB I2C master issues. Signed-off-by: Edward A. James <eajames@us.ibm.com> Acked-by: Christopher Bostic <cbostic@linux.vnet.ibm.com> Signed-off-by: Joel Stanley <joel@jms.id.au>
-rw-r--r--drivers/fsi/fsi-scom.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/fsi/fsi-scom.c b/drivers/fsi/fsi-scom.c
index 92164677da9f..57eab1d49bc7 100644
--- a/drivers/fsi/fsi-scom.c
+++ b/drivers/fsi/fsi-scom.c
@@ -55,12 +55,7 @@ static int put_scom(struct scom_device *scom_dev, uint64_t value,
uint32_t addr)
{
int rc;
- uint32_t data = SCOM_RESET_CMD;
-
- rc = fsi_device_write(scom_dev->fsi_dev, SCOM_RESET_REG, &data,
- sizeof(uint32_t));
- if (rc)
- return rc;
+ uint32_t data;
data = (value >> 32) & 0xffffffff;
rc = fsi_device_write(scom_dev->fsi_dev, SCOM_DATA0_REG, &data,
@@ -185,6 +180,7 @@ static const struct file_operations scom_fops = {
static int scom_probe(struct device *dev)
{
+ u32 data = SCOM_RESET_CMD;
struct fsi_device *fsi_dev = to_fsi_dev(dev);
struct scom_device *scom;
@@ -202,6 +198,8 @@ static int scom_probe(struct device *dev)
scom->mdev.parent = dev;
list_add(&scom->link, &scom_devices);
+ fsi_device_write(fsi_dev, SCOM_RESET_REG, &data, sizeof(u32));
+
return misc_register(&scom->mdev);
}