Skip to contentSkip to conversation

mfd: qcom_rpm: write fw_version to CTRL_REG

PATCH Superseded Jonathan Marek 2 participants 4 messages Nov 14, 2018 – Nov 27, 2018

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 mfd: qcom_rpm: write fw_version to CTRL_REG

downstream driver does this, and it is required on msm8060 (hp touchpad)

---
 drivers/mfd/qcom_rpm.c | 4 ++++
 1 file changed, 4 insertions(+)
drivers/mfd/qcom_rpm.c +4 -0
index 52fafea06067..8d420c37b2a6 100644
@@ -638,6 +638,10 @@ static int qcom_rpm_probe(struct platform_device *pdev)
 		return -EFAULT;
 	}
 
+	writel(fw_version[0], RPM_CTRL_REG(rpm, 0));
+	writel(fw_version[1], RPM_CTRL_REG(rpm, 1));
+	writel(fw_version[2], RPM_CTRL_REG(rpm, 2));
+
 	dev_info(&pdev->dev, "RPM firmware %u.%u.%u\n", fw_version[0],
 							fw_version[1],
 							fw_version[2]);
Signature · 1 line
2.17.1
#1 lore raw
Quoted 1 line · Jonathan Marek

downstream driver does this, and it is required on msm8060 (hp touchpad)

You can leave the bit about the downstream driver.

Please expand your commit message. Why is it required? What happens if you don't have it? What problem does it solve? Exactly what is happening to the H/W?

Quoted 20 lines
---
 drivers/mfd/qcom_rpm.c | 4 ++++
 1 file changed, 4 insertions(+)
drivers/mfd/qcom_rpm.c +4 -0
index 52fafea06067..8d420c37b2a6 100644
@@ -638,6 +638,10 @@ static int qcom_rpm_probe(struct platform_device *pdev)
 		return -EFAULT;
 	}
 
+	writel(fw_version[0], RPM_CTRL_REG(rpm, 0));
+	writel(fw_version[1], RPM_CTRL_REG(rpm, 1));
+	writel(fw_version[2], RPM_CTRL_REG(rpm, 2));
+
 	dev_info(&pdev->dev, "RPM firmware %u.%u.%u\n", fw_version[0],
 							fw_version[1],
 							fw_version[2]);
Signature · 4 lines
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
#2 lore raw

PATCH v2 1/1 mfd: qcom_rpm: write fw_version to CTRL_REG

In reply to Jonathan Marek

This is required as part of the initialization sequence on certain SoCs.

If these registers are not initialized, the hardware can be unresponsive. This fixes the driver on apq8060 (HP TouchPad device).

---
v2: updated the commit message to be more descriptive

I think its important to note that the downstream driver does this for all versions, so it is safe to add this.

 drivers/mfd/qcom_rpm.c | 4 ++++
 1 file changed, 4 insertions(+)
drivers/mfd/qcom_rpm.c +4 -0
index 52fafea06067..8d420c37b2a6 100644
@@ -638,6 +638,10 @@ static int qcom_rpm_probe(struct platform_device *pdev)
 		return -EFAULT;
 	}
 
+	writel(fw_version[0], RPM_CTRL_REG(rpm, 0));
+	writel(fw_version[1], RPM_CTRL_REG(rpm, 1));
+	writel(fw_version[2], RPM_CTRL_REG(rpm, 2));
+
 	dev_info(&pdev->dev, "RPM firmware %u.%u.%u\n", fw_version[0],
 							fw_version[1],
 							fw_version[2]);
Signature · 1 line
2.17.1
Applied
#3 lore raw
Quoted 6 lines · Jonathan Marek

This is required as part of the initialization sequence on certain SoCs.

If these registers are not initialized, the hardware can be unresponsive. This fixes the driver on apq8060 (HP TouchPad device).

Quoted 8 lines

---
v2: updated the commit message to be more descriptive

I think its important to note that the downstream driver does this for all versions, so it is safe to add this.

 drivers/mfd/qcom_rpm.c | 4 ++++
 1 file changed, 4 insertions(+)

Applied, thanks.

Signature · 4 lines
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog