Skip to contentSkip to conversation

drivers: fsi: scom: Remove scom reset before every putscom

PATCH Applied Eddie James 3 participants 3 messages Mar 27, 2017 – Mar 28, 2017 FSI

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 drivers: fsi: scom: Remove scom reset before every putscom

From: "Edward A. James" <[email protected]>

Reset was causing PIB I2C master issues.

---
 drivers/fsi/fsi-scom.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)
drivers/fsi/fsi-scom.c +4 -6
index 9216467..57eab1d4 100644
@@ -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);
 }
 
Signature · 1 line
1.8.3.1
#1 lore raw
Quoted 36 lines · Eddie James

From: "Edward A. James" <[email protected]>

Reset was causing PIB I2C master issues.

---
  drivers/fsi/fsi-scom.c | 10 ++++------
  1 file changed, 4 insertions(+), 6 deletions(-)
drivers/fsi/fsi-scom.c +2 -6
index 9216467..57eab1d4 100644
@@ -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;
 

drivers/fsi/fsi-scom.c static int scom_probe(struct device *dev) · line 205

Quoted 8 lines
drivers/fsi/fsi-scom.c +2 -0
@@ -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);
  }
 

Looks good to me.

Acked by Christopher Bostic <[email protected]>

Applied
#2 lore raw
Quoted 6 lines · Christopher Bostic
Quoted 3 lines · Eddie James

From: "Edward A. James" <[email protected]>

Quoted 8 lines
Quoted 3 lines

Reset was causing PIB I2C master issues.

Looks good to me.

Acked by Christopher Bostic <[email protected]>

For patchwork to recognise your review, it needs to be in the form "Acked-by: ". Otherwise it ignores it.

I fixed it up for you this time.

Applied to dev-4.7.

Cheers,

Joel