lede/target/linux/bcm27xx/patches-5.10/950-0087-firmware-raspberrypi-Add-backward-compatible-get_thr.patch
Beginner a9c5c7aa6b
kernel: bump 5.10 to 5.10.70 (#7976)
* kernel: bump 5.10 to 5.10.65

Manually refreshed:
generic/pending-5.10/800-bcma-get-SoC-device-struct-copy-its-DMA-params-to-th.patch
bcm27xx/patches-5.10/950-0053-firmware-bcm2835-Support-ARCH_BCM270x.patch
bcm27xx/patches-5.10/950-0087-firmware-raspberrypi-Add-backward-compatible-get_thr.patch

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>

* kernel: bump 5.10 to 5.10.66

No patches refreshed.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>

* kernel: bump 5.10 to 5.10.67

Deleted (upstreamed):
bcm27xx/patches-5.10/950-0312-vc4_hdmi-Set-HD_CTL_WHOLSMP-and-HD_CTL_CHALIGN_SET.patch

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>

* kernel: bump 5.10 to 5.10.68

Deleted (upstreamed):
generic/backport-5.10/610-v5.13-02-netfilter-Fix-fall-through-warnings-for-Clang.patch
generic/backport-5.10/792-v5.15-0001-net-dsa-b53-Fix-calculating-number-of-switch-ports.patch
generic/backport-5.10/792-v5.15-0002-net-dsa-b53-Set-correct-number-of-ports-in-the-DSA-s.patch
generic/backport-5.10/792-v5.15-0003-net-dsa-b53-Fix-IMP-port-setup-on-BCM5301x.patch
generic/backport-5.10/840-0001-PCI-of-Don-t-fail-devm_pci_alloc_host_bridge-on-miss.patch
generic/backport-5.10/840-0002-PCI-iproc-Fix-BCMA-probe-resource-handling.patch
generic/pending-5.10/498-mtd-mtdconcat-select-readwrite-function.patch

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>

* kernel: bump 5.10 to 5.10.69

Patches automatically refreshed.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>

* kernel: bump 5.10 to 5.10.70

Deleted (upstreamed):
bcm53xx/patches-5.10/181-Revert-USB-bcma-Add-a-check-for-devm_gpiod_get.patch

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>

Co-authored-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-10-04 22:25:52 +08:00

80 lines
2.3 KiB
Diff

From 1910584831fe065c50efc3c07b8ea08ff90e6f31 Mon Sep 17 00:00:00 2001
From: Stefan Wahren <stefan.wahren@i2se.com>
Date: Sat, 13 Oct 2018 13:31:21 +0200
Subject: [PATCH] firmware: raspberrypi: Add backward compatible
get_throttled
Avoid a hard userspace ABI change by adding a compatible get_throttled
sysfs entry. Its value is now feed by the GET_THROTTLED requests of the
new hwmon driver. The first access to get_throttled will generate
a warning.
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
---
drivers/firmware/raspberrypi.c | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
--- a/drivers/firmware/raspberrypi.c
+++ b/drivers/firmware/raspberrypi.c
@@ -29,6 +29,7 @@ struct rpi_firmware {
struct mbox_chan *chan; /* The property channel. */
struct completion c;
u32 enabled;
+ u32 get_throttled;
struct kref consumers;
};
@@ -177,6 +178,12 @@ int rpi_firmware_property(struct rpi_fir
kfree(data);
+ if ((tag == RPI_FIRMWARE_GET_THROTTLED) &&
+ memcmp(&fw->get_throttled, tag_data, sizeof(fw->get_throttled))) {
+ memcpy(&fw->get_throttled, tag_data, sizeof(fw->get_throttled));
+ sysfs_notify(&fw->cl.dev->kobj, NULL, "get_throttled");
+ }
+
return ret;
}
EXPORT_SYMBOL_GPL(rpi_firmware_property);
@@ -201,6 +208,27 @@ static int rpi_firmware_notify_reboot(st
return 0;
}
+static ssize_t get_throttled_show(struct device *dev,
+ struct device_attribute *attr, char *buf)
+{
+ struct rpi_firmware *fw = dev_get_drvdata(dev);
+
+ WARN_ONCE(1, "deprecated, use hwmon sysfs instead\n");
+
+ return sprintf(buf, "%x\n", fw->get_throttled);
+}
+
+static DEVICE_ATTR_RO(get_throttled);
+
+static struct attribute *rpi_firmware_dev_attrs[] = {
+ &dev_attr_get_throttled.attr,
+ NULL,
+};
+
+static const struct attribute_group rpi_firmware_dev_group = {
+ .attrs = rpi_firmware_dev_attrs,
+};
+
static void
rpi_firmware_print_firmware_revision(struct rpi_firmware *fw)
{
@@ -230,6 +258,11 @@ rpi_register_hwmon_driver(struct device
rpi_hwmon = platform_device_register_data(dev, "raspberrypi-hwmon",
-1, NULL, 0);
+
+ if (!IS_ERR_OR_NULL(rpi_hwmon)) {
+ if (devm_device_add_group(dev, &rpi_firmware_dev_group))
+ dev_err(dev, "Failed to create get_trottled attr\n");
+ }
}
static void rpi_register_clk_driver(struct device *dev)