summaryrefslogtreecommitdiff
path: root/target/linux/generic/backport-5.10/801-v5.11-0002-nvmem-qfprom-Don-t-touch-certain-fuses.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/backport-5.10/801-v5.11-0002-nvmem-qfprom-Don-t-touch-certain-fuses.patch')
-rw-r--r--target/linux/generic/backport-5.10/801-v5.11-0002-nvmem-qfprom-Don-t-touch-certain-fuses.patch87
1 files changed, 0 insertions, 87 deletions
diff --git a/target/linux/generic/backport-5.10/801-v5.11-0002-nvmem-qfprom-Don-t-touch-certain-fuses.patch b/target/linux/generic/backport-5.10/801-v5.11-0002-nvmem-qfprom-Don-t-touch-certain-fuses.patch
deleted file mode 100644
index ae499e7498..0000000000
--- a/target/linux/generic/backport-5.10/801-v5.11-0002-nvmem-qfprom-Don-t-touch-certain-fuses.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From 044ee8f85267599a9b0112911f5c16d4548b4289 Mon Sep 17 00:00:00 2001
-From: Evan Green <evgreen@chromium.org>
-Date: Fri, 27 Nov 2020 10:28:36 +0000
-Subject: [PATCH] nvmem: qfprom: Don't touch certain fuses
-
-Some fuse ranges are protected by the XPU such that the AP cannot
-access them. Attempting to do so causes an SError. Use the newly
-introduced per-soc compatible string, and the newly introduced
-nvmem keepout support to attach the set of regions
-we should not access.
-
-Reviewed-by: Douglas Anderson <dianders@chromium.org>
-Signed-off-by: Evan Green <evgreen@chromium.org>
-Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
-Link: https://lore.kernel.org/r/20201127102837.19366-5-srinivas.kandagatla@linaro.org
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/nvmem/qfprom.c | 30 ++++++++++++++++++++++++++++++
- 1 file changed, 30 insertions(+)
-
---- a/drivers/nvmem/qfprom.c
-+++ b/drivers/nvmem/qfprom.c
-@@ -12,6 +12,7 @@
- #include <linux/mod_devicetable.h>
- #include <linux/nvmem-provider.h>
- #include <linux/platform_device.h>
-+#include <linux/property.h>
- #include <linux/regulator/consumer.h>
-
- /* Blow timer clock frequency in Mhz */
-@@ -89,6 +90,28 @@ struct qfprom_touched_values {
- };
-
- /**
-+ * struct qfprom_soc_compatible_data - Data matched against the SoC
-+ * compatible string.
-+ *
-+ * @keepout: Array of keepout regions for this SoC.
-+ * @nkeepout: Number of elements in the keepout array.
-+ */
-+struct qfprom_soc_compatible_data {
-+ const struct nvmem_keepout *keepout;
-+ unsigned int nkeepout;
-+};
-+
-+static const struct nvmem_keepout sc7180_qfprom_keepout[] = {
-+ {.start = 0x128, .end = 0x148},
-+ {.start = 0x220, .end = 0x228}
-+};
-+
-+static const struct qfprom_soc_compatible_data sc7180_qfprom = {
-+ .keepout = sc7180_qfprom_keepout,
-+ .nkeepout = ARRAY_SIZE(sc7180_qfprom_keepout)
-+};
-+
-+/**
- * qfprom_disable_fuse_blowing() - Undo enabling of fuse blowing.
- * @priv: Our driver data.
- * @old: The data that was stashed from before fuse blowing.
-@@ -302,6 +325,7 @@ static int qfprom_probe(struct platform_
- struct device *dev = &pdev->dev;
- struct resource *res;
- struct nvmem_device *nvmem;
-+ const struct qfprom_soc_compatible_data *soc_data;
- struct qfprom_priv *priv;
- int ret;
-
-@@ -320,6 +344,11 @@ static int qfprom_probe(struct platform_
- econfig.priv = priv;
-
- priv->dev = dev;
-+ soc_data = device_get_match_data(dev);
-+ if (soc_data) {
-+ econfig.keepout = soc_data->keepout;
-+ econfig.nkeepout = soc_data->nkeepout;
-+ }
-
- /*
- * If more than one region is provided then the OS has the ability
-@@ -375,6 +404,7 @@ static int qfprom_probe(struct platform_
-
- static const struct of_device_id qfprom_of_match[] = {
- { .compatible = "qcom,qfprom",},
-+ { .compatible = "qcom,sc7180-qfprom", .data = &sc7180_qfprom},
- {/* sentinel */},
- };
- MODULE_DEVICE_TABLE(of, qfprom_of_match);