mirror of
https://github.com/archr-linux/Arch-R.git
synced 2026-03-31 14:41:55 -07:00
Merge pull request #4128 from jernejsk/linux55
Allwinner: Update to Linux 5.5
This commit is contained in:
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1164,213 +1164,6 @@ index 0afea59486c2..6e68ed831015 100644
|
||||
--
|
||||
2.24.1
|
||||
|
||||
From 7fdf6c6a0d0e032aac2aa4537a23af1e04a397ce Mon Sep 17 00:00:00 2001
|
||||
From: Marcel Holtmann <marcel@holtmann.org>
|
||||
Date: Fri, 22 Nov 2019 00:33:45 +0100
|
||||
Subject: [PATCH] Bluetooth: Allow combination of BDADDR_PROPERTY and
|
||||
INVALID_BDADDR quirks
|
||||
|
||||
When utilizing BDADDR_PROPERTY and INVALID_BDADDR quirks together it
|
||||
results in an unconfigured controller even if the bootloader provides
|
||||
a valid address. Fix this by allowing a bootloader provided address
|
||||
to mark the controller as configured.
|
||||
|
||||
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
|
||||
Tested-by: Andre Heider <a.heider@gmail.com>
|
||||
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
|
||||
---
|
||||
net/bluetooth/hci_core.c | 26 ++++++++++++++++++++++++--
|
||||
1 file changed, 24 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
|
||||
index 0cc9ce917222..9e19d5a3aac8 100644
|
||||
--- a/net/bluetooth/hci_core.c
|
||||
+++ b/net/bluetooth/hci_core.c
|
||||
@@ -1444,11 +1444,20 @@ static int hci_dev_do_open(struct hci_dev *hdev)
|
||||
|
||||
if (hci_dev_test_flag(hdev, HCI_SETUP) ||
|
||||
test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
|
||||
+ bool invalid_bdaddr;
|
||||
+
|
||||
hci_sock_dev_event(hdev, HCI_DEV_SETUP);
|
||||
|
||||
if (hdev->setup)
|
||||
ret = hdev->setup(hdev);
|
||||
|
||||
+ /* The transport driver can set the quirk to mark the
|
||||
+ * BD_ADDR invalid before creating the HCI device or in
|
||||
+ * its setup callback.
|
||||
+ */
|
||||
+ invalid_bdaddr = test_bit(HCI_QUIRK_INVALID_BDADDR,
|
||||
+ &hdev->quirks);
|
||||
+
|
||||
if (ret)
|
||||
goto setup_failed;
|
||||
|
||||
@@ -1457,20 +1466,33 @@ static int hci_dev_do_open(struct hci_dev *hdev)
|
||||
hci_dev_get_bd_addr_from_property(hdev);
|
||||
|
||||
if (bacmp(&hdev->public_addr, BDADDR_ANY) &&
|
||||
- hdev->set_bdaddr)
|
||||
+ hdev->set_bdaddr) {
|
||||
ret = hdev->set_bdaddr(hdev,
|
||||
&hdev->public_addr);
|
||||
+
|
||||
+ /* If setting of the BD_ADDR from the device
|
||||
+ * property succeeds, then treat the address
|
||||
+ * as valid even if the invalid BD_ADDR
|
||||
+ * quirk indicates otherwise.
|
||||
+ */
|
||||
+ if (!ret)
|
||||
+ invalid_bdaddr = false;
|
||||
+ }
|
||||
}
|
||||
|
||||
setup_failed:
|
||||
/* The transport driver can set these quirks before
|
||||
* creating the HCI device or in its setup callback.
|
||||
*
|
||||
+ * For the invalid BD_ADDR quirk it is possible that
|
||||
+ * it becomes a valid address if the bootloader does
|
||||
+ * provide it (see above).
|
||||
+ *
|
||||
* In case any of them is set, the controller has to
|
||||
* start up as unconfigured.
|
||||
*/
|
||||
if (test_bit(HCI_QUIRK_EXTERNAL_CONFIG, &hdev->quirks) ||
|
||||
- test_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks))
|
||||
+ invalid_bdaddr)
|
||||
hci_dev_set_flag(hdev, HCI_UNCONFIGURED);
|
||||
|
||||
/* For an unconfigured controller it is required to
|
||||
--
|
||||
2.24.1
|
||||
|
||||
From a4f95f31a9f38d9bb1fd313fcc2d0c0d48116ee3 Mon Sep 17 00:00:00 2001
|
||||
From: Andre Heider <a.heider@gmail.com>
|
||||
Date: Fri, 22 Nov 2019 13:31:42 +0100
|
||||
Subject: [PATCH] Bluetooth: btbcm: Use the BDADDR_PROPERTY quirk
|
||||
|
||||
Some devices ship with the controller default address, like the
|
||||
Orange Pi 3 (BCM4345C5).
|
||||
|
||||
Allow the bootloader to set a valid address through the device tree.
|
||||
|
||||
Signed-off-by: Andre Heider <a.heider@gmail.com>
|
||||
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
|
||||
---
|
||||
drivers/bluetooth/btbcm.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/drivers/bluetooth/btbcm.c b/drivers/bluetooth/btbcm.c
|
||||
index 689c7f36fea2..8e05706fe5d9 100644
|
||||
--- a/drivers/bluetooth/btbcm.c
|
||||
+++ b/drivers/bluetooth/btbcm.c
|
||||
@@ -444,6 +444,12 @@ int btbcm_finalize(struct hci_dev *hdev)
|
||||
|
||||
set_bit(HCI_QUIRK_STRICT_DUPLICATE_FILTER, &hdev->quirks);
|
||||
|
||||
+ /* Some devices ship with the controller default address.
|
||||
+ * Allow the bootloader to set a valid address through the
|
||||
+ * device tree.
|
||||
+ */
|
||||
+ set_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks);
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(btbcm_finalize);
|
||||
--
|
||||
2.24.1
|
||||
|
||||
From 675a6d467b432c8b4a0703ded02e6ef068e0c7e9 Mon Sep 17 00:00:00 2001
|
||||
From: Samuel Holland <samuel@sholland.org>
|
||||
Date: Sat, 28 Dec 2019 20:59:21 -0600
|
||||
Subject: [PATCH] clk: sunxi-ng: h6-r: Simplify R_APB1 clock definition
|
||||
|
||||
Like the APB0 clock on previous chips, this is a simple single-parent
|
||||
clock with an M divider. Use the equivalent helper macro instead of
|
||||
writing out the whole clock description manually.
|
||||
|
||||
Signed-off-by: Samuel Holland <samuel@sholland.org>
|
||||
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
---
|
||||
drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c | 12 +-----------
|
||||
1 file changed, 1 insertion(+), 11 deletions(-)
|
||||
|
||||
diff --git a/drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c b/drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c
|
||||
index 45a1ed3fe674..df9c01831699 100644
|
||||
--- a/drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c
|
||||
+++ b/drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c
|
||||
@@ -51,17 +51,7 @@ static struct ccu_div ar100_clk = {
|
||||
|
||||
static CLK_FIXED_FACTOR_HW(r_ahb_clk, "r-ahb", &ar100_clk.common.hw, 1, 1, 0);
|
||||
|
||||
-static struct ccu_div r_apb1_clk = {
|
||||
- .div = _SUNXI_CCU_DIV(0, 2),
|
||||
-
|
||||
- .common = {
|
||||
- .reg = 0x00c,
|
||||
- .hw.init = CLK_HW_INIT("r-apb1",
|
||||
- "r-ahb",
|
||||
- &ccu_div_ops,
|
||||
- 0),
|
||||
- },
|
||||
-};
|
||||
+static SUNXI_CCU_M(r_apb1_clk, "r-apb1", "r-ahb", 0x00c, 0, 2, 0);
|
||||
|
||||
static struct ccu_div r_apb2_clk = {
|
||||
.div = _SUNXI_CCU_DIV_FLAGS(8, 2, CLK_DIVIDER_POWER_OF_TWO),
|
||||
--
|
||||
2.24.1
|
||||
|
||||
From 0c545240aebc2ccb8f661dc54283a14d64659804 Mon Sep 17 00:00:00 2001
|
||||
From: Samuel Holland <samuel@sholland.org>
|
||||
Date: Sat, 28 Dec 2019 20:59:22 -0600
|
||||
Subject: [PATCH] clk: sunxi-ng: h6-r: Fix AR100/R_APB2 parent order
|
||||
|
||||
According to the BSP source code, both the AR100 and R_APB2 clocks have
|
||||
PLL_PERIPH0 as mux index 3, not 2 as it was on previous chips. The pre-
|
||||
divider used for PLL_PERIPH0 should be changed to index 3 to match.
|
||||
|
||||
This was verified by running a rough benchmark on the AR100 with various
|
||||
clock settings:
|
||||
|
||||
| mux | pre-divider | iterations/second | clock source |
|
||||
|=====|=============|===================|==============|
|
||||
| 0 | 0 | 19033 (stable) | osc24M |
|
||||
| 2 | 5 | 11466 (unstable) | iosc/osc16M |
|
||||
| 2 | 17 | 11422 (unstable) | iosc/osc16M |
|
||||
| 3 | 5 | 85338 (stable) | pll-periph0 |
|
||||
| 3 | 17 | 27167 (stable) | pll-periph0 |
|
||||
|
||||
The relative performance numbers all match up (with pll-periph0 running
|
||||
at its default 600MHz).
|
||||
|
||||
Signed-off-by: Samuel Holland <samuel@sholland.org>
|
||||
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
---
|
||||
drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c b/drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c
|
||||
index df9c01831699..50f8d1bc7046 100644
|
||||
--- a/drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c
|
||||
+++ b/drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c
|
||||
@@ -23,9 +23,9 @@
|
||||
*/
|
||||
|
||||
static const char * const ar100_r_apb2_parents[] = { "osc24M", "osc32k",
|
||||
- "pll-periph0", "iosc" };
|
||||
+ "iosc", "pll-periph0" };
|
||||
static const struct ccu_mux_var_prediv ar100_r_apb2_predivs[] = {
|
||||
- { .index = 2, .shift = 0, .width = 5 },
|
||||
+ { .index = 3, .shift = 0, .width = 5 },
|
||||
};
|
||||
|
||||
static struct ccu_div ar100_clk = {
|
||||
--
|
||||
2.24.1
|
||||
|
||||
From ec97faff743b398e21f74a54c81333f3390093aa Mon Sep 17 00:00:00 2001
|
||||
From: Icenowy Zheng <icenowy@aosc.io>
|
||||
Date: Fri, 3 Jan 2020 22:35:03 -0800
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user