diff options
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.patch | 87 |
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); |