linux: update Amlogic Linux 5.17.y patches

This commit is contained in:
Christian Hewitt 2022-02-20 08:33:37 +00:00
parent 9390f49b64
commit 83f349a48b
93 changed files with 1488 additions and 226 deletions

View File

@ -16,8 +16,8 @@ PKG_PATCH_DIRS="${LINUX}"
case "${LINUX}" in
amlogic)
PKG_VERSION="754e0b0e35608ed5206d6a67a791563c631cec07" # 5.17-rc4
PKG_SHA256="5ac1f1703702e2ca3134d5fb8b2f082da221be17b5487ca441f0d1f0ffcdb775"
PKG_VERSION="f443e374ae131c168a065ea1748feac6b2e76613" # 5.17.0
PKG_SHA256="23baf1a7569ca1b828965ce8af07a412f2497a1530ad8307311edf01346d89b7"
PKG_URL="https://github.com/torvalds/linux/archive/${PKG_VERSION}.tar.gz"
PKG_SOURCE_NAME="linux-${LINUX}-${PKG_VERSION}.tar.gz"
;;

View File

@ -1,7 +1,7 @@
From 4290b6bedb5220144768bb5c695d236eb885483b Mon Sep 17 00:00:00 2001
From 4b6096bb3fd5bdc139a45e022e4a2380ea919dea Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Sat, 13 Apr 2019 05:41:51 +0000
Subject: [PATCH 01/79] HACK: set meson-gx cma pool to 896MB
Subject: [PATCH 01/90] HACK: set meson-gx cma pool to 896MB
This change sets the CMA pool to a larger 896MB! value for vdec use

View File

@ -1,7 +1,7 @@
From 82c334be5f5406c347711369167b2459f2d911d3 Mon Sep 17 00:00:00 2001
From 18586e3d94827f63903c4cd596a0a06134261c00 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Wed, 14 Aug 2019 19:58:14 +0000
Subject: [PATCH 02/79] HACK: set meson-g12 cma pool to 896MB
Subject: [PATCH 02/90] HACK: set meson-g12 cma pool to 896MB
This change sets the CMA pool to a larger 896MB! value for vdec use

View File

@ -1,7 +1,7 @@
From cdfa35a1f50bd5d68dafa26ae2782d9f6bf9da5d Mon Sep 17 00:00:00 2001
From 5c9793b46115c2fd774678de7ff5efd7d6ae8d72 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Sat, 13 Apr 2019 05:45:18 +0000
Subject: [PATCH 03/79] HACK: arm64: fix Kodi sysinfo CPU information
Subject: [PATCH 03/90] HACK: arm64: fix Kodi sysinfo CPU information
This allows the CPU information to show in the Kodi sysinfo screen, e.g.

View File

@ -1,7 +1,7 @@
From 497f3f78dca6ccc974eb98e959f38b778ff76ebd Mon Sep 17 00:00:00 2001
From 33f05e843b3afe9c0effb91eae76ab42c114ad88 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Wed, 5 Jan 2022 15:03:06 +0000
Subject: [PATCH 04/79] HACK: arm64: dts: meson: add LibreELEC device-tree
Subject: [PATCH 04/90] HACK: arm64: dts: meson: add LibreELEC device-tree
overlays for Amlogic
This commit implements a series of device-tree overlays used with LibreELEC

View File

@ -1,7 +1,7 @@
From e1296fa0cb4e30e9e14edfc99005fc1d2af9109d Mon Sep 17 00:00:00 2001
From e0252efa9190de31a2fc98eed28b273428a3fe36 Mon Sep 17 00:00:00 2001
From: Neil Armstrong <narmstrong@baylibre.com>
Date: Thu, 3 Nov 2016 15:29:23 +0100
Subject: [PATCH 05/79] HACK: arm64: meson: add Amlogic Meson GX PM Suspend
Subject: [PATCH 05/90] HACK: arm64: meson: add Amlogic Meson GX PM Suspend
The Amlogic Meson GX SoCs uses a non-standard argument to the
PSCI CPU_SUSPEND call to enter system suspend.

View File

@ -1,7 +1,7 @@
From 7e7c283e3315df28a9176b48752d390520519b05 Mon Sep 17 00:00:00 2001
From 9c2b8d82e36bf5ce932e6561d13adf5c7c5d367f Mon Sep 17 00:00:00 2001
From: Neil Armstrong <narmstrong@baylibre.com>
Date: Thu, 3 Nov 2016 15:29:25 +0100
Subject: [PATCH 06/79] HACK: arm64: dts: meson: add support for GX PM and
Subject: [PATCH 06/90] HACK: arm64: dts: meson: add support for GX PM and
Virtual RTC
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>

View File

@ -1,7 +1,7 @@
From da9fa4dff3dd9f2cee14ce7151e9ff33bf874343 Mon Sep 17 00:00:00 2001
From 5ff8dfecb282089107d1bd3da6b612c5294fe0cb Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Thu, 21 Jan 2021 01:35:36 +0000
Subject: [PATCH 07/79] HACK: arm64: dts: meson: add rtc/vrtc aliases to Khadas
Subject: [PATCH 07/90] HACK: arm64: dts: meson: add rtc/vrtc aliases to Khadas
VIM
Add aliases to ensure the vrtc time (which normally proves first) is /dev/rtc1

View File

@ -1,7 +1,7 @@
From 97bf74fe2a0008384d6c6bf6c7d39f86b641330d Mon Sep 17 00:00:00 2001
From 293a4281d04100f1a0ab8ced46a45fc557f6e130 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Sat, 6 Nov 2021 13:01:08 +0000
Subject: [PATCH 08/79] HACK: arm64: dts: meson: add rtc/vrtc aliases to Khadas
Subject: [PATCH 08/90] HACK: arm64: dts: meson: add rtc/vrtc aliases to Khadas
VIM2
Add aliases to ensure the vrtc time (which normally proves first) is /dev/rtc1

View File

@ -1,7 +1,7 @@
From fb0163661c5f464ef15cdc975bb0b17a0cc2013b Mon Sep 17 00:00:00 2001
From 2d353b2a41bc5f7848c9b57ccd62e13ffe36d1db Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Mon, 1 Feb 2021 19:27:40 +0000
Subject: [PATCH 09/79] HACK: arm64: dts: meson: add rtc/vrtc aliases to Minix
Subject: [PATCH 09/90] HACK: arm64: dts: meson: add rtc/vrtc aliases to Minix
NEO U9-H
Add node aliases to prevent meson-vrtc from claiming /dev/rtc0

View File

@ -1,7 +1,7 @@
From ea43b475999dd27ee0d6d3dfe4a93a110564ad9e Mon Sep 17 00:00:00 2001
From 790f6b3e8f35b76bb45f011046b680108f6cae87 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Mon, 3 Jan 2022 10:44:17 +0000
Subject: [PATCH 10/79] HACK: usb: hub: disable autosuspend for Genesys Logic
Subject: [PATCH 10/90] HACK: usb: hub: disable autosuspend for Genesys Logic
Hubs
Disable autosuspend in Genesys Logic hubs to allow USB devices on the

View File

