openwrt/target/linux/brcm2708/patches-4.14/950-0285-Reduce-log-spam-when-mailbox-call-not-implemented.patch

79 lines
2.5 KiB
Diff
Raw Normal View History

brcm2708: add kernel 4.14 support Patch generation process: - rebase rpi/rpi-4.14.y on v4.14.89 from linux-stable - git format-patch v4.14.89 Patches skipped during rebase: - lan78xx: Read MAC address from DT if present - lan78xx: Enable LEDs and auto-negotiation - Revert "softirq: Let ksoftirqd do its job" - sc16is7xx: Fix for multi-channel stall - lan78xx: Ignore DT MAC address if already valid - lan78xx: Simple patch to prevent some crashes - tcp_write_queue_purge clears all the SKBs in the write queue - Revert "lan78xx: Simple patch to prevent some crashes" - lan78xx: Connect phy early - Arm: mm: ftrace: Only set text back to ro after kernel has been marked ro - Revert "Revert "softirq: Let ksoftirqd do its job"" - ASoC: cs4265: SOC_SINGLE register value error fix - Revert "ASoC: cs4265: SOC_SINGLE register value error fix" - Revert "net: pskb_trim_rcsum() and CHECKSUM_COMPLETE are friends" - Revert "Revert "net: pskb_trim_rcsum() and CHECKSUM_COMPLETE are friends"" Patches dropped after rebase: - net: Add non-mainline source for rtl8192cu wlan - net: Fix rtl8192cu build errors on other platforms - brcm: adds support for BCM43341 wifi - brcmfmac: Mute expected startup 'errors' - ARM64: Fix build break for RTL8187/RTL8192CU wifi - ARM64: Enable RTL8187/RTL8192CU wifi in build config - This is the driver for Sony CXD2880 DVB-T2/T tuner + demodulator - brcmfmac: add CLM download support - brcmfmac: request_firmware_direct is quieter - Sets the BCDC priority to constant 0 - brcmfmac: Disable ARP offloading when promiscuous - brcmfmac: Avoid possible out-of-bounds read - brcmfmac: Delete redundant length check - net: rtl8192cu: Normalize indentation - net: rtl8192cu: Fix implicit fallthrough warnings - Revert "Sets the BCDC priority to constant 0" - media: cxd2880: Bump to match 4.18.y version - media: cxd2880-spi: Bump to match 4.18.y version - Revert "mm: alloc_contig: re-allow CMA to compact FS pages" - Revert "Revert "mm: alloc_contig: re-allow CMA to compact FS pages"" - cxd2880: CXD2880_SPI_DRV should select DVB_CXD2880 with MEDIA_SUBDRV_AUTOSELECT - 950-0421-HID-hid-bigbenff-driver-for-BigBen-Interactive-PS3OF.patch - 950-0453-Add-hid-bigbenff-to-list-of-have_special_driver-for-.patch Make I2C built-in instead of modular as in upstream defconfig; also the easiest way to get MFD_ARIZONA enabled, which is required by kmod-sound-soc-rpi-cirrus. Add missing compatible strings from 4.9/960-add-rasbperrypi-compatible.patch, using upstream names for compute modules. Add extra patch to enable the LEDs on lan78xx. Compile-tested: bcm2708, bcm2709, bcm2710 (with CONFIG_ALL_KMODS=y) Runtime-tested: bcm2708, bcm2710 Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2018-11-10 11:03:18 +00:00
From 785c44fa278b7dd7a4b96c64321dc43fa2220f7d Mon Sep 17 00:00:00 2001
From: James Hughes <james.hughes@raspberrypi.org>
Date: Fri, 27 Apr 2018 10:13:35 +0100
Subject: [PATCH 285/454] Reduce log spam when mailbox call not implemented
This changes the logging message when a mailbox call
fails to the dev_dbg level. In addition, it fixes the
low voltage detection logging code so that if the
mailbox call doies fails, it logs at error level
and flags so the call is no longer attempted.
Signed-off-by: James Hughes <james.hughes@raspberrypi.org>
---
drivers/firmware/raspberrypi.c | 23 ++++++++++++++++++-----
1 file changed, 18 insertions(+), 5 deletions(-)
--- a/drivers/firmware/raspberrypi.c
+++ b/drivers/firmware/raspberrypi.c
@@ -151,7 +151,7 @@ int rpi_firmware_property_list(struct rp
* error, if there were multiple tags in the request.
* But single-tag is the most common, so go with it.
*/
- dev_err(fw->cl.dev, "Request 0x%08x returned status 0x%08x\n",
+ dev_dbg(fw->cl.dev, "Request 0x%08x returned status 0x%08x\n",
buf[2], buf[1]);
ret = -EINVAL;
}
@@ -204,6 +204,7 @@ EXPORT_SYMBOL_GPL(rpi_firmware_property)
static int rpi_firmware_get_throttled(struct rpi_firmware *fw, u32 *value)
{
+ static int old_firmware;
static ktime_t old_timestamp;
static u32 old_value;
u32 new_sticky, old_sticky, new_uv, old_uv;
@@ -214,6 +215,9 @@ static int rpi_firmware_get_throttled(st
if (!fw)
return -EBUSY;
+ if (old_firmware)
+ return -EINVAL;
+
/*
* We can't run faster than the sticky shift (100ms) since we get
* flipping in the sticky bits that are cleared.
@@ -232,8 +236,17 @@ static int rpi_firmware_get_throttled(st
ret = rpi_firmware_property(fw, RPI_FIRMWARE_GET_THROTTLED,
value, sizeof(*value));
- if (ret)
+
+ if (ret) {
+ /* If the mailbox call fails once, then it will continue to
+ * fail in the future, so no point in continuing to call it
+ * Usual failure reason is older firmware
+ */
+ old_firmware = 1;
+ dev_err(fw->cl.dev, "Get Throttled mailbox call failed");
+
return ret;
+ }
new_sticky = *value >> 16;
old_sticky = old_value >> 16;
@@ -270,10 +283,10 @@ static void get_throttled_poll(struct wo
int ret;
ret = rpi_firmware_get_throttled(fw, &dummy);
- if (ret)
- pr_debug("%s: Failed to read value (%d)", __func__, ret);
- schedule_delayed_work(&fw->get_throttled_poll_work, 2 * HZ);
+ /* Only reschedule if we are getting valid responses */
+ if (!ret)
+ schedule_delayed_work(&fw->get_throttled_poll_work, 2 * HZ);
}
static ssize_t get_throttled_show(struct device *dev,