@ -1,7 +1,7 @@
From a7e8bcc7ad1dabbb9ecb888ccd35b6f8805817f0 Mon Sep 17 00:00:00 2001
From 4d11a956070513a173dd9fd0d6e981918a6331e4 Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Wed, 15 Sep 2021 05:00:45 +0000
Subject: [PATCH 11/79] HACK: of: partial revert of fdt.c changes
Subject: [PATCH 11/90] HACK: of: partial revert of fdt.c changes
This resolves reports similar to the below which are present in dmesg
since Linux 5.10; which are also causing crashes in some distros:
@ -14,7 +14,7 @@ Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
1 file changed, 9 deletions(-)
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
index ad85ff6474ff..6af91acf0892 100644
index ec315b060cd5..15e9c0c2a2c6 100644
--- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c
@@ -481,15 +481,6 @@ static int __init early_init_dt_reserve_memory_arch(phys_addr_t base,

View File

@ -1,7 +1,7 @@
From 3d6a62db16253f725f40a78d948a79c8c6348ddd Mon Sep 17 00:00:00 2001
From 748860f58f3af7517e69b3e65de8739a47273980 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Wed, 24 Jun 2020 12:41:46 +0000
Subject: [PATCH 12/79] FROMGIT(5.18): arm64: dts: meson: add common SM1 ac2xx
Subject: [PATCH 12/90] FROMGIT(5.18): arm64: dts: meson: add common SM1 ac2xx
dtsi
Add a common dtsi for Android STB devices based on the Amlogic S905X3

View File

@ -1,7 +1,7 @@
From bc1a7ffff53ede718e540daf4c7a5fc7d9e4f33a Mon Sep 17 00:00:00 2001
From eafd64ed443d74fad6823c553cf0624b84b8231b Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Mon, 18 May 2020 23:23:40 +0000
Subject: [PATCH 13/79] FROMGIT(5.18): dt-bindings: arm: amlogic: add X96-AIR
Subject: [PATCH 13/90] FROMGIT(5.18): dt-bindings: arm: amlogic: add X96-AIR
bindings
Add board bindings for the Amediatech X96-AIR STB which ships with

View File

@ -1,7 +1,7 @@
From 153f02ce3bc582ce848aace67e312a091c40a101 Mon Sep 17 00:00:00 2001
From 3882e6ac1e446f11e4e9dcd1705e2d12cd716228 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Wed, 24 Jun 2020 15:04:10 +0000
Subject: [PATCH 14/79] FROMGIT(5.18): arm64: dts: meson: add initial
Subject: [PATCH 14/90] FROMGIT(5.18): arm64: dts: meson: add initial
device-trees for X96-AIR
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8

View File

@ -1,7 +1,7 @@
From 49fb9e342c99911bef56d0770aedab7a0a7bfaac Mon Sep 17 00:00:00 2001
From 774b970241ee9eadc76cb74ea595f2f4af518d20 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Tue, 30 Nov 2021 05:00:45 +0000
Subject: [PATCH 15/79] FROMGIT(5.18): dt-bindings: vendor-prefixes: add cyx
Subject: [PATCH 15/90] FROMGIT(5.18): dt-bindings: vendor-prefixes: add cyx
prefix
Shenzhen CYX Industrial Co., Ltd are a manufacturer of Android

View File

@ -1,7 +1,7 @@
From e9cdf2e81781158023f065f4a83a28ac2f7a1d47 Mon Sep 17 00:00:00 2001
From 954f940c73ec2027bacf090b3db04191727465d3 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Mon, 29 Jun 2020 15:54:45 +0000
Subject: [PATCH 16/79] FROMGIT(5.18): dt-bindings: arm: amlogic: add
Subject: [PATCH 16/90] FROMGIT(5.18): dt-bindings: arm: amlogic: add
A95XF3-AIR bindings
Add board bindings for the CYX A95XF3-AIR set-top box which ships

View File

@ -1,7 +1,7 @@
From 1c140988f539c40738320b11b54b8a1542025fb1 Mon Sep 17 00:00:00 2001
From 166e07854d6e7685110aa231a49e95a407f980ec Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Wed, 3 Jun 2020 18:03:22 +0000
Subject: [PATCH 17/79] FROMGIT(5.18): arm64: dts: meson: add initial
Subject: [PATCH 17/90] FROMGIT(5.18): arm64: dts: meson: add initial
device-trees for A95XF3-AIR
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8

View File

@ -1,7 +1,7 @@
From ecf2e316cd2ee056bfec79a4bee60e4bff2c4b37 Mon Sep 17 00:00:00 2001
From 59dbf5c8de6ada1dc326777c26fd70a3060f3eda Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Tue, 12 Jan 2021 17:24:07 +0000
Subject: [PATCH 18/79] FROMGIT(5.18): dt-bindings: vendor-prefixes: add
Subject: [PATCH 18/90] FROMGIT(5.18): dt-bindings: vendor-prefixes: add
haochuangyi prefix
Shenzhen Haochuangyi Technology Co.,Ltd are a manufacturer of Android

View File

@ -1,7 +1,7 @@
From 24420b9ed027ca126fee4983efab5d9524e26e00 Mon Sep 17 00:00:00 2001
From 7a79eaf84eff07d549699125745e77ded66a3f13 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Tue, 12 Jan 2021 17:25:33 +0000
Subject: [PATCH 19/79] FROMGIT(5.18): dt-bindings: arm: amlogic: add H96-Max
Subject: [PATCH 19/90] FROMGIT(5.18): dt-bindings: arm: amlogic: add H96-Max
bindings
Add the board binding for the Haochuangyi H96-Max STB device.

View File

@ -1,7 +1,7 @@
From b7f9a33840d2fe071c40ad5bcc76d08e9064f935 Mon Sep 17 00:00:00 2001
From bad362748bbc586a2315c96e1092e1913eca7e4c Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Tue, 12 Jan 2021 17:26:42 +0000
Subject: [PATCH 20/79] FROMGIT(5.18): arm64: dts: meson: add initial
Subject: [PATCH 20/90] FROMGIT(5.18): arm64: dts: meson: add initial
device-tree for H96-Max
The Haochuangyi H96-Max is based on the Amlogic S905X3 reference

View File

@ -1,7 +1,7 @@
From 252f42ad7f86eb216bd3210841ae19236391303e Mon Sep 17 00:00:00 2001
From ceaedabcb1099e70eb8de51854d0965f4b520229 Mon Sep 17 00:00:00 2001
From: Artem Lapkin <art@khadas.com>
Date: Thu, 16 Dec 2021 16:10:58 +0000
Subject: [PATCH 21/79] FROMGIT(5.18): arm64: dts: meson-sm1: add spdifin
Subject: [PATCH 21/90] FROMGIT(5.18): arm64: dts: meson-sm1: add spdifin
spdifout nodes
Add spdifin spdifout nodes for Amlogic SM1 SoCs.

View File

@ -1,7 +1,7 @@
From 58311e9ff339cadb745aa8a0a247d70228e4c8a2 Mon Sep 17 00:00:00 2001
From c0131d32a3e19398225b12b1bbf448b9a55bebcd Mon Sep 17 00:00:00 2001
From: Gary Bisson <gary.bisson@boundarydevices.com>
Date: Mon, 3 Jan 2022 16:51:30 +0000
Subject: [PATCH 22/79] FROMGIT(5.18): arm64: dts: meson-g12-common: add more
Subject: [PATCH 22/90] FROMGIT(5.18): arm64: dts: meson-g12-common: add more
pwm_f options
Add missing PWM_F pin muxing for GPIOA_11 and GPIOZ_12.

View File

@ -1,7 +1,7 @@
From 5ebb2c1be918277a5ae6fbc35a7f518622887b22 Mon Sep 17 00:00:00 2001
From 0715e9b005f0533feefb9a9df98904f22aecfe3a Mon Sep 17 00:00:00 2001
From: Gary Bisson <gary.bisson@boundarydevices.com>
Date: Mon, 3 Jan 2022 16:52:18 +0000
Subject: [PATCH 23/79] FROMGIT(5.18): arm64: dts: meson-g12-common: add
Subject: [PATCH 23/90] FROMGIT(5.18): arm64: dts: meson-g12-common: add
uart_ao_b pins muxing
- RX/TX signals can be mapped on 2 different pairs of pins so supporting

View File

@ -1,7 +1,7 @@
From 75b9c8828a1a9daa05876beb24b67b9098e22487 Mon Sep 17 00:00:00 2001
From d28404155d45c7cf821887799c21c8acdce16d8c Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Wed, 19 Jan 2022 02:29:42 +0000
Subject: [PATCH 41/79] FROMLIST(v2): dt-bindings: vendor-prefixes: add osmc
Subject: [PATCH 24/90] FROMGIT(5.18): dt-bindings: vendor-prefixes: add osmc
prefix
Open Source Media Centre (Sam Nazarko Trading Ltd.) are a manufacturer

View File

@ -1,7 +1,7 @@
From 9f243093662b21cd1f59c19744b2f546479f295c Mon Sep 17 00:00:00 2001
From 2a8105bc091a435effb5f9d5412328c564c93ac0 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Wed, 19 Jan 2022 02:40:20 +0000
Subject: [PATCH 42/79] FROMLIST(v2): dt-bindings: arm: amlogic: add Vero 4K+
Subject: [PATCH 25/90] FROMGIT(5.18): dt-bindings: arm: amlogic: add Vero 4K+
bindings
Add the board binding for the OSMC Vero 4K+ STB device

View File

@ -1,7 +1,7 @@
From 5ebb2556c99e6422301d613a0563aaa1a0842c47 Mon Sep 17 00:00:00 2001
From edc337ae1a104ef1111ed79d23426d7b77ce2e31 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Wed, 19 Jan 2022 04:06:17 +0000
Subject: [PATCH 43/79] FROMLIST(v2): arm64: dts: meson: add support for OSMC
Subject: [PATCH 26/90] FROMGIT(5.18): arm64: dts: meson: add support for OSMC
Vero 4K+
The OSMC Vero 4K+ device is based on the Amlogic S905D (P230)

View File

@ -1,44 +0,0 @@
From 1d5cf3dc57fb3712bba9857eadb25633918fb816 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koenig@pengutronix.de>
Date: Sat, 27 Nov 2021 07:29:18 +0000
Subject: [PATCH 26/79] FROMLIST(v1): pwm: meson: Drop always false check from
.request()
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
In .request() pwm_get_chip_data() returns NULL always since commit
e926b12c611c ("pwm: Clear chip_data in pwm_put()"). (And if it didn't
returning 0 would be wrong because then .request() wouldn't reenable
the clk which the other driver code depends on.)
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
drivers/pwm/pwm-meson.c | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/drivers/pwm/pwm-meson.c b/drivers/pwm/pwm-meson.c
index 3cf3bcf5ddfc..be3c806b57e4 100644
--- a/drivers/pwm/pwm-meson.c
+++ b/drivers/pwm/pwm-meson.c
@@ -120,16 +120,10 @@ static inline struct meson_pwm *to_meson_pwm(struct pwm_chip *chip)
static int meson_pwm_request(struct pwm_chip *chip, struct pwm_device *pwm)
{
struct meson_pwm *meson = to_meson_pwm(chip);
- struct meson_pwm_channel *channel;
+ struct meson_pwm_channel *channel = &meson->channels[pwm->hwpwm];
struct device *dev = chip->dev;
int err;
- channel = pwm_get_chip_data(pwm);
- if (channel)
- return 0;
-
- channel = &meson->channels[pwm->hwpwm];
-
if (channel->clk_parent) {
err = clk_set_parent(channel->clk, channel->clk_parent);
if (err < 0) {
--
2.17.1

View File

@ -1,7 +1,7 @@
From 7b58e8e6c6527fcfbfcf66ad361d3c808d9c7dc3 Mon Sep 17 00:00:00 2001
From 712edc341073c350a11658186609eafd292dbe8a Mon Sep 17 00:00:00 2001
From: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Date: Sun, 3 Oct 2021 05:35:48 +0000
Subject: [PATCH 24/79] FROMLIST(v1): ASoC: meson: aiu: Fix HDMI codec control
Subject: [PATCH 27/90] FROMLIST(v1): ASoC: meson: aiu: Fix HDMI codec control
selection
The HDMI controllers on Amlogic Meson SoCs which use the AIU

View File

@ -1,7 +1,7 @@
From 506b0130f9ede05cfb613c8534579af29b78561d Mon Sep 17 00:00:00 2001
From 4f925789d0713c48deb5067187c7e5acba397054 Mon Sep 17 00:00:00 2001
From: David Heidelberg <david@ixit.cz>
Date: Sat, 27 Nov 2021 07:23:35 +0000
Subject: [PATCH 25/79] FROMLIST(v1): arm64: dts: meson: make dts use gpio-fan
Subject: [PATCH 28/90] FROMLIST(v1): arm64: dts: meson: make dts use gpio-fan
matrix instead of array
No functional changes.

View File

@ -1,34 +1,44 @@
From 11dd0d3370f79c6cc9c585093b2df672b20fdc23 Mon Sep 17 00:00:00 2001
From 16be516cd74d7653bbc323aa263de191487519c4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koenig@pengutronix.de>
Date: Sat, 27 Nov 2021 07:32:18 +0000
Subject: [PATCH 29/79] FROMLIST(v1): pwm: meson: Drop always false check from
.apply()
Date: Sat, 27 Nov 2021 07:29:18 +0000
Subject: [PATCH 29/90] FROMLIST(v1): pwm: meson: Drop always false check from
.request()
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The pwm core only calls the apply callback with a valid state pointer,
so don't repeat this check already done in the core.
In .request() pwm_get_chip_data() returns NULL always since commit
e926b12c611c ("pwm: Clear chip_data in pwm_put()"). (And if it didn't
returning 0 would be wrong because then .request() wouldn't reenable
the clk which the other driver code depends on.)
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
drivers/pwm/pwm-meson.c | 3 ---
1 file changed, 3 deletions(-)
drivers/pwm/pwm-meson.c | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/drivers/pwm/pwm-meson.c b/drivers/pwm/pwm-meson.c
index 908e314c7c00..57112f438c6d 100644
index 3cf3bcf5ddfc..be3c806b57e4 100644
--- a/drivers/pwm/pwm-meson.c
+++ b/drivers/pwm/pwm-meson.c
@@ -265,9 +265,6 @@ static int meson_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
struct meson_pwm_channel *channel = &meson->channels[pwm->hwpwm];
int err = 0;
@@ -120,16 +120,10 @@ static inline struct meson_pwm *to_meson_pwm(struct pwm_chip *chip)
static int meson_pwm_request(struct pwm_chip *chip, struct pwm_device *pwm)
{
struct meson_pwm *meson = to_meson_pwm(chip);
- struct meson_pwm_channel *channel;
+ struct meson_pwm_channel *channel = &meson->channels[pwm->hwpwm];
struct device *dev = chip->dev;
int err;
- if (!state)
- return -EINVAL;
- channel = pwm_get_chip_data(pwm);
- if (channel)
- return 0;
-
if (!state->enabled) {
if (state->polarity == PWM_POLARITY_INVERSED) {
/*
- channel = &meson->channels[pwm->hwpwm];
-
if (channel->clk_parent) {
err = clk_set_parent(channel->clk, channel->clk_parent);
if (err < 0) {
--
2.17.1

View File

@ -1,7 +1,7 @@
From d2007d6bcc68b53a741eea6778a5eb2f6fdf9270 Mon Sep 17 00:00:00 2001
From 3abd335c1765a2aa6ecfc504574a27d02fc66d07 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koenig@pengutronix.de>
Date: Sat, 27 Nov 2021 07:30:03 +0000
Subject: [PATCH 27/79] FROMLIST(v1): pwm: meson: Drop useless check for
Subject: [PATCH 30/90] FROMLIST(v1): pwm: meson: Drop useless check for
channel data being NULL
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8

View File

@ -1,7 +1,7 @@
From 84d35c23528d61ef3b3be3de535aa91880cb8485 Mon Sep 17 00:00:00 2001
From af595b31dff2af751a53aae0b83de9569c75b238 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koenig@pengutronix.de>
Date: Sat, 27 Nov 2021 07:31:03 +0000
Subject: [PATCH 28/79] FROMLIST(v1): pwm: meson: Simplify duplicated
Subject: [PATCH 31/90] FROMLIST(v1): pwm: meson: Simplify duplicated
per-channel tracking
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8

View File

@ -0,0 +1,34 @@
From 5d2b0c8f838a3a7dbf761e5b7fb1fb08f4df5160 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koenig@pengutronix.de>
Date: Sat, 27 Nov 2021 07:32:18 +0000
Subject: [PATCH 32/90] FROMLIST(v1): pwm: meson: Drop always false check from
.apply()
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The pwm core only calls the apply callback with a valid state pointer,
so don't repeat this check already done in the core.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
drivers/pwm/pwm-meson.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/pwm/pwm-meson.c b/drivers/pwm/pwm-meson.c
index 908e314c7c00..57112f438c6d 100644
--- a/drivers/pwm/pwm-meson.c
+++ b/drivers/pwm/pwm-meson.c
@@ -265,9 +265,6 @@ static int meson_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
struct meson_pwm_channel *channel = &meson->channels[pwm->hwpwm];
int err = 0;
- if (!state)
- return -EINVAL;
-
if (!state->enabled) {
if (state->polarity == PWM_POLARITY_INVERSED) {
/*
--
2.17.1

View File

@ -1,7 +1,7 @@
From 4131d0c32f37f848963477482ee32f28deefd06b Mon Sep 17 00:00:00 2001
From 44db0a603f48f39f5bb38ffd1b173d7c7036357b Mon Sep 17 00:00:00 2001
From: Amjad Ouled-Ameur <aouledameur@baylibre.com>
Date: Mon, 6 Dec 2021 04:25:36 +0000
Subject: [PATCH 30/79] FROMLIST(v4): phy: amlogic: phy-meson-gxl-usb2: fix
Subject: [PATCH 33/90] FROMLIST(v4): phy: amlogic: phy-meson-gxl-usb2: fix
shared reset controller use
Use reset_control_rearm() call if an error occurs in case

View File

@ -1,7 +1,7 @@
From e746227557414e6ca37c1379e4c4c8d1e0ebe06e Mon Sep 17 00:00:00 2001
From 2639df70052725a687b1bd5c2db17af72a02cf12 Mon Sep 17 00:00:00 2001
From: Amjad Ouled-Ameur <aouledameur@baylibre.com>
Date: Mon, 6 Dec 2021 04:26:22 +0000
Subject: [PATCH 31/79] FROMLIST(v4): phy: amlogic: meson8b-usb2: Use
Subject: [PATCH 34/90] FROMLIST(v4): phy: amlogic: meson8b-usb2: Use
dev_err_probe()
Use the existing dev_err_probe() helper instead of open-coding the same

View File

@ -1,7 +1,7 @@
From 51a05050b15b4985ecf9491eec1f6af7764d611b Mon Sep 17 00:00:00 2001
From eef11c571c63f09b64850e1c6994388822a869eb Mon Sep 17 00:00:00 2001
From: Amjad Ouled-Ameur <aouledameur@baylibre.com>
Date: Mon, 6 Dec 2021 04:27:13 +0000
Subject: [PATCH 32/79] FROMLIST(v4): phy: amlogic: meson8b-usb2: fix shared
Subject: [PATCH 35/90] FROMLIST(v4): phy: amlogic: meson8b-usb2: fix shared
reset control use
Use reset_control_rearm() call if an error occurs in case

View File

@ -1,7 +1,7 @@
From 95e3fbc0849f895a43321954af29b77f1c38b33d Mon Sep 17 00:00:00 2001
From c2a9afdc271f1dc8e145de930972d4e2a6d04b31 Mon Sep 17 00:00:00 2001
From: Chen-Yu Tsai <wenst@chromium.org>
Date: Wed, 15 Dec 2021 03:51:07 +0000
Subject: [PATCH 33/79] FROMLIST(v2): media: v4l2-mem2mem: Apply
Subject: [PATCH 36/90] FROMLIST(v2): media: v4l2-mem2mem: Apply
DST_QUEUE_OFF_BASE on MMAP buffers across ioctls
DST_QUEUE_OFF_BASE is applied to offset/mem_offset on MMAP capture buffers

View File

@ -1,7 +1,7 @@
From 1a25371cdc291eb3beabac1af4537cbbd4ead9c6 Mon Sep 17 00:00:00 2001
From 185e327de6600377e45b601ec62082a6db7e3109 Mon Sep 17 00:00:00 2001
From: Gary Bisson <gary.bisson@boundarydevices.com>
Date: Mon, 3 Jan 2022 16:49:28 +0000
Subject: [PATCH 34/79] FROMLIST(v1): pinctrl: meson-g12a: add more pwm_f
Subject: [PATCH 37/90] FROMLIST(v1): pinctrl: meson-g12a: add more pwm_f
options
Add missing PWM_F pin muxing for GPIOA_11 and GPIOZ_12.

View File

@ -1,7 +1,7 @@
From 64c232731c937df1e049c317ffccb416d90a8cc3 Mon Sep 17 00:00:00 2001
From b83c8168c58ccb96f92a4b6ecf1b8b7483fcced3 Mon Sep 17 00:00:00 2001
From: Sergey Shtylyov <s.shtylyov@omp.ru>
Date: Fri, 24 Dec 2021 06:09:57 +0000
Subject: [PATCH 35/79] FROMLIST(v1): mmc: meson-gx: fix deferred probing
Subject: [PATCH 38/90] FROMLIST(v1): mmc: meson-gx: fix deferred probing
The driver overrides the error codes and IRQ0 returned by platform_get_irq()
to -EINVAL, so if it returns -EPROBE_DEFER, the driver will fail the probe
@ -16,10 +16,10 @@ Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c
index 8f36536cb1b6..c765653ee4d0 100644
index 58ab9d90bc8b..1a11a4bf4d4f 100644
--- a/drivers/mmc/host/meson-gx-mmc.c
+++ b/drivers/mmc/host/meson-gx-mmc.c
@@ -1182,8 +1182,8 @@ static int meson_mmc_probe(struct platform_device *pdev)
@@ -1183,8 +1183,8 @@ static int meson_mmc_probe(struct platform_device *pdev)
}
host->irq = platform_get_irq(pdev, 0);

View File

@ -1,7 +1,7 @@
From 02cfd807efd2a9dee300070c9d1f0cf13b822682 Mon Sep 17 00:00:00 2001
From 3484913b5b5322e81b543b53ee4f892941ae5137 Mon Sep 17 00:00:00 2001
From: Vyacheslav Bocharov <adeep@lexina.in>
Date: Sat, 15 Jan 2022 08:27:14 +0000
Subject: [PATCH 36/79] FROMLIST(v3): Bluetooth: btrtl: Add support for
Subject: [PATCH 39/90] FROMLIST(v3): Bluetooth: btrtl: Add support for
RTL8822C hci_ver 0x08
Add detection of RTL8822CS controller with hci_ver = 0x08

View File

@ -1,7 +1,7 @@
From 2ca35b29a7b5bc5b70e19da8e83a2be1abc1ef27 Mon Sep 17 00:00:00 2001
From 1cee0a34ddbccebf5c09744b170803bb5946ca3d Mon Sep 17 00:00:00 2001
From: Vyacheslav Bocharov <adeep@lexina.in>
Date: Wed, 19 Jan 2022 06:30:48 +0000
Subject: [PATCH 37/79] FROMLIST(v3): Bluetooth: hci_h5: Add power reset via
Subject: [PATCH 40/90] FROMLIST(v3): Bluetooth: hci_h5: Add power reset via
gpio in h5_btrtl_open
Add power reset via enable-gpios in h5_btrtl_open function.

View File

@ -1,7 +1,7 @@
From e4893d4507c02d6f266a970d35b35345d320e6e3 Mon Sep 17 00:00:00 2001
From 65dd459b9384d6d1acc157d4ef563642693007c9 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Thu, 10 Feb 2022 09:53:37 +0000
Subject: [PATCH 38/79] FROMLIST(v2): arm64: dts: meson: remove CPU opps below
Subject: [PATCH 41/90] FROMLIST(v2): arm64: dts: meson: remove CPU opps below
1GHz for G12B boards
Amlogic G12B devices experience CPU stalls and random board wedges when

View File

@ -1,7 +1,7 @@
From 1556f3e8267a9453acb236832850ef9ab3e2d31c Mon Sep 17 00:00:00 2001
From 5a7b646a062c993fb5a2f355a7568e020dcff3aa Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Thu, 10 Feb 2022 10:01:05 +0000
Subject: [PATCH 39/79] FROMLIST(v2): arm64: dts: meson: remove CPU opps below
Subject: [PATCH 42/90] FROMLIST(v2): arm64: dts: meson: remove CPU opps below
1GHz for SM1 boards
Amlogic SM1 devices experience CPU stalls and random board wedges when

View File

@ -1,7 +1,7 @@
From d6d99aaaf02294a9f07f8e480c12885cd8671f6c Mon Sep 17 00:00:00 2001
From fa0fc8498a811c85bace6138f60b7d09f07d18b8 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Thu, 25 Nov 2021 11:31:43 +0000
Subject: [PATCH 40/79] FROMLIST(v1): drivers: meson: vdec: add VP9 support to
Subject: [PATCH 43/90] FROMLIST(v1): drivers: meson: vdec: add VP9 support to
GXM
VP9 support for GXM appears to have been missed from the original

View File

@ -0,0 +1,209 @@
From f46afa0e4a37894ee46e023c193f40179635ddca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20F=C3=A4rber?= <afaerber@suse.de>
Date: Sun, 20 Feb 2022 08:21:13 +0000
Subject: [PATCH 44/90] FROMLIST(v2): spi: gpio: Implement LSB First bitbang
support
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Add support for slave DT property spi-lsb-first, i.e., SPI_LSB_FIRST mode.
Duplicate the inline helpers bitbang_txrx_be_cpha{0,1} as LE versions.
Conditionally call them from all the spi-gpio txrx_word callbacks.
Some alternatives to this implementation approach were discussed back
then [0], but eventually it was considered reasonable.
[0] https://lore.kernel.org/linux-arm-kernel/20191212033952.5967-8-afaerber@suse.de/
Signed-off-by: Andreas Färber <afaerber@suse.de>
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
drivers/spi/spi-bitbang-txrx.h | 66 ++++++++++++++++++++++++++++++++++
drivers/spi/spi-gpio.c | 42 +++++++++++++++++-----
2 files changed, 99 insertions(+), 9 deletions(-)
diff --git a/drivers/spi/spi-bitbang-txrx.h b/drivers/spi/spi-bitbang-txrx.h
index ae61d72c7d28..267342dfa738 100644
--- a/drivers/spi/spi-bitbang-txrx.h
+++ b/drivers/spi/spi-bitbang-txrx.h
@@ -41,6 +41,8 @@
* chips need ... there may be several reasons you'd need to tweak timings
* in these routines, not just to make it faster or slower to match a
* particular CPU clock rate.
+ *
+ * ToDo: Maybe the bitrev macros can be used to improve the code?
*/
static inline u32
@@ -106,3 +108,67 @@ bitbang_txrx_be_cpha1(struct spi_device *spi,
}
return word;
}
+
+static inline u32
+bitbang_txrx_le_cpha0(struct spi_device *spi,
+ unsigned int nsecs, unsigned int cpol, unsigned int flags,
+ u32 word, u8 bits)
+{
+ /* if (cpol == 0) this is SPI_MODE_0; else this is SPI_MODE_2 */
+
+ u32 oldbit = !(word & 1);
+ /* clock starts at inactive polarity */
+ for (; likely(bits); bits--) {
+
+ /* setup LSB (to slave) on trailing edge */
+ if ((flags & SPI_MASTER_NO_TX) == 0) {
+ if ((word & 1) != oldbit) {
+ setmosi(spi, word & 1);
+ oldbit = word & 1;
+ }
+ }
+ spidelay(nsecs); /* T(setup) */
+
+ setsck(spi, !cpol);
+ spidelay(nsecs);
+
+ /* sample LSB (from slave) on leading edge */
+ word >>= 1;
+ if ((flags & SPI_MASTER_NO_RX) == 0)
+ word |= getmiso(spi) << (bits - 1);
+ setsck(spi, cpol);
+ }
+ return word;
+}
+
+static inline u32
+bitbang_txrx_le_cpha1(struct spi_device *spi,
+ unsigned int nsecs, unsigned int cpol, unsigned int flags,
+ u32 word, u8 bits)
+{
+ /* if (cpol == 0) this is SPI_MODE_1; else this is SPI_MODE_3 */
+
+ u32 oldbit = !(word & 1);
+ /* clock starts at inactive polarity */
+ for (; likely(bits); bits--) {
+
+ /* setup LSB (to slave) on leading edge */
+ setsck(spi, !cpol);
+ if ((flags & SPI_MASTER_NO_TX) == 0) {
+ if ((word & 1) != oldbit) {
+ setmosi(spi, word & 1);
+ oldbit = word & 1;
+ }
+ }
+ spidelay(nsecs); /* T(setup) */
+
+ setsck(spi, cpol);
+ spidelay(nsecs);
+
+ /* sample LSB (from slave) on trailing edge */
+ word >>= 1;
+ if ((flags & SPI_MASTER_NO_RX) == 0)
+ word |= getmiso(spi) << (bits - 1);
+ }
+ return word;
+}
diff --git a/drivers/spi/spi-gpio.c b/drivers/spi/spi-gpio.c
index 0584f4d2fde2..4b12c4964a66 100644
--- a/drivers/spi/spi-gpio.c
+++ b/drivers/spi/spi-gpio.c
@@ -135,25 +135,37 @@ static inline int getmiso(const struct spi_device *spi)
static u32 spi_gpio_txrx_word_mode0(struct spi_device *spi,
unsigned nsecs, u32 word, u8 bits, unsigned flags)
{
- return bitbang_txrx_be_cpha0(spi, nsecs, 0, flags, word, bits);
+ if (unlikely(spi->mode & SPI_LSB_FIRST))
+ return bitbang_txrx_le_cpha0(spi, nsecs, 0, flags, word, bits);
+ else
+ return bitbang_txrx_be_cpha0(spi, nsecs, 0, flags, word, bits);
}
static u32 spi_gpio_txrx_word_mode1(struct spi_device *spi,
unsigned nsecs, u32 word, u8 bits, unsigned flags)
{
- return bitbang_txrx_be_cpha1(spi, nsecs, 0, flags, word, bits);
+ if (unlikely(spi->mode & SPI_LSB_FIRST))
+ return bitbang_txrx_le_cpha1(spi, nsecs, 0, flags, word, bits);
+ else
+ return bitbang_txrx_be_cpha1(spi, nsecs, 0, flags, word, bits);
}
static u32 spi_gpio_txrx_word_mode2(struct spi_device *spi,
unsigned nsecs, u32 word, u8 bits, unsigned flags)
{
- return bitbang_txrx_be_cpha0(spi, nsecs, 1, flags, word, bits);
+ if (unlikely(spi->mode & SPI_LSB_FIRST))
+ return bitbang_txrx_le_cpha0(spi, nsecs, 1, flags, word, bits);
+ else
+ return bitbang_txrx_be_cpha0(spi, nsecs, 1, flags, word, bits);
}
static u32 spi_gpio_txrx_word_mode3(struct spi_device *spi,
unsigned nsecs, u32 word, u8 bits, unsigned flags)
{
- return bitbang_txrx_be_cpha1(spi, nsecs, 1, flags, word, bits);
+ if (unlikely(spi->mode & SPI_LSB_FIRST))
+ return bitbang_txrx_le_cpha1(spi, nsecs, 1, flags, word, bits);
+ else
+ return bitbang_txrx_be_cpha1(spi, nsecs, 1, flags, word, bits);
}
/*
@@ -170,28 +182,40 @@ static u32 spi_gpio_spec_txrx_word_mode0(struct spi_device *spi,
unsigned nsecs, u32 word, u8 bits, unsigned flags)
{
flags = spi->master->flags;
- return bitbang_txrx_be_cpha0(spi, nsecs, 0, flags, word, bits);
+ if (unlikely(spi->mode & SPI_LSB_FIRST))
+ return bitbang_txrx_le_cpha0(spi, nsecs, 0, flags, word, bits);
+ else
+ return bitbang_txrx_be_cpha0(spi, nsecs, 0, flags, word, bits);
}
static u32 spi_gpio_spec_txrx_word_mode1(struct spi_device *spi,
unsigned nsecs, u32 word, u8 bits, unsigned flags)
{
flags = spi->master->flags;
- return bitbang_txrx_be_cpha1(spi, nsecs, 0, flags, word, bits);
+ if (unlikely(spi->mode & SPI_LSB_FIRST))
+ return bitbang_txrx_le_cpha1(spi, nsecs, 0, flags, word, bits);
+ else
+ return bitbang_txrx_be_cpha1(spi, nsecs, 0, flags, word, bits);
}
static u32 spi_gpio_spec_txrx_word_mode2(struct spi_device *spi,
unsigned nsecs, u32 word, u8 bits, unsigned flags)
{
flags = spi->master->flags;
- return bitbang_txrx_be_cpha0(spi, nsecs, 1, flags, word, bits);
+ if (unlikely(spi->mode & SPI_LSB_FIRST))
+ return bitbang_txrx_le_cpha0(spi, nsecs, 1, flags, word, bits);
+ else
+ return bitbang_txrx_be_cpha0(spi, nsecs, 1, flags, word, bits);
}
static u32 spi_gpio_spec_txrx_word_mode3(struct spi_device *spi,
unsigned nsecs, u32 word, u8 bits, unsigned flags)
{
flags = spi->master->flags;
- return bitbang_txrx_be_cpha1(spi, nsecs, 1, flags, word, bits);
+ if (unlikely(spi->mode & SPI_LSB_FIRST))
+ return bitbang_txrx_le_cpha1(spi, nsecs, 1, flags, word, bits);
+ else
+ return bitbang_txrx_be_cpha1(spi, nsecs, 1, flags, word, bits);
}
/*----------------------------------------------------------------------*/
@@ -378,7 +402,7 @@ static int spi_gpio_probe(struct platform_device *pdev)
master->bits_per_word_mask = SPI_BPW_RANGE_MASK(1, 32);
master->mode_bits = SPI_3WIRE | SPI_3WIRE_HIZ | SPI_CPHA | SPI_CPOL |
- SPI_CS_HIGH;
+ SPI_CS_HIGH | SPI_LSB_FIRST;
if (!spi_gpio->mosi) {
/* HW configuration without MOSI pin
*
--
2.17.1

View File

@ -0,0 +1,34 @@
From 3082b84d01e67e9db1b2933d40657f68ce5ce220 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20F=C3=A4rber?= <afaerber@suse.de>
Date: Sun, 20 Feb 2022 08:23:12 +0000
Subject: [PATCH 45/90] FROMLIST(v2): dt-bindings: vendor-prefixes: Add Titan
Micro Electronics
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Assign vendor prefix "titanmec", matching their domain name.
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Andreas Färber <afaerber@suse.de>
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
index c1fa95a505e9..c42803885092 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
@@ -1225,6 +1225,8 @@ patternProperties:
description: Texas Instruments
"^tianma,.*":
description: Tianma Micro-electronics Co., Ltd.
+ "^titanmec,.*":
+ description: Shenzhen Titan Micro Electronics Co., Ltd.
"^tlm,.*":
description: Trusted Logic Mobility
"^tmt,.*":
--
2.17.1

View File

@ -0,0 +1,113 @@
From 3a0ec72e1299b63d6a296bf659c4630ed5cdbe6e Mon Sep 17 00:00:00 2001
From: Heiner Kallweit <hkallweit1@gmail.com>
Date: Sun, 20 Feb 2022 08:24:47 +0000
Subject: [PATCH 46/90] FROMLIST(v2): dt-bindings: auxdisplay: Add Titan Micro
Electronics TM1628
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Add a YAML schema binding for TM1628 auxdisplay
(7/11-segment LED) controller.
This patch is partially based on previous RFC work from
Andreas Färber <afaerber@suse.de>.
Signed-off-by: Andreas Färber <afaerber@suse.de>
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
.../bindings/auxdisplay/titanmec,tm1628.yaml | 82 +++++++++++++++++++
1 file changed, 82 insertions(+)
create mode 100644 Documentation/devicetree/bindings/auxdisplay/titanmec,tm1628.yaml
diff --git a/Documentation/devicetree/bindings/auxdisplay/titanmec,tm1628.yaml b/Documentation/devicetree/bindings/auxdisplay/titanmec,tm1628.yaml
new file mode 100644
index 000000000000..d9cbbc950aab
--- /dev/null
+++ b/Documentation/devicetree/bindings/auxdisplay/titanmec,tm1628.yaml
@@ -0,0 +1,82 @@
+# SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/leds/titanmec,tm1628.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Titan Micro Electronics TM1628 LED controller
+
+properties:
+ compatible:
+ enum:
+ - titanmec,tm1628
+
+ reg:
+ maxItems: 1
+
+ grid:
+ description:
+ Mapping of display digit position to grid number.
+ This implicitly defines the display size.
+ $ref: /schemas/types.yaml#/definitions/uint8-array
+ minItems: 1
+ maxItems: 7
+
+ segment-mapping:
+ description:
+ Mapping of 7 segment display segments A-G to bit numbers 1-12.
+ $ref: /schemas/types.yaml#/definitions/uint8-array
+ minItems: 7
+ maxItems: 7
+
+ "#address-cells":
+ const: 2
+
+ "#size-cells":
+ const: 0
+
+required:
+ - compatible
+ - reg
+
+patternProperties:
+ "^.*@[1-7],([1-9]|1[0-6])$":
+ type: object
+ description: |
+ Properties for a single LED.
+
+ properties:
+ reg:
+ description: |
+ 1-based grid number, followed by 1-based segment bit number.
+ maxItems: 1
+
+ required:
+ - reg
+
+examples:
+ - |
+ #include <dt-bindings/leds/common.h>
+
+ spi {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ led-controller@0 {
+ compatible = "titanmec,tm1628";
+ reg = <0>;
+ spi-3-wire;
+ spi-lsb-first;
+ spi-max-frequency = <500000>;
+ grid = /bits/ 8 <4 3 2 1>;
+ segment-mapping = /bits/ 8 <4 5 6 1 2 3 7>;
+ #address-cells = <2>;
+ #size-cells = <0>;
+
+ alarmn@5,4 {
+ reg = <5 4>;
+ function = LED_FUNCTION_ALARM;
+ };
+ };
+ };
+...
--
2.17.1

View File

@ -0,0 +1,31 @@
From e255be5d8029a419bc2cc39c8eb84466e77a7f7c Mon Sep 17 00:00:00 2001
From: Heiner Kallweit <hkallweit1@gmail.com>
Date: Sun, 20 Feb 2022 08:26:27 +0000
Subject: [PATCH 47/90] FROMLIST(v2): docs: ABI: document tm1628 attribute
display-text
Document the attribute for reading / writing the text to be displayed on
the 7 segment display.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
Documentation/ABI/testing/sysfs-devices-auxdisplay-tm1628 | 7 +++++++
1 file changed, 7 insertions(+)
create mode 100644 Documentation/ABI/testing/sysfs-devices-auxdisplay-tm1628
diff --git a/Documentation/ABI/testing/sysfs-devices-auxdisplay-tm1628 b/Documentation/ABI/testing/sysfs-devices-auxdisplay-tm1628
new file mode 100644
index 000000000000..382757e721af
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-devices-auxdisplay-tm1628
@@ -0,0 +1,7 @@
+What: /sys/devices/.../display-text
+Date: February 2022
+Contact: Heiner Kallweit <hkallweit1@gmail.com>
+Description:
+ The text to be displayed on the 7 segment display.
+ Any printable character is allowed as input, but some
+ can not be displayed in a readable way with 7 segments.
--
2.17.1

View File

@ -0,0 +1,459 @@
From 64b6dc707ec8fa981c36c9855d9502a14c4a06ab Mon Sep 17 00:00:00 2001
From: Heiner Kallweit <hkallweit1@gmail.com>
Date: Sun, 20 Feb 2022 08:27:56 +0000
Subject: [PATCH 48/90] FROMLIST(v2): auxdisplay: add support for Titanmec
TM1628 7 segment display controller
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This patch adds support for the Titanmec TM1628 7 segment display
controller. It's based on previous RFC work from Andreas Färber.
The RFC version placed the driver in the LED subsystem, but this was
NAK'ed by the LED maintainer. Therefore I moved the driver to
/drivers/auxdisplay what seems most reasonable to me.
Further changes to the RFC version:
- Driver can be built also w/o LED class support, for displays that
don't have any symbols to be exposed as LED's.
- Simplified the code and rewrote a lot of it.
- Driver is now kind of a MVP, but functionality should be sufficient
for most use cases.
- Use the existing 7 segment support in uapi/linux/map_to_7segment.h
as suggested by Geert Uytterhoeven.
Note: There's a number of chips from other manufacturers that are
almost identical, e.g. FD628, SM1628. Only difference I saw so
far is that they partially support other display modes.
TM1628: 6x12, 7x11
SM1628C: 4x13, 5x12, 6x11, 7x10
For typical displays on devices using these chips this
difference shouldn't matter.
Successfully tested on a TX3 Mini TV box that has an SM1628C and a
display with 4 digits and 7 symbols.
Tested-by: Christian Hewitt <christianshewitt@gmail.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
drivers/auxdisplay/Kconfig | 10 +
drivers/auxdisplay/Makefile | 1 +
drivers/auxdisplay/tm1628.c | 375 ++++++++++++++++++++++++++++++++++++
3 files changed, 386 insertions(+)
create mode 100644 drivers/auxdisplay/tm1628.c
diff --git a/drivers/auxdisplay/Kconfig b/drivers/auxdisplay/Kconfig
index 64012cda4d12..25ef2e452897 100644
--- a/drivers/auxdisplay/Kconfig
+++ b/drivers/auxdisplay/Kconfig
@@ -203,6 +203,16 @@ config ARM_CHARLCD
line and the Linux version on the second line, but that's
still useful.
+config TM1628
+ tristate "TM1628 driver for LED 7/11 segment displays"
+ depends on SPI
+ depends on OF || COMPILE_TEST
+ help
+ Say Y to enable support for Titan Micro Electronics TM1628
+ LED controller.
+ It's a 3-wire SPI device controlling a two-dimensional grid of
+ LEDs. Dimming is applied to all outputs through an internal PWM.
+
menuconfig PARPORT_PANEL
tristate "Parallel port LCD/Keypad Panel support"
depends on PARPORT
diff --git a/drivers/auxdisplay/Makefile b/drivers/auxdisplay/Makefile
index 6968ed4d3f0a..7728e17e1c5a 100644
--- a/drivers/auxdisplay/Makefile
+++ b/drivers/auxdisplay/Makefile
@@ -14,3 +14,4 @@ obj-$(CONFIG_HT16K33) += ht16k33.o
obj-$(CONFIG_PARPORT_PANEL) += panel.o
obj-$(CONFIG_LCD2S) += lcd2s.o
obj-$(CONFIG_LINEDISP) += line-display.o
+obj-$(CONFIG_TM1628) += tm1628.o
diff --git a/drivers/auxdisplay/tm1628.c b/drivers/auxdisplay/tm1628.c
new file mode 100644
index 000000000000..072de8d47a59
--- /dev/null
+++ b/drivers/auxdisplay/tm1628.c
@@ -0,0 +1,375 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Titan Micro Electronics TM1628 LED controller
+ *
+ * Copyright (c) 2019 Andreas Färber
+ */
+
+#include <linux/delay.h>
+#include <linux/leds.h>
+#include <linux/module.h>
+#include <linux/property.h>
+#include <linux/spi/spi.h>
+#include <uapi/linux/map_to_7segment.h>
+
+#define TM1628_CMD_DISPLAY_MODE (0 << 6)
+#define TM1628_DISPLAY_MODE_6_12 0x02
+#define TM1628_DISPLAY_MODE_7_11 0x03
+
+#define TM1628_CMD_DATA (1 << 6)
+#define TM1628_DATA_TEST_MODE BIT(3)
+#define TM1628_DATA_FIXED_ADDR BIT(2)
+#define TM1628_DATA_WRITE_DATA 0x00
+#define TM1628_DATA_READ_DATA 0x02
+
+#define TM1628_CMD_DISPLAY_CTRL (2 << 6)
+#define TM1628_DISPLAY_CTRL_DISPLAY_ON BIT(3)
+
+#define TM1628_CMD_SET_ADDRESS (3 << 6)
+
+#define TM1628_BRIGHTNESS_MAX 7
+
+/* Physical limits, depending on the mode the chip may support less */
+#define MAX_GRID_SIZE 7
+#define MAX_SEGMENT_NUM 16
+
+struct tm1628_led {
+ struct led_classdev leddev;
+ struct tm1628 *ctrl;
+ u32 grid;
+ u32 seg;
+};
+
+struct tm1628 {
+ struct spi_device *spi;
+ __le16 data[MAX_GRID_SIZE];
+ struct mutex disp_lock;
+ char text[MAX_GRID_SIZE + 1];
+ u8 segment_mapping[7];
+ u8 grid[MAX_GRID_SIZE];
+ int grid_size;
+ struct tm1628_led leds[];
+};
+
+/* Command 1: Display Mode Setting */
+static int tm1628_set_display_mode(struct spi_device *spi, u8 grid_mode)
+{
+ u8 cmd = TM1628_CMD_DISPLAY_MODE | grid_mode;
+
+ return spi_write(spi, &cmd, 1);
+}
+
+/* Command 3: Address Setting */
+static int tm1628_set_address(struct spi_device *spi, u8 offset)
+{
+ u8 cmd = TM1628_CMD_SET_ADDRESS | (offset * sizeof(__le16));
+
+ return spi_write(spi, &cmd, 1);
+}
+
+/* Command 2: Data Setting */
+static int tm1628_write_data(struct spi_device *spi, unsigned int offset,
+ unsigned int len)
+{
+ struct tm1628 *s = spi_get_drvdata(spi);
+ u8 cmd = TM1628_CMD_DATA | TM1628_DATA_WRITE_DATA;
+ struct spi_transfer xfers[] = {
+ {
+ .tx_buf = &cmd,
+ .len = 1,
+ },
+ {
+ .tx_buf = (__force void *)(s->data + offset),
+ .len = len * sizeof(__le16),
+ },
+ };
+
+ if (offset + len > MAX_GRID_SIZE) {
+ dev_err(&spi->dev, "Invalid data address offset %u len %u\n",
+ offset, len);
+ return -EINVAL;
+ }
+
+ tm1628_set_address(spi, offset);
+
+ return spi_sync_transfer(spi, xfers, ARRAY_SIZE(xfers));
+}
+
+/* Command 4: Display Control */
+static int tm1628_set_display_ctrl(struct spi_device *spi, bool on)
+{
+ u8 cmd = TM1628_CMD_DISPLAY_CTRL | TM1628_BRIGHTNESS_MAX;
+
+ if (on)
+ cmd |= TM1628_DISPLAY_CTRL_DISPLAY_ON;
+
+ return spi_write(spi, &cmd, 1);
+}
+
+static int tm1628_show_text(struct tm1628 *s)
+{
+ static SEG7_CONVERSION_MAP(map_seg7, MAP_ASCII7SEG_ALPHANUM);
+ int i, ret;
+
+ int msg_len = strlen(s->text);
+
+ mutex_lock(&s->disp_lock);
+
+ for (i = 0; i < s->grid_size; i++) {
+ int pos = s->grid[i] - 1;
+
+ if (i < msg_len) {
+ int char7_raw = map_to_seg7(&map_seg7, s->text[i]);
+ int j, char7;
+
+ for (j = 0, char7 = 0; j < 7; j++) {
+ if (char7_raw & BIT(j))
+ char7 |= BIT(s->segment_mapping[j] - 1);
+ }
+
+ s->data[pos] = cpu_to_le16(char7);
+ } else {
+ s->data[pos] = 0;
+ }
+ }
+
+ ret = tm1628_write_data(s->spi, 0, s->grid_size);
+
+ mutex_unlock(&s->disp_lock);
+
+ return ret;
+}
+
+static int tm1628_led_set_brightness(struct led_classdev *led_cdev,
+ enum led_brightness brightness)
+{
+ struct tm1628_led *led = container_of(led_cdev, struct tm1628_led, leddev);
+ struct tm1628 *s = led->ctrl;
+ int offset, ret;
+ __le16 bit;
+
+ offset = led->grid - 1;
+ bit = cpu_to_le16(BIT(led->seg - 1));
+
+ mutex_lock(&s->disp_lock);
+
+ if (brightness == LED_OFF)
+ s->data[offset] &= ~bit;
+ else
+ s->data[offset] |= bit;
+
+ ret = tm1628_write_data(s->spi, offset, 1);
+
+ mutex_unlock(&s->disp_lock);
+
+ return ret;
+}
+
+static enum led_brightness tm1628_led_get_brightness(struct led_classdev *led_cdev)
+{
+ struct tm1628_led *led = container_of(led_cdev, struct tm1628_led, leddev);
+ struct tm1628 *s = led->ctrl;
+ int offset;
+ __le16 bit;
+ bool on;
+
+ offset = led->grid - 1;
+ bit = cpu_to_le16(BIT(led->seg - 1));
+
+ mutex_lock(&s->disp_lock);
+ on = s->data[offset] & bit;
+ mutex_unlock(&s->disp_lock);
+
+ return on ? LED_ON : LED_OFF;
+}
+
+static int tm1628_register_led(struct tm1628 *s, struct fwnode_handle *node,
+ u32 grid, u32 seg, struct tm1628_led *led)
+{
+ struct device *dev = &s->spi->dev;
+ struct led_init_data init_data = { .fwnode = node };
+
+ led->ctrl = s;
+ led->grid = grid;
+ led->seg = seg;
+ led->leddev.max_brightness = LED_ON;
+ led->leddev.brightness_set_blocking = tm1628_led_set_brightness;
+ led->leddev.brightness_get = tm1628_led_get_brightness;
+
+ return devm_led_classdev_register_ext(dev, &led->leddev, &init_data);
+}
+
+static ssize_t display_text_show(struct device *dev, struct device_attribute *attr,
+ char *buf)
+{
+ struct tm1628 *s = dev_get_drvdata(dev);
+
+ return sysfs_emit(buf, "%s\n", s->text);
+}
+
+static ssize_t display_text_store(struct device *dev, struct device_attribute *attr,
+ const char *buf, size_t count)
+{
+ struct tm1628 *s = dev_get_drvdata(dev);
+ int ret, i;
+
+ if (count > s->grid_size + 1) /* consider trailing newline */
+ return -E2BIG;
+
+ for (i = 0; i < count && isprint(buf[i]); i++)
+ s->text[i] = buf[i];
+
+ s->text[i] = '\0';
+
+ ret = tm1628_show_text(s);
+ if (ret < 0)
+ return ret;
+
+ return count;
+}
+
+static const DEVICE_ATTR_RW(display_text);
+
+static int tm1628_spi_probe(struct spi_device *spi)
+{
+ struct fwnode_handle *child;
+ unsigned int num_leds;
+ struct tm1628 *s;
+ int ret, i;
+
+ num_leds = device_get_child_node_count(&spi->dev);
+
+ s = devm_kzalloc(&spi->dev, struct_size(s, leds, num_leds), GFP_KERNEL);
+ if (!s)
+ return -ENOMEM;
+
+ s->spi = spi;
+ spi_set_drvdata(spi, s);
+
+ mutex_init(&s->disp_lock);
+
+ msleep(200); /* according to TM1628 datasheet */
+
+ /* clear screen */
+ ret = tm1628_write_data(spi, 0, MAX_GRID_SIZE);
+ if (ret)
+ return ret;
+ /* Assume that subsequent SPI transfers will be ok if first was ok */
+
+ /* For now we support 6x12 mode only. This should be sufficient for most use cases */
+ tm1628_set_display_mode(spi, TM1628_DISPLAY_MODE_6_12);
+
+ tm1628_set_display_ctrl(spi, true);
+
+ if (!IS_REACHABLE(CONFIG_LEDS_CLASS))
+ goto no_leds;
+
+ num_leds = 0;
+
+ device_for_each_child_node(&spi->dev, child) {
+ u32 reg[2];
+
+ ret = fwnode_property_read_u32_array(child, "reg", reg, 2);
+ if (ret) {
+ dev_err(&spi->dev, "Reading %s reg property failed (%d)\n",
+ fwnode_get_name(child), ret);
+ continue;
+ }
+
+ if (reg[0] == 0 || reg[0] > MAX_GRID_SIZE) {
+ dev_err(&spi->dev, "Invalid grid %u at %s\n",
+ reg[0], fwnode_get_name(child));
+ continue;
+ }
+
+ if (reg[1] == 0 || reg[1] > MAX_SEGMENT_NUM) {
+ dev_err(&spi->dev, "Invalid segment %u at %s\n",
+ reg[1], fwnode_get_name(child));
+ continue;
+ }
+
+ ret = tm1628_register_led(s, child, reg[0], reg[1], s->leds + num_leds);
+ if (ret) {
+ dev_err(&spi->dev, "Failed to register LED %s (%d)\n",
+ fwnode_get_name(child), ret);
+ continue;
+ }
+ num_leds++;
+ }
+
+no_leds:
+ ret = device_property_count_u8(&spi->dev, "grid");
+ if (ret < 1 || ret > MAX_GRID_SIZE) {
+ dev_err(&spi->dev, "Invalid display length (%d)\n", ret);
+ return -EINVAL;
+ }
+
+ s->grid_size = ret;
+
+ ret = device_property_read_u8_array(&spi->dev, "grid", s->grid, s->grid_size);
+ if (ret < 0)
+ return ret;
+
+ for (i = 0; i < s->grid_size; i++) {
+ if (s->grid[i] < 1 || s->grid[i] > s->grid_size)
+ return -EINVAL;
+ }
+
+ ret = device_property_read_u8_array(&spi->dev, "segment-mapping", s->segment_mapping, 7);
+ if (ret < 0)
+ return ret;
+
+ for (i = 0; i < 7; i++) {
+ if (s->segment_mapping[i] < 1 || s->segment_mapping[i] > MAX_SEGMENT_NUM)
+ return -EINVAL;
+ }
+
+ ret = device_create_file(&spi->dev, &dev_attr_display_text);
+ if (ret)
+ return ret;
+
+ dev_info(&spi->dev, "Configured display with %u digits and %u symbols\n",
+ s->grid_size, num_leds);
+
+ return 0;
+}
+
+static void tm1628_spi_remove(struct spi_device *spi)
+{
+ device_remove_file(&spi->dev, &dev_attr_display_text);
+ tm1628_set_display_ctrl(spi, false);
+}
+
+static void tm1628_spi_shutdown(struct spi_device *spi)
+{
+ tm1628_set_display_ctrl(spi, false);
+}
+
+static const struct of_device_id tm1628_spi_of_matches[] = {
+ { .compatible = "titanmec,tm1628" },
+ {}
+};
+MODULE_DEVICE_TABLE(of, tm1628_spi_of_matches);
+
+static const struct spi_device_id tm1628_spi_id_table[] = {
+ { "tm1628" },
+ {},
+};
+MODULE_DEVICE_TABLE(spi, tm1628_spi_id_table);
+
+static struct spi_driver tm1628_spi_driver = {
+ .probe = tm1628_spi_probe,
+ .remove = tm1628_spi_remove,
+ .shutdown = tm1628_spi_shutdown,
+ .id_table = tm1628_spi_id_table,
+
+ .driver = {
+ .name = "tm1628",
+ .of_match_table = tm1628_spi_of_matches,
+ },
+};
+module_spi_driver(tm1628_spi_driver);
+
+MODULE_DESCRIPTION("TM1628 LED controller driver");
+MODULE_AUTHOR("Andreas Färber");
+MODULE_LICENSE("GPL");
--
2.17.1

View File

@ -0,0 +1,93 @@
From 3abb1669bfb5e075daae0c0a928b2f31ded16e14 Mon Sep 17 00:00:00 2001
From: Heiner Kallweit <hkallweit1@gmail.com>
Date: Sun, 20 Feb 2022 08:29:31 +0000
Subject: [PATCH 49/90] FROMLIST(v2): arm64: dts: meson-gxl-s905w-tx3-mini: add
support for the 7 segment display
This patch adds support for the 7 segment display of the device.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
.../dts/amlogic/meson-gxl-s905w-tx3-mini.dts | 59 +++++++++++++++++++
1 file changed, 59 insertions(+)
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905w-tx3-mini.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905w-tx3-mini.dts
index 6705c2082a78..20bbd931e696 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905w-tx3-mini.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905w-tx3-mini.dts
@@ -10,6 +10,7 @@
#include "meson-gxl-s905x.dtsi"
#include "meson-gx-p23x-q20x.dtsi"
+#include <dt-bindings/leds/common.h>
/ {
compatible = "oranth,tx3-mini", "amlogic,s905w", "amlogic,meson-gxl";
@@ -19,6 +20,64 @@
device_type = "memory";
reg = <0x0 0x0 0x0 0x40000000>; /* 1 GiB or 2 GiB */
};
+
+ spi {
+ compatible = "spi-gpio";
+ sck-gpios = <&gpio GPIODV_27 GPIO_ACTIVE_HIGH>;
+ mosi-gpios = <&gpio GPIODV_26 GPIO_ACTIVE_HIGH>;
+ cs-gpios = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_LOW>;
+ num-chipselects = <1>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ tm1628: led-controller@0 {
+ compatible = "titanmec,tm1628";
+ reg = <0>;
+ spi-3wire;
+ spi-lsb-first;
+ spi-rx-delay-us = <1>;
+ spi-max-frequency = <500000>;
+ #address-cells = <2>;
+ #size-cells = <0>;
+
+ segment-mapping = /bits/ 8 <4 5 6 1 2 3 7>;
+ grid = /bits/ 8 <4 3 2 1>;
+
+ alarm@5,1 {
+ reg = <5 1>;
+ function = LED_FUNCTION_ALARM;
+ };
+
+ usb@5,2 {
+ reg = <5 2>;
+ function = LED_FUNCTION_USB;
+ };
+ play@5,3 {
+ reg = <5 3>;
+ function = "play";
+ };
+
+ pause@5,4 {
+ reg = <5 4>;
+ function = "pause";
+ };
+
+ colon@5,5 {
+ reg = <5 5>;
+ function = "colon";
+ };
+
+ lan@5,6 {
+ reg = <5 6>;
+ function = LED_FUNCTION_LAN;
+ };
+
+ wlan@5,7 {
+ reg = <5 7>;
+ function = LED_FUNCTION_WLAN;
+ };
+ };
+ };
};
&ir {
--
2.17.1

View File

@ -0,0 +1,54 @@
From 477a4f4816028d590f7b013e04b29319dbe66a24 Mon Sep 17 00:00:00 2001
From: Heiner Kallweit <hkallweit1@gmail.com>
Date: Wed, 23 Feb 2022 02:21:19 +0000
Subject: [PATCH 50/90] FROMLIST(v1): usb: core: improve handling of hubs with
no ports
I get the "hub doesn't have any ports" error message on a system with
Amlogic S905W SoC. Seems the SoC has internal USB 3.0 supports but
is crippled with regard to USB 3.0 ports.
Maybe we shouldn't consider this scenario an error. So let's change
the message to info level, but otherwise keep the handling of the
scenario as it is today. With the patch it looks like this on my
system.
dwc2 c9100000.usb: supply vusb_d not found, using dummy regulator
dwc2 c9100000.usb: supply vusb_a not found, using dummy regulator
dwc2 c9100000.usb: EPs: 7, dedicated fifos, 712 entries in SPRAM
xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1
xhci-hcd xhci-hcd.0.auto: hcc params 0x0228f664 hci version 0x100 quirks 0x0000000002010010
xhci-hcd xhci-hcd.0.auto: irq 49, io mem 0xc9000000
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2
xhci-hcd xhci-hcd.0.auto: Host supports USB 3.0 SuperSpeed
usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
hub 2-0:1.0: USB hub found
hub 2-0:1.0: hub has no ports, exiting
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
drivers/usb/core/hub.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index 588f3ded89cd..4151b960915b 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -1423,9 +1423,8 @@ static int hub_configure(struct usb_hub *hub,
ret = -ENODEV;
goto fail;
} else if (hub->descriptor->bNbrPorts == 0) {
- message = "hub doesn't have any ports!";
- ret = -ENODEV;
- goto fail;
+ dev_info(hub_dev, "hub has no ports, exiting\n");
+ return -ENODEV;
}
/*
--
2.17.1

View File

@ -0,0 +1,55 @@
From a3d32cc21b3d206d13f9cf4e475206e47d57f9c5 Mon Sep 17 00:00:00 2001
From: Heiner Kallweit <hkallweit1@gmail.com>
Date: Thu, 10 Mar 2022 06:06:23 +0000
Subject: [PATCH 51/90] FROMLIST(v2): ASoC: soc-core: add debugfs_prefix member
to snd_soc_component_driver
Allow the component debugfs_prefix to be set from
snd_soc_component_driver. First use case is avoiding a duplicate
debugfs entry error in case a device has multiple components
which have the same name therefore.
Note that we don't set component->debugfs_prefix if it's set already.
That's needed because partially component->debugfs_prefix is set
before calling snd_soc_component_initialize().
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
include/sound/soc-component.h | 4 ++++
sound/soc/soc-core.c | 5 +++++
2 files changed, 9 insertions(+)
diff --git a/include/sound/soc-component.h b/include/sound/soc-component.h
index a52080407b98..766dc6f009c0 100644
--- a/include/sound/soc-component.h
+++ b/include/sound/soc-component.h
@@ -179,6 +179,10 @@ struct snd_soc_component_driver {
struct snd_pcm_hw_params *params);
bool use_dai_pcm_id; /* use DAI link PCM ID as PCM device number */
int be_pcm_base; /* base device ID for all BE PCMs */
+
+#ifdef CONFIG_DEBUG_FS
+ const char *debugfs_prefix;
+#endif
};
struct snd_soc_component {
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 434e61b46983..8ac0b32a018c 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -2586,6 +2586,11 @@ int snd_soc_component_initialize(struct snd_soc_component *component,
component->dev = dev;
component->driver = driver;
+#ifdef CONFIG_DEBUG_FS
+ if (!component->debugfs_prefix)
+ component->debugfs_prefix = driver->debugfs_prefix;
+#endif
+
return 0;
}
EXPORT_SYMBOL_GPL(snd_soc_component_initialize);
--
2.17.1

View File

@ -0,0 +1,69 @@
From 7d9d88da9a294a6475d62a3857b7d2d5cc3d4fd5 Mon Sep 17 00:00:00 2001
From: Heiner Kallweit <hkallweit1@gmail.com>
Date: Thu, 10 Mar 2022 06:07:27 +0000
Subject: [PATCH 52/90] FROMLIST(v2): ASoC: meson: aiu: fix duplicate debugfs
directory error
On a S905W-based system I get the following error:
debugfs: Directory 'c1105400.audio-controller' with parent 'P230-Q200' already present!
Turned out that multiple components having the same name triggers this
error in soc_init_component_debugfs(). With the patch the error is gone
and that's the debugfs entries.
/sys/kernel/debug/asoc/P230-Q200/acodec:c1105400.audio-controller
/sys/kernel/debug/asoc/P230-Q200/hdmi:c1105400.audio-controller
/sys/kernel/debug/asoc/P230-Q200/cpu:c1105400.audio-controller
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
sound/soc/meson/aiu-acodec-ctrl.c | 3 +++
sound/soc/meson/aiu-codec-ctrl.c | 3 +++
sound/soc/meson/aiu.c | 3 +++
3 files changed, 9 insertions(+)
diff --git a/sound/soc/meson/aiu-acodec-ctrl.c b/sound/soc/meson/aiu-acodec-ctrl.c
index 27a6d3259c50..22e181646bc3 100644
--- a/sound/soc/meson/aiu-acodec-ctrl.c
+++ b/sound/soc/meson/aiu-acodec-ctrl.c
@@ -193,6 +193,9 @@ static const struct snd_soc_component_driver aiu_acodec_ctrl_component = {
.of_xlate_dai_name = aiu_acodec_of_xlate_dai_name,
.endianness = 1,
.non_legacy_dai_naming = 1,
+#ifdef CONFIG_DEBUG_FS
+ .debugfs_prefix = "acodec",
+#endif
};
int aiu_acodec_ctrl_register_component(struct device *dev)
diff --git a/sound/soc/meson/aiu-codec-ctrl.c b/sound/soc/meson/aiu-codec-ctrl.c
index 2b8575491aeb..225b330b732c 100644
--- a/sound/soc/meson/aiu-codec-ctrl.c
+++ b/sound/soc/meson/aiu-codec-ctrl.c
@@ -192,6 +192,9 @@ static const struct snd_soc_component_driver aiu_hdmi_ctrl_component = {
.of_xlate_dai_name = aiu_hdmi_of_xlate_dai_name,
.endianness = 1,
.non_legacy_dai_naming = 1,
+#ifdef CONFIG_DEBUG_FS
+ .debugfs_prefix = "hdmi",
+#endif
};
int aiu_hdmi_ctrl_register_component(struct device *dev)
diff --git a/sound/soc/meson/aiu.c b/sound/soc/meson/aiu.c
index d299a70db7e5..88e611e64d14 100644
--- a/sound/soc/meson/aiu.c
+++ b/sound/soc/meson/aiu.c
@@ -103,6 +103,9 @@ static const struct snd_soc_component_driver aiu_cpu_component = {
.pointer = aiu_fifo_pointer,
.probe = aiu_cpu_component_probe,
.remove = aiu_cpu_component_remove,
+#ifdef CONFIG_DEBUG_FS
+ .debugfs_prefix = "cpu",
+#endif
};
static struct snd_soc_dai_driver aiu_cpu_dai_drv[] = {
--
2.17.1

View File

@ -1,7 +1,7 @@
From bde321a49247ea8dfeec6e0fa08bcc520a554508 Mon Sep 17 00:00:00 2001
From dd29d3d05631c4afdab56fb696424565a4afefba Mon Sep 17 00:00:00 2001
From: Jonas Karlman <jonas@kwiboo.se>
Date: Sun, 23 Dec 2018 02:24:38 +0100
Subject: [PATCH 44/79] WIP: ASoC: hdmi-codec: reorder channel allocation list
Subject: [PATCH 53/90] WIP: ASoC: hdmi-codec: reorder channel allocation list
Wrong channel allocation is selected by hdmi_codec_get_ch_alloc_table_idx().

View File

@ -1,7 +1,7 @@
From e8416e70af875bd08af88e4099e7484963ca0fbd Mon Sep 17 00:00:00 2001
From 5c5664545a97520bbce591add5a7dbbea143b999 Mon Sep 17 00:00:00 2001
From: Neil Armstrong <narmstrong@baylibre.com>
Date: Thu, 14 Jan 2021 17:43:02 +0100
Subject: [PATCH 45/79] WIP: mmc: meson-gx-mmc: set core clock phase to 270
Subject: [PATCH 54/90] WIP: mmc: meson-gx-mmc: set core clock phase to 270
degrees for AXG compatible controllers
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
@ -10,7 +10,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c
index c765653ee4d0..b3ffde4ce348 100644
index 1a11a4bf4d4f..df60312a1765 100644
--- a/drivers/mmc/host/meson-gx-mmc.c
+++ b/drivers/mmc/host/meson-gx-mmc.c
@@ -38,6 +38,7 @@
@ -29,7 +29,7 @@ index c765653ee4d0..b3ffde4ce348 100644
};
struct sd_emmc_desc {
@@ -426,7 +428,7 @@ static int meson_mmc_clk_init(struct meson_host *host)
@@ -428,7 +430,7 @@ static int meson_mmc_clk_init(struct meson_host *host)
/* init SD_EMMC_CLOCK to sane defaults w/min clock rate */
clk_reg = CLK_ALWAYS_ON(host);
clk_reg |= CLK_DIV_MASK;
@ -38,7 +38,7 @@ index c765653ee4d0..b3ffde4ce348 100644
clk_reg |= FIELD_PREP(CLK_TX_PHASE_MASK, CLK_PHASE_0);
clk_reg |= FIELD_PREP(CLK_RX_PHASE_MASK, CLK_PHASE_0);
writel(clk_reg, host->regs + SD_EMMC_CLOCK);
@@ -1336,6 +1338,7 @@ static const struct meson_mmc_data meson_gx_data = {
@@ -1337,6 +1339,7 @@ static const struct meson_mmc_data meson_gx_data = {
.rx_delay_mask = CLK_V2_RX_DELAY_MASK,
.always_on = CLK_V2_ALWAYS_ON,
.adjust = SD_EMMC_ADJUST,
@ -46,7 +46,7 @@ index c765653ee4d0..b3ffde4ce348 100644
};
static const struct meson_mmc_data meson_axg_data = {
@@ -1343,6 +1346,7 @@ static const struct meson_mmc_data meson_axg_data = {
@@ -1344,6 +1347,7 @@ static const struct meson_mmc_data meson_axg_data = {
.rx_delay_mask = CLK_V3_RX_DELAY_MASK,
.always_on = CLK_V3_ALWAYS_ON,
.adjust = SD_EMMC_V3_ADJUST,

View File

@ -1,7 +1,7 @@
From eb982580576ff4df7dd72979622b1ac0ff99b6d4 Mon Sep 17 00:00:00 2001
From fa5498d499cc8aa5a59d7c9682e1d70e73dea144 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Thu, 13 Jan 2022 03:50:01 +0000
Subject: [PATCH 46/79] WIP: arm64: dts: meson: add Broadcom WiFi to P212 dtsi
Subject: [PATCH 55/90] WIP: arm64: dts: meson: add Broadcom WiFi to P212 dtsi
The P212 has a combined WiFi/BT module. The BT side is already enabled
in the dtsi but the WiFi side is not. Let's enable the WiFi module.

View File

@ -1,7 +1,7 @@
From 3bd8ae1730a5096a81ec5bdadcc421eb343dda14 Mon Sep 17 00:00:00 2001
From d1ecff8da5fd4818b465e2b004f4737ca0dfb6fb Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Thu, 13 Jan 2022 03:56:12 +0000
Subject: [PATCH 47/79] WIP: arm64: dts: meson: move pwm_ef node in P212 dtsi
Subject: [PATCH 56/90] WIP: arm64: dts: meson: move pwm_ef node in P212 dtsi
Cosmetic-only change to alpha-sort the pwm_ef node.

View File

@ -1,7 +1,7 @@
From 71b807b4965b1c751547d374becdf529baff04ed Mon Sep 17 00:00:00 2001
From dfb3b1a759cdb45cddf5cca6ef904c4765445f55 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Thu, 13 Jan 2022 03:58:58 +0000
Subject: [PATCH 48/79] WIP: arm64: dts: meson: remove WiFi/BT nodes from
Subject: [PATCH 57/90] WIP: arm64: dts: meson: remove WiFi/BT nodes from
Khadas VIM1
The Broadcom WiFi/BT SDIO nodes are now inherited from the P212 common dtsi

View File

@ -1,7 +1,7 @@
From 6d91b9daa664c69ecf484639711ad6a1adbafe04 Mon Sep 17 00:00:00 2001
From fd15d86035de9f5ddb76e2b33815169a0fc142dc Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Tue, 18 Jan 2022 15:09:12 +0000
Subject: [PATCH 49/79] WIP: arm64: dts: meson: set p212/p23x/q20x SDIO to
Subject: [PATCH 58/90] WIP: arm64: dts: meson: set p212/p23x/q20x SDIO to
100MHz
Amlogic datasheets describe 50MHz max-frequency for SDIO on GXL/GXM but

View File

@ -1,7 +1,7 @@
From 16e2fda15b650aaac9e3fd676c17a158086843b4 Mon Sep 17 00:00:00 2001
From 40e9017aefcc38da1ba4ed9ba9f639f4699834cb Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Wed, 19 Jan 2022 06:45:06 +0000
Subject: [PATCH 50/79] WIP: arm64: dts: meson: add UHS SDIO capabilities to
Subject: [PATCH 59/90] WIP: arm64: dts: meson: add UHS SDIO capabilities to
p212/p23x/q20x
Add UHS capabilities to the SDIO node to enable 100MHz speeds.

View File

@ -1,7 +1,7 @@
From f2153640f208ef41b04d083f6c1eee797e363472 Mon Sep 17 00:00:00 2001
From 8c3fedfdb05685886ef319ced3356b618d24fc86 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Tue, 18 Jan 2022 15:18:32 +0000
Subject: [PATCH 51/79] WIP: arm64: dts: meson: remove SDIO node from Khadas
Subject: [PATCH 60/90] WIP: arm64: dts: meson: remove SDIO node from Khadas
VIM1
Now that SDIO 100MHz max-frequency is inherited from the p212 dtsi we

View File

@ -1,7 +1,7 @@
From b359a93a0555da6362ca94d963430e70cd43c950 Mon Sep 17 00:00:00 2001
From b4f1722a917026b6090c7fb3d6b575768ebf72f5 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Thu, 13 Jan 2022 04:30:44 +0000
Subject: [PATCH 52/79] WIP: arm64: dts: meson: add audio playback to
Subject: [PATCH 61/90] WIP: arm64: dts: meson: add audio playback to
S905X-P212 dts
Add support for the HDMI and Analogue i2s audio outputs.

View File

@ -1,7 +1,7 @@
From 341fc7a61cc42cb90b89ed2d5d645e3f248efd66 Mon Sep 17 00:00:00 2001
From 4aca1a59251338a9f98b58fc67e7749fae32b3be Mon Sep 17 00:00:00 2001
From: benjamin545 <benjamin545@gmail.com>
Date: Thu, 15 Jul 2021 14:32:33 -0400
Subject: [PATCH 53/79] WIP: drivers: meson: vdec: remove redundant if
Subject: [PATCH 62/90] WIP: drivers: meson: vdec: remove redundant if
statement
checking if sess->fmt_out->pixfmt is V4L2_PIX_FMT_VP9 was already done

View File

@ -1,7 +1,7 @@
From 68657bde0bbcd91a96515ccb7b7d933f60a11850 Mon Sep 17 00:00:00 2001
From df7d1adad3f60c8cb3f33235b6301093801b7b47 Mon Sep 17 00:00:00 2001
From: benjamin545 <benjamin545@gmail.com>
Date: Thu, 15 Jul 2021 16:32:39 -0400
Subject: [PATCH 54/79] WIP: drivers: meson: vdec: improve mmu and fbc handling
Subject: [PATCH 63/90] WIP: drivers: meson: vdec: improve mmu and fbc handling
and add 10 bit handling
---

View File

@ -1,7 +1,7 @@
From 9065ee07cc7930532b02be84cf4673a86c8a09ba Mon Sep 17 00:00:00 2001
From 478ef90d4bb38e6c5ae11c4abd6142fc7336c746 Mon Sep 17 00:00:00 2001
From: benjamin545 <benjamin545@gmail.com>
Date: Thu, 15 Jul 2021 17:08:42 -0400
Subject: [PATCH 55/79] WIP: drivers: meson: vdec: add HEVC decode codec
Subject: [PATCH 64/90] WIP: drivers: meson: vdec: add HEVC decode codec
---
drivers/staging/media/meson/vdec/Makefile | 2 +-

View File

@ -1,7 +1,7 @@
From e42db1763de291f740b189d82b7b7fb7199cd6d6 Mon Sep 17 00:00:00 2001
From a9f750c672c4c1238cccd1d8d76a138a5602d035 Mon Sep 17 00:00:00 2001
From: benjamin545 <benjamin545@gmail.com>
Date: Mon, 2 Aug 2021 15:18:40 -0400
Subject: [PATCH 56/79] WIP: drivers: meson: vdec: add handling to HEVC decoder
Subject: [PATCH 65/90] WIP: drivers: meson: vdec: add handling to HEVC decoder
to show frames when ready
..rather than when no longer referenced

View File

@ -1,7 +1,7 @@
From 9c68e82ec9586c13708942d8a5a8931bb22eabbd Mon Sep 17 00:00:00 2001
From 975c23d02776b023a75e6090b521a839e67a8c42 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Sun, 21 Nov 2021 19:12:07 +0000
Subject: [PATCH 57/79] WIP: drivers: meson: vdec: add HEVC support to GXBB
Subject: [PATCH 66/90] WIP: drivers: meson: vdec: add HEVC support to GXBB
It's not clear whether the GXL firmware is the same one used with GXBB
but let's try it and see!

View File

@ -1,7 +1,7 @@
From 881e27f6225767d6fbded545eac1db62647b0b35 Mon Sep 17 00:00:00 2001
From cb0c20e84a934c66961ace27f340cd7c98188dbe Mon Sep 17 00:00:00 2001
From: Neil Armstrong <narmstrong@baylibre.com>
Date: Mon, 22 Nov 2021 09:15:21 +0000
Subject: [PATCH 58/79] WIP: drivers: meson: vdec: check if parser has really
Subject: [PATCH 67/90] WIP: drivers: meson: vdec: check if parser has really
parser before marking input buffer as error
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>

View File

@ -1,7 +1,7 @@
From 61d5770b41a0de4dc781219e4fd53e9d011591c7 Mon Sep 17 00:00:00 2001
From 795fad491189f7fd6034d6d639602119a4e60755 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Tue, 17 Aug 2021 16:16:43 +0000
Subject: [PATCH 59/79] WIP: arm64: dts: meson: radxa-zero: add support for the
Subject: [PATCH 68/90] WIP: arm64: dts: meson: radxa-zero: add support for the
usb type-c controller
Radxa Zero uses an FUSB302 type-c controller, so lets enable it.

View File

@ -1,7 +1,7 @@
From 8534bf4f2f554594d0d0f4c1f77563635a8ecb14 Mon Sep 17 00:00:00 2001
From 9c2db9e795f4d73e78a02f6c8cb313e6bcf34f7e Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Wed, 16 Feb 2022 07:27:07 +0000
Subject: [PATCH 60/79] WIP: dt-bindings: arm: amlogic: add support for Radxa
Subject: [PATCH 69/90] WIP: dt-bindings: arm: amlogic: add support for Radxa
Zero2
The Radxa Zero2 is a small form-factor SBC using the Amlogic

View File

@ -1,7 +1,7 @@
From f34401cc59b8732e46bd42c3abedfa8f3da2cab5 Mon Sep 17 00:00:00 2001
From aadb6d12609309106f6ab7a56face84c19859796 Mon Sep 17 00:00:00 2001
From: Yuntian Zhang <yt@radxa.com>
Date: Fri, 14 Jan 2022 15:50:02 +0000
Subject: [PATCH 61/79] WIP: arm64: dts: meson: add support for Radxa Zero2
Subject: [PATCH 70/90] WIP: arm64: dts: meson: add support for Radxa Zero2
Radxa Zero2 is a small form factor SBC based on the Amlogic A311D
chipset that ships in a number of eMMC configurations:

View File

@ -1,7 +1,7 @@
From 6ceea9f0eca293dbc82f37ad587a3be4ba495e18 Mon Sep 17 00:00:00 2001
From 810b78077ca7574f999e2fa68753778c26dbcdf2 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Fri, 15 May 2020 07:52:47 +0000
Subject: [PATCH 62/79] WIP: arm64: dts: meson: add audio playback to p201
Subject: [PATCH 71/90] WIP: arm64: dts: meson: add audio playback to p201
Add initial audio support limited to HDMI i2s.

View File

@ -1,7 +1,7 @@
From aa3d13886183e5f31263b312a7b67f2f18ccb1a7 Mon Sep 17 00:00:00 2001
From 9d33954e9242785f5baf611b45f2f5a4af43a446 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Fri, 15 May 2020 07:56:15 +0000
Subject: [PATCH 63/79] WIP: arm64: dts: meson: add audio playback to p200
Subject: [PATCH 72/90] WIP: arm64: dts: meson: add audio playback to p200
Add initial support limited to HDMI i2s and SPDIF (LPCM).

View File

@ -1,7 +1,7 @@
From 20174e83e65843e6fa0c84142b88c42be5d3220d Mon Sep 17 00:00:00 2001
From cd4ccfa569b37714d3bb0da970018c7201480811 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Sun, 17 May 2020 05:00:55 +0000
Subject: [PATCH 64/79] WIP: arm64: dts: meson: add audio playback to u200
Subject: [PATCH 73/90] WIP: arm64: dts: meson: add audio playback to u200
Add initial support limited to HDMI i2s and SPDIF (LPCM).

View File

@ -1,7 +1,7 @@
From 752067e2a76b0626fa63318da1894cb25026bb98 Mon Sep 17 00:00:00 2001
From 91ffd9ae8a3465528cdd8ea37afd28537121159c Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Sat, 27 Nov 2021 13:50:06 +0000
Subject: [PATCH 65/79] WIP: arm64: dts: meson: add Headphone output to Beelink
Subject: [PATCH 74/90] WIP: arm64: dts: meson: add Headphone output to Beelink
GT-King
Add support for the Headphone audio DAC built-in to the S922X chip.

View File

@ -1,7 +1,7 @@
From ed8e2b9928374e9e9544f7726ae591f79422f52e Mon Sep 17 00:00:00 2001
From 530878a80414883138169088a12f002d30d5b0c1 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Sat, 29 Feb 2020 15:13:02 +0000
Subject: [PATCH 66/79] WIP: dt-bindings: arm: amlogic: add support for the
Subject: [PATCH 75/90] WIP: dt-bindings: arm: amlogic: add support for the
Tanix TX5 Max
The Oranth (Tanix) TX5 Max is based on the Amlogic U200 reference

View File

@ -1,7 +1,7 @@
From 14e7663368e3c78aad21c8d0454150ce6fc1f057 Mon Sep 17 00:00:00 2001
From ee948717cbc1d5adbe2e056d06a50761f46fba0d Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Sun, 20 Oct 2019 04:06:59 +0000
Subject: [PATCH 67/79] WIP: arm64: dts: meson: add support for the Tanix TX5
Subject: [PATCH 76/90] WIP: arm64: dts: meson: add support for the Tanix TX5
Max
The Tanix TX5 Max is based on the Amlogic U200 reference design

View File

@ -1,7 +1,7 @@
From cd88d073e0eb7bf93d027c7523261c2e56c3f688 Mon Sep 17 00:00:00 2001
From 5c0f2fc10f7b82453281aacdbb8f750384829b10 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Mon, 21 Oct 2019 03:58:06 +0000
Subject: [PATCH 68/79] WIP: arm64: dts: meson: add multiple MeCool device
Subject: [PATCH 77/90] WIP: arm64: dts: meson: add multiple MeCool device
trees
This adds initial device trees for a range of MeCool devices based on various

View File

@ -1,7 +1,7 @@
From 90c107c90da6a39c905209c937eb48008e43cb7b Mon Sep 17 00:00:00 2001
From be308e6dcb61298b822da615cdcd239efe74cbb7 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Sun, 11 Apr 2021 05:50:13 +0000
Subject: [PATCH 69/79] WIP: dt-bindings: arm: amlogic: add support for Minix
Subject: [PATCH 78/90] WIP: dt-bindings: arm: amlogic: add support for Minix
NEO-U1
The Minix NEO-U1 is an Android STB based on the Amlogic P200 (GXBB)

View File

@ -1,7 +1,7 @@
From d0534162a24d586afc07d25b0f25dcbbac5d75b4 Mon Sep 17 00:00:00 2001
From 09b79df08522547ca9bf79dde6b45abfc39a9b2c Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Sun, 11 Apr 2021 05:52:14 +0000
Subject: [PATCH 70/79] WIP: arm64: dts: meson: add initial device-tree for
Subject: [PATCH 79/90] WIP: arm64: dts: meson: add initial device-tree for
Minix NEO-U1
The Minix NEO-U1 is an Android STB based on the Amlogic P200 (GXBB)

View File

@ -1,7 +1,7 @@
From 48bc8c6b232f4d1df1527486e517a36e9d842e1c Mon Sep 17 00:00:00 2001
From 2ca5320afed93f431117fb490a2eabde8cbc2574 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Wed, 8 Dec 2021 15:33:47 +0000
Subject: [PATCH 71/79] WIP: media: rc: add keymap for Beelink Mini MXIII
Subject: [PATCH 80/90] WIP: media: rc: add keymap for Beelink Mini MXIII
remote
Add a keymap and bindings for the simple IR (NEC) remote used with

View File

@ -1,7 +1,7 @@
From cbc817cbcf361ffd2923f238a4f2c530e96986b0 Mon Sep 17 00:00:00 2001
From 44518805812a8e8d1fec4699c102359d4684eeb7 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Wed, 8 Dec 2021 15:28:50 +0000
Subject: [PATCH 72/79] WIP: dt-bindings: arm: amlogic: add support for Beelink
Subject: [PATCH 81/90] WIP: dt-bindings: arm: amlogic: add support for Beelink
Mini MXIII
The Beelink Mini MXIII is an Android STB based on the Amlogic P200

View File

@ -1,7 +1,7 @@
From 2ae16b2715b0a64e9f95933e0d93cb3a7529c094 Mon Sep 17 00:00:00 2001
From ebeac16a213b495bb6a522a49d8de6626b6792d0 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Wed, 8 Dec 2021 15:26:00 +0000
Subject: [PATCH 73/79] WIP: arm64: dts: meson: add support for Beelink Mini
Subject: [PATCH 82/90] WIP: arm64: dts: meson: add support for Beelink Mini
MXIII
This is a GXBB board that ships in two variants, one with

View File

@ -1,7 +1,7 @@
From 2b2bdca43febecfa1cb098e0cbb06a7d8e92f8ae Mon Sep 17 00:00:00 2001
From c917ffe10b62477459db1348925324e82710aa33 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Sun, 16 Jan 2022 08:48:02 +0000
Subject: [PATCH 74/79] WIP: media: rc: add keymap for MeCool M8S Pro W remote
Subject: [PATCH 83/90] WIP: media: rc: add keymap for MeCool M8S Pro W remote
Add a keymap and bindings for the simple IR (NEC) remote used with
the MeCool M8S Pro W Android STB device.

View File

@ -1,7 +1,7 @@
From dc2460493f7333d566ea5948b30b0af908c5dff8 Mon Sep 17 00:00:00 2001
From 2191b379bed5f7b7f7e56b29ece6011e49a55ae7 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Sun, 16 Jan 2022 08:15:36 +0000
Subject: [PATCH 75/79] WIP: dt-bindings: arm: amlogic: add support for MeCool
Subject: [PATCH 84/90] WIP: dt-bindings: arm: amlogic: add support for MeCool
M8S Pro W
The MeCool M8S Pro W is an Android STB based on the Amlogic P281

View File

@ -1,7 +1,7 @@
From 5458d1e8aae666d568246da403402996f8824dba Mon Sep 17 00:00:00 2001
From 75d63879080f31874d4ab7199e2fb43ca6f05dc8 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Sun, 16 Jan 2022 08:17:41 +0000
Subject: [PATCH 76/79] WIP: arm64: dts: meson: add support for MeCool M8S Pro
Subject: [PATCH 85/90] WIP: arm64: dts: meson: add support for MeCool M8S Pro
W
MeCool M8S Pro W is an Android STB based on the Amlogic P281 (GXL)

View File

@ -1,7 +1,7 @@
From c2387bf8d3214160be9e188b2557fe022e1dceb9 Mon Sep 17 00:00:00 2001
From dcbcb4b9640b59d4469c82752e5c1a922c6629f9 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Wed, 19 Jan 2022 02:40:20 +0000
Subject: [PATCH 77/79] WIP: dt-bindings: arm: amlogic: add Vero 4K binding
Subject: [PATCH 86/90] WIP: dt-bindings: arm: amlogic: add Vero 4K binding
Add the board binding for the OSMC Vero 4K STB device

View File

@ -1,7 +1,7 @@
From 2eb240af1317fc952ece8b38f0ecfc80dc00f423 Mon Sep 17 00:00:00 2001
From b17886f74c7387d1b68b57aec973352cbafad9c7 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Wed, 19 Jan 2022 04:06:17 +0000
Subject: [PATCH 78/79] WIP: arm64: dts: meson: add support for OSMC Vero 4K
Subject: [PATCH 87/90] WIP: arm64: dts: meson: add support for OSMC Vero 4K
The OSMC Vero 4K device is based on the Amlogic S905X (P212) reference
design with the following specifications:

View File

@ -1,7 +1,7 @@
From 4d4f68640020e59a85cf2fec0d3ae5f6d11e1861 Mon Sep 17 00:00:00 2001
From 06fe0cdc82836f529cbc57f608aff95c032d85eb Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Sun, 13 Feb 2022 08:53:39 +0000
Subject: [PATCH 79/79] WIP: drm/meson/meson_vclk: fix VIC alternate timings
Subject: [PATCH 88/90] WIP: drm/meson/meson_vclk: fix VIC alternate timings
4K VP9 media with 59.94 fractional refresh rate refuses to play with
the screen going blank (no sync) and the following error reported in

View File

@ -0,0 +1,42 @@
From bc95963582619cce9758cdbf38e3f1557d1a498f Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Sun, 20 Feb 2022 09:14:07 +0000
Subject: [PATCH 89/90] WIP: auxdisplay: fixup for TM1628 display controller
driver
The remove callback return type has recently been changed to void in
linux-next, but 5.17 sources use the previous approach.
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
---
drivers/auxdisplay/tm1628.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/auxdisplay/tm1628.c b/drivers/auxdisplay/tm1628.c
index 072de8d47a59..0758c397ef4f 100644
--- a/drivers/auxdisplay/tm1628.c
+++ b/drivers/auxdisplay/tm1628.c
@@ -5,6 +5,7 @@
* Copyright (c) 2019 Andreas Färber
*/
+#include <linux/ctype.h>
#include <linux/delay.h>
#include <linux/leds.h>
#include <linux/module.h>
@@ -334,10 +335,11 @@ static int tm1628_spi_probe(struct spi_device *spi)
return 0;
}
-static void tm1628_spi_remove(struct spi_device *spi)
+static int tm1628_spi_remove(struct spi_device *spi)
{
device_remove_file(&spi->dev, &dev_attr_display_text);
tm1628_set_display_ctrl(spi, false);
+ return 0;
}
static void tm1628_spi_shutdown(struct spi_device *spi)
--
2.17.1

View File

@ -0,0 +1,95 @@
From faeccc288aa426a219d4b29da43d433de10942e3 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Sun, 20 Feb 2022 16:31:04 +0000
Subject: [PATCH 90/90] WIP: arm64: dts: meson-g12a-x96-max: add support for
the 7 segment display
First attempt at adding support for the 7 segment display of the device.
See https://github.com/arthur-liberman/vfd-configurations/blob/master/x96-max-1gbit-vfd.conf
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
---
.../boot/dts/amlogic/meson-g12a-x96-max.dts | 59 +++++++++++++++++++
1 file changed, 59 insertions(+)
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts b/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts
index b4e86196e346..36ca9c6a1bdf 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts
@@ -8,6 +8,7 @@
#include "meson-g12a.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/gpio/meson-g12a-gpio.h>
+#include <dt-bindings/leds/common.h>
#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
/ {
@@ -228,6 +229,64 @@
};
};
+ spi {
+ compatible = "spi-gpio";
+ sck-gpios = <&gpio GPIOX_0 GPIO_ACTIVE_HIGH>;
+ mosi-gpios = <&gpio GPIOA_15 GPIO_ACTIVE_HIGH>;
+ cs-gpios = <&gpio_ao GPIOAO_10 GPIO_ACTIVE_LOW>;
+ num-chipselects = <1>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ tm1628: led-controller@0 {
+ compatible = "titanmec,tm1628";
+ reg = <0>;
+ spi-3wire;
+ spi-lsb-first;
+ spi-rx-delay-us = <1>;
+ spi-max-frequency = <500000>;
+ #address-cells = <2>;
+ #size-cells = <0>;
+
+ segment-mapping = /bits/ 8 <4 5 6 1 2 3 7>;
+ grid = /bits/ 8 <3 4 5 1>;
+
+ apps@2,1 {
+ reg = <2 1>;
+ function = "apps";
+ };
+
+ usb@5,2 {
+ reg = <2 2>;
+ function = LED_FUNCTION_USB;
+ };
+ setup@2,3 {
+ reg = <2 3>;
+ function = "setup";
+ };
+
+ card@2,4 {
+ reg = <2 4>;
+ function = LED_FUNCTION_SD;
+ };
+
+ colon@2,5 {
+ reg = <2 5>;
+ function = "colon";
+ };
+
+ hdmi@2,6 {
+ reg = <2 6>;
+ function = "hdmi";
+ };
+
+ cvbs@2,7 {
+ reg = < 7>;
+ function = "cvbs";
+ };
+ };
+ };
+
wifi32k: wifi32k {
compatible = "pwm-clock";
#clock-cells = <0>;
--
2.17.1

View File

@ -2759,7 +2759,7 @@ CONFIG_SPI_MEM=y
# CONFIG_SPI_CADENCE_XSPI is not set
# CONFIG_SPI_DESIGNWARE is not set
# CONFIG_SPI_NXP_FLEXSPI is not set
# CONFIG_SPI_GPIO is not set
CONFIG_SPI_GPIO=y
# CONFIG_SPI_FSL_SPI is not set
CONFIG_SPI_MESON_SPICC=y
CONFIG_SPI_MESON_SPIFC=y
@ -5299,7 +5299,15 @@ CONFIG_DMABUF_HEAPS_SYSTEM=y
CONFIG_DMABUF_HEAPS_CMA=y
# end of DMABUF options
# CONFIG_AUXDISPLAY is not set
CONFIG_AUXDISPLAY=y
# CONFIG_HD44780 is not set
# CONFIG_IMG_ASCII_LCD is not set
# CONFIG_HT16K33 is not set
# CONFIG_LCD2S is not set
CONFIG_TM1628=m
# CONFIG_CHARLCD_BL_OFF is not set
# CONFIG_CHARLCD_BL_ON is not set
# CONFIG_CHARLCD_BL_FLASH is not set
# CONFIG_UIO is not set
# CONFIG_VFIO is not set
# CONFIG_VIRT_DRIVERS is not set