From 85ee32c7d83a95634ac1b21928a635089faa9d54 Mon Sep 17 00:00:00 2001 From: Pablo Greco Date: Jun 21 2022 14:58:28 +0000 Subject: Update to 5.15.48 --- diff --git a/.raspberrypi2.metadata b/.raspberrypi2.metadata index dc08099..57ea7be 100644 --- a/.raspberrypi2.metadata +++ b/.raspberrypi2.metadata @@ -1,3 +1,3 @@ ac61f2459040c09af1d5abd4ed100c3d316b443e SOURCES/linux-5.15.tar.xz -e4ce8765e7d2b87583036525adf59add5be1ec70 SOURCES/b22546ac06cf2e88f10873d2158069fa65ed86a3.tar.gz -5796bfa1cf397d714d7b07af60de1bc6cb3b74ea SOURCES/patch-5.15.41.xz +57b223850b572350d5129e4175cb5b5d11d86369 SOURCES/a4040b2554f459347480f17358ce76990b2d0a41.tar.gz +a9168c9841b6e1a3d3a0d236b5d719f4852acd42 SOURCES/patch-5.15.48.xz diff --git a/SOURCES/bcm2709_selinux_config.patch b/SOURCES/bcm2709_selinux_config.patch index a240f91..c23b19b 100644 --- a/SOURCES/bcm2709_selinux_config.patch +++ b/SOURCES/bcm2709_selinux_config.patch @@ -1,17 +1,17 @@ -From 6089c1b6ee64d0bee2c3a2011f583e561d9917b7 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Pablo Greco Date: Fri, 7 Aug 2020 02:59:05 +0000 Subject: [PATCH 1/2] configs 2709 --- - arch/arm/configs/bcm2709_defconfig | 34 ++++++++++++++++++++++++++++-- - 1 file changed, 32 insertions(+), 2 deletions(-) + arch/arm/configs/bcm2709_defconfig | 35 ++++++++++++++++++++++++++++-- + 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig -index 4f2a92e..cd1b662 100644 +index 16698a5..a9c8fac 100644 --- a/arch/arm/configs/bcm2709_defconfig +++ b/arch/arm/configs/bcm2709_defconfig -@@ -1444,8 +1444,6 @@ CONFIG_NLS_KOI8_R=m +@@ -1508,8 +1508,6 @@ CONFIG_NLS_KOI8_R=m CONFIG_NLS_KOI8_U=m CONFIG_DLM=m CONFIG_SECURITY=y @@ -20,7 +20,7 @@ index 4f2a92e..cd1b662 100644 CONFIG_CRYPTO_USER=m CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_ADIANTUM=m -@@ -1479,3 +1477,35 @@ CONFIG_IRQSOFF_TRACER=y +@@ -1542,3 +1540,36 @@ CONFIG_IRQSOFF_TRACER=y CONFIG_SCHED_TRACER=y CONFIG_BLK_DEV_IO_TRACE=y # CONFIG_UPROBE_EVENTS is not set @@ -56,6 +56,7 @@ index 4f2a92e..cd1b662 100644 +CONFIG_CRYPTO_POLY1305_ARM=m +# CONFIG_WIREGUARD_DEBUG is not set +CONFIG_WIREGUARD=m ++CONFIG_FW_LOADER_COMPRESS=y -- 2.18.4 diff --git a/SOURCES/bcm2711_selinux_config.patch b/SOURCES/bcm2711_selinux_config.patch index 0ed01e9..5f1262e 100644 --- a/SOURCES/bcm2711_selinux_config.patch +++ b/SOURCES/bcm2711_selinux_config.patch @@ -1,18 +1,18 @@ -From 1112cf1fe9d37f511434a870798b5e85ab9d805e Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Pablo Greco Date: Fri, 7 Aug 2020 02:59:05 +0000 Subject: [PATCH 2/2] configs 2711 --- - arch/arm/configs/bcm2711_defconfig | 34 ++++++++++++++++++++++++++-- - arch/arm64/configs/bcm2711_defconfig | 34 ++++++++++++++++++++++++++-- - 2 files changed, 64 insertions(+), 4 deletions(-) + arch/arm/configs/bcm2711_defconfig | 35 +++++++++++++++++++++++++-- + arch/arm64/configs/bcm2711_defconfig | 36 ++++++++++++++++++++++++++-- + 2 files changed, 67 insertions(+), 4 deletions(-) diff --git a/arch/arm/configs/bcm2711_defconfig b/arch/arm/configs/bcm2711_defconfig -index 113e10d..646daec 100644 +index e9da4fd..507aadc 100644 --- a/arch/arm/configs/bcm2711_defconfig +++ b/arch/arm/configs/bcm2711_defconfig -@@ -1481,8 +1481,6 @@ CONFIG_NLS_KOI8_R=m +@@ -1532,8 +1532,6 @@ CONFIG_NLS_KOI8_R=m CONFIG_NLS_KOI8_U=m CONFIG_DLM=m CONFIG_SECURITY=y @@ -21,7 +21,7 @@ index 113e10d..646daec 100644 CONFIG_CRYPTO_USER=m CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_ADIANTUM=m -@@ -1516,3 +1514,35 @@ CONFIG_IRQSOFF_TRACER=y +@@ -1566,3 +1564,36 @@ CONFIG_IRQSOFF_TRACER=y CONFIG_SCHED_TRACER=y CONFIG_BLK_DEV_IO_TRACE=y # CONFIG_UPROBE_EVENTS is not set @@ -57,11 +57,12 @@ index 113e10d..646daec 100644 +CONFIG_CRYPTO_POLY1305_ARM=m +# CONFIG_WIREGUARD_DEBUG is not set +CONFIG_WIREGUARD=m ++CONFIG_FW_LOADER_COMPRESS=y diff --git a/arch/arm64/configs/bcm2711_defconfig b/arch/arm64/configs/bcm2711_defconfig -index 325ff25..ffaec50 100644 +index 410e2f7..107e053 100644 --- a/arch/arm64/configs/bcm2711_defconfig +++ b/arch/arm64/configs/bcm2711_defconfig -@@ -1483,8 +1483,6 @@ CONFIG_NLS_KOI8_R=m +@@ -1545,8 +1545,6 @@ CONFIG_NLS_KOI8_R=m CONFIG_NLS_KOI8_U=m CONFIG_DLM=m CONFIG_SECURITY=y @@ -70,7 +71,7 @@ index 325ff25..ffaec50 100644 CONFIG_CRYPTO_USER=m CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_ADIANTUM=m -@@ -1517,3 +1515,36 @@ CONFIG_IRQSOFF_TRACER=y +@@ -1578,3 +1576,37 @@ CONFIG_IRQSOFF_TRACER=y CONFIG_SCHED_TRACER=y CONFIG_BLK_DEV_IO_TRACE=y # CONFIG_UPROBE_EVENTS is not set @@ -107,6 +108,7 @@ index 325ff25..ffaec50 100644 +# CONFIG_WIREGUARD_DEBUG is not set +CONFIG_WIREGUARD=m +CONFIG_BLK_DEV_RBD=m ++CONFIG_FW_LOADER_COMPRESS=y -- 2.18.4 diff --git a/SOURCES/rpi-5.15.x.patch b/SOURCES/rpi-5.15.x.patch index 9e5361d..eb8538d 100644 --- a/SOURCES/rpi-5.15.x.patch +++ b/SOURCES/rpi-5.15.x.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 19 Aug 2021 15:59:29 +0200 -Subject: [PATCH 001/991] drm/vc4: hdmi: Split the CEC disable / enable +Subject: [PATCH 0001/1015] drm/vc4: hdmi: Split the CEC disable / enable functions in two In order to ease further additions to the CEC enable and disable, let's @@ -16,10 +16,10 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20210819135931.895976-5-maxi 1 file changed, 45 insertions(+), 30 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 07887cbfd9cb..37b7f57f2e29 100644 +index ef7bea7c43a0..6b61fb1866ff 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1739,7 +1739,7 @@ static irqreturn_t vc4_cec_irq_handler(int irq, void *priv) +@@ -1740,7 +1740,7 @@ static irqreturn_t vc4_cec_irq_handler(int irq, void *priv) return ret; } @@ -28,7 +28,7 @@ index 07887cbfd9cb..37b7f57f2e29 100644 { struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap); /* clock period in microseconds */ -@@ -1752,38 +1752,53 @@ static int vc4_hdmi_cec_adap_enable(struct cec_adapter *adap, bool enable) +@@ -1753,38 +1753,53 @@ static int vc4_hdmi_cec_adap_enable(struct cec_adapter *adap, bool enable) val |= ((4700 / usecs) << VC4_HDMI_CEC_CNT_TO_4700_US_SHIFT) | ((4500 / usecs) << VC4_HDMI_CEC_CNT_TO_4500_US_SHIFT); @@ -118,7 +118,7 @@ index 07887cbfd9cb..37b7f57f2e29 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 19 Aug 2021 15:59:30 +0200 -Subject: [PATCH 002/991] drm/vc4: hdmi: Make sure the device is powered with +Subject: [PATCH 0002/1015] drm/vc4: hdmi: Make sure the device is powered with CEC Similarly to what we encountered with the detect hook with DRM, nothing @@ -140,10 +140,10 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20210819135931.895976-6-maxi 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 37b7f57f2e29..c0023fb54bcf 100644 +index 6b61fb1866ff..80d7fdc7257b 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1744,8 +1744,14 @@ static int vc4_hdmi_cec_enable(struct cec_adapter *adap) +@@ -1745,8 +1745,14 @@ static int vc4_hdmi_cec_enable(struct cec_adapter *adap) struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap); /* clock period in microseconds */ const u32 usecs = 1000000 / CEC_CLOCK_FREQ; @@ -159,7 +159,7 @@ index 37b7f57f2e29..c0023fb54bcf 100644 val &= ~(VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET | VC4_HDMI_CEC_CNT_TO_4700_US_MASK | VC4_HDMI_CEC_CNT_TO_4500_US_MASK); -@@ -1788,6 +1794,8 @@ static int vc4_hdmi_cec_disable(struct cec_adapter *adap) +@@ -1789,6 +1795,8 @@ static int vc4_hdmi_cec_disable(struct cec_adapter *adap) HDMI_WRITE(HDMI_CEC_CNTRL_5, HDMI_READ(HDMI_CEC_CNTRL_5) | VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET); @@ -175,8 +175,8 @@ index 37b7f57f2e29..c0023fb54bcf 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 19 Aug 2021 15:59:31 +0200 -Subject: [PATCH 003/991] drm/vc4: hdmi: Warn if we access the controller while - disabled +Subject: [PATCH 0003/1015] drm/vc4: hdmi: Warn if we access the controller + while disabled We've had many silent hangs where the kernel would look like it just stalled due to the access to one of the HDMI registers while the @@ -230,7 +230,7 @@ index 19d2fdc446bc..99dde6e06a37 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 25 Oct 2021 17:28:54 +0200 -Subject: [PATCH 004/991] drm/vc4: hdmi: Remove the DDC probing for status +Subject: [PATCH 0004/1015] drm/vc4: hdmi: Remove the DDC probing for status detection Commit 9d44abbbb8d5 ("drm/vc4: Fall back to using an EDID probe in the @@ -264,10 +264,10 @@ Link: https://lore.kernel.org/r/20211025152903.1088803-2-maxime@cerno.tech 1 file changed, 2 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index c0023fb54bcf..5027a73e94b3 100644 +index 80d7fdc7257b..689dc242b155 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -175,8 +175,6 @@ vc4_hdmi_connector_detect(struct drm_connector *connector, bool force) +@@ -176,8 +176,6 @@ vc4_hdmi_connector_detect(struct drm_connector *connector, bool force) if (vc4_hdmi->hpd_gpio && gpiod_get_value_cansleep(vc4_hdmi->hpd_gpio)) { connected = true; @@ -283,7 +283,7 @@ index c0023fb54bcf..5027a73e94b3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 25 Oct 2021 17:29:01 +0200 -Subject: [PATCH 005/991] drm/vc4: hdmi: Raise the maximum clock rate +Subject: [PATCH 0005/1015] drm/vc4: hdmi: Raise the maximum clock rate Now that we have the infrastructure in place, we can raise the maximum pixel rate we can reach for HDMI0 on the BCM2711. @@ -301,10 +301,10 @@ Link: https://lore.kernel.org/r/20211025152903.1088803-9-maxime@cerno.tech 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 5027a73e94b3..66a00450b9d1 100644 +index 689dc242b155..8a30f65efe76 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -2377,7 +2377,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { +@@ -2378,7 +2378,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { .encoder_type = VC4_ENCODER_TYPE_HDMI0, .debugfs_name = "hdmi0_regs", .card_name = "vc4-hdmi-0", @@ -320,7 +320,7 @@ index 5027a73e94b3..66a00450b9d1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 25 Oct 2021 17:28:55 +0200 -Subject: [PATCH 006/991] drm/vc4: hdmi: Fix HPD GPIO detection +Subject: [PATCH 0006/1015] drm/vc4: hdmi: Fix HPD GPIO detection Prior to commit 6800234ceee0 ("drm/vc4: hdmi: Convert to gpiod"), in the detect hook, if we had an HPD GPIO we would only rely on it and return @@ -343,10 +343,10 @@ Link: https://lore.kernel.org/r/20211025152903.1088803-3-maxime@cerno.tech 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 66a00450b9d1..a3d43ed62df2 100644 +index 8a30f65efe76..c1440bf1994d 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -172,9 +172,9 @@ vc4_hdmi_connector_detect(struct drm_connector *connector, bool force) +@@ -173,9 +173,9 @@ vc4_hdmi_connector_detect(struct drm_connector *connector, bool force) WARN_ON(pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev)); @@ -366,7 +366,7 @@ index 66a00450b9d1..a3d43ed62df2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 25 Oct 2021 16:11:08 +0200 -Subject: [PATCH 007/991] drm/vc4: hdmi: Add a spinlock to protect register +Subject: [PATCH 0007/1015] drm/vc4: hdmi: Add a spinlock to protect register access The vc4 HDMI driver has multiple path shared between the CEC, ALSA and @@ -389,10 +389,10 @@ Signed-off-by: Maxime Ripard 4 files changed, 236 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index a3d43ed62df2..d243a30a37a9 100644 +index c1440bf1994d..8ff47f77e87e 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -118,6 +118,10 @@ static int vc4_hdmi_debugfs_regs(struct seq_file *m, void *unused) +@@ -119,6 +119,10 @@ static int vc4_hdmi_debugfs_regs(struct seq_file *m, void *unused) static void vc4_hdmi_reset(struct vc4_hdmi *vc4_hdmi) { @@ -403,7 +403,7 @@ index a3d43ed62df2..d243a30a37a9 100644 HDMI_WRITE(HDMI_M_CTL, VC4_HD_M_SW_RST); udelay(1); HDMI_WRITE(HDMI_M_CTL, 0); -@@ -129,24 +133,36 @@ static void vc4_hdmi_reset(struct vc4_hdmi *vc4_hdmi) +@@ -130,24 +134,36 @@ static void vc4_hdmi_reset(struct vc4_hdmi *vc4_hdmi) VC4_HDMI_SW_RESET_FORMAT_DETECT); HDMI_WRITE(HDMI_SW_RESET_CONTROL, 0); @@ -440,7 +440,7 @@ index a3d43ed62df2..d243a30a37a9 100644 value = HDMI_READ(HDMI_CEC_CNTRL_1); value &= ~VC4_HDMI_CEC_DIV_CLK_CNT_MASK; -@@ -154,9 +170,11 @@ static void vc4_hdmi_cec_update_clk_div(struct vc4_hdmi *vc4_hdmi) +@@ -155,9 +171,11 @@ static void vc4_hdmi_cec_update_clk_div(struct vc4_hdmi *vc4_hdmi) * Set the clock divider: the hsm_clock rate and this divider * setting will give a 40 kHz CEC clock. */ @@ -453,7 +453,7 @@ index a3d43ed62df2..d243a30a37a9 100644 } #else static void vc4_hdmi_cec_update_clk_div(struct vc4_hdmi *vc4_hdmi) {} -@@ -175,8 +193,16 @@ vc4_hdmi_connector_detect(struct drm_connector *connector, bool force) +@@ -176,8 +194,16 @@ vc4_hdmi_connector_detect(struct drm_connector *connector, bool force) if (vc4_hdmi->hpd_gpio) { if (gpiod_get_value_cansleep(vc4_hdmi->hpd_gpio)) connected = true; @@ -472,7 +472,7 @@ index a3d43ed62df2..d243a30a37a9 100644 } if (connected) { -@@ -370,9 +396,12 @@ static int vc4_hdmi_stop_packet(struct drm_encoder *encoder, +@@ -371,9 +397,12 @@ static int vc4_hdmi_stop_packet(struct drm_encoder *encoder, { struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); u32 packet_id = type - 0x80; @@ -485,7 +485,7 @@ index a3d43ed62df2..d243a30a37a9 100644 if (!poll) return 0; -@@ -392,6 +421,7 @@ static void vc4_hdmi_write_infoframe(struct drm_encoder *encoder, +@@ -393,6 +422,7 @@ static void vc4_hdmi_write_infoframe(struct drm_encoder *encoder, void __iomem *base = __vc4_hdmi_get_field_base(vc4_hdmi, ram_packet_start->reg); uint8_t buffer[VC4_HDMI_PACKET_STRIDE]; @@ -493,7 +493,7 @@ index a3d43ed62df2..d243a30a37a9 100644 ssize_t len, i; int ret; -@@ -409,6 +439,8 @@ static void vc4_hdmi_write_infoframe(struct drm_encoder *encoder, +@@ -410,6 +440,8 @@ static void vc4_hdmi_write_infoframe(struct drm_encoder *encoder, return; } @@ -502,7 +502,7 @@ index a3d43ed62df2..d243a30a37a9 100644 for (i = 0; i < len; i += 7) { writel(buffer[i + 0] << 0 | buffer[i + 1] << 8 | -@@ -426,6 +458,9 @@ static void vc4_hdmi_write_infoframe(struct drm_encoder *encoder, +@@ -427,6 +459,9 @@ static void vc4_hdmi_write_infoframe(struct drm_encoder *encoder, HDMI_WRITE(HDMI_RAM_PACKET_CONFIG, HDMI_READ(HDMI_RAM_PACKET_CONFIG) | BIT(packet_id)); @@ -512,7 +512,7 @@ index a3d43ed62df2..d243a30a37a9 100644 ret = wait_for((HDMI_READ(HDMI_RAM_PACKET_STATUS) & BIT(packet_id)), 100); if (ret) -@@ -545,6 +580,7 @@ static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder) +@@ -546,6 +581,7 @@ static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder) { struct drm_display_mode *mode = &encoder->crtc->state->adjusted_mode; struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); @@ -520,7 +520,7 @@ index a3d43ed62df2..d243a30a37a9 100644 if (!vc4_hdmi_supports_scrambling(encoder, mode)) return; -@@ -555,8 +591,10 @@ static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder) +@@ -556,8 +592,10 @@ static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder) drm_scdc_set_high_tmds_clock_ratio(vc4_hdmi->ddc, true); drm_scdc_set_scrambling(vc4_hdmi->ddc, true); @@ -531,7 +531,7 @@ index a3d43ed62df2..d243a30a37a9 100644 queue_delayed_work(system_wq, &vc4_hdmi->scrambling_work, msecs_to_jiffies(SCRAMBLING_POLLING_DELAY_MS)); -@@ -566,6 +604,7 @@ static void vc4_hdmi_disable_scrambling(struct drm_encoder *encoder) +@@ -567,6 +605,7 @@ static void vc4_hdmi_disable_scrambling(struct drm_encoder *encoder) { struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); struct drm_crtc *crtc = encoder->crtc; @@ -539,7 +539,7 @@ index a3d43ed62df2..d243a30a37a9 100644 /* * At boot, encoder->crtc will be NULL. Since we don't know the -@@ -581,8 +620,10 @@ static void vc4_hdmi_disable_scrambling(struct drm_encoder *encoder) +@@ -582,8 +621,10 @@ static void vc4_hdmi_disable_scrambling(struct drm_encoder *encoder) if (delayed_work_pending(&vc4_hdmi->scrambling_work)) cancel_delayed_work_sync(&vc4_hdmi->scrambling_work); @@ -550,7 +550,7 @@ index a3d43ed62df2..d243a30a37a9 100644 drm_scdc_set_scrambling(vc4_hdmi->ddc, false); drm_scdc_set_high_tmds_clock_ratio(vc4_hdmi->ddc, false); -@@ -608,15 +649,23 @@ static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder, +@@ -609,15 +650,23 @@ static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder, struct drm_atomic_state *state) { struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); @@ -574,7 +574,7 @@ index a3d43ed62df2..d243a30a37a9 100644 vc4_hdmi_disable_scrambling(encoder); } -@@ -624,10 +673,13 @@ static void vc4_hdmi_encoder_post_crtc_powerdown(struct drm_encoder *encoder, +@@ -625,10 +674,13 @@ static void vc4_hdmi_encoder_post_crtc_powerdown(struct drm_encoder *encoder, struct drm_atomic_state *state) { struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); @@ -588,7 +588,7 @@ index a3d43ed62df2..d243a30a37a9 100644 if (vc4_hdmi->variant->phy_disable) vc4_hdmi->variant->phy_disable(vc4_hdmi); -@@ -646,8 +698,11 @@ static void vc4_hdmi_encoder_disable(struct drm_encoder *encoder) +@@ -647,8 +699,11 @@ static void vc4_hdmi_encoder_disable(struct drm_encoder *encoder) static void vc4_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, bool enable) { @@ -600,7 +600,7 @@ index a3d43ed62df2..d243a30a37a9 100644 csc_ctl = VC4_SET_FIELD(VC4_HD_CSC_CTL_ORDER_BGR, VC4_HD_CSC_CTL_ORDER); -@@ -677,14 +732,19 @@ static void vc4_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, bool enable) +@@ -678,14 +733,19 @@ static void vc4_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, bool enable) /* The RGB order applies even when CSC is disabled. */ HDMI_WRITE(HDMI_CSC_CTL, csc_ctl); @@ -620,7 +620,7 @@ index a3d43ed62df2..d243a30a37a9 100644 if (enable) { /* CEA VICs other than #1 requre limited range RGB * output unless overridden by an AVI infoframe. -@@ -716,6 +776,8 @@ static void vc5_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, bool enable) +@@ -717,6 +777,8 @@ static void vc5_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, bool enable) } HDMI_WRITE(HDMI_CSC_CTL, csc_ctl); @@ -629,7 +629,7 @@ index a3d43ed62df2..d243a30a37a9 100644 } static void vc4_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, -@@ -739,6 +801,9 @@ static void vc4_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, +@@ -740,6 +802,9 @@ static void vc4_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, mode->crtc_vsync_end - interlaced, VC4_HDMI_VERTB_VBP)); @@ -639,7 +639,7 @@ index a3d43ed62df2..d243a30a37a9 100644 HDMI_WRITE(HDMI_HORZA, (vsync_pos ? VC4_HDMI_HORZA_VPOS : 0) | -@@ -762,6 +827,8 @@ static void vc4_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, +@@ -763,6 +828,8 @@ static void vc4_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, HDMI_WRITE(HDMI_VERTB0, vertb_even); HDMI_WRITE(HDMI_VERTB1, vertb); @@ -648,7 +648,7 @@ index a3d43ed62df2..d243a30a37a9 100644 } static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, -@@ -785,10 +852,13 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, +@@ -786,10 +853,13 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, mode->crtc_vsync_end - interlaced, VC4_HDMI_VERTB_VBP)); @@ -662,7 +662,7 @@ index a3d43ed62df2..d243a30a37a9 100644 HDMI_WRITE(HDMI_VEC_INTERFACE_XBAR, 0x354021); HDMI_WRITE(HDMI_HORZA, (vsync_pos ? VC5_HDMI_HORZA_VPOS : 0) | -@@ -847,13 +917,18 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, +@@ -848,13 +918,18 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, HDMI_WRITE(HDMI_GCP_CONFIG, reg); HDMI_WRITE(HDMI_CLOCK_STOP, 0); @@ -681,7 +681,7 @@ index a3d43ed62df2..d243a30a37a9 100644 drift = HDMI_READ(HDMI_FIFO_CTL); drift &= VC4_HDMI_FIFO_VALID_WRITE_MASK; -@@ -861,12 +936,20 @@ static void vc4_hdmi_recenter_fifo(struct vc4_hdmi *vc4_hdmi) +@@ -862,12 +937,20 @@ static void vc4_hdmi_recenter_fifo(struct vc4_hdmi *vc4_hdmi) drift & ~VC4_HDMI_FIFO_CTL_RECENTER); HDMI_WRITE(HDMI_FIFO_CTL, drift | VC4_HDMI_FIFO_CTL_RECENTER); @@ -702,7 +702,7 @@ index a3d43ed62df2..d243a30a37a9 100644 ret = wait_for(HDMI_READ(HDMI_FIFO_CTL) & VC4_HDMI_FIFO_CTL_RECENTER_DONE, 1); WARN_ONCE(ret, "Timeout waiting for " -@@ -900,6 +983,7 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, +@@ -901,6 +984,7 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); unsigned long pixel_rate = vc4_conn_state->pixel_rate; unsigned long bvb_rate, hsm_rate; @@ -710,7 +710,7 @@ index a3d43ed62df2..d243a30a37a9 100644 int ret; /* -@@ -968,11 +1052,15 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, +@@ -969,11 +1053,15 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, if (vc4_hdmi->variant->phy_init) vc4_hdmi->variant->phy_init(vc4_hdmi, vc4_conn_state); @@ -726,7 +726,7 @@ index a3d43ed62df2..d243a30a37a9 100644 if (vc4_hdmi->variant->set_timings) vc4_hdmi->variant->set_timings(vc4_hdmi, conn_state, mode); -@@ -992,6 +1080,7 @@ static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder, +@@ -993,6 +1081,7 @@ static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder, struct drm_display_mode *mode = &encoder->crtc->state->adjusted_mode; struct vc4_hdmi_encoder *vc4_encoder = to_vc4_hdmi_encoder(encoder); struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); @@ -734,7 +734,7 @@ index a3d43ed62df2..d243a30a37a9 100644 if (vc4_encoder->hdmi_monitor && drm_default_rgb_quant_range(mode) == HDMI_QUANTIZATION_RANGE_LIMITED) { -@@ -1006,7 +1095,9 @@ static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder, +@@ -1007,7 +1096,9 @@ static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder, vc4_encoder->limited_rgb_range = false; } @@ -744,7 +744,7 @@ index a3d43ed62df2..d243a30a37a9 100644 } static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder, -@@ -1017,8 +1108,11 @@ static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder, +@@ -1018,8 +1109,11 @@ static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder, struct vc4_hdmi_encoder *vc4_encoder = to_vc4_hdmi_encoder(encoder); bool hsync_pos = mode->flags & DRM_MODE_FLAG_PHSYNC; bool vsync_pos = mode->flags & DRM_MODE_FLAG_PVSYNC; @@ -756,7 +756,7 @@ index a3d43ed62df2..d243a30a37a9 100644 HDMI_WRITE(HDMI_VID_CTL, VC4_HD_VID_CTL_ENABLE | VC4_HD_VID_CTL_CLRRGB | -@@ -1035,6 +1129,8 @@ static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder, +@@ -1036,6 +1130,8 @@ static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder, HDMI_READ(HDMI_SCHEDULER_CONTROL) | VC4_HDMI_SCHEDULER_CONTROL_MODE_HDMI); @@ -765,7 +765,7 @@ index a3d43ed62df2..d243a30a37a9 100644 ret = wait_for(HDMI_READ(HDMI_SCHEDULER_CONTROL) & VC4_HDMI_SCHEDULER_CONTROL_HDMI_ACTIVE, 1000); WARN_ONCE(ret, "Timeout waiting for " -@@ -1047,6 +1143,8 @@ static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder, +@@ -1048,6 +1144,8 @@ static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder, HDMI_READ(HDMI_SCHEDULER_CONTROL) & ~VC4_HDMI_SCHEDULER_CONTROL_MODE_HDMI); @@ -774,7 +774,7 @@ index a3d43ed62df2..d243a30a37a9 100644 ret = wait_for(!(HDMI_READ(HDMI_SCHEDULER_CONTROL) & VC4_HDMI_SCHEDULER_CONTROL_HDMI_ACTIVE), 1000); WARN_ONCE(ret, "Timeout waiting for " -@@ -1054,6 +1152,8 @@ static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder, +@@ -1055,6 +1153,8 @@ static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder, } if (vc4_encoder->hdmi_monitor) { @@ -783,7 +783,7 @@ index a3d43ed62df2..d243a30a37a9 100644 WARN_ON(!(HDMI_READ(HDMI_SCHEDULER_CONTROL) & VC4_HDMI_SCHEDULER_CONTROL_HDMI_ACTIVE)); HDMI_WRITE(HDMI_SCHEDULER_CONTROL, -@@ -1063,6 +1163,8 @@ static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder, +@@ -1064,6 +1164,8 @@ static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder, HDMI_WRITE(HDMI_RAM_PACKET_CONFIG, VC4_HDMI_RAM_PACKET_ENABLE); @@ -792,7 +792,7 @@ index a3d43ed62df2..d243a30a37a9 100644 vc4_hdmi_set_infoframes(encoder); } -@@ -1186,6 +1288,7 @@ static void vc4_hdmi_audio_set_mai_clock(struct vc4_hdmi *vc4_hdmi, +@@ -1187,6 +1289,7 @@ static void vc4_hdmi_audio_set_mai_clock(struct vc4_hdmi *vc4_hdmi, unsigned int samplerate) { u32 hsm_clock = clk_get_rate(vc4_hdmi->audio_clock); @@ -800,7 +800,7 @@ index a3d43ed62df2..d243a30a37a9 100644 unsigned long n, m; rational_best_approximation(hsm_clock, samplerate, -@@ -1195,9 +1298,11 @@ static void vc4_hdmi_audio_set_mai_clock(struct vc4_hdmi *vc4_hdmi, +@@ -1196,9 +1299,11 @@ static void vc4_hdmi_audio_set_mai_clock(struct vc4_hdmi *vc4_hdmi, VC4_HD_MAI_SMP_M_SHIFT) + 1, &n, &m); @@ -812,7 +812,7 @@ index a3d43ed62df2..d243a30a37a9 100644 } static void vc4_hdmi_set_n_cts(struct vc4_hdmi *vc4_hdmi, unsigned int samplerate) -@@ -1208,6 +1313,8 @@ static void vc4_hdmi_set_n_cts(struct vc4_hdmi *vc4_hdmi, unsigned int samplerat +@@ -1209,6 +1314,8 @@ static void vc4_hdmi_set_n_cts(struct vc4_hdmi *vc4_hdmi, unsigned int samplerat u32 n, cts; u64 tmp; @@ -821,7 +821,7 @@ index a3d43ed62df2..d243a30a37a9 100644 n = 128 * samplerate / 1000; tmp = (u64)(mode->clock * 1000) * n; do_div(tmp, 128 * samplerate); -@@ -1237,6 +1344,7 @@ static int vc4_hdmi_audio_startup(struct device *dev, void *data) +@@ -1238,6 +1345,7 @@ static int vc4_hdmi_audio_startup(struct device *dev, void *data) { struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev); struct drm_encoder *encoder = &vc4_hdmi->encoder.base.base; @@ -829,7 +829,7 @@ index a3d43ed62df2..d243a30a37a9 100644 /* * If the HDMI encoder hasn't probed, or the encoder is -@@ -1248,12 +1356,14 @@ static int vc4_hdmi_audio_startup(struct device *dev, void *data) +@@ -1249,12 +1357,14 @@ static int vc4_hdmi_audio_startup(struct device *dev, void *data) vc4_hdmi->audio.streaming = true; @@ -844,7 +844,7 @@ index a3d43ed62df2..d243a30a37a9 100644 if (vc4_hdmi->variant->phy_rng_enable) vc4_hdmi->variant->phy_rng_enable(vc4_hdmi); -@@ -1265,6 +1375,7 @@ static void vc4_hdmi_audio_reset(struct vc4_hdmi *vc4_hdmi) +@@ -1266,6 +1376,7 @@ static void vc4_hdmi_audio_reset(struct vc4_hdmi *vc4_hdmi) { struct drm_encoder *encoder = &vc4_hdmi->encoder.base.base; struct device *dev = &vc4_hdmi->pdev->dev; @@ -852,7 +852,7 @@ index a3d43ed62df2..d243a30a37a9 100644 int ret; vc4_hdmi->audio.streaming = false; -@@ -1272,20 +1383,29 @@ static void vc4_hdmi_audio_reset(struct vc4_hdmi *vc4_hdmi) +@@ -1273,20 +1384,29 @@ static void vc4_hdmi_audio_reset(struct vc4_hdmi *vc4_hdmi) if (ret) dev_err(dev, "Failed to stop audio infoframe: %d\n", ret); @@ -882,7 +882,7 @@ index a3d43ed62df2..d243a30a37a9 100644 if (vc4_hdmi->variant->phy_rng_disable) vc4_hdmi->variant->phy_rng_disable(vc4_hdmi); -@@ -1340,6 +1460,7 @@ static int vc4_hdmi_audio_prepare(struct device *dev, void *data, +@@ -1341,6 +1461,7 @@ static int vc4_hdmi_audio_prepare(struct device *dev, void *data, struct drm_encoder *encoder = &vc4_hdmi->encoder.base.base; unsigned int sample_rate = params->sample_rate; unsigned int channels = params->channels; @@ -890,7 +890,7 @@ index a3d43ed62df2..d243a30a37a9 100644 u32 audio_packet_config, channel_mask; u32 channel_map; u32 mai_audio_format; -@@ -1348,14 +1469,15 @@ static int vc4_hdmi_audio_prepare(struct device *dev, void *data, +@@ -1349,14 +1470,15 @@ static int vc4_hdmi_audio_prepare(struct device *dev, void *data, dev_dbg(dev, "%s: %u Hz, %d bit, %d channels\n", __func__, sample_rate, params->sample_width, channels); @@ -908,7 +908,7 @@ index a3d43ed62df2..d243a30a37a9 100644 mai_sample_rate = sample_rate_to_mai_fmt(sample_rate); if (params->iec.status[0] & IEC958_AES0_NONAUDIO && params->channels == 8) -@@ -1393,8 +1515,11 @@ static int vc4_hdmi_audio_prepare(struct device *dev, void *data, +@@ -1394,8 +1516,11 @@ static int vc4_hdmi_audio_prepare(struct device *dev, void *data, channel_map = vc4_hdmi->variant->channel_map(vc4_hdmi, channel_mask); HDMI_WRITE(HDMI_MAI_CHANNEL_MAP, channel_map); HDMI_WRITE(HDMI_AUDIO_PACKET_CONFIG, audio_packet_config); @@ -920,7 +920,7 @@ index a3d43ed62df2..d243a30a37a9 100644 memcpy(&vc4_hdmi->audio.infoframe, ¶ms->cea, sizeof(params->cea)); vc4_hdmi_set_audio_infoframe(encoder); -@@ -1668,6 +1793,8 @@ static void vc4_cec_read_msg(struct vc4_hdmi *vc4_hdmi, u32 cntrl1) +@@ -1669,6 +1794,8 @@ static void vc4_cec_read_msg(struct vc4_hdmi *vc4_hdmi, u32 cntrl1) struct cec_msg *msg = &vc4_hdmi->cec_rx_msg; unsigned int i; @@ -929,7 +929,7 @@ index a3d43ed62df2..d243a30a37a9 100644 msg->len = 1 + ((cntrl1 & VC4_HDMI_CEC_REC_WRD_CNT_MASK) >> VC4_HDMI_CEC_REC_WRD_CNT_SHIFT); -@@ -1686,11 +1813,12 @@ static void vc4_cec_read_msg(struct vc4_hdmi *vc4_hdmi, u32 cntrl1) +@@ -1687,11 +1814,12 @@ static void vc4_cec_read_msg(struct vc4_hdmi *vc4_hdmi, u32 cntrl1) } } @@ -944,7 +944,7 @@ index a3d43ed62df2..d243a30a37a9 100644 cntrl1 = HDMI_READ(HDMI_CEC_CNTRL_1); vc4_hdmi->cec_tx_ok = cntrl1 & VC4_HDMI_CEC_TX_STATUS_GOOD; cntrl1 &= ~VC4_HDMI_CEC_START_XMIT_BEGIN; -@@ -1699,11 +1827,24 @@ static irqreturn_t vc4_cec_irq_handler_tx_bare(int irq, void *priv) +@@ -1700,11 +1828,24 @@ static irqreturn_t vc4_cec_irq_handler_tx_bare(int irq, void *priv) return IRQ_WAKE_THREAD; } @@ -970,7 +970,7 @@ index a3d43ed62df2..d243a30a37a9 100644 vc4_hdmi->cec_rx_msg.len = 0; cntrl1 = HDMI_READ(HDMI_CEC_CNTRL_1); vc4_cec_read_msg(vc4_hdmi, cntrl1); -@@ -1716,6 +1857,18 @@ static irqreturn_t vc4_cec_irq_handler_rx_bare(int irq, void *priv) +@@ -1717,6 +1858,18 @@ static irqreturn_t vc4_cec_irq_handler_rx_bare(int irq, void *priv) return IRQ_WAKE_THREAD; } @@ -989,7 +989,7 @@ index a3d43ed62df2..d243a30a37a9 100644 static irqreturn_t vc4_cec_irq_handler(int irq, void *priv) { struct vc4_hdmi *vc4_hdmi = priv; -@@ -1726,14 +1879,17 @@ static irqreturn_t vc4_cec_irq_handler(int irq, void *priv) +@@ -1727,14 +1880,17 @@ static irqreturn_t vc4_cec_irq_handler(int irq, void *priv) if (!(stat & VC4_HDMI_CPU_CEC)) return IRQ_NONE; @@ -1009,7 +1009,7 @@ index a3d43ed62df2..d243a30a37a9 100644 return ret; } -@@ -1742,6 +1898,7 @@ static int vc4_hdmi_cec_enable(struct cec_adapter *adap) +@@ -1743,6 +1899,7 @@ static int vc4_hdmi_cec_enable(struct cec_adapter *adap) struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap); /* clock period in microseconds */ const u32 usecs = 1000000 / CEC_CLOCK_FREQ; @@ -1017,7 +1017,7 @@ index a3d43ed62df2..d243a30a37a9 100644 u32 val; int ret; -@@ -1749,6 +1906,8 @@ static int vc4_hdmi_cec_enable(struct cec_adapter *adap) +@@ -1750,6 +1907,8 @@ static int vc4_hdmi_cec_enable(struct cec_adapter *adap) if (ret) return ret; @@ -1026,7 +1026,7 @@ index a3d43ed62df2..d243a30a37a9 100644 val = HDMI_READ(HDMI_CEC_CNTRL_5); val &= ~(VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET | VC4_HDMI_CEC_CNT_TO_4700_US_MASK | -@@ -1779,12 +1938,17 @@ static int vc4_hdmi_cec_enable(struct cec_adapter *adap) +@@ -1780,12 +1939,17 @@ static int vc4_hdmi_cec_enable(struct cec_adapter *adap) if (!vc4_hdmi->variant->external_irq_controller) HDMI_WRITE(HDMI_CEC_CPU_MASK_CLEAR, VC4_HDMI_CPU_CEC); @@ -1044,7 +1044,7 @@ index a3d43ed62df2..d243a30a37a9 100644 if (!vc4_hdmi->variant->external_irq_controller) HDMI_WRITE(HDMI_CEC_CPU_MASK_SET, VC4_HDMI_CPU_CEC); -@@ -1792,6 +1956,8 @@ static int vc4_hdmi_cec_disable(struct cec_adapter *adap) +@@ -1793,6 +1957,8 @@ static int vc4_hdmi_cec_disable(struct cec_adapter *adap) HDMI_WRITE(HDMI_CEC_CNTRL_5, HDMI_READ(HDMI_CEC_CNTRL_5) | VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET); @@ -1053,7 +1053,7 @@ index a3d43ed62df2..d243a30a37a9 100644 pm_runtime_put(&vc4_hdmi->pdev->dev); return 0; -@@ -1808,10 +1974,14 @@ static int vc4_hdmi_cec_adap_enable(struct cec_adapter *adap, bool enable) +@@ -1809,10 +1975,14 @@ static int vc4_hdmi_cec_adap_enable(struct cec_adapter *adap, bool enable) static int vc4_hdmi_cec_adap_log_addr(struct cec_adapter *adap, u8 log_addr) { struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap); @@ -1068,7 +1068,7 @@ index a3d43ed62df2..d243a30a37a9 100644 return 0; } -@@ -1820,6 +1990,7 @@ static int vc4_hdmi_cec_adap_transmit(struct cec_adapter *adap, u8 attempts, +@@ -1821,6 +1991,7 @@ static int vc4_hdmi_cec_adap_transmit(struct cec_adapter *adap, u8 attempts, { struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap); struct drm_device *dev = vc4_hdmi->connector.dev; @@ -1076,7 +1076,7 @@ index a3d43ed62df2..d243a30a37a9 100644 u32 val; unsigned int i; -@@ -1828,6 +1999,8 @@ static int vc4_hdmi_cec_adap_transmit(struct cec_adapter *adap, u8 attempts, +@@ -1829,6 +2000,8 @@ static int vc4_hdmi_cec_adap_transmit(struct cec_adapter *adap, u8 attempts, return -ENOMEM; } @@ -1085,7 +1085,7 @@ index a3d43ed62df2..d243a30a37a9 100644 for (i = 0; i < msg->len; i += 4) HDMI_WRITE(HDMI_CEC_TX_DATA_1 + (i >> 2), (msg->msg[i]) | -@@ -1843,6 +2016,9 @@ static int vc4_hdmi_cec_adap_transmit(struct cec_adapter *adap, u8 attempts, +@@ -1844,6 +2017,9 @@ static int vc4_hdmi_cec_adap_transmit(struct cec_adapter *adap, u8 attempts, val |= VC4_HDMI_CEC_START_XMIT_BEGIN; HDMI_WRITE(HDMI_CEC_CNTRL_1, val); @@ -1095,7 +1095,7 @@ index a3d43ed62df2..d243a30a37a9 100644 return 0; } -@@ -1857,6 +2033,7 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) +@@ -1858,6 +2034,7 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) struct cec_connector_info conn_info; struct platform_device *pdev = vc4_hdmi->pdev; struct device *dev = &pdev->dev; @@ -1103,7 +1103,7 @@ index a3d43ed62df2..d243a30a37a9 100644 u32 value; int ret; -@@ -1876,10 +2053,12 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) +@@ -1877,10 +2054,12 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) cec_fill_conn_info_from_drm(&conn_info, &vc4_hdmi->connector); cec_s_conn_info(vc4_hdmi->cec_adap, &conn_info); @@ -1116,7 +1116,7 @@ index a3d43ed62df2..d243a30a37a9 100644 vc4_hdmi_cec_update_clk_div(vc4_hdmi); -@@ -1898,7 +2077,9 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) +@@ -1899,7 +2078,9 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) if (ret) goto err_remove_cec_rx_handler; } else { @@ -1126,7 +1126,7 @@ index a3d43ed62df2..d243a30a37a9 100644 ret = request_threaded_irq(platform_get_irq(pdev, 0), vc4_cec_irq_handler, -@@ -2168,6 +2349,7 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) +@@ -2169,6 +2350,7 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) vc4_hdmi = devm_kzalloc(dev, sizeof(*vc4_hdmi), GFP_KERNEL); if (!vc4_hdmi) return -ENOMEM; @@ -1285,7 +1285,7 @@ index 99dde6e06a37..fc971506bd4f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 25 Oct 2021 16:11:09 +0200 -Subject: [PATCH 008/991] drm/vc4: hdmi: Use a mutex to prevent concurrent +Subject: [PATCH 0008/1015] drm/vc4: hdmi: Use a mutex to prevent concurrent framework access The vc4 HDMI controller registers into the KMS, CEC and ALSA @@ -1321,10 +1321,10 @@ Signed-off-by: Maxime Ripard 2 files changed, 126 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index d243a30a37a9..41084e05ecce 100644 +index 8ff47f77e87e..c7bc51ff9561 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -188,6 +188,8 @@ vc4_hdmi_connector_detect(struct drm_connector *connector, bool force) +@@ -189,6 +189,8 @@ vc4_hdmi_connector_detect(struct drm_connector *connector, bool force) struct vc4_hdmi *vc4_hdmi = connector_to_vc4_hdmi(connector); bool connected = false; @@ -1333,7 +1333,7 @@ index d243a30a37a9..41084e05ecce 100644 WARN_ON(pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev)); if (vc4_hdmi->hpd_gpio) { -@@ -218,11 +220,13 @@ vc4_hdmi_connector_detect(struct drm_connector *connector, bool force) +@@ -219,11 +221,13 @@ vc4_hdmi_connector_detect(struct drm_connector *connector, bool force) vc4_hdmi_enable_scrambling(&vc4_hdmi->encoder.base.base); pm_runtime_put(&vc4_hdmi->pdev->dev); @@ -1347,7 +1347,7 @@ index d243a30a37a9..41084e05ecce 100644 return connector_status_disconnected; } -@@ -239,10 +243,14 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) +@@ -240,10 +244,14 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) int ret = 0; struct edid *edid; @@ -1364,7 +1364,7 @@ index d243a30a37a9..41084e05ecce 100644 vc4_encoder->hdmi_monitor = drm_detect_hdmi_monitor(edid); -@@ -262,6 +270,9 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) +@@ -263,6 +271,9 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) } } @@ -1374,7 +1374,7 @@ index d243a30a37a9..41084e05ecce 100644 return ret; } -@@ -478,6 +489,8 @@ static void vc4_hdmi_set_avi_infoframe(struct drm_encoder *encoder) +@@ -479,6 +490,8 @@ static void vc4_hdmi_set_avi_infoframe(struct drm_encoder *encoder) union hdmi_infoframe frame; int ret; @@ -1383,7 +1383,7 @@ index d243a30a37a9..41084e05ecce 100644 ret = drm_hdmi_avi_infoframe_from_display_mode(&frame.avi, connector, mode); if (ret < 0) { -@@ -529,6 +542,8 @@ static void vc4_hdmi_set_hdr_infoframe(struct drm_encoder *encoder) +@@ -530,6 +543,8 @@ static void vc4_hdmi_set_hdr_infoframe(struct drm_encoder *encoder) struct drm_connector_state *conn_state = connector->state; union hdmi_infoframe frame; @@ -1392,7 +1392,7 @@ index d243a30a37a9..41084e05ecce 100644 if (!vc4_hdmi->variant->supports_hdr) return; -@@ -545,6 +560,8 @@ static void vc4_hdmi_set_infoframes(struct drm_encoder *encoder) +@@ -546,6 +561,8 @@ static void vc4_hdmi_set_infoframes(struct drm_encoder *encoder) { struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); @@ -1401,7 +1401,7 @@ index d243a30a37a9..41084e05ecce 100644 vc4_hdmi_set_avi_infoframe(encoder); vc4_hdmi_set_spd_infoframe(encoder); /* -@@ -564,6 +581,8 @@ static bool vc4_hdmi_supports_scrambling(struct drm_encoder *encoder, +@@ -565,6 +582,8 @@ static bool vc4_hdmi_supports_scrambling(struct drm_encoder *encoder, struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); struct drm_display_info *display = &vc4_hdmi->connector.display_info; @@ -1410,7 +1410,7 @@ index d243a30a37a9..41084e05ecce 100644 if (!vc4_encoder->hdmi_monitor) return false; -@@ -582,6 +601,8 @@ static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder) +@@ -583,6 +602,8 @@ static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder) struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); unsigned long flags; @@ -1419,7 +1419,7 @@ index d243a30a37a9..41084e05ecce 100644 if (!vc4_hdmi_supports_scrambling(encoder, mode)) return; -@@ -651,6 +672,8 @@ static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder, +@@ -652,6 +673,8 @@ static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder, struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); unsigned long flags; @@ -1428,7 +1428,7 @@ index d243a30a37a9..41084e05ecce 100644 spin_lock_irqsave(&vc4_hdmi->hw_lock, flags); HDMI_WRITE(HDMI_RAM_PACKET_CONFIG, 0); -@@ -667,6 +690,8 @@ static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder, +@@ -668,6 +691,8 @@ static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder, spin_unlock_irqrestore(&vc4_hdmi->hw_lock, flags); vc4_hdmi_disable_scrambling(encoder); @@ -1437,7 +1437,7 @@ index d243a30a37a9..41084e05ecce 100644 } static void vc4_hdmi_encoder_post_crtc_powerdown(struct drm_encoder *encoder, -@@ -676,6 +701,8 @@ static void vc4_hdmi_encoder_post_crtc_powerdown(struct drm_encoder *encoder, +@@ -677,6 +702,8 @@ static void vc4_hdmi_encoder_post_crtc_powerdown(struct drm_encoder *encoder, unsigned long flags; int ret; @@ -1446,7 +1446,7 @@ index d243a30a37a9..41084e05ecce 100644 spin_lock_irqsave(&vc4_hdmi->hw_lock, flags); HDMI_WRITE(HDMI_VID_CTL, HDMI_READ(HDMI_VID_CTL) | VC4_HD_VID_CTL_BLANKPIX); -@@ -690,6 +717,8 @@ static void vc4_hdmi_encoder_post_crtc_powerdown(struct drm_encoder *encoder, +@@ -691,6 +718,8 @@ static void vc4_hdmi_encoder_post_crtc_powerdown(struct drm_encoder *encoder, ret = pm_runtime_put(&vc4_hdmi->pdev->dev); if (ret < 0) DRM_ERROR("Failed to release power domain: %d\n", ret); @@ -1455,7 +1455,7 @@ index d243a30a37a9..41084e05ecce 100644 } static void vc4_hdmi_encoder_disable(struct drm_encoder *encoder) -@@ -986,6 +1015,8 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, +@@ -987,6 +1016,8 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, unsigned long flags; int ret; @@ -1464,7 +1464,7 @@ index d243a30a37a9..41084e05ecce 100644 /* * As stated in RPi's vc4 firmware "HDMI state machine (HSM) clock must * be faster than pixel clock, infinitesimally faster, tested in -@@ -1006,13 +1037,13 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, +@@ -1007,13 +1038,13 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, ret = clk_set_min_rate(vc4_hdmi->hsm_clock, hsm_rate); if (ret) { DRM_ERROR("Failed to set HSM clock rate: %d\n", ret); @@ -1480,7 +1480,7 @@ index d243a30a37a9..41084e05ecce 100644 } ret = clk_set_rate(vc4_hdmi->pixel_clock, pixel_rate); -@@ -1064,13 +1095,16 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, +@@ -1065,13 +1096,16 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, if (vc4_hdmi->variant->set_timings) vc4_hdmi->variant->set_timings(vc4_hdmi, conn_state, mode); @@ -1498,7 +1498,7 @@ index d243a30a37a9..41084e05ecce 100644 return; } -@@ -1082,6 +1116,8 @@ static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder, +@@ -1083,6 +1117,8 @@ static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder, struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); unsigned long flags; @@ -1507,7 +1507,7 @@ index d243a30a37a9..41084e05ecce 100644 if (vc4_encoder->hdmi_monitor && drm_default_rgb_quant_range(mode) == HDMI_QUANTIZATION_RANGE_LIMITED) { if (vc4_hdmi->variant->csc_setup) -@@ -1098,6 +1134,8 @@ static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder, +@@ -1099,6 +1135,8 @@ static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder, spin_lock_irqsave(&vc4_hdmi->hw_lock, flags); HDMI_WRITE(HDMI_FIFO_CTL, VC4_HDMI_FIFO_CTL_MASTER_SLAVE_N); spin_unlock_irqrestore(&vc4_hdmi->hw_lock, flags); @@ -1516,7 +1516,7 @@ index d243a30a37a9..41084e05ecce 100644 } static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder, -@@ -1111,6 +1149,8 @@ static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder, +@@ -1112,6 +1150,8 @@ static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder, unsigned long flags; int ret; @@ -1525,7 +1525,7 @@ index d243a30a37a9..41084e05ecce 100644 spin_lock_irqsave(&vc4_hdmi->hw_lock, flags); HDMI_WRITE(HDMI_VID_CTL, -@@ -1170,6 +1210,8 @@ static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder, +@@ -1171,6 +1211,8 @@ static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder, vc4_hdmi_recenter_fifo(vc4_hdmi); vc4_hdmi_enable_scrambling(encoder); @@ -1534,7 +1534,7 @@ index d243a30a37a9..41084e05ecce 100644 } static void vc4_hdmi_encoder_enable(struct drm_encoder *encoder) -@@ -1313,6 +1355,7 @@ static void vc4_hdmi_set_n_cts(struct vc4_hdmi *vc4_hdmi, unsigned int samplerat +@@ -1314,6 +1356,7 @@ static void vc4_hdmi_set_n_cts(struct vc4_hdmi *vc4_hdmi, unsigned int samplerat u32 n, cts; u64 tmp; @@ -1542,7 +1542,7 @@ index d243a30a37a9..41084e05ecce 100644 lockdep_assert_held(&vc4_hdmi->hw_lock); n = 128 * samplerate / 1000; -@@ -1346,13 +1389,17 @@ static int vc4_hdmi_audio_startup(struct device *dev, void *data) +@@ -1347,13 +1390,17 @@ static int vc4_hdmi_audio_startup(struct device *dev, void *data) struct drm_encoder *encoder = &vc4_hdmi->encoder.base.base; unsigned long flags; @@ -1561,7 +1561,7 @@ index d243a30a37a9..41084e05ecce 100644 vc4_hdmi->audio.streaming = true; -@@ -1368,6 +1415,8 @@ static int vc4_hdmi_audio_startup(struct device *dev, void *data) +@@ -1369,6 +1416,8 @@ static int vc4_hdmi_audio_startup(struct device *dev, void *data) if (vc4_hdmi->variant->phy_rng_enable) vc4_hdmi->variant->phy_rng_enable(vc4_hdmi); @@ -1570,7 +1570,7 @@ index d243a30a37a9..41084e05ecce 100644 return 0; } -@@ -1378,6 +1427,8 @@ static void vc4_hdmi_audio_reset(struct vc4_hdmi *vc4_hdmi) +@@ -1379,6 +1428,8 @@ static void vc4_hdmi_audio_reset(struct vc4_hdmi *vc4_hdmi) unsigned long flags; int ret; @@ -1579,7 +1579,7 @@ index d243a30a37a9..41084e05ecce 100644 vc4_hdmi->audio.streaming = false; ret = vc4_hdmi_stop_packet(encoder, HDMI_INFOFRAME_TYPE_AUDIO, false); if (ret) -@@ -1397,6 +1448,8 @@ static void vc4_hdmi_audio_shutdown(struct device *dev, void *data) +@@ -1398,6 +1449,8 @@ static void vc4_hdmi_audio_shutdown(struct device *dev, void *data) struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev); unsigned long flags; @@ -1588,7 +1588,7 @@ index d243a30a37a9..41084e05ecce 100644 spin_lock_irqsave(&vc4_hdmi->hw_lock, flags); HDMI_WRITE(HDMI_MAI_CTL, -@@ -1411,6 +1464,8 @@ static void vc4_hdmi_audio_shutdown(struct device *dev, void *data) +@@ -1412,6 +1465,8 @@ static void vc4_hdmi_audio_shutdown(struct device *dev, void *data) vc4_hdmi->audio.streaming = false; vc4_hdmi_audio_reset(vc4_hdmi); @@ -1597,7 +1597,7 @@ index d243a30a37a9..41084e05ecce 100644 } static int sample_rate_to_mai_fmt(int samplerate) -@@ -1469,6 +1524,8 @@ static int vc4_hdmi_audio_prepare(struct device *dev, void *data, +@@ -1470,6 +1525,8 @@ static int vc4_hdmi_audio_prepare(struct device *dev, void *data, dev_dbg(dev, "%s: %u Hz, %d bit, %d channels\n", __func__, sample_rate, params->sample_width, channels); @@ -1606,7 +1606,7 @@ index d243a30a37a9..41084e05ecce 100644 vc4_hdmi_audio_set_mai_clock(vc4_hdmi, sample_rate); spin_lock_irqsave(&vc4_hdmi->hw_lock, flags); -@@ -1523,6 +1580,8 @@ static int vc4_hdmi_audio_prepare(struct device *dev, void *data, +@@ -1524,6 +1581,8 @@ static int vc4_hdmi_audio_prepare(struct device *dev, void *data, memcpy(&vc4_hdmi->audio.infoframe, ¶ms->cea, sizeof(params->cea)); vc4_hdmi_set_audio_infoframe(encoder); @@ -1615,7 +1615,7 @@ index d243a30a37a9..41084e05ecce 100644 return 0; } -@@ -1565,7 +1624,9 @@ static int vc4_hdmi_audio_get_eld(struct device *dev, void *data, +@@ -1566,7 +1625,9 @@ static int vc4_hdmi_audio_get_eld(struct device *dev, void *data, struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev); struct drm_connector *connector = &vc4_hdmi->connector; @@ -1625,7 +1625,7 @@ index d243a30a37a9..41084e05ecce 100644 return 0; } -@@ -1902,6 +1963,17 @@ static int vc4_hdmi_cec_enable(struct cec_adapter *adap) +@@ -1903,6 +1964,17 @@ static int vc4_hdmi_cec_enable(struct cec_adapter *adap) u32 val; int ret; @@ -1643,7 +1643,7 @@ index d243a30a37a9..41084e05ecce 100644 ret = pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev); if (ret) return ret; -@@ -1948,6 +2020,17 @@ static int vc4_hdmi_cec_disable(struct cec_adapter *adap) +@@ -1949,6 +2021,17 @@ static int vc4_hdmi_cec_disable(struct cec_adapter *adap) struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap); unsigned long flags; @@ -1661,7 +1661,7 @@ index d243a30a37a9..41084e05ecce 100644 spin_lock_irqsave(&vc4_hdmi->hw_lock, flags); if (!vc4_hdmi->variant->external_irq_controller) -@@ -1976,6 +2059,17 @@ static int vc4_hdmi_cec_adap_log_addr(struct cec_adapter *adap, u8 log_addr) +@@ -1977,6 +2060,17 @@ static int vc4_hdmi_cec_adap_log_addr(struct cec_adapter *adap, u8 log_addr) struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap); unsigned long flags; @@ -1679,7 +1679,7 @@ index d243a30a37a9..41084e05ecce 100644 spin_lock_irqsave(&vc4_hdmi->hw_lock, flags); HDMI_WRITE(HDMI_CEC_CNTRL_1, (HDMI_READ(HDMI_CEC_CNTRL_1) & ~VC4_HDMI_CEC_ADDR_MASK) | -@@ -1994,6 +2088,17 @@ static int vc4_hdmi_cec_adap_transmit(struct cec_adapter *adap, u8 attempts, +@@ -1995,6 +2089,17 @@ static int vc4_hdmi_cec_adap_transmit(struct cec_adapter *adap, u8 attempts, u32 val; unsigned int i; @@ -1697,7 +1697,7 @@ index d243a30a37a9..41084e05ecce 100644 if (msg->len > 16) { drm_err(dev, "Attempting to transmit too much data (%d)\n", msg->len); return -ENOMEM; -@@ -2349,6 +2454,7 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) +@@ -2350,6 +2455,7 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) vc4_hdmi = devm_kzalloc(dev, sizeof(*vc4_hdmi), GFP_KERNEL); if (!vc4_hdmi) return -ENOMEM; @@ -1737,8 +1737,8 @@ index a84a074b5157..44e11ef6f425 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 19 Oct 2021 14:19:29 +0200 -Subject: [PATCH 009/991] drm/vc4: hdmi: Prevent access to crtc->state outside - of KMS +Subject: [PATCH 0009/1015] drm/vc4: hdmi: Prevent access to crtc->state + outside of KMS Accessing the crtc->state pointer from outside the modesetting context is not allowed. We thus need to copy whatever we need from the KMS state @@ -1764,10 +1764,10 @@ Signed-off-by: Maxime Ripard 2 files changed, 32 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 41084e05ecce..010d381cc201 100644 +index c7bc51ff9561..1e60c696bdbd 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -484,8 +484,7 @@ static void vc4_hdmi_set_avi_infoframe(struct drm_encoder *encoder) +@@ -485,8 +485,7 @@ static void vc4_hdmi_set_avi_infoframe(struct drm_encoder *encoder) struct vc4_hdmi_encoder *vc4_encoder = to_vc4_hdmi_encoder(encoder); struct drm_connector *connector = &vc4_hdmi->connector; struct drm_connector_state *cstate = connector->state; @@ -1777,7 +1777,7 @@ index 41084e05ecce..010d381cc201 100644 union hdmi_infoframe frame; int ret; -@@ -597,8 +596,8 @@ static bool vc4_hdmi_supports_scrambling(struct drm_encoder *encoder, +@@ -598,8 +597,8 @@ static bool vc4_hdmi_supports_scrambling(struct drm_encoder *encoder, static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder) { @@ -1787,7 +1787,7 @@ index 41084e05ecce..010d381cc201 100644 unsigned long flags; lockdep_assert_held(&vc4_hdmi->mutex); -@@ -624,18 +623,21 @@ static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder) +@@ -625,18 +624,21 @@ static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder) static void vc4_hdmi_disable_scrambling(struct drm_encoder *encoder) { struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); @@ -1811,7 +1811,7 @@ index 41084e05ecce..010d381cc201 100644 return; if (delayed_work_pending(&vc4_hdmi->scrambling_work)) -@@ -1008,8 +1010,8 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, +@@ -1009,8 +1011,8 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, vc4_hdmi_encoder_get_connector_state(encoder, state); struct vc4_hdmi_connector_state *vc4_conn_state = conn_state_to_vc4_hdmi_conn_state(conn_state); @@ -1821,7 +1821,7 @@ index 41084e05ecce..010d381cc201 100644 unsigned long pixel_rate = vc4_conn_state->pixel_rate; unsigned long bvb_rate, hsm_rate; unsigned long flags; -@@ -1111,9 +1113,9 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, +@@ -1112,9 +1114,9 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder, struct drm_atomic_state *state) { @@ -1833,7 +1833,7 @@ index 41084e05ecce..010d381cc201 100644 unsigned long flags; mutex_lock(&vc4_hdmi->mutex); -@@ -1141,8 +1143,8 @@ static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder, +@@ -1142,8 +1144,8 @@ static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder, static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder, struct drm_atomic_state *state) { @@ -1843,7 +1843,7 @@ index 41084e05ecce..010d381cc201 100644 struct vc4_hdmi_encoder *vc4_encoder = to_vc4_hdmi_encoder(encoder); bool hsync_pos = mode->flags & DRM_MODE_FLAG_PHSYNC; bool vsync_pos = mode->flags & DRM_MODE_FLAG_PVSYNC; -@@ -1218,6 +1220,19 @@ static void vc4_hdmi_encoder_enable(struct drm_encoder *encoder) +@@ -1219,6 +1221,19 @@ static void vc4_hdmi_encoder_enable(struct drm_encoder *encoder) { } @@ -1863,7 +1863,7 @@ index 41084e05ecce..010d381cc201 100644 #define WIFI_2_4GHz_CH1_MIN_FREQ 2400000000ULL #define WIFI_2_4GHz_CH1_MAX_FREQ 2422000000ULL -@@ -1296,6 +1311,7 @@ vc4_hdmi_encoder_mode_valid(struct drm_encoder *encoder, +@@ -1297,6 +1312,7 @@ vc4_hdmi_encoder_mode_valid(struct drm_encoder *encoder, static const struct drm_encoder_helper_funcs vc4_hdmi_encoder_helper_funcs = { .atomic_check = vc4_hdmi_encoder_atomic_check, @@ -1871,7 +1871,7 @@ index 41084e05ecce..010d381cc201 100644 .mode_valid = vc4_hdmi_encoder_mode_valid, .disable = vc4_hdmi_encoder_disable, .enable = vc4_hdmi_encoder_enable, -@@ -1349,9 +1365,7 @@ static void vc4_hdmi_audio_set_mai_clock(struct vc4_hdmi *vc4_hdmi, +@@ -1350,9 +1366,7 @@ static void vc4_hdmi_audio_set_mai_clock(struct vc4_hdmi *vc4_hdmi, static void vc4_hdmi_set_n_cts(struct vc4_hdmi *vc4_hdmi, unsigned int samplerate) { @@ -1906,7 +1906,7 @@ index 44e11ef6f425..f0cfcb75b2ae 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 24 Sep 2021 14:27:38 +0200 -Subject: [PATCH 010/991] drm/vc4: hdmi: Check the device state in prepare() +Subject: [PATCH 0010/1015] drm/vc4: hdmi: Check the device state in prepare() Even though we already check that the encoder->crtc pointer is there during in startup(), which is part of the open() path in ASoC, nothing @@ -1923,10 +1923,10 @@ Signed-off-by: Maxime Ripard 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 010d381cc201..a676d00d39a4 100644 +index 1e60c696bdbd..010e69af0e28 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1397,20 +1397,36 @@ static inline struct vc4_hdmi *dai_to_hdmi(struct snd_soc_dai *dai) +@@ -1398,20 +1398,36 @@ static inline struct vc4_hdmi *dai_to_hdmi(struct snd_soc_dai *dai) return snd_soc_card_get_drvdata(card); } @@ -1970,7 +1970,7 @@ index 010d381cc201..a676d00d39a4 100644 mutex_unlock(&vc4_hdmi->mutex); return -ENODEV; } -@@ -1540,6 +1556,11 @@ static int vc4_hdmi_audio_prepare(struct device *dev, void *data, +@@ -1541,6 +1557,11 @@ static int vc4_hdmi_audio_prepare(struct device *dev, void *data, mutex_lock(&vc4_hdmi->mutex); @@ -1989,7 +1989,7 @@ index 010d381cc201..a676d00d39a4 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 19 Oct 2021 17:31:58 +0200 -Subject: [PATCH 011/991] drm/vc4: hdmi: Introduce an output_enabled flag +Subject: [PATCH 0011/1015] drm/vc4: hdmi: Introduce an output_enabled flag We currently poke at encoder->crtc in the ALSA code path to determine whether the HDMI output is enabled or not, and thus whether we should @@ -2007,10 +2007,10 @@ Signed-off-by: Maxime Ripard 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index a676d00d39a4..2ae5346d7a14 100644 +index 010e69af0e28..eed771a0a566 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -725,6 +725,11 @@ static void vc4_hdmi_encoder_post_crtc_powerdown(struct drm_encoder *encoder, +@@ -726,6 +726,11 @@ static void vc4_hdmi_encoder_post_crtc_powerdown(struct drm_encoder *encoder, static void vc4_hdmi_encoder_disable(struct drm_encoder *encoder) { @@ -2022,7 +2022,7 @@ index a676d00d39a4..2ae5346d7a14 100644 } static void vc4_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, bool enable) -@@ -1218,6 +1223,11 @@ static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder, +@@ -1219,6 +1224,11 @@ static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder, static void vc4_hdmi_encoder_enable(struct drm_encoder *encoder) { @@ -2034,7 +2034,7 @@ index a676d00d39a4..2ae5346d7a14 100644 } static void vc4_hdmi_encoder_atomic_mode_set(struct drm_encoder *encoder, -@@ -1399,14 +1409,12 @@ static inline struct vc4_hdmi *dai_to_hdmi(struct snd_soc_dai *dai) +@@ -1400,14 +1410,12 @@ static inline struct vc4_hdmi *dai_to_hdmi(struct snd_soc_dai *dai) static bool vc4_hdmi_audio_can_stream(struct vc4_hdmi *vc4_hdmi) { @@ -2075,7 +2075,7 @@ index f0cfcb75b2ae..f41c6353cded 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 19 Oct 2021 19:13:46 +0200 -Subject: [PATCH 012/991] drm/vc4: hdmi: Introduce a scdc_enabled flag +Subject: [PATCH 0012/1015] drm/vc4: hdmi: Introduce a scdc_enabled flag We currently rely on two functions, vc4_hdmi_supports_scrambling() and vc4_hdmi_mode_needs_scrambling() to determine if we should enable and @@ -2108,10 +2108,10 @@ Signed-off-by: Maxime Ripard 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 2ae5346d7a14..885c732757c9 100644 +index eed771a0a566..bad5ac56cddf 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -616,6 +616,8 @@ static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder) +@@ -617,6 +617,8 @@ static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder) VC5_HDMI_SCRAMBLER_CTL_ENABLE); spin_unlock_irqrestore(&vc4_hdmi->hw_lock, flags); @@ -2120,7 +2120,7 @@ index 2ae5346d7a14..885c732757c9 100644 queue_delayed_work(system_wq, &vc4_hdmi->scrambling_work, msecs_to_jiffies(SCRAMBLING_POLLING_DELAY_MS)); } -@@ -623,22 +625,14 @@ static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder) +@@ -624,22 +626,14 @@ static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder) static void vc4_hdmi_disable_scrambling(struct drm_encoder *encoder) { struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); @@ -2145,7 +2145,7 @@ index 2ae5346d7a14..885c732757c9 100644 if (delayed_work_pending(&vc4_hdmi->scrambling_work)) cancel_delayed_work_sync(&vc4_hdmi->scrambling_work); -@@ -2512,6 +2506,14 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) +@@ -2513,6 +2507,14 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) vc4_hdmi->pdev = pdev; vc4_hdmi->variant = variant; @@ -2184,7 +2184,7 @@ index f41c6353cded..0c51c91f9d5c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 26 May 2021 16:07:01 +0200 -Subject: [PATCH 013/991] drm/vc4: Make vc4_crtc_get_encoder public +Subject: [PATCH 0013/1015] drm/vc4: Make vc4_crtc_get_encoder public We'll need that function in vc4_kms to compute the core clock rate requirements. @@ -2196,7 +2196,7 @@ Signed-off-by: Maxime Ripard 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c -index 3e61184e194c..52c988fb4a3f 100644 +index 88dbb282d15c..ea0aa8934738 100644 --- a/drivers/gpu/drm/vc4/vc4_crtc.c +++ b/drivers/gpu/drm/vc4/vc4_crtc.c @@ -281,10 +281,10 @@ static u32 vc4_crtc_get_fifo_full_level_bits(struct vc4_crtc *vc4_crtc, @@ -2215,7 +2215,7 @@ index 3e61184e194c..52c988fb4a3f 100644 struct drm_connector *connector; struct drm_connector_list_iter conn_iter; diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h -index 4b550ebd9572..f5e678491502 100644 +index 94c178738fc1..ee2b0909bfd1 100644 --- a/drivers/gpu/drm/vc4/vc4_drv.h +++ b/drivers/gpu/drm/vc4/vc4_drv.h @@ -544,6 +544,11 @@ vc4_crtc_to_vc4_pv_data(const struct vc4_crtc *crtc) @@ -2237,7 +2237,7 @@ index 4b550ebd9572..f5e678491502 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 14 Jun 2021 15:27:24 +0200 -Subject: [PATCH 014/991] drm/vc4: crtc: Add encoder to vc4_crtc_config_pv +Subject: [PATCH 0014/1015] drm/vc4: crtc: Add encoder to vc4_crtc_config_pv prototype vc4_crtc_config_pv() retrieves the encoder again, even though its only @@ -2252,7 +2252,7 @@ Signed-off-by: Maxime Ripard 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c -index 52c988fb4a3f..e97771b16b7a 100644 +index ea0aa8934738..251c2f57eb97 100644 --- a/drivers/gpu/drm/vc4/vc4_crtc.c +++ b/drivers/gpu/drm/vc4/vc4_crtc.c @@ -315,12 +315,11 @@ static void vc4_crtc_pixelvalve_reset(struct drm_crtc *crtc) @@ -2286,7 +2286,7 @@ index 52c988fb4a3f..e97771b16b7a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 21 Jun 2021 16:07:22 +0200 -Subject: [PATCH 015/991] drm/vc4: crtc: Rework the encoder retrieval code +Subject: [PATCH 0015/1015] drm/vc4: crtc: Rework the encoder retrieval code (again) It turns out the encoder retrieval code, in addition to being @@ -2308,7 +2308,7 @@ Signed-off-by: Maxime Ripard 2 files changed, 10 insertions(+), 24 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c -index e97771b16b7a..853b2f594ca5 100644 +index 251c2f57eb97..a75cdd2b3574 100644 --- a/drivers/gpu/drm/vc4/vc4_crtc.c +++ b/drivers/gpu/drm/vc4/vc4_crtc.c @@ -282,26 +282,14 @@ static u32 vc4_crtc_get_fifo_full_level_bits(struct vc4_crtc *vc4_crtc, @@ -2368,7 +2368,7 @@ index e97771b16b7a..853b2f594ca5 100644 require_hvs_enabled(dev); diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h -index f5e678491502..60826aca9e5b 100644 +index ee2b0909bfd1..044c12c05d8b 100644 --- a/drivers/gpu/drm/vc4/vc4_drv.h +++ b/drivers/gpu/drm/vc4/vc4_drv.h @@ -545,9 +545,7 @@ vc4_crtc_to_vc4_pv_data(const struct vc4_crtc *crtc) @@ -2389,7 +2389,7 @@ index f5e678491502..60826aca9e5b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 21 Jun 2021 16:13:02 +0200 -Subject: [PATCH 016/991] drm/vc4: crtc: Add some logging +Subject: [PATCH 0016/1015] drm/vc4: crtc: Add some logging The encoder retrieval code has been a source of bugs and glitches in the past and the crtc <-> encoder association been wrong in a number of @@ -2403,7 +2403,7 @@ Signed-off-by: Maxime Ripard 1 file changed, 6 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c -index 853b2f594ca5..6649814cdcf5 100644 +index a75cdd2b3574..05d00fd86143 100644 --- a/drivers/gpu/drm/vc4/vc4_crtc.c +++ b/drivers/gpu/drm/vc4/vc4_crtc.c @@ -543,6 +543,9 @@ static void vc4_crtc_atomic_disable(struct drm_crtc *crtc, @@ -2433,7 +2433,7 @@ index 853b2f594ca5..6649814cdcf5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 21 Jun 2021 17:19:22 +0200 -Subject: [PATCH 017/991] drm/vc4: Leverage the load tracker on the BCM2711 +Subject: [PATCH 0017/1015] drm/vc4: Leverage the load tracker on the BCM2711 The load tracker was initially designed to report and warn about a load too high for the HVS. To do so, it computes for each plane the impact @@ -2483,7 +2483,7 @@ index 6da22af4ee91..ba2d8ea562af 100644 list_for_each_entry(entry, &vc4->debugfs_list, link) { drm_debugfs_create_files(&entry->info, 1, diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h -index 60826aca9e5b..813c5d0ea98e 100644 +index 044c12c05d8b..9398b9d231c2 100644 --- a/drivers/gpu/drm/vc4/vc4_drv.h +++ b/drivers/gpu/drm/vc4/vc4_drv.h @@ -202,9 +202,6 @@ struct vc4_dev { @@ -2568,7 +2568,7 @@ index 19161b6ab27f..ac761c683663 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 26 May 2021 16:13:02 +0200 -Subject: [PATCH 018/991] drm/vc4: Increase the core clock based on HVS load +Subject: [PATCH 0018/1015] drm/vc4: Increase the core clock based on HVS load Depending on a given HVS output (HVS to PixelValves) and input (planes attached to a channel) load, the HVS needs for the core clock to be @@ -2585,7 +2585,7 @@ Signed-off-by: Maxime Ripard 3 files changed, 119 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c -index 6649814cdcf5..799aaf8c1abf 100644 +index 05d00fd86143..c9b684d36fb2 100644 --- a/drivers/gpu/drm/vc4/vc4_crtc.c +++ b/drivers/gpu/drm/vc4/vc4_crtc.c @@ -661,12 +661,27 @@ static int vc4_crtc_atomic_check(struct drm_crtc *crtc, @@ -2617,7 +2617,7 @@ index 6649814cdcf5..799aaf8c1abf 100644 i) { if (conn_state->crtc != crtc) diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h -index 813c5d0ea98e..4329e09d357c 100644 +index 9398b9d231c2..801da3e8ebdb 100644 --- a/drivers/gpu/drm/vc4/vc4_drv.h +++ b/drivers/gpu/drm/vc4/vc4_drv.h @@ -558,6 +558,8 @@ struct vc4_crtc_state { @@ -2820,7 +2820,7 @@ index 69b710569a84..06a4f765a51c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 19 Aug 2021 15:53:03 +0200 -Subject: [PATCH 019/991] drm/vc4: select PM +Subject: [PATCH 0019/1015] drm/vc4: select PM We already depend on runtime PM to get the power domains and clocks for most of the devices supported by the vc4 driver, so let's just select it @@ -2850,8 +2850,8 @@ index 345a5570a3da..52a1c309cb4a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 19 Aug 2021 14:37:04 +0200 -Subject: [PATCH 020/991] drm/probe-helper: Create a HPD IRQ event helper for a - single connector +Subject: [PATCH 0020/1015] drm/probe-helper: Create a HPD IRQ event helper for + a single connector The drm_helper_hpd_irq_event() function is iterating over all the connectors when an hotplug event is detected. @@ -3050,7 +3050,7 @@ index 8d3ed2834d34..04c57564c397 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 19 Aug 2021 13:50:12 +0200 -Subject: [PATCH 021/991] drm/vc4: hdmi: Actually check for the connector +Subject: [PATCH 0021/1015] drm/vc4: hdmi: Actually check for the connector status in hotplug The drm_helper_hpd_irq_event() documentation states that this function @@ -3092,10 +3092,10 @@ Signed-off-by: Maxime Ripard 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 885c732757c9..df291945489d 100644 +index bad5ac56cddf..987d073b206b 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1792,10 +1792,11 @@ static void vc4_hdmi_audio_exit(struct vc4_hdmi *vc4_hdmi) +@@ -1793,10 +1793,11 @@ static void vc4_hdmi_audio_exit(struct vc4_hdmi *vc4_hdmi) static irqreturn_t vc4_hdmi_hpd_irq_thread(int irq, void *priv) { struct vc4_hdmi *vc4_hdmi = priv; @@ -3116,7 +3116,7 @@ index 885c732757c9..df291945489d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 15 Dec 2021 10:51:14 +0100 -Subject: [PATCH 022/991] firmware: raspberrypi: Add +Subject: [PATCH 0022/1015] firmware: raspberrypi: Add RPI_FIRMWARE_NOTIFY_DISPLAY_DONE The RPI_FIRMWARE_NOTIFY_DISPLAY_DONE firmware call allows to tell the @@ -3149,7 +3149,7 @@ index 73ad784fca96..811ea668c4a1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 15 Dec 2021 10:51:16 +0100 -Subject: [PATCH 023/991] drm/vc4: Remove conflicting framebuffers before +Subject: [PATCH 0023/1015] drm/vc4: Remove conflicting framebuffers before callind bind_all The bind hooks will modify their controller registers, so simplefb is @@ -3194,7 +3194,7 @@ index f6c16c5aee68..3c0c7e77b4c8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 15 Dec 2021 10:51:17 +0100 -Subject: [PATCH 024/991] drm/vc4: Notify the firmware when DRM is in charge +Subject: [PATCH 0024/1015] drm/vc4: Notify the firmware when DRM is in charge Once the call to drm_fb_helper_remove_conflicting_framebuffers() has been made, simplefb has been unregistered and the KMS driver is entirely @@ -3269,7 +3269,7 @@ index 3c0c7e77b4c8..2150637e40dc 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dan Pasanen Date: Thu, 21 Sep 2017 09:55:42 -0500 -Subject: [PATCH 025/991] arm: partially revert +Subject: [PATCH 0025/1015] arm: partially revert 702b94bff3c50542a6e4ab9a4f4cef093262fe65 * Re-expose some dmi APIs for use in VCSM @@ -3380,8 +3380,8 @@ index e21249548e9f..33e4a9b8f1ba 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 29 Oct 2018 14:45:45 +0000 -Subject: [PATCH 026/991] Revert "rtc: pcf8523: properly handle oscillator stop - bit" +Subject: [PATCH 0026/1015] Revert "rtc: pcf8523: properly handle oscillator + stop bit" This reverts commit ede44c908d44b166a5b6bd7caacd105c2ff5a70f. @@ -3434,7 +3434,7 @@ index 8b6fb20774bf..ad2231f1faac 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 15 Mar 2019 21:11:10 +0000 -Subject: [PATCH 027/991] Revert "staging: bcm2835-audio: Drop DT dependency" +Subject: [PATCH 0027/1015] Revert "staging: bcm2835-audio: Drop DT dependency" This reverts commit b7491a9fca2dc2535b9dc922550a37c5baae9d3d. --- @@ -3536,7 +3536,7 @@ index c250fbef2fa3..b42917c25050 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 20 Apr 2020 13:41:10 +0100 -Subject: [PATCH 028/991] Revert "spi: spidev: Fix CS polarity if GPIO +Subject: [PATCH 0028/1015] Revert "spi: spidev: Fix CS polarity if GPIO descriptors are used" This reverts commit 83b2a8fe43bda0c11981ad6afa5dd0104d78be28. @@ -3573,72 +3573,8 @@ index 1bd73e322b7b..795bef1efcc6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell -Date: Tue, 3 Nov 2020 11:49:53 +0000 -Subject: [PATCH 029/991] Revert "mailbox: avoid timer start from callback" - -This reverts commit c7dacf5b0f32957b24ef29df1207dc2cd8307743. - -The Pi 400 shutdown/poweroff mechanism relies on being able to set -a GPIO on the expander in the pm_power_off handler, something that -requires two mailbox calls - GET_GPIO_STATE and SET_GPIO_STATE. A -recent kernel change introduces a reasonable possibility that the -GET call doesn't completes, and bisecting led to a commit from -October that changes the timer usage of the mailbox. - -My theory is that there is a race condition in the new code that breaks -the poll timer, but that it normally goes unnoticed because subsequent -mailbox activity wakes it up again. The power-off mailbox calls happen -at a time when other subsystems have been shut down, so if one of them -fails then there is nothing to allow it to recover. - -See: https://github.com/raspberrypi/linux/issues/3941 - -Signed-off-by: Phil Elwell ---- - drivers/mailbox/mailbox.c | 12 +++++------- - 1 file changed, 5 insertions(+), 7 deletions(-) - -diff --git a/drivers/mailbox/mailbox.c b/drivers/mailbox/mailbox.c -index 3e7d4b20ab34..0b821a5b2db8 100644 ---- a/drivers/mailbox/mailbox.c -+++ b/drivers/mailbox/mailbox.c -@@ -82,12 +82,9 @@ static void msg_submit(struct mbox_chan *chan) - exit: - spin_unlock_irqrestore(&chan->lock, flags); - -- /* kick start the timer immediately to avoid delays */ -- if (!err && (chan->txdone_method & TXDONE_BY_POLL)) { -- /* but only if not already active */ -- if (!hrtimer_active(&chan->mbox->poll_hrt)) -- hrtimer_start(&chan->mbox->poll_hrt, 0, HRTIMER_MODE_REL); -- } -+ if (!err && (chan->txdone_method & TXDONE_BY_POLL)) -+ /* kick start the timer immediately to avoid delays */ -+ hrtimer_start(&chan->mbox->poll_hrt, 0, HRTIMER_MODE_REL); - } - - static void tx_tick(struct mbox_chan *chan, int r) -@@ -125,10 +122,11 @@ static enum hrtimer_restart txdone_hrtimer(struct hrtimer *hrtimer) - struct mbox_chan *chan = &mbox->chans[i]; - - if (chan->active_req && chan->cl) { -- resched = true; - txdone = chan->mbox->ops->last_tx_done(chan); - if (txdone) - tx_tick(chan, 0); -+ else -+ resched = true; - } - } - --- -2.18.4 - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Phil Elwell Date: Mon, 1 Mar 2021 09:12:44 +0000 -Subject: [PATCH 030/991] Revert "Bluetooth: Always request for user +Subject: [PATCH 0029/1015] Revert "Bluetooth: Always request for user confirmation for Just Works (LE SC)" This reverts commit ffee202a78c2980688bc5d2f7d56480e69a5e0c9. @@ -3689,7 +3625,7 @@ index 11f853d0500f..3efb60918dda 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 1 Mar 2021 09:14:35 +0000 -Subject: [PATCH 031/991] Revert "Bluetooth: Always request for user +Subject: [PATCH 0030/1015] Revert "Bluetooth: Always request for user confirmation for Just Works" This reverts commit 92516cd97fd4d8ad5b1421a0d51771044f453a5f. @@ -3738,7 +3674,7 @@ index 3efb60918dda..6f555b3c96a6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Steve Glendinning Date: Thu, 19 Feb 2015 18:47:12 +0000 -Subject: [PATCH 032/991] smsx95xx: fix crimes against truesize +Subject: [PATCH 0031/1015] smsx95xx: fix crimes against truesize smsc95xx is adjusting truesize when it shouldn't, and following a recent patch from Eric this is now triggering warnings. @@ -3750,7 +3686,7 @@ Signed-off-by: Steve Glendinning 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c -index eb0d325e92b7..1fe4ec4ae685 100644 +index 4e39e4345084..e425af15ce60 100644 --- a/drivers/net/usb/smsc95xx.c +++ b/drivers/net/usb/smsc95xx.c @@ -67,6 +67,10 @@ static bool turbo_mode = true; @@ -3764,7 +3700,7 @@ index eb0d325e92b7..1fe4ec4ae685 100644 static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index, u32 *data, int in_pm) { -@@ -1839,7 +1843,8 @@ static int smsc95xx_rx_fixup(struct usbnet *dev, struct sk_buff *skb) +@@ -1838,7 +1842,8 @@ static int smsc95xx_rx_fixup(struct usbnet *dev, struct sk_buff *skb) if (dev->net->features & NETIF_F_RXCSUM) smsc95xx_rx_csum_offload(skb); skb_trim(skb, skb->len - 4); /* remove fcs */ @@ -3774,7 +3710,7 @@ index eb0d325e92b7..1fe4ec4ae685 100644 return 1; } -@@ -1857,7 +1862,8 @@ static int smsc95xx_rx_fixup(struct usbnet *dev, struct sk_buff *skb) +@@ -1856,7 +1861,8 @@ static int smsc95xx_rx_fixup(struct usbnet *dev, struct sk_buff *skb) if (dev->net->features & NETIF_F_RXCSUM) smsc95xx_rx_csum_offload(ax_skb); skb_trim(ax_skb, ax_skb->len - 4); /* remove fcs */ @@ -3791,7 +3727,7 @@ index eb0d325e92b7..1fe4ec4ae685 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Fri, 1 Apr 2016 17:27:21 +0100 -Subject: [PATCH 033/991] smsc95xx: Experimental: Enable turbo_mode and +Subject: [PATCH 0032/1015] smsc95xx: Experimental: Enable turbo_mode and packetsize=2560 by default See: http://forum.kodi.tv/showthread.php?tid=285288 @@ -3800,7 +3736,7 @@ See: http://forum.kodi.tv/showthread.php?tid=285288 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c -index 1fe4ec4ae685..de1d93ecda1a 100644 +index e425af15ce60..cb846a0021ac 100644 --- a/drivers/net/usb/smsc95xx.c +++ b/drivers/net/usb/smsc95xx.c @@ -71,6 +71,10 @@ static bool truesize_mode = false; @@ -3840,7 +3776,7 @@ index 1fe4ec4ae685..de1d93ecda1a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Mar 2013 17:26:38 +0000 -Subject: [PATCH 034/991] Allow mac address to be set in smsc95xx +Subject: [PATCH 0033/1015] Allow mac address to be set in smsc95xx Signed-off-by: popcornmix --- @@ -3848,7 +3784,7 @@ Signed-off-by: popcornmix 1 file changed, 56 insertions(+) diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c -index de1d93ecda1a..dbf9ea8a3da6 100644 +index cb846a0021ac..64ad4f1daee4 100644 --- a/drivers/net/usb/smsc95xx.c +++ b/drivers/net/usb/smsc95xx.c @@ -50,6 +50,7 @@ @@ -3942,7 +3878,7 @@ index de1d93ecda1a..dbf9ea8a3da6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 27 Nov 2017 17:14:54 +0000 -Subject: [PATCH 035/991] cgroup: Disable cgroup "memory" by default +Subject: [PATCH 0034/1015] cgroup: Disable cgroup "memory" by default Some Raspberry Pis have limited RAM and most users won't use the cgroup memory support so it is disabled by default. Enable with: @@ -4033,8 +3969,8 @@ index de8b4fa1e1fd..4cb09fcdc16f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 13 Mar 2015 12:43:36 +0000 -Subject: [PATCH 036/991] Protect __release_resource against resources without - parents +Subject: [PATCH 0035/1015] Protect __release_resource against resources + without parents Without this patch, removing a device tree overlay can crash here. @@ -4067,7 +4003,7 @@ index 20e10e48f052..d40758ec7b9d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 9 Feb 2017 14:33:30 +0000 -Subject: [PATCH 037/991] irq-bcm2836: Avoid "Invalid trigger warning" +Subject: [PATCH 0036/1015] irq-bcm2836: Avoid "Invalid trigger warning" Initialise the level for each IRQ to avoid a warning from the arm arch timer code. @@ -4097,7 +4033,7 @@ index 501facdb4570..b6a7036305d8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 12 Jun 2015 19:01:05 +0200 -Subject: [PATCH 038/991] irqchip: bcm2835: Add FIQ support +Subject: [PATCH 0037/1015] irqchip: bcm2835: Add FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -4232,7 +4168,7 @@ index adc1556ed332..0ae3b5d4d2de 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 23 Oct 2015 16:26:55 +0200 -Subject: [PATCH 039/991] irqchip: irq-bcm2835: Add 2836 FIQ support +Subject: [PATCH 0038/1015] irqchip: irq-bcm2835: Add 2836 FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -4337,7 +4273,7 @@ index 0ae3b5d4d2de..a6ffff76c539 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 10:26:09 +0100 -Subject: [PATCH 040/991] spi: spidev: Completely disable the spidev warning +Subject: [PATCH 0039/1015] spi: spidev: Completely disable the spidev warning An alternative strategy would be to use "rpi,spidev" instead, but that would require many Raspberry Pi Device Tree changes. @@ -4367,7 +4303,7 @@ index 795bef1efcc6..9a3b8a51eaef 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Sat, 3 Oct 2015 22:22:55 +0200 -Subject: [PATCH 041/991] dmaengine: bcm2835: Load driver early and support +Subject: [PATCH 0040/1015] dmaengine: bcm2835: Load driver early and support legacy API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -4476,7 +4412,7 @@ index 630dfbb01a40..bf7ba96a39f9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 15 Jun 2016 16:48:41 +0100 -Subject: [PATCH 042/991] rtc: Add SPI alias for pcf2123 driver +Subject: [PATCH 0041/1015] rtc: Add SPI alias for pcf2123 driver Without this alias, Device Tree won't cause the driver to be loaded. @@ -4502,7 +4438,7 @@ index 7473e6c8a183..4b986b338654 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 7 Oct 2016 16:50:59 +0200 -Subject: [PATCH 043/991] watchdog: bcm2835: Support setting reboot partition +Subject: [PATCH 0042/1015] watchdog: bcm2835: Support setting reboot partition MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -4610,8 +4546,8 @@ index 94907176a0e4..58d5a1b89584 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 5 Apr 2016 19:40:12 +0100 -Subject: [PATCH 044/991] reboot: Use power off rather than busy spinning when - halt is requested +Subject: [PATCH 0043/1015] reboot: Use power off rather than busy spinning + when halt is requested --- arch/arm/kernel/reboot.c | 4 +--- @@ -4639,7 +4575,7 @@ index 3044fcb8d073..fe22c46d9943 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 9 Nov 2016 13:02:52 +0000 -Subject: [PATCH 045/991] bcm: Make RASPBERRYPI_POWER depend on PM +Subject: [PATCH 0044/1015] bcm: Make RASPBERRYPI_POWER depend on PM --- drivers/soc/bcm/Kconfig | 1 + @@ -4664,8 +4600,8 @@ index 24f92a6e882a..a6a705ec30c7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Martin Sperl Date: Fri, 2 Sep 2016 16:45:27 +0100 -Subject: [PATCH 046/991] Register the clocks early during the boot process, so - that special/critical clocks can get enabled early on in the boot process +Subject: [PATCH 0045/1015] Register the clocks early during the boot process, + so that special/critical clocks can get enabled early on in the boot process avoiding the risk of disabling a clock, pll_divider or pll when a claiming driver fails to install propperly - maybe it needs to defer. @@ -4715,7 +4651,7 @@ index 3667b4d731e7..9332379565cb 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 6 Dec 2016 17:05:39 +0000 -Subject: [PATCH 047/991] bcm2835-rng: Avoid initialising if already enabled +Subject: [PATCH 0046/1015] bcm2835-rng: Avoid initialising if already enabled Avoids the 0x40000 cycles of warmup again if firmware has already used it --- @@ -4746,7 +4682,7 @@ index e7dd457e9b22..f9a4a89e762b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Feb 2017 17:20:08 +0000 -Subject: [PATCH 048/991] clk-bcm2835: Mark used PLLs and dividers CRITICAL +Subject: [PATCH 0047/1015] clk-bcm2835: Mark used PLLs and dividers CRITICAL The VPU configures and relies on several PLLs and dividers. Mark all enabled dividers and their PLLs as CRITICAL to prevent the kernel from @@ -4780,7 +4716,7 @@ index 9332379565cb..d111f7f4fc81 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Feb 2017 17:20:08 +0000 -Subject: [PATCH 049/991] clk-bcm2835: Add claim-clocks property +Subject: [PATCH 0048/1015] clk-bcm2835: Add claim-clocks property The claim-clocks property can be used to prevent PLLs and dividers from being marked as critical. It contains a vector of clock IDs, @@ -4906,7 +4842,7 @@ index d111f7f4fc81..76bf4c81316e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 6 Mar 2017 09:06:18 +0000 -Subject: [PATCH 050/991] clk-bcm2835: Read max core clock from firmware +Subject: [PATCH 0049/1015] clk-bcm2835: Read max core clock from firmware The VPU is responsible for managing the core clock, usually under direction from the bcm2835-cpufreq driver but not via the clk-bcm2835 @@ -5027,7 +4963,7 @@ index 76bf4c81316e..9b9a799a487d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 9 Feb 2017 14:36:44 +0000 -Subject: [PATCH 051/991] sound: Demote deferral errors to INFO level +Subject: [PATCH 0050/1015] sound: Demote deferral errors to INFO level At present there is no mechanism to specify driver load order, which can lead to deferrals and repeated retries until successful. @@ -5068,7 +5004,7 @@ index 5da762807824..ed7ddf3a7198 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Claggy3 Date: Sat, 11 Feb 2017 14:00:30 +0000 -Subject: [PATCH 052/991] Update vfpmodule.c +Subject: [PATCH 0051/1015] Update vfpmodule.c Christopher Alexander Tobias Schulze - May 2, 2015, 11:57 a.m. This patch fixes a problem with VFP state save and restore related @@ -5211,7 +5147,7 @@ index 2cb355c1b5b7..1e2dcf81aefa 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Tue, 1 Nov 2016 15:15:41 +0100 -Subject: [PATCH 053/991] i2c: bcm2835: Add debug support +Subject: [PATCH 0052/1015] i2c: bcm2835: Add debug support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -5406,7 +5342,7 @@ index f72c6576d8a3..394282a37f67 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 23 Jan 2018 16:52:45 +0000 -Subject: [PATCH 054/991] irqchip: irq-bcm2836: Remove regmap and syscon use +Subject: [PATCH 0053/1015] irqchip: irq-bcm2836: Remove regmap and syscon use The syscon node defines a register range that duplicates that used by the local_intc node on bcm2836/7. Since irq-bcm2835 and irq-bcm2836 are @@ -5526,7 +5462,7 @@ index b6a7036305d8..867c3b43490c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 17 Oct 2017 15:04:29 +0100 -Subject: [PATCH 055/991] lan78xx: Enable LEDs and auto-negotiation +Subject: [PATCH 0054/1015] lan78xx: Enable LEDs and auto-negotiation For applications of the LAN78xx that don't have valid programmed EEPROMs or OTPs, enabling both LEDs and auto-negotiation by default @@ -5581,7 +5517,7 @@ index 3e1a83a22fdd..26e0f1678b38 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 23 Feb 2016 17:26:48 +0000 -Subject: [PATCH 056/991] amba_pl011: Don't use DT aliases for numbering +Subject: [PATCH 0055/1015] amba_pl011: Don't use DT aliases for numbering The pl011 driver looks for DT aliases of the form "serial", and if found uses as the device ID. This can cause @@ -5616,7 +5552,7 @@ index 3d40306971b8..63eac145525c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 1 Mar 2017 16:07:39 +0000 -Subject: [PATCH 057/991] amba_pl011: Round input clock up +Subject: [PATCH 0056/1015] amba_pl011: Round input clock up The UART clock is initialised to be as close to the requested frequency as possible without exceeding it. Now that there is a @@ -5708,7 +5644,7 @@ index 63eac145525c..07928aefa628 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 Sep 2017 10:32:19 +0100 -Subject: [PATCH 058/991] amba_pl011: Insert mb() for correct FIFO handling +Subject: [PATCH 0057/1015] amba_pl011: Insert mb() for correct FIFO handling The pl011 register accessor functions use the _relaxed versions of the standard readl() and writel() functions, meaning that there are no @@ -5741,7 +5677,7 @@ index 07928aefa628..5caab3f37d2d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 Sep 2017 10:32:19 +0100 -Subject: [PATCH 059/991] amba_pl011: Add cts-event-workaround DT property +Subject: [PATCH 0058/1015] amba_pl011: Add cts-event-workaround DT property The BCM2835 PL011 implementation seems to have a bug that can lead to a transmission lockup if CTS changes frequently. A workaround was added to @@ -5799,7 +5735,7 @@ index 5caab3f37d2d..b835dfe4f5cd 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 24 Jan 2020 11:38:28 +0000 -Subject: [PATCH 060/991] tty: amba-pl011: Add un/throttle support +Subject: [PATCH 0059/1015] tty: amba-pl011: Add un/throttle support The PL011 driver lacks throttle and unthrottle methods. As a result, sending more data to the Pi than it can immediately sink while CRTSCTS @@ -5866,7 +5802,7 @@ index b835dfe4f5cd..95a501740aab 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 29 Jan 2020 09:35:19 +0000 -Subject: [PATCH 061/991] tty: amba-pl011: Avoid rare write-when-full error +Subject: [PATCH 0060/1015] tty: amba-pl011: Avoid rare write-when-full error Under some circumstances on BCM283x processors data loss can be observed - a single byte missing from the TX output stream. These bytes @@ -5914,7 +5850,7 @@ index 95a501740aab..5fa7e0ff6e50 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: notro Date: Thu, 10 Jul 2014 13:59:47 +0200 -Subject: [PATCH 062/991] pinctrl-bcm2835: Set base to 0 give expected gpio +Subject: [PATCH 0061/1015] pinctrl-bcm2835: Set base to 0 give expected gpio numbering Signed-off-by: Noralf Tronnes @@ -5932,10 +5868,10 @@ Signed-off-by: Phil Elwell 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -index cb339299adf9..061d29202298 100644 +index a2938995c7c1..ce67182de720 100644 --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -@@ -362,7 +362,7 @@ static const struct gpio_chip bcm2835_gpio_chip = { +@@ -378,7 +378,7 @@ static const struct gpio_chip bcm2835_gpio_chip = { .get = bcm2835_gpio_get, .set = bcm2835_gpio_set, .set_config = gpiochip_generic_config, @@ -5943,8 +5879,8 @@ index cb339299adf9..061d29202298 100644 + .base = 0, .ngpio = BCM2835_NUM_GPIOS, .can_sleep = false, - }; -@@ -378,7 +378,7 @@ static const struct gpio_chip bcm2711_gpio_chip = { + .of_gpio_ranges_fallback = bcm2835_of_gpio_ranges_fallback, +@@ -395,7 +395,7 @@ static const struct gpio_chip bcm2711_gpio_chip = { .get = bcm2835_gpio_get, .set = bcm2835_gpio_set, .set_config = gpiochip_generic_config, @@ -5952,7 +5888,7 @@ index cb339299adf9..061d29202298 100644 + .base = 0, .ngpio = BCM2711_NUM_GPIOS, .can_sleep = false, - }; + .of_gpio_ranges_fallback = bcm2835_of_gpio_ranges_fallback, -- 2.18.4 @@ -5960,7 +5896,7 @@ index cb339299adf9..061d29202298 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 12 May 2013 12:24:19 +0100 -Subject: [PATCH 063/991] Main bcm2708/bcm2709 linux port +Subject: [PATCH 0062/1015] Main bcm2708/bcm2709 linux port MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -6122,7 +6058,7 @@ index 86b7ce3549c5..f0c2ad3d59c9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 1 May 2013 19:46:17 +0100 -Subject: [PATCH 064/991] Add dwc_otg driver +Subject: [PATCH 0063/1015] Add dwc_otg driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -67945,7 +67881,7 @@ index 000000000000..cdc9963176e5 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 17:06:34 +0100 -Subject: [PATCH 065/991] bcm2708 framebuffer driver +Subject: [PATCH 0064/1015] bcm2708 framebuffer driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -71519,8 +71455,8 @@ index 811ea668c4a1..3b847c9acb5a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Thu, 14 Mar 2019 13:27:54 +0000 -Subject: [PATCH 066/991] Pulled in the multi frame buffer support from the Pi3 - repo +Subject: [PATCH 0065/1015] Pulled in the multi frame buffer support from the + Pi3 repo --- drivers/video/fbdev/bcm2708_fb.c | 457 +++++++++++++++------ @@ -72354,7 +72290,7 @@ index 3b847c9acb5a..e93414410485 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Siarhei Siamashka Date: Mon, 17 Jun 2013 13:32:11 +0300 -Subject: [PATCH 067/991] fbdev: add FBIOCOPYAREA ioctl +Subject: [PATCH 0066/1015] fbdev: add FBIOCOPYAREA ioctl Based on the patch authored by Ali Gholami Rudi at https://lkml.org/lkml/2009/7/13/153 @@ -72598,7 +72534,7 @@ index f66957d48dc3..0e9ec3f593b8 100644 static int bcm2708_fb_register(struct bcm2708_fb *fb) diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c -index 8e38a7a5cf2f..28bf9c4f6664 100644 +index 0371ad233fdf..9fc7a9d3bfee 100644 --- a/drivers/video/fbdev/core/fbmem.c +++ b/drivers/video/fbdev/core/fbmem.c @@ -1086,6 +1086,30 @@ fb_blank(struct fb_info *info, int blank) @@ -72701,7 +72637,7 @@ index 4c14e8be7267..3c6f12b76214 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Harm Hanemaaijer Date: Thu, 20 Jun 2013 20:21:39 +0200 -Subject: [PATCH 068/991] Speed up console framebuffer imageblit function +Subject: [PATCH 0067/1015] Speed up console framebuffer imageblit function Especially on platforms with a slower CPU but a relatively high framebuffer fill bandwidth, like current ARM devices, the existing @@ -72916,7 +72852,7 @@ index a2bb276a8b24..436494fba15a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 14:22:53 +0100 -Subject: [PATCH 069/991] dmaengine: Add support for BCM2708 +Subject: [PATCH 0068/1015] dmaengine: Add support for BCM2708 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -73570,7 +73506,7 @@ index 000000000000..6ca874d332a8 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: gellert Date: Fri, 15 Aug 2014 16:35:06 +0100 -Subject: [PATCH 070/991] MMC: added alternative MMC driver +Subject: [PATCH 0069/1015] MMC: added alternative MMC driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -73798,7 +73734,7 @@ bcm2835-mmc: uninitialized_var is no more create mode 100644 drivers/mmc/host/bcm2835-mmc.c diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c -index c4fcb1ad6d4d..9144ceeea07f 100644 +index a196116444a3..a992dd6dafc5 100644 --- a/drivers/mmc/core/block.c +++ b/drivers/mmc/core/block.c @@ -171,6 +171,13 @@ static DEFINE_MUTEX(open_lock); @@ -73815,7 +73751,7 @@ index c4fcb1ad6d4d..9144ceeea07f 100644 static inline int mmc_blk_part_switch(struct mmc_card *card, unsigned int part_type); static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq, -@@ -2924,6 +2931,8 @@ static int mmc_blk_probe(struct mmc_card *card) +@@ -2923,6 +2930,8 @@ static int mmc_blk_probe(struct mmc_card *card) { struct mmc_blk_data *md; int ret = 0; @@ -73824,7 +73760,7 @@ index c4fcb1ad6d4d..9144ceeea07f 100644 /* * Check that the card supports the command class(es) we need. -@@ -2931,7 +2940,16 @@ static int mmc_blk_probe(struct mmc_card *card) +@@ -2930,7 +2939,16 @@ static int mmc_blk_probe(struct mmc_card *card) if (!(card->csd.cmdclass & CCC_BLOCK_READ)) return -ENODEV; @@ -73842,7 +73778,7 @@ index c4fcb1ad6d4d..9144ceeea07f 100644 card->complete_wq = alloc_workqueue("mmc_complete", WQ_MEM_RECLAIM | WQ_HIGHPRI, 0); -@@ -2946,6 +2964,17 @@ static int mmc_blk_probe(struct mmc_card *card) +@@ -2945,6 +2963,17 @@ static int mmc_blk_probe(struct mmc_card *card) goto out_free; } @@ -75608,7 +75544,7 @@ index 37f975875102..fca1b210266b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 25 Mar 2015 17:49:47 +0000 -Subject: [PATCH 071/991] Adding bcm2835-sdhost driver, and an overlay to +Subject: [PATCH 0070/1015] Adding bcm2835-sdhost driver, and an overlay to enable it BCM2835 has two SD card interfaces. This driver uses the other one. @@ -78120,7 +78056,7 @@ index 000000000000..2c4124082785 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 28 Oct 2016 15:36:43 +0100 -Subject: [PATCH 072/991] vc_mem: Add vc_mem driver for querying firmware +Subject: [PATCH 0071/1015] vc_mem: Add vc_mem driver for querying firmware memory addresses MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -78629,7 +78565,8 @@ index 000000000000..3c7079237496 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Fri, 21 Aug 2015 23:14:48 +0100 -Subject: [PATCH 073/991] Add /dev/gpiomem device for rootless user GPIO access +Subject: [PATCH 0072/1015] Add /dev/gpiomem device for rootless user GPIO + access Signed-off-by: Luke Wren @@ -78939,7 +78876,7 @@ index 000000000000..f5e7f1ba8fb6 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Sat, 5 Sep 2015 01:14:45 +0100 -Subject: [PATCH 074/991] Add SMI driver +Subject: [PATCH 0073/1015] Add SMI driver Signed-off-by: Luke Wren @@ -80876,7 +80813,7 @@ index 000000000000..ee3a75edfc03 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 15:44:08 +0100 -Subject: [PATCH 075/991] Add Chris Boot's i2c driver +Subject: [PATCH 0074/1015] Add Chris Boot's i2c driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -81547,7 +81484,7 @@ index 000000000000..962f2e5c7455 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 26 Jun 2015 14:27:06 +0200 -Subject: [PATCH 076/991] char: broadcom: Add vcio module +Subject: [PATCH 0075/1015] char: broadcom: Add vcio module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -81812,7 +81749,7 @@ index 000000000000..d2598663a2b5 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 26 Jun 2015 14:25:01 +0200 -Subject: [PATCH 077/991] firmware: bcm2835: Support ARCH_BCM270x +Subject: [PATCH 0076/1015] firmware: bcm2835: Support ARCH_BCM270x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -81892,7 +81829,7 @@ index 4b8978b254f9..54619623fe86 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: notro Date: Wed, 9 Jul 2014 14:46:08 +0200 -Subject: [PATCH 078/991] BCM2708: Add core Device Tree support +Subject: [PATCH 0077/1015] BCM2708: Add core Device Tree support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -87056,10 +86993,10 @@ index a23c25c00eea..547c88a3ae9f 100644 + pinctrl-1 = <&i2c0_gpio0>; +}; diff --git a/arch/arm/boot/dts/bcm2835-rpi-b.dts b/arch/arm/boot/dts/bcm2835-rpi-b.dts -index 1b63d6b19750..073fc99ef8a2 100644 +index 25d87212cefd..c9f3c4558442 100644 --- a/arch/arm/boot/dts/bcm2835-rpi-b.dts +++ b/arch/arm/boot/dts/bcm2835-rpi-b.dts -@@ -116,3 +116,10 @@ +@@ -115,3 +115,10 @@ pinctrl-0 = <&uart0_gpio14>; status = "okay"; }; @@ -87084,10 +87021,10 @@ index a75c882e6575..95564c93a645 100644 + pinctrl-1 = <&i2c0_gpio28>; +}; diff --git a/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts b/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts -index 33b2b77aa47d..3ea5c7e6be54 100644 +index 00582eb2c12e..7d3273496186 100644 --- a/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts +++ b/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts -@@ -149,3 +149,8 @@ +@@ -151,3 +151,8 @@ pinctrl-0 = <&uart1_gpio14>; status = "okay"; }; @@ -87197,7 +87134,7 @@ index 77099a7871b0..9529c0475673 100644 + pinctrl-1 = <&i2c0_gpio44>; +}; diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts b/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts -index 61010266ca9a..40cb269aed0f 100644 +index 90472e76a313..23fd63be2d4b 100644 --- a/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts +++ b/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts @@ -181,3 +181,8 @@ @@ -87223,7 +87160,7 @@ index dd4a48604097..8f16b6b3fe08 100644 + pinctrl-1 = <&i2c0_gpio44>; +}; diff --git a/arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts b/arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts -index 588d9411ceb6..dde209ade51b 100644 +index 3dfce4312dfc..f0a7ef168fa7 100644 --- a/arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts +++ b/arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts @@ -94,3 +94,8 @@ @@ -112071,7 +112008,7 @@ index 0a8a4689c3eb..dff7d1ef5ff4 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 6 Feb 2015 13:50:57 +0000 -Subject: [PATCH 079/991] leds: Add the "input" trigger, for pwr_led +Subject: [PATCH 0078/1015] leds: Add the "input" trigger, for pwr_led The "input" trigger makes the associated GPIO an input. This is to support the Raspberry Pi PWR LED, which is driven by external hardware in normal use. @@ -112254,7 +112191,7 @@ index a0b730be40ad..cb9a65b4b0f4 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Jul 2013 00:54:08 +0100 -Subject: [PATCH 080/991] Added Device IDs for August DVB-T 205 +Subject: [PATCH 0079/1015] Added Device IDs for August DVB-T 205 --- drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 4 ++++ @@ -112282,7 +112219,7 @@ index 795a012d4020..adb1028d5f25 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 28 Nov 2016 16:50:04 +0000 -Subject: [PATCH 081/991] Improve __copy_to_user and __copy_from_user +Subject: [PATCH 0080/1015] Improve __copy_to_user and __copy_from_user performance Provide a __copy_from_user that uses memcpy. On BCM2708, use @@ -113905,7 +113842,7 @@ index d802ded21ed6..a77c495f8378 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 25 Jun 2015 12:16:11 +0100 -Subject: [PATCH 082/991] gpio-poweroff: Allow it to work on Raspberry Pi +Subject: [PATCH 0081/1015] gpio-poweroff: Allow it to work on Raspberry Pi The Raspberry Pi firmware manages the power-down and reboot process. To do this it installs a pm_power_off handler, causing @@ -113946,7 +113883,7 @@ index 1c5af2fef142..3e670131f2a8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 14:32:47 +0100 -Subject: [PATCH 083/991] mfd: Add Raspberry Pi Sense HAT core driver +Subject: [PATCH 0082/1015] mfd: Add Raspberry Pi Sense HAT core driver mfd: Add rpi_sense_core of compatible string --- @@ -114831,7 +114768,7 @@ index 000000000000..56196dc2af10 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Mon, 25 Jan 2016 15:48:59 +0000 -Subject: [PATCH 084/991] Add support for all the downstream rpi sound card +Subject: [PATCH 0083/1015] Add support for all the downstream rpi sound card drivers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -129055,7 +128992,7 @@ index 000000000000..835d0f9420e7 +MODULE_DESCRIPTION("ASoC Raspberry Pi Hat generic digi driver for WM8804 based cards"); +MODULE_LICENSE("GPL v2"); diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig -index 47e675e8bd00..73117b185338 100644 +index d59a7e99ce42..2bf001dc2fa4 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig @@ -102,6 +102,7 @@ config SND_SOC_ALL_CODECS @@ -129119,7 +129056,7 @@ index 47e675e8bd00..73117b185338 100644 config SND_SOC_MADERA tristate default y if SND_SOC_CS47L15=y -@@ -1189,6 +1200,10 @@ config SND_SOC_RT5616 +@@ -1187,6 +1198,10 @@ config SND_SOC_RT5616 tristate "Realtek RT5616 CODEC" depends on I2C @@ -129130,7 +129067,7 @@ index 47e675e8bd00..73117b185338 100644 config SND_SOC_RT5631 tristate "Realtek ALC5631/RT5631 CODEC" depends on I2C -@@ -1439,6 +1454,9 @@ config SND_SOC_TFA9879 +@@ -1437,6 +1452,9 @@ config SND_SOC_TFA9879 tristate "NXP Semiconductors TFA9879 amplifier" depends on I2C @@ -129140,7 +129077,7 @@ index 47e675e8bd00..73117b185338 100644 config SND_SOC_TFA989X tristate "NXP/Goodix TFA989X (TFA1) amplifiers" depends on I2C -@@ -1945,4 +1963,8 @@ config SND_SOC_LPASS_TX_MACRO +@@ -1943,4 +1961,8 @@ config SND_SOC_LPASS_TX_MACRO select REGMAP_MMIO tristate "Qualcomm TX Macro in LPASS(Low Power Audio SubSystem)" @@ -131826,7 +131763,7 @@ index ed7ddf3a7198..4ed5645704d7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: P33M Date: Wed, 21 Oct 2015 14:55:21 +0100 -Subject: [PATCH 085/991] rpi_display: add backlight driver and overlay +Subject: [PATCH 0084/1015] rpi_display: add backlight driver and overlay Add a mailbox-driven backlight controller for the Raspberry Pi DSI touchscreen display. Requires updated GPU firmware to recognise the @@ -132009,7 +131946,7 @@ index 000000000000..14a0d9b03739 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 23 Feb 2016 19:56:04 +0000 -Subject: [PATCH 086/991] bcm2835-virtgpio: Virtual GPIO driver +Subject: [PATCH 0085/1015] bcm2835-virtgpio: Virtual GPIO driver Add a virtual GPIO driver that uses the firmware mailbox interface to request that the VPU toggles LEDs. @@ -132276,7 +132213,7 @@ index 000000000000..49e28ad9760e From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Pantelis Antoniou Date: Wed, 3 Dec 2014 13:23:28 +0200 -Subject: [PATCH 087/991] OF: DT-Overlay configfs interface +Subject: [PATCH 0086/1015] OF: DT-Overlay configfs interface This is a port of Pantelis Antoniou's v3 port that makes use of the new upstreamed configfs support for binary attributes. @@ -132717,7 +132654,7 @@ index 000000000000..178f0629b0f0 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Cheong2K Date: Fri, 26 Feb 2016 18:20:10 +0800 -Subject: [PATCH 088/991] brcm: adds support for BCM43341 wifi +Subject: [PATCH 0087/1015] brcm: adds support for BCM43341 wifi brcmfmac: Disable power management @@ -132829,7 +132766,7 @@ index f7961b22e051..73db8489a8a9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 17 Dec 2015 13:37:07 +0000 -Subject: [PATCH 089/991] hci_h5: Don't send conf_req when ACTIVE +Subject: [PATCH 0088/1015] hci_h5: Don't send conf_req when ACTIVE Without this patch, a modem and kernel can continuously bombard each other with conf_req and conf_rsp messages, in a demented game of tag. @@ -132858,7 +132795,7 @@ index e0ea9d25bb39..c43911488880 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 13 Apr 2015 17:16:29 +0100 -Subject: [PATCH 090/991] config: Add default configs +Subject: [PATCH 0089/1015] config: Add default configs --- arch/arm/configs/bcm2709_defconfig | 1445 +++++++++++++++++++++++++ @@ -140128,7 +140065,7 @@ index 000000000000..235fecf9c903 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Sat, 14 Jan 2017 21:43:57 -0800 -Subject: [PATCH 091/991] ARM64: Round-Robin dispatch IRQs between CPUs. +Subject: [PATCH 0090/1015] ARM64: Round-Robin dispatch IRQs between CPUs. IRQ-CPU mapping is round robined on ARM64 to increase concurrency and allow multiple interrupts to be serviced @@ -140208,7 +140145,7 @@ index 867c3b43490c..f9da3f2a5f01 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Sat, 11 Feb 2017 01:18:31 -0800 -Subject: [PATCH 092/991] ARM64: Force hardware emulation of deprecated +Subject: [PATCH 0091/1015] ARM64: Force hardware emulation of deprecated instructions. --- @@ -140242,7 +140179,7 @@ index 0e86e8b9cedd..62078b06feb1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 25 Aug 2017 19:18:13 +0100 -Subject: [PATCH 093/991] cache: export clean and invalidate +Subject: [PATCH 0092/1015] cache: export clean and invalidate hack: cache: Fix linker error --- @@ -140303,7 +140240,7 @@ index 830bbfb26ca5..097248743b4c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Tue, 14 Nov 2017 15:13:15 +0000 -Subject: [PATCH 094/991] AXI performance monitor driver (#2222) +Subject: [PATCH 0093/1015] AXI performance monitor driver (#2222) Uses the debugfs I/F to provide access to the AXI bus performance monitors. @@ -141005,7 +140942,7 @@ index 000000000000..5ae2bdaa88b4 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Wed, 3 Jun 2015 12:26:13 +0200 -Subject: [PATCH 095/991] ARM: bcm2835: Set Serial number and Revision +Subject: [PATCH 0094/1015] ARM: bcm2835: Set Serial number and Revision MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -141074,7 +141011,7 @@ index bfc556f76720..73ec2427fbcf 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 16 Jul 2018 14:40:13 +0100 -Subject: [PATCH 096/991] dwc-otg: FIQ: Fix "bad mode in data abort handler" +Subject: [PATCH 0095/1015] dwc-otg: FIQ: Fix "bad mode in data abort handler" Create a semi-static mapping for the USB registers early in the boot process, before additional kernel threads are started, so all threads @@ -141196,7 +141133,7 @@ index 73ec2427fbcf..9b6c921106b5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 11 Dec 2017 09:18:32 +0000 -Subject: [PATCH 097/991] ARM: Activate FIQs to avoid __irq_startup warnings +Subject: [PATCH 0096/1015] ARM: Activate FIQs to avoid __irq_startup warnings There is a new test in __irq_startup that the IRQ is activated, which hasn't been the case for FIQs since they bypass some of the usual setup. @@ -141238,7 +141175,7 @@ index 98ca3e3fa847..c3fe7d3cf482 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 20 Feb 2018 10:07:27 +0000 -Subject: [PATCH 098/991] i2c-gpio: Also set bus numbers from reg property +Subject: [PATCH 0097/1015] i2c-gpio: Also set bus numbers from reg property I2C busses can be assigned specific bus numbers using aliases in Device Tree - string properties where the name is the alias and the @@ -141279,8 +141216,8 @@ index 7a048abbf92b..08ad370c9881 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: hdoverobinson Date: Tue, 13 Mar 2018 06:58:39 -0400 -Subject: [PATCH 099/991] added capture_clear option to pps-gpio via dtoverlay - (#2433) +Subject: [PATCH 0098/1015] added capture_clear option to pps-gpio via + dtoverlay (#2433) --- drivers/pps/clients/pps-gpio.c | 3 +++ @@ -141307,7 +141244,7 @@ index 2f4b11b4dfcd..b10b43538542 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 9 Mar 2018 12:01:00 +0000 -Subject: [PATCH 100/991] lan78xx: Read initial EEE status from DT +Subject: [PATCH 0099/1015] lan78xx: Read initial EEE status from DT Add two new DT properties: * microchip,eee-enabled - a boolean to enable EEE @@ -141353,7 +141290,7 @@ index 26e0f1678b38..e56ec891ed53 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 14 Jul 2014 22:02:09 +0100 -Subject: [PATCH 101/991] hid: Reduce default mouse polling interval to 60Hz +Subject: [PATCH 0100/1015] hid: Reduce default mouse polling interval to 60Hz Reduces overhead when using X --- @@ -141391,7 +141328,7 @@ index 2dcaf31eb9cd..8a9d8214d8af 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Nick Bulleid Date: Thu, 10 May 2018 21:57:02 +0100 -Subject: [PATCH 102/991] Add ability to export gpio used by gpio-poweroff +Subject: [PATCH 0101/1015] Add ability to export gpio used by gpio-poweroff Signed-off-by: Nick Bulleid @@ -141456,7 +141393,7 @@ index 3e670131f2a8..e5dca66360a7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Sat, 12 May 2018 21:35:43 +0100 -Subject: [PATCH 103/991] firmware/raspberrypi: Notify firmware of a reboot +Subject: [PATCH 0102/1015] firmware/raspberrypi: Notify firmware of a reboot Register for reboot notifications, sending RPI_FIRMWARE_NOTIFY_REBOOT over the mailbox interface on reception. @@ -141546,7 +141483,7 @@ index 54619623fe86..48d724aba308 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 14 Jun 2018 11:21:04 +0100 -Subject: [PATCH 104/991] irqchip: irq-bcm2835: Calc. FIQ_START at boot-time +Subject: [PATCH 0103/1015] irqchip: irq-bcm2835: Calc. FIQ_START at boot-time ad83c7cb2f37 ("irqchip/irq-bcm2836: Add support for DT interrupt polarity") changed the way that the BCM2836/7 local interrupts are mapped; instead @@ -141618,7 +141555,7 @@ index 8950debf451b..7ed1b1fc642d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 14 Jun 2018 15:07:26 +0100 -Subject: [PATCH 105/991] of: configfs: Use of_overlay_fdt_apply API call +Subject: [PATCH 0104/1015] of: configfs: Use of_overlay_fdt_apply API call The published API to the dynamic overlay application mechanism now takes a Flattened Device Tree blob as input so that it can manage the @@ -141738,7 +141675,8 @@ index 178f0629b0f0..ac04301dabe1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 13 Jun 2018 15:21:10 +0100 -Subject: [PATCH 106/991] net: lan78xx: Disable TCP Segmentation Offload (TSO) +Subject: [PATCH 0105/1015] net: lan78xx: Disable TCP Segmentation Offload + (TSO) TSO seems to be having issues when packets are dropped and the remote end uses Selective Acknowledge (SACK) to denote that @@ -141800,7 +141738,7 @@ index e56ec891ed53..cb940eeebcf4 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 20 Jun 2018 12:20:01 +0100 -Subject: [PATCH 107/991] brcmfmac: Re-enable firmware roaming support +Subject: [PATCH 0106/1015] brcmfmac: Re-enable firmware roaming support As of 4.18, a firmware that implements the update_connect_params method but doesn't claim to support roaming causes an error. We @@ -141835,7 +141773,7 @@ index 591dcd04b4b4..e3758bd86acf 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 5 Apr 2018 14:46:11 +0100 -Subject: [PATCH 108/991] lan78xx: Move enabling of EEE into PHY init code +Subject: [PATCH 0107/1015] lan78xx: Move enabling of EEE into PHY init code Enable EEE mode as soon as possible after connecting to the PHY, and before phy_start. This avoids a second link negotiation, which speeds @@ -141905,7 +141843,7 @@ index cb940eeebcf4..89ecb0ce8685 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 17 Sep 2018 17:31:18 +0100 -Subject: [PATCH 109/991] cxd2880: CXD2880_SPI_DRV should select DVB_CXD2880 +Subject: [PATCH 0108/1015] cxd2880: CXD2880_SPI_DRV should select DVB_CXD2880 with MEDIA_SUBDRV_AUTOSELECT --- @@ -141931,7 +141869,7 @@ index 857ef4ace6e9..deae75ea3c44 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Stefan Wahren Date: Sat, 13 Oct 2018 13:31:21 +0200 -Subject: [PATCH 110/991] firmware: raspberrypi: Add backward compatible +Subject: [PATCH 0109/1015] firmware: raspberrypi: Add backward compatible get_throttled Avoid a hard userspace ABI change by adding a compatible get_throttled @@ -142016,7 +141954,7 @@ index 48d724aba308..2a9edea7f0f1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 6 Nov 2018 12:57:48 +0000 -Subject: [PATCH 111/991] sc16is7xx: Don't spin if no data received +Subject: [PATCH 0110/1015] sc16is7xx: Don't spin if no data received See: https://github.com/raspberrypi/linux/issues/2676 @@ -142045,7 +141983,7 @@ index 0ab788058fa2..a7b40ee6b94d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ram Chandrasekar Date: Mon, 7 May 2018 11:54:08 -0600 -Subject: [PATCH 112/991] drivers: thermal: step_wise: add support for +Subject: [PATCH 0111/1015] drivers: thermal: step_wise: add support for hysteresis Step wise governor increases the mitigation level when the temperature @@ -142140,7 +142078,7 @@ index 12acb12aac50..9c8d615f3b63 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Tue, 2 Oct 2018 11:14:15 +0100 -Subject: [PATCH 113/991] drivers: thermal: step_wise: avoid throttling at +Subject: [PATCH 0112/1015] drivers: thermal: step_wise: avoid throttling at hysteresis temperature after dropping below it Signed-off-by: Serge Schneider @@ -142168,7 +142106,7 @@ index 9c8d615f3b63..629f02fce2f2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Fri, 2 Nov 2018 11:55:49 +0000 -Subject: [PATCH 114/991] Update issue templates (#2736) +Subject: [PATCH 0113/1015] Update issue templates (#2736) --- .github/ISSUE_TEMPLATE/bug_report.md | 34 ++++++++++++++++++++++++++++ @@ -142222,7 +142160,7 @@ index 000000000000..09bdc4a96838 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 26 Nov 2018 19:46:58 +0000 -Subject: [PATCH 115/991] net: lan78xx: Support auto-downshift to 100Mb/s +Subject: [PATCH 0114/1015] net: lan78xx: Support auto-downshift to 100Mb/s Ethernet cables with faulty or missing pairs (specifically pairs C and D) allow auto-negotiation to 1000Mbs, but do not support the successful @@ -142323,7 +142261,7 @@ index 517288da19fd..626c450d71f4 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 10 Jan 2019 17:58:06 +0000 -Subject: [PATCH 116/991] firmware: raspberrypi: Report the fw variant during +Subject: [PATCH 0115/1015] firmware: raspberrypi: Report the fw variant during probe The driver already reported the firmware build date during probe. @@ -142432,7 +142370,8 @@ index e93414410485..119141c91bad 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Joshua Emele Date: Wed, 7 Nov 2018 16:07:40 -0800 -Subject: [PATCH 117/991] lan78xx: Debounce link events to minimize poll storm +Subject: [PATCH 0116/1015] lan78xx: Debounce link events to minimize poll + storm The bInterval is set to 4 (i.e. 8 microframes => 1ms) and the only bit that the driver pays attention to is "link was reset". If there's a @@ -142483,7 +142422,7 @@ index 89ecb0ce8685..28eb51919c46 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 5 Mar 2019 09:51:22 +0000 -Subject: [PATCH 118/991] lan78xx: EEE support is now a PHY property +Subject: [PATCH 0117/1015] lan78xx: EEE support is now a PHY property Now that EEE support is a property of the PHY, use the PHY's DT node when querying the EEE-related properties. @@ -142515,7 +142454,7 @@ index 28eb51919c46..865240711576 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 20 Jul 2018 22:03:41 +0100 -Subject: [PATCH 119/991] bcm2835-dma: Add support for per-channel flags +Subject: [PATCH 0118/1015] bcm2835-dma: Add support for per-channel flags Add the ability to interpret the high bits of the dreq specifier as flags to be included in the DMA_CS register. The motivation for this @@ -142569,7 +142508,7 @@ index bf7ba96a39f9..87b5d0bef355 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Howard Date: Fri, 29 Mar 2019 10:53:14 +0000 -Subject: [PATCH 120/991] rtc: rv3028: Add backup switchover mode support +Subject: [PATCH 0119/1015] rtc: rv3028: Add backup switchover mode support Signed-off-by: Phil Howard --- @@ -142625,7 +142564,7 @@ index 12c807306893..757c0ff82bdb 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: P33M Date: Thu, 2 May 2019 11:53:45 +0100 -Subject: [PATCH 121/991] lan78xx: use default alignment for rx buffers +Subject: [PATCH 0120/1015] lan78xx: use default alignment for rx buffers The lan78xx uses a 12-byte hardware rx header, so there is no need to allocate SKBs with NET_IP_ALIGN set. Removes alignment faults @@ -142654,7 +142593,7 @@ index 865240711576..0cf3f00b52ff 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:56:59 +0000 -Subject: [PATCH 122/991] media: tc358743: Increase FIFO level to 374. +Subject: [PATCH 0121/1015] media: tc358743: Increase FIFO level to 374. The existing fixed value of 16 worked for UYVY 720P60 over 2 lanes at 594MHz, or UYVY 1080P60 over 4 lanes. (RGB888 @@ -142691,7 +142630,7 @@ index 3205cd8298dd..ae879e0835ff 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Philipp Zabel Date: Thu, 21 Sep 2017 17:30:24 +0200 -Subject: [PATCH 123/991] media: tc358743: fix connected/active CSI-2 lane +Subject: [PATCH 0122/1015] media: tc358743: fix connected/active CSI-2 lane reporting g_mbus_config was supposed to indicate all supported lane numbers, not @@ -142773,7 +142712,8 @@ index 841e190aedd9..80a641840071 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:57:21 +0000 -Subject: [PATCH 124/991] media: tc358743: Add support for 972Mbit/s link freq. +Subject: [PATCH 0123/1015] media: tc358743: Add support for 972Mbit/s link + freq. Adds register setups for running the CSI lanes at 972Mbit/s, which allows 1080P50 UYVY down 2 lanes. @@ -142858,7 +142798,7 @@ index 1f4d78b147bb..d5c6e1f0d8bd 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:57:34 +0000 -Subject: [PATCH 125/991] media: tc358743: Check I2C succeeded during probe. +Subject: [PATCH 0124/1015] media: tc358743: Check I2C succeeded during probe. The probe for the TC358743 reads the CHIPID register from the device and compares it to the expected value of 0. @@ -142962,7 +142902,7 @@ index d5c6e1f0d8bd..80e7afe88a8c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:57:46 +0000 -Subject: [PATCH 126/991] media: adv7180: Default to the first valid input +Subject: [PATCH 0125/1015] media: adv7180: Default to the first valid input The hardware default is differential CVBS on AIN1 & 2, which isn't very useful. @@ -143013,7 +142953,7 @@ index d9a99fcfacb1..b0c3635eab71 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:57:56 +0000 -Subject: [PATCH 127/991] media: adv7180: Add YPrPb support for ADV7282M +Subject: [PATCH 0126/1015] media: adv7180: Add YPrPb support for ADV7282M The ADV7282M can support YPbPr on AIN1-3, but this was not selectable from the driver. Add it to the list of @@ -143043,7 +142983,7 @@ index b0c3635eab71..725d52f8c742 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:58:08 +0000 -Subject: [PATCH 128/991] media: videodev2: Add helper defines for printing +Subject: [PATCH 0127/1015] media: videodev2: Add helper defines for printing FOURCCs New helper defines that allow printing of a FOURCC using @@ -143077,7 +143017,7 @@ index 9260791b8438..fba99eb8eeee 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:59:06 +0000 -Subject: [PATCH 129/991] dt-bindings: Document BCM283x CSI2/CCP2 receiver +Subject: [PATCH 0128/1015] dt-bindings: Document BCM283x CSI2/CCP2 receiver Document the DT bindings for the CSI2/CCP2 receiver peripheral (known as Unicam) on BCM283x SoCs. @@ -143187,7 +143127,7 @@ index 000000000000..7714fb374b34 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:59:40 +0000 -Subject: [PATCH 130/991] MAINTAINERS: Add entry for BCM2835 Unicam driver +Subject: [PATCH 0129/1015] MAINTAINERS: Add entry for BCM2835 Unicam driver Adds entry for the new BCM2835 Unicam (CSI-2 receiver) driver @@ -143197,7 +143137,7 @@ Signed-off-by: Dave Stevenson 1 file changed, 7 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS -index c8103e57a70b..d550dbd836f2 100644 +index 942e0b173f2c..e1cd40f315aa 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3551,6 +3551,13 @@ N: bcm113* @@ -143221,7 +143161,7 @@ index c8103e57a70b..d550dbd836f2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 22 Nov 2018 17:31:06 +0000 -Subject: [PATCH 131/991] media: tc358743: Return an appropriate colorspace +Subject: [PATCH 0130/1015] media: tc358743: Return an appropriate colorspace from tc358743_set_fmt When calling tc358743_set_fmt, the code was calling tc358743_get_fmt @@ -143325,7 +143265,8 @@ index 80e7afe88a8c..69f2d676448e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 29 Oct 2018 16:20:46 +0000 -Subject: [PATCH 132/991] staging: mmal-vchiq: Avoid use of bool in structures +Subject: [PATCH 0131/1015] staging: mmal-vchiq: Avoid use of bool in + structures Fixes up a checkpatch error "Avoid using bool structure members because of possible alignment issues". @@ -143355,7 +143296,8 @@ index 76d3f0399964..61b9c09144b1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 24 Sep 2018 18:15:38 +0100 -Subject: [PATCH 133/991] staging: mmal-vchiq: Add support for event callbacks. +Subject: [PATCH 0132/1015] staging: mmal-vchiq: Add support for event + callbacks. (Preparation for the codec driver). The codec uses the event mechanism to report things such as @@ -143723,8 +143665,8 @@ index 1dc81ecf9268..e87f88f99338 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 24 Sep 2018 18:26:02 +0100 -Subject: [PATCH 134/991] staging: vc04_services: Support sending data to MMAL - ports +Subject: [PATCH 0133/1015] staging: vc04_services: Support sending data to + MMAL ports Add the ability to send data to ports. This only supports zero copy mode as the required bulk transfer setup calls @@ -143771,7 +143713,8 @@ index e78858d24c4e..2fbb813c27f1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 29 Oct 2018 17:57:45 +0000 -Subject: [PATCH 135/991] media: videobuf2: Allow exporting of a struct dmabuf +Subject: [PATCH 0134/1015] media: videobuf2: Allow exporting of a struct + dmabuf videobuf2 only allowed exporting a dmabuf as a file descriptor, but there are instances where having the struct dma_buf is @@ -143862,8 +143805,8 @@ index 3b5986cee073..4b72d0e16ee3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 22 Jan 2019 12:04:09 +0000 -Subject: [PATCH 136/991] staging: mmal-vchiq: Fix client_component for 64 bit - kernel +Subject: [PATCH 0135/1015] staging: mmal-vchiq: Fix client_component for 64 + bit kernel The MMAL client_component field is used with the event mechanism to allow the client to identify the component for @@ -143903,7 +143846,7 @@ index 2fbb813c27f1..d6d98b20c76a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 24 Jan 2019 15:09:28 +0000 -Subject: [PATCH 137/991] clk: clk-bcm2835: Use %zd when printing size_t +Subject: [PATCH 0136/1015] clk: clk-bcm2835: Use %zd when printing size_t The debug text for how many clocks have been registered uses "%d" with a size_t. Correct it to "%zd". @@ -143933,7 +143876,7 @@ index 9b9a799a487d..44f1c05fce85 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 13 Feb 2019 12:33:29 +0000 -Subject: [PATCH 138/991] staging: mmal_vchiq: Add in the Bayer encoding +Subject: [PATCH 0137/1015] staging: mmal_vchiq: Add in the Bayer encoding formats The list of formats was copied before Bayer support was added. @@ -143990,7 +143933,7 @@ index 2be9941a1f30..44ba91aa6d47 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 18 Feb 2019 15:52:29 +0000 -Subject: [PATCH 139/991] staging: mmal-vchiq: Update mmal_parameters.h with +Subject: [PATCH 0138/1015] staging: mmal-vchiq: Update mmal_parameters.h with recently defined params mmal_parameters.h hasn't been updated to reflect additions made @@ -144052,7 +143995,7 @@ index a1e39b1b1701..1793103b18fd 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 1 May 2019 13:27:23 +0100 -Subject: [PATCH 140/991] staging: mmal-vchiq: Free the event context for +Subject: [PATCH 0139/1015] staging: mmal-vchiq: Free the event context for control ports vchiq_mmal_component_init calls init_event_context for the @@ -144086,7 +144029,7 @@ index d6d98b20c76a..b4893e08f54a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 2 May 2019 15:50:01 +0100 -Subject: [PATCH 141/991] staging: mmal-vchiq: Fix memory leak in error path +Subject: [PATCH 0140/1015] staging: mmal-vchiq: Fix memory leak in error path On error, vchiq_mmal_component_init could leave the event context allocated for ports. @@ -144168,7 +144111,7 @@ index b4893e08f54a..38303b030156 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 12 Jun 2019 17:15:05 +0100 -Subject: [PATCH 142/991] w1: w1-gpio: Make GPIO an output for strong pullup +Subject: [PATCH 0141/1015] w1: w1-gpio: Make GPIO an output for strong pullup The logic to drive the data line high to implement a strong pullup assumed that the pin was already an output - setting a value does @@ -144201,7 +144144,7 @@ index d4632aace402..4832cd8c2596 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 20 Feb 2019 08:49:39 +0000 -Subject: [PATCH 143/991] arm: bcm2835: Fix FIQ early ioremap +Subject: [PATCH 0142/1015] arm: bcm2835: Fix FIQ early ioremap The ioremapping creates mappings within the vmalloc area. The equivalent early function, create_mapping, now checks that the @@ -144280,7 +144223,7 @@ index 9b6c921106b5..9bd9842da59f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 29 May 2019 15:47:42 +0100 -Subject: [PATCH 144/991] arm: bcm2835: DMA can only address 1GB +Subject: [PATCH 0143/1015] arm: bcm2835: DMA can only address 1GB The legacy peripherals can only address the first gigabyte of RAM, so ensure that DMA allocations are restricted to that region. @@ -144311,7 +144254,7 @@ index 9bd9842da59f..7d59a9364175 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Stefan Wahren Date: Sat, 4 May 2019 17:06:15 +0200 -Subject: [PATCH 145/991] hwrng: iproc-rng200: Add BCM2838 support +Subject: [PATCH 0144/1015] hwrng: iproc-rng200: Add BCM2838 support The HWRNG on the BCM2838 is compatible to iproc-rng200, so add the support to this driver instead of bcm2835-rng. @@ -144472,7 +144415,7 @@ index a43743887db1..f689cd63deae 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Wed, 12 Sep 2018 14:44:53 +0100 -Subject: [PATCH 146/991] bcmgenet: constrain max DMA burst length +Subject: [PATCH 0145/1015] bcmgenet: constrain max DMA burst length --- drivers/net/ethernet/broadcom/genet/bcmgenet.h | 2 +- @@ -144498,7 +144441,7 @@ index 0a6d91b0f0aa..5e653f21aeb9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 27 Mar 2019 13:45:46 +0000 -Subject: [PATCH 147/991] bcmgenet: Better coalescing parameter defaults +Subject: [PATCH 0146/1015] bcmgenet: Better coalescing parameter defaults Set defaults for TX and RX packet coalescing to be equivalent to: @@ -144514,7 +144457,7 @@ Signed-off-by: Phil Elwell 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c -index 8bcc39b1575c..84438d7f5699 100644 +index ea1391753752..2b5d47a06c7b 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -2608,7 +2608,7 @@ static void bcmgenet_init_tx_ring(struct bcmgenet_priv *priv, @@ -144526,7 +144469,7 @@ index 8bcc39b1575c..84438d7f5699 100644 /* Disable rate control for now */ bcmgenet_tdma_ring_writel(priv, index, flow_period_val, TDMA_FLOW_PERIOD); -@@ -4071,9 +4071,12 @@ static int bcmgenet_probe(struct platform_device *pdev) +@@ -4075,9 +4075,12 @@ static int bcmgenet_probe(struct platform_device *pdev) netif_set_real_num_rx_queues(priv->dev, priv->hw_params->rx_queues + 1); /* Set default coalescing parameters */ @@ -144547,7 +144490,7 @@ index 8bcc39b1575c..84438d7f5699 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 14 May 2019 17:17:59 +0100 -Subject: [PATCH 148/991] net: genet: enable link energy detect powerdown for +Subject: [PATCH 0147/1015] net: genet: enable link energy detect powerdown for external PHYs There are several warts surrounding bcmgenet_mii_probe() as this @@ -144584,7 +144527,7 @@ index 89d16c587bb7..817cd0042e30 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Martin Sperl Date: Mon, 13 May 2019 11:05:27 +0000 -Subject: [PATCH 149/991] spi: bcm2835: enable shared interrupt support +Subject: [PATCH 0148/1015] spi: bcm2835: enable shared interrupt support Add shared interrupt support for this driver. @@ -144625,7 +144568,7 @@ index 775c0bf2f923..80444e6bf034 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 23 Jan 2019 16:11:50 +0000 -Subject: [PATCH 150/991] clk-bcm2835: Don't wait for pllh lock +Subject: [PATCH 0149/1015] clk-bcm2835: Don't wait for pllh lock Signed-off-by: Phil Elwell --- @@ -144669,7 +144612,7 @@ index 44f1c05fce85..8d624034ecbf 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 11 Jan 2019 17:31:07 -0800 -Subject: [PATCH 151/991] soc: bcm: bcm2835-pm: Add support for 2711. +Subject: [PATCH 0150/1015] soc: bcm: bcm2835-pm: Add support for 2711. Without the actual power management part any more, there's a lot less to set up for V3D. We just need to clear the RSTN field for the power @@ -144781,7 +144724,7 @@ index ed37dc40e82a..b2d157091e12 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 2 May 2019 15:11:05 -0700 -Subject: [PATCH 152/991] clk: bcm2835: Add support for setting leaf clock +Subject: [PATCH 0151/1015] clk: bcm2835: Add support for setting leaf clock rates while running. As long as you wait for !BUSY, you can do glitch-free updates of clock @@ -144840,7 +144783,7 @@ index 8d624034ecbf..bfeb6cac0393 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 2 May 2019 15:24:04 -0700 -Subject: [PATCH 153/991] clk: bcm2835: Allow reparenting leaf clocks while +Subject: [PATCH 0152/1015] clk: bcm2835: Allow reparenting leaf clocks while they're running. This falls under the same "we can reprogram glitch-free as long as we @@ -144917,7 +144860,7 @@ index bfeb6cac0393..857a8e16d014 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 11 Jun 2019 10:55:00 +0100 -Subject: [PATCH 154/991] usb: add plumbing for updating interrupt endpoint +Subject: [PATCH 0153/1015] usb: add plumbing for updating interrupt endpoint interval state xHCI caches device and endpoint data after the interface is configured, @@ -144942,7 +144885,7 @@ Signed-off-by: Jonathan Bell 4 files changed, 34 insertions(+) diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c -index dd3c288fa952..9e999474f97a 100644 +index 9e28d715fa3b..c32babfc8af5 100644 --- a/drivers/usb/core/hcd.c +++ b/drivers/usb/core/hcd.c @@ -1969,6 +1969,16 @@ int usb_hcd_alloc_bandwidth(struct usb_device *udev, @@ -145002,10 +144945,10 @@ index 7ccaa76a9a96..77d9a69534f0 100644 /* this request isn't really synchronous, but it belongs with the others */ extern int usb_driver_set_configuration(struct usb_device *udev, int config); diff --git a/include/linux/usb/hcd.h b/include/linux/usb/hcd.h -index 548a028f2dab..d397194881c3 100644 +index 2c1fc9212cf2..2a0d491f2ce3 100644 --- a/include/linux/usb/hcd.h +++ b/include/linux/usb/hcd.h -@@ -382,6 +382,11 @@ struct hc_driver { +@@ -384,6 +384,11 @@ struct hc_driver { * or bandwidth constraints. */ void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *); @@ -145017,7 +144960,7 @@ index 548a028f2dab..d397194881c3 100644 /* Returns the hardware-chosen device address */ int (*address_device)(struct usb_hcd *, struct usb_device *udev); /* prepares the hardware to send commands to the device */ -@@ -446,6 +451,8 @@ extern void usb_hcd_unmap_urb_setup_for_dma(struct usb_hcd *, struct urb *); +@@ -448,6 +453,8 @@ extern void usb_hcd_unmap_urb_setup_for_dma(struct usb_hcd *, struct urb *); extern void usb_hcd_unmap_urb_for_dma(struct usb_hcd *, struct urb *); extern void usb_hcd_flush_endpoint(struct usb_device *udev, struct usb_host_endpoint *ep); @@ -145033,7 +144976,7 @@ index 548a028f2dab..d397194881c3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 11 Jun 2019 11:33:39 +0100 -Subject: [PATCH 155/991] xhci: implement xhci_fixup_endpoint for interval +Subject: [PATCH 0154/1015] xhci: implement xhci_fixup_endpoint for interval adjustments Must be called in a non-atomic context, after the endpoint @@ -145174,7 +145117,7 @@ index 90f5a3ce7c34..d711f7c1360c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 11 Jun 2019 11:42:03 +0100 -Subject: [PATCH 156/991] usbhid: call usb_fixup_endpoint after mangling +Subject: [PATCH 0155/1015] usbhid: call usb_fixup_endpoint after mangling intervals Lets the mousepoll override mechanism work with xhci. @@ -145203,7 +145146,7 @@ index 8a9d8214d8af..3541229ef9dc 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 11 Jun 2019 17:38:28 +0100 -Subject: [PATCH 157/991] arm: bcm2835: Add bcm2838 compatible string. +Subject: [PATCH 0156/1015] arm: bcm2835: Add bcm2838 compatible string. Signed-off-by: Phil Elwell --- @@ -145229,7 +145172,7 @@ index 7d59a9364175..282a023027fc 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 4 Oct 2018 17:22:43 -0700 -Subject: [PATCH 158/991] drm/v3d: Add support for 2711. +Subject: [PATCH 0157/1015] drm/v3d: Add support for 2711. Signed-off-by: Eric Anholt --- @@ -145255,7 +145198,7 @@ index 6407a006d6ec..daf7f8b75fa5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 14 Jan 2019 12:35:43 -0800 -Subject: [PATCH 159/991] drm/v3d: Skip MMU flush if the device is currently +Subject: [PATCH 0158/1015] drm/v3d: Skip MMU flush if the device is currently off. If it's off, we know it will be reset on poweron, so the MMU won't @@ -145313,7 +145256,7 @@ index 5a453532901f..8986e7b96461 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 14 Jan 2019 14:47:57 -0800 -Subject: [PATCH 160/991] drm/v3d: Hook up the runtime PM ops. +Subject: [PATCH 0159/1015] drm/v3d: Hook up the runtime PM ops. In translating the runtime PM code from vc4, I missed the ".pm" assignment to actually connect them up. Fixes missing MMU setup if @@ -145387,7 +145330,7 @@ index daf7f8b75fa5..e573e67031a5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 12 Jul 2019 15:38:35 +0100 -Subject: [PATCH 161/991] i2c: bcm2835: Set clock-stretch timeout to 35ms +Subject: [PATCH 0160/1015] i2c: bcm2835: Set clock-stretch timeout to 35ms The BCM2835 I2C blocks have a register to set the clock-stretch timeout - how long the device is allowed to hold SCL low - in bus @@ -145440,7 +145383,7 @@ index 394282a37f67..d768247c7e50 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 6 Aug 2019 15:23:14 +0100 -Subject: [PATCH 162/991] clk-bcm2835: Avoid null pointer exception +Subject: [PATCH 0161/1015] clk-bcm2835: Avoid null pointer exception clk_desc_array[BCM2835_PLLB] doesn't exist so we dereference null when iterating @@ -145475,7 +145418,7 @@ index 857a8e16d014..fe005f9dbe02 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 14 Jan 2019 15:13:17 -0800 -Subject: [PATCH 163/991] drm/v3d: HACK: gut runtime pm for now. +Subject: [PATCH 0162/1015] drm/v3d: HACK: gut runtime pm for now. Something is still unstable -- on starting a new glxgears from an idle X11, I get an MMU violation in high addresses. The CTS also failed @@ -145592,7 +145535,7 @@ index e573e67031a5..b8f3d12d9d96 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 2 May 2019 13:22:53 -0700 -Subject: [PATCH 164/991] drm/v3d: Clock V3D down when not in use. +Subject: [PATCH 0163/1015] drm/v3d: Clock V3D down when not in use. My various attempts at re-enabling runtime PM have failed, so just crank the clock down when V3D is idle to reduce power consumption. @@ -145763,7 +145706,7 @@ index 805d6f6cba0e..fd4aa45054b5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Thu, 9 May 2019 14:30:37 +0100 -Subject: [PATCH 165/991] drivers: char: add chardev for mmap'ing the RPiVid +Subject: [PATCH 0164/1015] drivers: char: add chardev for mmap'ing the RPiVid control registers Based on the gpiomem driver, allow mapping of the decoder register @@ -146221,7 +146164,7 @@ index b2d157091e12..f70a810c55f7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Thu, 1 Aug 2019 16:41:20 +0100 -Subject: [PATCH 166/991] hid: usb: Add device quirks for Freeway Airmouse T3 +Subject: [PATCH 0165/1015] hid: usb: Add device quirks for Freeway Airmouse T3 and MX3 These wireless mouse/keyboard combo remote control devices specify @@ -146242,7 +146185,7 @@ Signed-off-by: Jonathan Bell 2 files changed, 8 insertions(+) diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h -index 645a5f566d23..022c30808ad9 100644 +index 42b5b050b72d..b6f8f840f47c 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -225,6 +225,9 @@ @@ -146255,7 +146198,7 @@ index 645a5f566d23..022c30808ad9 100644 #define USB_VENDOR_ID_BELKIN 0x050d #define USB_DEVICE_ID_FLIP_KVM 0x3201 -@@ -1305,6 +1308,9 @@ +@@ -1306,6 +1309,9 @@ #define USB_VENDOR_ID_XAT 0x2505 #define USB_DEVICE_ID_XAT_CSR 0x0220 @@ -146292,7 +146235,7 @@ index 544d1197aca4..4b5975950f1c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Tue, 16 Jul 2019 12:18:21 +0100 -Subject: [PATCH 167/991] Add HDMI1 facility to the driver. +Subject: [PATCH 0166/1015] Add HDMI1 facility to the driver. For generic ALSA, all you need is the bcm2835.h change, but have also added structures for IEC958 HDMI. Not sure how to @@ -146385,7 +146328,7 @@ index 51066ac8eea5..b42a2fb12248 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 9 Aug 2019 08:51:43 +0100 -Subject: [PATCH 168/991] net: bcmgenet: Workaround #2 for Pi4 Ethernet fail +Subject: [PATCH 0167/1015] net: bcmgenet: Workaround #2 for Pi4 Ethernet fail Some combinations of Pi 4Bs and Ethernet switches don't reliably get a DCHP-assigned IP address, leaving the unit with a self=assigned 169.254 @@ -146410,7 +146353,7 @@ Signed-off-by: Phil Elwell 1 file changed, 8 insertions(+) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c -index 84438d7f5699..cf86e9206dfe 100644 +index 2b5d47a06c7b..5feba08c2dce 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -67,6 +67,9 @@ @@ -146442,7 +146385,7 @@ index 84438d7f5699..cf86e9206dfe 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 13 Aug 2019 15:53:29 +0100 -Subject: [PATCH 169/991] xhci: Use more event ring segment table entries +Subject: [PATCH 0168/1015] xhci: Use more event ring segment table entries Users have reported log spam created by "Event Ring Full" xHC event TRBs. These are caused by interrupt latency in conjunction with a very @@ -146510,7 +146453,7 @@ index bc0789229527..ac6c1c064d66 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 15 Aug 2019 12:02:34 +0100 -Subject: [PATCH 170/991] configs: arm64/bcm2711: Enable V3D +Subject: [PATCH 0169/1015] configs: arm64/bcm2711: Enable V3D Enable the V3D driver, which depends on BCM2835_POWER. @@ -146544,7 +146487,7 @@ index 9a5c44606337..b0e048697964 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 3 Sep 2019 18:16:56 +0100 -Subject: [PATCH 171/991] arch/arm: Add model string to cpuinfo +Subject: [PATCH 0170/1015] arch/arm: Add model string to cpuinfo Signed-off-by: Phil Elwell --- @@ -146586,7 +146529,7 @@ index 284a80c0b6e1..12e73ce6e8fa 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 3 Sep 2019 18:17:25 +0100 -Subject: [PATCH 172/991] arch/arm64: Add Revision, Serial, Model to cpuinfo +Subject: [PATCH 0171/1015] arch/arm64: Add Revision, Serial, Model to cpuinfo Signed-off-by: Phil Elwell --- @@ -146650,7 +146593,7 @@ index 591c18a889a5..ae90c11f9623 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 28 Aug 2019 13:34:30 +0100 -Subject: [PATCH 173/991] media: dt-bindings: Add binding for the Sony IMX219 +Subject: [PATCH 0172/1015] media: dt-bindings: Add binding for the Sony IMX219 sensor The IMX219 is an 8MPix CSI2 sensor, supporting 2 or 4 data lanes. @@ -146734,7 +146677,7 @@ index 000000000000..a02f1ce1e120 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 6 Sep 2019 15:04:51 +0100 -Subject: [PATCH 174/991] v4l2: Add a Greyworld AWB mode. +Subject: [PATCH 0173/1015] v4l2: Add a Greyworld AWB mode. Adds a simple greyworld white balance preset, mainly for use with cameras without an IR filter (eg Raspberry Pi NoIR) @@ -151807,7 +151750,7 @@ index 5532b5f68493..ee1684f51d97 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 6 Sep 2019 15:13:06 +0100 -Subject: [PATCH 175/991] staging: bcm2835-camera: Add greyworld AWB mode +Subject: [PATCH 0174/1015] staging: bcm2835-camera: Add greyworld AWB mode This is mainly used for the NoIR camera which has no IR filter and can completely confuse normal AWB presets. @@ -151852,7 +151795,7 @@ index 1793103b18fd..27bafc5f01d2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 18 Sep 2019 17:22:36 +0100 -Subject: [PATCH 176/991] drm/v3d: Delete pm_runtime support +Subject: [PATCH 0175/1015] drm/v3d: Delete pm_runtime support The pm_runtime was blocking changelist submission, so delete it as a temporary workaround. @@ -151922,7 +151865,7 @@ index 8986e7b96461..618503f2f2f1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Stefan Wahren Date: Thu, 19 Sep 2019 20:45:30 +0200 -Subject: [PATCH 177/991] ARM: bcm: Switch board, clk and pinctrl to bcm2711 +Subject: [PATCH 0176/1015] ARM: bcm: Switch board, clk and pinctrl to bcm2711 compatible After the decision to use bcm2711 compatible for upstream, we should @@ -151954,7 +151897,8 @@ index 282a023027fc..e538e0f899a5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Tue, 24 Sep 2019 18:26:55 +0100 -Subject: [PATCH 178/991] Rename HDMI ALSA device names, check for enable state +Subject: [PATCH 0177/1015] Rename HDMI ALSA device names, check for enable + state HDMI Alsa devices renamed to match names used by DRM, to HDMI 1 and HDMI 2 @@ -152099,7 +152043,7 @@ index eb8a8a5b7ec8..f926784c622d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Markus Proeller Date: Thu, 10 Oct 2019 19:12:08 +0200 -Subject: [PATCH 179/991] dt-bindings: Add binding for the Infineon IRS1125 +Subject: [PATCH 0178/1015] dt-bindings: Add binding for the Infineon IRS1125 sensor Adds a binding for the Infineon IRS1125 time-of-flight depth @@ -152172,7 +152116,7 @@ index 000000000000..25a48028c957 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Markus Proeller Date: Thu, 10 Oct 2019 19:12:36 +0200 -Subject: [PATCH 180/991] media: i2c: Add a driver for the Infineon IRS1125 +Subject: [PATCH 0179/1015] media: i2c: Add a driver for the Infineon IRS1125 depth sensor The Infineon IRS1125 is a time of flight depth sensor that @@ -153417,7 +153361,7 @@ index 000000000000..dccaca23aa76 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 11 Nov 2019 20:18:08 +0000 -Subject: [PATCH 181/991] drm/v3d: Suppress all but the first MMU error +Subject: [PATCH 0180/1015] drm/v3d: Suppress all but the first MMU error The v3d driver currently encounters a lot of MMU PTE exceptions, so only log the first to avoid swamping the kernel log. @@ -153462,7 +153406,7 @@ index e714d5318f30..0f7a23f051df 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 12 Nov 2019 16:41:21 +0000 -Subject: [PATCH 182/991] drm/v3d: Plug dma_fence leak +Subject: [PATCH 0181/1015] drm/v3d: Plug dma_fence leak The irq_fence and done_fence are given a reference that is never released. The necessary dma_fence_put()s seem to have been @@ -153496,7 +153440,7 @@ index 272320c6b1fe..ac07f67aafe7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 6 Nov 2019 13:57:48 +0000 -Subject: [PATCH 183/991] staging: vchiq_arm: Register vcsm-cma as a platform +Subject: [PATCH 0182/1015] staging: vchiq_arm: Register vcsm-cma as a platform driver Following the same pattern as bcm2835-camera and bcm2835-audio, @@ -153542,7 +153486,7 @@ index 099359fc0115..5b937babbf25 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 6 Nov 2019 13:57:58 +0000 -Subject: [PATCH 184/991] staging: vchiq_arm: Register bcm2835-codec as a +Subject: [PATCH 0183/1015] staging: vchiq_arm: Register bcm2835-codec as a platform driver Following the same pattern as bcm2835-camera and bcm2835-audio, @@ -153588,7 +153532,7 @@ index 5b937babbf25..887929caf27d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Thu, 31 Oct 2019 14:39:44 +0000 -Subject: [PATCH 185/991] net:phy:2711 Allow ethernet LED mode to be set via +Subject: [PATCH 0184/1015] net:phy:2711 Allow ethernet LED mode to be set via device tree Add device tree entries and code to allow the specification of @@ -153649,7 +153593,7 @@ index b330efb98209..211e1b8e4d56 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 23 Aug 2019 16:34:38 +0100 -Subject: [PATCH 186/991] v3d_drv: Handle missing clock more gracefully +Subject: [PATCH 0185/1015] v3d_drv: Handle missing clock more gracefully Signed-off-by: popcornmix --- @@ -153682,7 +153626,7 @@ index 176bc5a572ab..8d7f0bf55ce2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 5 Sep 2019 17:59:14 +0100 -Subject: [PATCH 187/991] v3d_gem: Kick the clock so firmware knows we are +Subject: [PATCH 0186/1015] v3d_gem: Kick the clock so firmware knows we are using firmware clock interface Setting the v3d clock to low value allows firmware to handle dvfs in case @@ -153715,8 +153659,8 @@ index ac07f67aafe7..4636791617e1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 9 Sep 2019 15:49:56 +0100 -Subject: [PATCH 188/991] clk-raspberrypi: Allow cpufreq driver to also adjust - gpu clocks +Subject: [PATCH 0187/1015] clk-raspberrypi: Allow cpufreq driver to also + adjust gpu clocks For performance/power it is beneficial to adjust gpu clocks with arm clock. This is how the downstream cpufreq driver works @@ -153746,7 +153690,7 @@ index dd3b71eafabf..19f4e3b7b190 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 3 Sep 2019 20:28:00 +0100 -Subject: [PATCH 189/991] clk-bcm2835: Disable v3d clock +Subject: [PATCH 0188/1015] clk-bcm2835: Disable v3d clock This is controlled by firmware, see clk-raspberrypi.c @@ -153810,7 +153754,7 @@ index fe005f9dbe02..4f983b82eab1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 29 Jan 2019 16:13:25 +0000 -Subject: [PATCH 190/991] staging: vchiq_arm: Set up dma ranges on child +Subject: [PATCH 0189/1015] staging: vchiq_arm: Set up dma ranges on child devices The VCHIQ driver now loads the audio, camera, codec, and vc-sm @@ -153849,7 +153793,7 @@ index 887929caf27d..2cc3f8c4098e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 18 Jun 2019 12:15:50 +0100 -Subject: [PATCH 191/991] staging: vchiq: Use the old dma controller for OF +Subject: [PATCH 0190/1015] staging: vchiq: Use the old dma controller for OF config on platform devices vchiq on Pi4 is no longer under the soc node, therefore it @@ -153906,7 +153850,7 @@ index 2cc3f8c4098e..9d7eeb3f6614 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Stefan Wahren Date: Fri, 27 Dec 2019 11:40:56 +0100 -Subject: [PATCH 192/991] ARM: bcm: Backport BCM2711 support from upstream +Subject: [PATCH 0191/1015] ARM: bcm: Backport BCM2711 support from upstream Make the BCM2711 a different machine, but keep it in board_bcm2835. @@ -153959,7 +153903,7 @@ index e538e0f899a5..91a758c61f48 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Luke Hinds <7058938+lukehinds@users.noreply.github.com> Date: Wed, 22 Jan 2020 16:03:00 +0000 -Subject: [PATCH 193/991] Initialise rpi-firmware before clk-bcm2835 +Subject: [PATCH 0192/1015] Initialise rpi-firmware before clk-bcm2835 The IMA (Integrity Measurement Architecture) looks for a TPM (Trusted Platform Module) having been registered when it initialises; otherwise @@ -154014,7 +153958,7 @@ index 2a7a0a9933d7..fa105074f05f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 3 Feb 2020 17:30:46 +0000 -Subject: [PATCH 194/991] staging: vchiq_arm: Give vchiq children DT nodes +Subject: [PATCH 0193/1015] staging: vchiq_arm: Give vchiq children DT nodes vchiq kernel clients are now instantiated as platform drivers rather than using DT, but the children of the vchiq interface may still @@ -154059,7 +154003,7 @@ index 9d7eeb3f6614..d373197a67d9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 6 Jan 2020 16:04:30 +0000 -Subject: [PATCH 195/991] pinctrl: bcm2835: Remove gpiochip on error +Subject: [PATCH 0194/1015] pinctrl: bcm2835: Remove gpiochip on error A failure in gpiochip_irqchip_add leads to a leak of a gpiochip. Fix the leak with the use of devm_gpiochip_add_data. @@ -154071,10 +154015,10 @@ Signed-off-by: Phil Elwell 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -index 061d29202298..a68f440518d7 100644 +index ce67182de720..90ce5d11f3a6 100644 --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -@@ -1321,7 +1321,7 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev) +@@ -1339,7 +1339,7 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev) girq->default_type = IRQ_TYPE_NONE; girq->handler = handle_level_irq; @@ -154090,7 +154034,7 @@ index 061d29202298..a68f440518d7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 2 Mar 2020 14:40:19 +0000 -Subject: [PATCH 196/991] drivers: char: vcio: Use common compat header +Subject: [PATCH 0195/1015] drivers: char: vcio: Use common compat header The definition of compat_ptr is now common for most platforms, but requires the inclusion of . @@ -154119,7 +154063,7 @@ index d2598663a2b5..a39155a94fb7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 2 Mar 2020 14:42:23 +0000 -Subject: [PATCH 197/991] video: fbdev: bcm2708_fb: Use common compat header +Subject: [PATCH 0196/1015] video: fbdev: bcm2708_fb: Use common compat header The definition of compat_ptr is now common for most platforms, but requires the inclusion of . @@ -154148,7 +154092,7 @@ index 0e9ec3f593b8..17e9260655e4 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 6 Feb 2020 12:23:15 +0000 -Subject: [PATCH 198/991] of: overlay: Correct symbol path fixups +Subject: [PATCH 0197/1015] of: overlay: Correct symbol path fixups When symbols from overlays are added to the live tree their paths must be rebased. The translated symbol is normally the result of joining @@ -154172,10 +154116,10 @@ Signed-off-by: Phil Elwell 1 file changed, 2 insertions(+) diff --git a/drivers/of/overlay.c b/drivers/of/overlay.c -index d80160cf34bb..2100d277ff98 100644 +index d1187123c4fc..be471ef07c7e 100644 --- a/drivers/of/overlay.c +++ b/drivers/of/overlay.c -@@ -245,6 +245,8 @@ static struct property *dup_and_fixup_symbol_prop( +@@ -243,6 +243,8 @@ static struct property *dup_and_fixup_symbol_prop( if (!target_path) return NULL; target_path_len = strlen(target_path); @@ -154191,7 +154135,8 @@ index d80160cf34bb..2100d277ff98 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jim Quinlan Date: Mon, 15 Jan 2018 18:28:39 -0500 -Subject: [PATCH 199/991] dt-bindings: pci: Add DT docs for Brcmstb PCIe device +Subject: [PATCH 0198/1015] dt-bindings: pci: Add DT docs for Brcmstb PCIe + device The DT bindings description of the Brcmstb PCIe device is described. This node can be used by almost all Broadcom settop box chips, using @@ -154275,7 +154220,7 @@ index 000000000000..a1a9ad5e70ca From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 1 Apr 2020 11:22:44 +0100 -Subject: [PATCH 200/991] bcmgenet: Disable skip_umac_reset by default +Subject: [PATCH 0199/1015] bcmgenet: Disable skip_umac_reset by default Possible fixed upstream by 'net: bcmgenet: keep MAC in reset until PHY is up' @@ -154285,7 +154230,7 @@ Signed-off-by: popcornmix 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c -index cf86e9206dfe..33407cd423e8 100644 +index 5feba08c2dce..e24c27abd432 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -67,7 +67,7 @@ @@ -154304,7 +154249,7 @@ index cf86e9206dfe..33407cd423e8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 24 Jan 2020 14:22:06 +0000 -Subject: [PATCH 201/991] drm/fourcc: Add packed 10bit YUV 4:2:0 format +Subject: [PATCH 0200/1015] drm/fourcc: Add packed 10bit YUV 4:2:0 format Adds a format that is 3 10bit YUV 4:2:0 samples packed into a 32bit work (with 2 spare bits). @@ -154367,7 +154312,7 @@ index 9f4bb4a6f358..dcf0c65f1341 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Fri, 13 Dec 2019 17:04:25 +0100 -Subject: [PATCH 202/991] media: uapi: hevc: Add scaling matrix control +Subject: [PATCH 0201/1015] media: uapi: hevc: Add scaling matrix control Taken from https://patchwork.linuxtv.org/patch/60728/ Changes (mainly documentation) have been requested. @@ -154533,7 +154478,7 @@ index 781371bff2ad..1c6567b13b7e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Fri, 13 Dec 2019 17:04:27 +0100 -Subject: [PATCH 203/991] media: uapi: hevc: Add segment address field +Subject: [PATCH 0202/1015] media: uapi: hevc: Add segment address field From https://patchwork.linuxtv.org/patch/60725/ Changes requested, but mainly docs. @@ -154600,8 +154545,8 @@ index 1c6567b13b7e..7cbbbf055f47 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 24 Jan 2020 14:28:21 +0000 -Subject: [PATCH 204/991] media: videodev2.h: Add a format for column YUV4:2:0 - modes +Subject: [PATCH 0203/1015] media: videodev2.h: Add a format for column + YUV4:2:0 modes Some of the Broadcom codec blocks use a column based YUV4:2:0 image format, so add the documentation and defines for both 8 and 10 bit @@ -154923,7 +154868,7 @@ index fba99eb8eeee..0cfd4089653f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 17 Mar 2020 10:53:16 +0000 -Subject: [PATCH 205/991] media: dt-bindings: media: Add binding for the +Subject: [PATCH 0204/1015] media: dt-bindings: media: Add binding for the Raspberry PI HEVC decoder Adds a binding for the HEVC decoder found on the BCM2711 / Raspberry Pi 4. @@ -155014,7 +154959,7 @@ index 000000000000..ce6b81a10303 + +... diff --git a/MAINTAINERS b/MAINTAINERS -index d550dbd836f2..56fa510c63c8 100644 +index e1cd40f315aa..8d1161c79c9b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3551,6 +3551,13 @@ N: bcm113* @@ -155038,7 +154983,7 @@ index d550dbd836f2..56fa510c63c8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: John Cox Date: Thu, 5 Mar 2020 18:30:41 +0000 -Subject: [PATCH 206/991] staging: media: Add Raspberry Pi V4L2 H265 decoder +Subject: [PATCH 0205/1015] staging: media: Add Raspberry Pi V4L2 H265 decoder This driver is for the HEVC/H265 decoder block on the Raspberry Pi 4, and conforms to the V4L2 stateless decoder API. @@ -159420,7 +159365,7 @@ index 000000000000..9c4f3fb2f9f6 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 13 Feb 2020 17:51:09 +0100 -Subject: [PATCH 207/991] dt-bindings: clock: Add a binding for the RPi +Subject: [PATCH 0206/1015] dt-bindings: clock: Add a binding for the RPi Firmware clocks The firmare running on the RPi VideoCore can be used to discover and @@ -159490,7 +159435,7 @@ index 000000000000..d37bc311321d From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 13 Feb 2020 16:45:24 +0100 -Subject: [PATCH 208/991] dt-bindings: display: vc4: hdmi: Add BCM2711 HDMI +Subject: [PATCH 0207/1015] dt-bindings: display: vc4: hdmi: Add BCM2711 HDMI controllers bindings The HDMI controllers found in the BCM2711 SoC need some adjustments to the @@ -159670,7 +159615,7 @@ index 031e35e76db2..e7ef3a36327b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 27 Jan 2020 10:22:44 +0000 -Subject: [PATCH 209/991] drm: Checking of the pitch is only valid for linear +Subject: [PATCH 0208/1015] drm: Checking of the pitch is only valid for linear formats framebuffer_check was computing a minimum pitch value and ensuring @@ -159716,7 +159661,7 @@ index 07f5abc875e9..8683b59bcbcb 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 20 Apr 2020 22:18:52 +0100 -Subject: [PATCH 210/991] driver: char: rpivid: Remove legacy name support +Subject: [PATCH 0209/1015] driver: char: rpivid: Remove legacy name support Signed-off-by: Phil Elwell --- @@ -159775,7 +159720,7 @@ index fbf3d4f3fe0c..5f4c91924ec1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 17 Apr 2020 10:46:19 +0100 -Subject: [PATCH 211/991] spi: Force CS_HIGH if GPIO descriptors are used +Subject: [PATCH 0210/1015] spi: Force CS_HIGH if GPIO descriptors are used Commit f3186dd87669 ("spi: Optionally use GPIO descriptors for CS GPIOs") amended of_spi_parse_dt() to always set SPI_CS_HIGH for SPI slaves whose @@ -159838,7 +159783,7 @@ index d0bbf8f9414d..c5f1e4c4b7cb 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 21 Apr 2020 11:30:23 +0100 -Subject: [PATCH 212/991] driver: char: rpivid: Don't map more than wanted +Subject: [PATCH 0211/1015] driver: char: rpivid: Don't map more than wanted Limit mappings to the permitted range, but don't map more than asked for otherwise we walk off the end of the allocated VMA. @@ -159895,7 +159840,7 @@ index 5f4c91924ec1..9f38083f4cb6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 1 Apr 2020 08:39:49 +0100 -Subject: [PATCH 213/991] media: bcm2835-unicam: Driver for CCP2/CSI2 camera +Subject: [PATCH 0212/1015] media: bcm2835-unicam: Driver for CCP2/CSI2 camera interface Add driver for the Unicam camera receiver block on @@ -159921,7 +159866,7 @@ Signed-off-by: Naushir Patuck create mode 100644 drivers/media/platform/bcm2835/vc4-regs-unicam.h diff --git a/MAINTAINERS b/MAINTAINERS -index 56fa510c63c8..5b713ab37e82 100644 +index 8d1161c79c9b..913fe3353c59 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3559,7 +3559,7 @@ F: Documentation/devicetree/bindings/media/rpivid_hevc.jaml @@ -162628,7 +162573,7 @@ index 000000000000..ae059a171d0f From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 1 Apr 2020 08:46:29 +0100 -Subject: [PATCH 214/991] media: uapi: v4l2-core: Add sensor ancillary data +Subject: [PATCH 0213/1015] media: uapi: v4l2-core: Add sensor ancillary data V4L2 foucc type. Add V4L2_META_FMT_SENSOR_DATA format 4CC. @@ -162726,8 +162671,8 @@ index 0cfd4089653f..58cbf8a9c5b7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 21 Jan 2020 14:06:47 +0000 -Subject: [PATCH 215/991] media: uapi: Add MEDIA_BUS_FMT_SENSOR_DATA media bus - format +Subject: [PATCH 0214/1015] media: uapi: Add MEDIA_BUS_FMT_SENSOR_DATA media + bus format This patch adds MEDIA_BUS_FMT_SENSOR_DATA used by the bcm2835-unicam driver to support CSI-2 embedded data streams from camera sensors. @@ -162797,7 +162742,7 @@ index 0dfc11ee243a..aa56d7f54784 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 7 Apr 2020 10:42:14 +0100 -Subject: [PATCH 216/991] media: bcm2835-unicam: Add support for mulitple +Subject: [PATCH 0215/1015] media: bcm2835-unicam: Add support for mulitple device nodes. Move device node specific state out of the device state structure and @@ -163886,7 +163831,7 @@ index 9da9f22c3db5..b34551a3f44b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 16 Apr 2020 11:35:41 +0100 -Subject: [PATCH 217/991] media: bcm2835-unicam: Add embedded data node. +Subject: [PATCH 0216/1015] media: bcm2835-unicam: Add embedded data node. This patch adds a new node in the bcm2835-unicam driver to support CSI-2 embedded data streams. The subdevice is queried to see if @@ -165060,8 +165005,8 @@ index b34551a3f44b..d5e0f70b600c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 2 Apr 2020 16:08:51 +0100 -Subject: [PATCH 218/991] media: bcm2835-unicam: Use dummy buffer if none have - been queued +Subject: [PATCH 0217/1015] media: bcm2835-unicam: Use dummy buffer if none + have been queued If no buffer has been queued by a userland application, we use an internal dummy buffer for the hardware to spin in. This will allow @@ -165374,7 +165319,7 @@ index d5e0f70b600c..933f1ba49e3d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Tue, 24 Mar 2020 23:13:02 +0200 -Subject: [PATCH 219/991] media: bcm2835-unicam: Disable event-related ioctls +Subject: [PATCH 0218/1015] media: bcm2835-unicam: Disable event-related ioctls on metadata node The unicam driver supports both the SOURCE_CHANGE and CTRL events. Both @@ -165411,8 +165356,8 @@ index 933f1ba49e3d..2d4c7a247fc5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Tue, 24 Mar 2020 23:13:02 +0200 -Subject: [PATCH 220/991] media: bcm2835-unicam: Add support for the FRAME_SYNC - event +Subject: [PATCH 0219/1015] media: bcm2835-unicam: Add support for the + FRAME_SYNC event The FRAME_SYNC event is useful for userspace image processing algorithms to program the camera sensor as early as possible after frame start. @@ -165472,8 +165417,8 @@ index 2d4c7a247fc5..21d3a8585118 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 21 Apr 2020 16:26:03 +0100 -Subject: [PATCH 221/991] media: bcm2835-unicam: Re-fetch mbus code from subdev - on a g_fmt call +Subject: [PATCH 0220/1015] media: bcm2835-unicam: Re-fetch mbus code from + subdev on a g_fmt call The sensor subdevice may change the Bayer order if a H/V flip is requested after a s_fmt call. Unicam g_fmt must call the subdev get_fmt @@ -165527,7 +165472,7 @@ index 21d3a8585118..d4684fb2797f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 23 Apr 2020 10:20:26 +0100 -Subject: [PATCH 222/991] media: uapi: v4l2-core: Add ISP statistics output +Subject: [PATCH 0221/1015] media: uapi: v4l2-core: Add ISP statistics output V4L2 fourcc type Add V4L2_META_FMT_BCM2835_ISP_STATS V4L2 format type. @@ -165634,7 +165579,7 @@ index 58cbf8a9c5b7..f56bae0c4671 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 21 Apr 2020 15:06:19 +0100 -Subject: [PATCH 223/991] media: uapi: v4l-ctrls: Add CID base for the +Subject: [PATCH 0222/1015] media: uapi: v4l-ctrls: Add CID base for the bcm2835-isp driver We are reserving controls for the new bcm2835-isp driver. @@ -165814,7 +165759,7 @@ index ee1684f51d97..cda42967cdb3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 22 Apr 2020 08:32:32 +0100 -Subject: [PATCH 224/991] staging: vchiq: Load bcm2835_isp driver from vchiq +Subject: [PATCH 0223/1015] staging: vchiq: Load bcm2835_isp driver from vchiq bcmn2835_isp is a platform driver dependent on vchiq, therefore add the load/unload functions for it to vchiq. @@ -165859,7 +165804,7 @@ index d373197a67d9..e2eafacb0a80 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 4 Apr 2019 13:33:47 +0100 -Subject: [PATCH 225/991] bcm2835-dma: Add proper 40-bit DMA support +Subject: [PATCH 0224/1015] bcm2835-dma: Add proper 40-bit DMA support BCM2711 has 4 DMA channels with a 40-bit address range, allowing them to access the full 4GB of memory on a Pi 4. @@ -166665,7 +166610,7 @@ index 87b5d0bef355..ac0458a8027f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Apr 2020 16:45:02 +0100 -Subject: [PATCH 226/991] media: bcm2835-unicam: Add support for +Subject: [PATCH 0225/1015] media: bcm2835-unicam: Add support for VIDIOC_[S|G]_SELECTION Sensors are now reflecting cropping and scaling parameters through @@ -166753,7 +166698,7 @@ index d4684fb2797f..0e1d525a0b35 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Apr 2020 22:05:09 +0100 -Subject: [PATCH 227/991] media: bcm2835-unicam: Do not stop streaming in +Subject: [PATCH 0226/1015] media: bcm2835-unicam: Do not stop streaming in unicam_release unicam_release calls _vb2_fop_release, which will call stop_streaming @@ -166787,7 +166732,7 @@ index 0e1d525a0b35..c7e211d04ed3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 30 Apr 2020 09:52:50 +0100 -Subject: [PATCH 228/991] media: bcm2835-unicam: Fix reference counting in +Subject: [PATCH 0227/1015] media: bcm2835-unicam: Fix reference counting in unicam_open The reference counting of node->open was only incremented after @@ -166831,7 +166776,7 @@ index c7e211d04ed3..a79fc4d99d36 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jacko Dirks Date: Tue, 5 May 2020 14:28:14 +0200 -Subject: [PATCH 229/991] media: i2c: tc358743: Fix fallthrough warning +Subject: [PATCH 0228/1015] media: i2c: tc358743: Fix fallthrough warning Signed-off-by: Jacko Dirks --- @@ -166857,7 +166802,7 @@ index 69f2d676448e..2985dd9e46cd 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jacko Dirks Date: Tue, 5 May 2020 14:33:31 +0200 -Subject: [PATCH 230/991] media: bcm2835: unicam: Fix uninitialized warning +Subject: [PATCH 0229/1015] media: bcm2835: unicam: Fix uninitialized warning Signed-off-by: Jacko Dirks --- @@ -166884,7 +166829,7 @@ index a79fc4d99d36..92e5deb4c6fd 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 5 May 2020 19:45:41 +0100 -Subject: [PATCH 231/991] video: bcm2708_fb: Disable FB if no displays found +Subject: [PATCH 0230/1015] video: bcm2708_fb: Disable FB if no displays found If the firmware hasn't detected a display, the driver would assume one display was available, but because it had failed to retrieve the @@ -166924,7 +166869,7 @@ index 17e9260655e4..dac5c021ce52 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 7 May 2020 15:50:54 +0100 -Subject: [PATCH 232/991] dt-bindings: media: i2c: Add IMX477 CMOS sensor +Subject: [PATCH 0231/1015] dt-bindings: media: i2c: Add IMX477 CMOS sensor binding Add YAML device tree binding for IMX477 CMOS image sensor. @@ -167061,7 +167006,7 @@ index 000000000000..0994e13e67f6 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 13 May 2020 18:28:27 +0100 -Subject: [PATCH 233/991] media: bcm2835-unicam: Always service interrupts +Subject: [PATCH 0232/1015] media: bcm2835-unicam: Always service interrupts From when bringing up the driver, there was a check in the isr to ignore interrupts (claiming them handled) should the driver @@ -167118,7 +167063,7 @@ index 92e5deb4c6fd..52a534d932bf 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 13 May 2020 20:10:15 +0100 -Subject: [PATCH 234/991] sc16is7xx: Fix for hardware flow control +Subject: [PATCH 0233/1015] sc16is7xx: Fix for hardware flow control The SC16IS7XX hardware flow control is mishandled by the driver in a number of ways: @@ -167194,8 +167139,8 @@ index a7b40ee6b94d..e30d7d371221 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 15 May 2020 13:42:10 +0100 -Subject: [PATCH 235/991] staging: vc04_services: mmal-vchiq: Update parameters - list +Subject: [PATCH 0234/1015] staging: vc04_services: mmal-vchiq: Update + parameters list Adds in a couple of new MMAL parameter defines. @@ -167228,7 +167173,7 @@ index 27bafc5f01d2..89059bca0b77 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 15 May 2020 13:48:59 +0100 -Subject: [PATCH 236/991] staging:vc04_services: bcm2835-camera: Request +Subject: [PATCH 0235/1015] staging:vc04_services: bcm2835-camera: Request headers with I-frame V4L2 wishes to have the codec header bytes in the same buffer as the @@ -167264,8 +167209,8 @@ index 1b184d5c6b82..6b348e399c06 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 19 May 2020 11:46:47 +0100 -Subject: [PATCH 237/991] media: bcm2835-unicam: Retain packing information on - G_FMT +Subject: [PATCH 0236/1015] media: bcm2835-unicam: Retain packing information + on G_FMT The change to retrieve the pixel format always on g_fmt didn't check whether the native or unpacked version of the format @@ -167318,7 +167263,7 @@ index 52a534d932bf..b32b2d33a4e2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 5 May 2020 15:23:32 +0100 -Subject: [PATCH 238/991] zswap: Defer zswap initialisation +Subject: [PATCH 0237/1015] zswap: Defer zswap initialisation Enabling zswap support in the kernel configuration costs about 1.5MB of RAM, even when zswap is not enabled at runtime. This cost can be @@ -167449,7 +167394,7 @@ index 7944e3e57e78..4719af5f27fe 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 28 May 2020 11:09:48 +0100 -Subject: [PATCH 239/991] media: bcm2835-unicam: change minimum number of +Subject: [PATCH 0238/1015] media: bcm2835-unicam: change minimum number of vb2_queue buffers to 1 Since the unicam driver was modified to write to a dummy buffer when no @@ -167483,7 +167428,7 @@ index b32b2d33a4e2..e76323af0952 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Hristo Venev Date: Fri, 5 Jun 2020 09:22:49 +0000 -Subject: [PATCH 240/991] snd_bcm2835: disable HDMI audio when vc4 is used +Subject: [PATCH 0239/1015] snd_bcm2835: disable HDMI audio when vc4 is used (#3640) Things don't work too well when both the vc4 driver and the firmware @@ -167522,7 +167467,7 @@ index f926784c622d..31968fec297f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 24 Apr 2018 14:42:27 +0100 -Subject: [PATCH 241/991] gpiolib: Don't prevent IRQ usage of output GPIOs +Subject: [PATCH 0240/1015] gpiolib: Don't prevent IRQ usage of output GPIOs Upstream Linux deems using output GPIOs to generate IRQs as a bogus use case, even though the BCM2835 GPIO controller is capable of doing @@ -167578,7 +167523,7 @@ index 320baed949ee..a929cb5d495b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 11 Jun 2020 09:57:03 +0100 -Subject: [PATCH 242/991] PCI: brcmstb: Add DT property to control L1SS +Subject: [PATCH 0241/1015] PCI: brcmstb: Add DT property to control L1SS The BRCM PCIe block has controls to enable control of the CLKREQ# signal by the L1SS, and to gate the refclk with the CLKREQ# input. @@ -167663,7 +167608,7 @@ index cc30215f5a43..77967a37cbd9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Markus Proeller Date: Tue, 16 Jun 2020 13:24:31 +0200 -Subject: [PATCH 243/991] media: irs1125: Using i2c_transfer for ic2 reads +Subject: [PATCH 0242/1015] media: irs1125: Using i2c_transfer for ic2 reads Reading data over i2c is done by using i2c_transfer to ensure that this operation can't be interrupted. @@ -167734,7 +167679,7 @@ index 25e1dd5a08ef..6680afea5894 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Markus Proeller Date: Tue, 16 Jun 2020 13:27:42 +0200 -Subject: [PATCH 244/991] media: irs1125: Refactoring and debug messages +Subject: [PATCH 0243/1015] media: irs1125: Refactoring and debug messages Changed some variable names to comply with checkpatch --strict mode. Debug messages added. @@ -167863,7 +167808,7 @@ index 6680afea5894..289f0c25b141 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Markus Proeller Date: Tue, 16 Jun 2020 13:31:36 +0200 -Subject: [PATCH 245/991] media: irs1125: Atomic access to imager +Subject: [PATCH 0244/1015] media: irs1125: Atomic access to imager reconfiguration Instead of changing the exposure and framerate settings for all sequences, @@ -168252,7 +168197,7 @@ index dccaca23aa76..96d676123d5e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Markus Proeller Date: Tue, 16 Jun 2020 13:33:56 +0200 -Subject: [PATCH 246/991] media: irs1125: Keep HW in sync after imager reset +Subject: [PATCH 0245/1015] media: irs1125: Keep HW in sync after imager reset When closing the video device, the irs1125 is put in power down state. To keep V4L2 ctrls and the HW in sync, v4l2_ctrl_handler_setup is @@ -168439,7 +168384,7 @@ index d59e05004a03..30c3d2640386 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxim Mikityanskiy Date: Sat, 20 Jun 2020 15:40:00 +0300 -Subject: [PATCH 247/991] staging: bcm2835-audio: Add missing MODULE_ALIAS +Subject: [PATCH 0246/1015] staging: bcm2835-audio: Add missing MODULE_ALIAS Commit 8353fe6f1e0f ("Revert "staging: bcm2835-audio: Drop DT dependency"") reverts the upstream change and makes bcm2835-audio use @@ -168475,7 +168420,7 @@ index 31968fec297f..a0cba3823e5e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 26 Jun 2020 11:51:05 +0100 -Subject: [PATCH 248/991] brcmfmac: Prefer a ccode from OTP over nvram file +Subject: [PATCH 0247/1015] brcmfmac: Prefer a ccode from OTP over nvram file Allow the nvram file to set a default ccode (regulatory domain) without overriding one set in OTP. @@ -168612,7 +168557,7 @@ index dcbe55b56e43..309214a9cd40 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 23 Jun 2020 10:05:57 +0100 -Subject: [PATCH 249/991] drivers: media: Remove the downstream version of +Subject: [PATCH 0248/1015] drivers: media: Remove the downstream version of bcm2835-unicam About to be replaced by the upstream version. @@ -171803,7 +171748,7 @@ index ae059a171d0f..000000000000 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Mon, 4 May 2020 12:25:41 +0300 -Subject: [PATCH 250/991] media: bcm2835-unicam: Driver for CCP2/CSI2 camera +Subject: [PATCH 0249/1015] media: bcm2835-unicam: Driver for CCP2/CSI2 camera interface Add a driver for the Unicam camera receiver block on BCM283x processors. @@ -171832,7 +171777,7 @@ Reported-by: kbuild test robot create mode 100644 drivers/media/platform/bcm2835/vc4-regs-unicam.h diff --git a/MAINTAINERS b/MAINTAINERS -index 5b713ab37e82..bab0aaeab8e3 100644 +index 913fe3353c59..ee26543e0ef7 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3563,7 +3563,7 @@ M: Raspberry Pi Kernel Maintenance @@ -174971,7 +174916,7 @@ index 000000000000..ae059a171d0f From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 23 Jun 2020 14:32:51 +0100 -Subject: [PATCH 251/991] media: bcm2835-unicam: Add support for +Subject: [PATCH 0250/1015] media: bcm2835-unicam: Add support for get_mbus_config to set num lanes Use the get_mbus_config pad subdev call to allow a source to use @@ -175033,8 +174978,8 @@ index 2e9387cbc1e0..9adfb2d217af 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 26 Jun 2020 15:53:44 +0100 -Subject: [PATCH 252/991] media: bcm2835-unicam: Avoid gcc warning over {0} on - endpoint +Subject: [PATCH 0251/1015] media: bcm2835-unicam: Avoid gcc warning over {0} + on endpoint Older gcc versions object to = { 0 } initialisation if the first elemtn in the structure is a substructure. @@ -175066,7 +175011,7 @@ index 9adfb2d217af..a65e1da55142 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Andrey Konovalov Date: Fri, 12 Jun 2020 15:53:46 +0200 -Subject: [PATCH 253/991] media: i2c: imx290: set the format before +Subject: [PATCH 0252/1015] media: i2c: imx290: set the format before VIDIOC_SUBDEV_G_FMT is called Commit d46cfdc86c30d5ec768924f0b1e2683c8d20b671 upstream. @@ -175112,7 +175057,7 @@ index bf7a6c37ca5d..f6ae24a964d4 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Jun 2020 08:28:51 +0100 -Subject: [PATCH 254/991] media: i2c: imx290: Add support for 74.25MHz clock +Subject: [PATCH 0253/1015] media: i2c: imx290: Add support for 74.25MHz clock The existing driver only supported a clock of 37.125MHz, but the sensor also supports 74.25MHz. @@ -175382,7 +175327,7 @@ index f6ae24a964d4..45b10a8aafa1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 11 Jun 2020 13:41:43 +0100 -Subject: [PATCH 255/991] media: i2c: imx290: Correct range for V4L2_CID_GAIN +Subject: [PATCH 0254/1015] media: i2c: imx290: Correct range for V4L2_CID_GAIN to 0-238 The datasheet lists the gain as being 0.0 to 72.0dB in 0.3dB steps, which @@ -175414,7 +175359,7 @@ index 45b10a8aafa1..f89584a9bbd7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 11 Jun 2020 14:36:40 +0100 -Subject: [PATCH 256/991] media: i2c: imx290: Convert HMAX setting into +Subject: [PATCH 0255/1015] media: i2c: imx290: Convert HMAX setting into V4L2_CID_HBLANK Userspace needs to know HBLANK if it is to work out exposure times @@ -175579,7 +175524,7 @@ index f89584a9bbd7..e77ddd0dea4e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 11 Jun 2020 18:09:12 +0100 -Subject: [PATCH 257/991] media: i2c: imx290: Add support for V4L2_CID_VBLANK +Subject: [PATCH 0256/1015] media: i2c: imx290: Add support for V4L2_CID_VBLANK In order to calculate framerate and durations userspace needs the vertical blanking information. This can be configurable, @@ -175726,7 +175671,7 @@ index e77ddd0dea4e..ceb71d83c993 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 11 Jun 2020 18:19:13 +0100 -Subject: [PATCH 258/991] media: i2c: imx290: Add exposure control to the +Subject: [PATCH 0257/1015] media: i2c: imx290: Add exposure control to the driver. Adds support for V4L2_CID_EXPOSURE so that userspace can control @@ -175825,7 +175770,7 @@ index ceb71d83c993..3e52c43b837d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 11 Jun 2020 18:34:16 +0100 -Subject: [PATCH 259/991] media: i2c: imx290: Add H and V flip controls +Subject: [PATCH 0258/1015] media: i2c: imx290: Add H and V flip controls The sensor supports horizontal and vertical flips, so support them through V4L2_CID_HFLIP and V4L2_CID_VFLIP. @@ -175914,7 +175859,7 @@ index 3e52c43b837d..375a83ce71d0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Jun 2020 16:52:14 +0100 -Subject: [PATCH 260/991] media: dt-bindings: media: i2c: Add mono version to +Subject: [PATCH 0259/1015] media: dt-bindings: media: i2c: Add mono version to IMX290 bindings The IMX290 module is available as either monochrome or colour and @@ -175956,8 +175901,8 @@ index a3cc21410f7c..294e63650d9e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Jun 2020 17:03:11 +0100 -Subject: [PATCH 261/991] media : i2c: imx290: Add support for the mono sensor - variant. +Subject: [PATCH 0260/1015] media : i2c: imx290: Add support for the mono + sensor variant. The IMX290 module is available as either mono or colour (Bayer). @@ -176147,7 +176092,7 @@ index 375a83ce71d0..aeb95161b4fe 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 26 Jun 2020 18:11:49 +0100 -Subject: [PATCH 262/991] media: i2c: imx290: Switch set_hmax to use +Subject: [PATCH 0261/1015] media: i2c: imx290: Switch set_hmax to use imx290_write_buffered_reg imx290_set_hmax was using two independent writes to set up hmax, @@ -176196,7 +176141,7 @@ index aeb95161b4fe..e64124a521b2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 2 Jul 2020 13:53:20 +0100 -Subject: [PATCH 263/991] serial: 8250: bcm2835aux - defer if clock is zero +Subject: [PATCH 0262/1015] serial: 8250: bcm2835aux - defer if clock is zero See: https://github.com/raspberrypi/linux/issues/3700 @@ -176230,8 +176175,8 @@ index fd95860cd661..fc36e5963e30 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 May 2020 16:59:03 +0100 -Subject: [PATCH 264/991] media: Add a pixel format for MIPI packed 12bit luma - only. +Subject: [PATCH 0263/1015] media: Add a pixel format for MIPI packed 12bit + luma only. This is the format used by monochrome 12bit image sensors. @@ -176338,8 +176283,8 @@ index f56bae0c4671..a3ed5b2524c4 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Jun 2020 17:51:03 +0100 -Subject: [PATCH 265/991] media: Add a pixel format for MIPI packed 14bit luma - only. +Subject: [PATCH 0264/1015] media: Add a pixel format for MIPI packed 14bit + luma only. This is the format used by monochrome 14bit image sensors. @@ -176455,7 +176400,7 @@ index a3ed5b2524c4..12f356c48616 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Jun 2020 17:53:32 +0100 -Subject: [PATCH 266/991] media: bcm2835-unicam: Add support for 12bit mono +Subject: [PATCH 0265/1015] media: bcm2835-unicam: Add support for 12bit mono packed format Now that V4L2_PIX_FMT_Y12P is defined, allow passing raw 12bit @@ -176486,7 +176431,7 @@ index a65e1da55142..5edb58cc9f03 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Jun 2020 18:03:47 +0100 -Subject: [PATCH 267/991] media: bcm2835-unicam: Add support for 14bit mono +Subject: [PATCH 0266/1015] media: bcm2835-unicam: Add support for 14bit mono sources Now that V4L2_PIX_FMT_Y14 and V4L2_PIX_FMT_Y14P are defined, @@ -176521,8 +176466,8 @@ index 5edb58cc9f03..778153943160 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 1 Jul 2020 10:57:57 +0100 -Subject: [PATCH 268/991] media: bcm2835-unicam: Add support for unpacked 14bit - Bayer formats +Subject: [PATCH 0267/1015] media: bcm2835-unicam: Add support for unpacked + 14bit Bayer formats Now that the 14bit non-packed Bayer formats are defined, add them into the supported formats lookup table. @@ -176569,7 +176514,7 @@ index 778153943160..c97ecfc0e55b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 1 Jul 2020 20:28:27 +0100 -Subject: [PATCH 269/991] bcm2835-dma: Add NO_WAIT_RESP flag +Subject: [PATCH 0268/1015] bcm2835-dma: Add NO_WAIT_RESP flag Use bit 27 of the dreq value (the second cell of the DT DMA descriptor) to request that the WAIT_RESP bit is not set. @@ -176629,8 +176574,8 @@ index ac0458a8027f..84b1009da23b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 7 Jul 2020 10:31:53 +0100 -Subject: [PATCH 270/991] media: i2c: imx290: Explicitly set v&h blank on mode - change +Subject: [PATCH 0269/1015] media: i2c: imx290: Explicitly set v&h blank on + mode change __v4l2_ctrl_modify_range only updates the current value should it be invalid within the new range. That can leave modes producing @@ -176681,7 +176626,7 @@ index e64124a521b2..0b520a7f88b1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 7 Jul 2020 11:23:48 +0100 -Subject: [PATCH 271/991] media: i2c: imx290: Add support for g_selection to +Subject: [PATCH 0270/1015] media: i2c: imx290: Add support for g_selection to report cropping Userspace needs to know the cropping arrangements for each mode, @@ -176843,8 +176788,8 @@ index 0b520a7f88b1..e475d7889bc8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 7 Jul 2020 11:51:26 +0100 -Subject: [PATCH 272/991] media: i2c: imx290: Set the colorspace fields in the - format +Subject: [PATCH 0271/1015] media: i2c: imx290: Set the colorspace fields in + the format The colorspace fields were left untouched in imx290_set_fmt which lead to a v4l2-compliance failure. @@ -176880,7 +176825,7 @@ index e475d7889bc8..def5e8fe41a0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 7 Jul 2020 14:23:40 +0100 -Subject: [PATCH 273/991] media: bcm2835-unicam: Reinstate V4L2_CAP_READWRITE +Subject: [PATCH 0272/1015] media: bcm2835-unicam: Reinstate V4L2_CAP_READWRITE in the caps v4l2-compliance throws a failure if the device doesn't advertise @@ -176914,7 +176859,7 @@ index c97ecfc0e55b..20b46a9e04c3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 7 Jul 2020 14:52:43 +0100 -Subject: [PATCH 274/991] media: bcm2835-unicam: Ensure type is VIDEO_CAPTURE +Subject: [PATCH 0273/1015] media: bcm2835-unicam: Ensure type is VIDEO_CAPTURE in [g|s]_selection [g|s]_selection pass in a buffer type that needs to be validated @@ -176956,7 +176901,7 @@ index 20b46a9e04c3..de288f87ff2f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Mon, 11 May 2020 13:02:22 +0100 -Subject: [PATCH 275/991] media: bcm2835: unicam: Set VPU min clock freq to +Subject: [PATCH 0274/1015] media: bcm2835: unicam: Set VPU min clock freq to 250Mhz. When streaming with Unicam, the VPU must have a clock frequency of at @@ -177089,7 +177034,7 @@ index de288f87ff2f..295db7564614 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Mon, 11 May 2020 13:06:27 +0100 -Subject: [PATCH 276/991] dt-bindings: bcm2835-unicam: Update documentation +Subject: [PATCH 0275/1015] dt-bindings: bcm2835-unicam: Update documentation with new clock params Update the documentation to reflect the new "VPU" clock needed @@ -177133,7 +177078,7 @@ index 7714fb374b34..164d0377dcd2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Jul 2020 10:33:19 +0100 -Subject: [PATCH 277/991] leds: Add the actpwr trigger +Subject: [PATCH 0276/1015] leds: Add the actpwr trigger The actpwr trigger is a meta trigger that cycles between an inverted mmc0 and default-on. It is written in a way that could fairly easily @@ -177379,7 +177324,7 @@ index 000000000000..1a52107ceb03 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 22 Jul 2020 17:59:31 +0100 -Subject: [PATCH 278/991] bcm2835-dma: Advertise the full DMA range +Subject: [PATCH 0277/1015] bcm2835-dma: Advertise the full DMA range Unless the DMA mask is set wider than 32 bits, DMA mapping will use a bounce buffer. @@ -177462,7 +177407,7 @@ index 84b1009da23b..d1127b9058a4 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Hristo Venev Date: Wed, 19 Aug 2020 17:02:22 +0300 -Subject: [PATCH 279/991] media: bcm2835: unicam: Select MEDIA_CONTROLLER and +Subject: [PATCH 0278/1015] media: bcm2835: unicam: Select MEDIA_CONTROLLER and VIDEO_V4L2_SUBDEV_API That is what almost all other drivers appear to be doing. @@ -177495,7 +177440,7 @@ index ec46e3ef053c..7d5a0e6ba762 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Hristo Venev Date: Wed, 19 Aug 2020 17:05:53 +0300 -Subject: [PATCH 280/991] staging: media: rpivid: Select MEDIA_CONTROLLER and +Subject: [PATCH 0279/1015] staging: media: rpivid: Select MEDIA_CONTROLLER and MEDIA_CONTROLLER_REQUEST_API MEDIA_CONTROLLER_REQUEST_API is a hidden option. If rpivid depends on it, @@ -177533,8 +177478,8 @@ index 58b470c80db1..304c3edf0e71 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 27 Aug 2020 16:30:26 +0100 -Subject: [PATCH 281/991] media: bcm2835-unicam: Drop WARN on uing direct cache - alias +Subject: [PATCH 0280/1015] media: bcm2835-unicam: Drop WARN on uing direct + cache alias Pi 0&1 pass all ARM accesses through the VPU L2 cache, therefore the dma-ranges property sets the cache alias bits to other @@ -177573,8 +177518,8 @@ index 295db7564614..35ddb97f7f75 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 10 Jul 2020 12:40:50 +0100 -Subject: [PATCH 282/991] media: i2c: tc358743: Only allow supported pixel fmts - in set_fmt +Subject: [PATCH 0281/1015] media: i2c: tc358743: Only allow supported pixel + fmts in set_fmt Fix commit "media: tc358743: Return an appropriate colorspace from tc358743_set_fmt" to ensure that the format passed in to set_fmt @@ -177609,7 +177554,7 @@ index 2985dd9e46cd..da166e6a41d6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 3 Sep 2020 14:02:41 +0100 -Subject: [PATCH 283/991] dwc_otg: whitelist_table is now productlist_table +Subject: [PATCH 0282/1015] dwc_otg: whitelist_table is now productlist_table --- drivers/usb/core/otg_productlist.h | 2 +- @@ -177635,7 +177580,7 @@ index 1839e169469b..b16e528859a8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 3 Sep 2020 17:09:07 +0100 -Subject: [PATCH 284/991] include/firmware: Add enum for +Subject: [PATCH 0283/1015] include/firmware: Add enum for RPI_FIRMWARE_FRAMEBUFFER_GET_DISPLAY_ID Used by audio and FKMS. @@ -177664,7 +177609,7 @@ index 119141c91bad..6a7b665a1a82 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 8 May 2020 10:00:12 +0100 -Subject: [PATCH 285/991] media: i2c: Add driver for Sony IMX477 sensor +Subject: [PATCH 0284/1015] media: i2c: Add driver for Sony IMX477 sensor Adds a driver for the 12MPix Sony IMX477 CSI2 sensor. Whilst the sensor supports 2 or 4 CSI2 data lanes, this driver @@ -177687,10 +177632,10 @@ Signed-off-by: Naushir Patuck create mode 100644 drivers/media/i2c/imx477.c diff --git a/MAINTAINERS b/MAINTAINERS -index bab0aaeab8e3..f78a5a658706 100644 +index ee26543e0ef7..41581c3d236d 100644 --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -17513,6 +17513,14 @@ T: git git://linuxtv.org/media_tree.git +@@ -17515,6 +17515,14 @@ T: git git://linuxtv.org/media_tree.git F: Documentation/devicetree/bindings/media/i2c/sony,imx412.yaml F: drivers/media/i2c/imx412.c @@ -179943,7 +179888,7 @@ index 000000000000..db615dbe1497 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 8 May 2020 09:41:17 +0100 -Subject: [PATCH 286/991] media: i2c: imx477: Add support for adaptive frame +Subject: [PATCH 0285/1015] media: i2c: imx477: Add support for adaptive frame control Use V4L2_CID_EXPOSURE_AUTO_PRIORITY to control if the driver should @@ -180131,7 +180076,7 @@ index db615dbe1497..f76582f27181 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 19 May 2020 16:56:33 +0100 -Subject: [PATCH 287/991] media: i2c: imx477: Return correct result on sensor +Subject: [PATCH 0286/1015] media: i2c: imx477: Return correct result on sensor id verification The test should return -EIO if the register read id does not match @@ -180162,7 +180107,7 @@ index f76582f27181..f4cdc2d4158e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sat, 4 Jul 2020 01:45:08 +0300 -Subject: [PATCH 288/991] media: i2c: imx477: Parse and register properties +Subject: [PATCH 0287/1015] media: i2c: imx477: Parse and register properties Parse device properties and register controls for them using the V4L2 fwnode properties helpers. @@ -180213,7 +180158,7 @@ index f4cdc2d4158e..d0848f3f3c09 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 13 May 2020 18:28:27 +0100 -Subject: [PATCH 289/991] media: bcm2835-unicam: Always service interrupts +Subject: [PATCH 0288/1015] media: bcm2835-unicam: Always service interrupts From when bringing up the driver, there was a check in the isr to ignore interrupts (claiming them handled) should the driver @@ -180270,7 +180215,7 @@ index 35ddb97f7f75..d4ba911fe7e7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jacko Dirks Date: Tue, 5 May 2020 14:33:31 +0200 -Subject: [PATCH 290/991] media: bcm2835: unicam: Fix uninitialized warning +Subject: [PATCH 0289/1015] media: bcm2835: unicam: Fix uninitialized warning Signed-off-by: Jacko Dirks --- @@ -180297,7 +180242,7 @@ index d4ba911fe7e7..8b091d3a0d15 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 23 Jun 2020 15:14:05 +0100 -Subject: [PATCH 291/991] media: bcm2835-unicam: Fixup review comments from +Subject: [PATCH 0290/1015] media: bcm2835-unicam: Fixup review comments from Hans. Updates the driver based on the upstream review comments from @@ -180549,8 +180494,8 @@ index 8b091d3a0d15..7dc96c3e8e83 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 19 May 2020 11:46:47 +0100 -Subject: [PATCH 292/991] media: bcm2835-unicam: Retain packing information on - G_FMT +Subject: [PATCH 0291/1015] media: bcm2835-unicam: Retain packing information + on G_FMT The change to retrieve the pixel format always on g_fmt didn't check whether the native or unpacked version of the format @@ -180603,7 +180548,7 @@ index 7dc96c3e8e83..98ae97c367ea 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 28 May 2020 11:09:48 +0100 -Subject: [PATCH 293/991] media: bcm2835-unicam: change minimum number of +Subject: [PATCH 0292/1015] media: bcm2835-unicam: change minimum number of vb2_queue buffers to 1 Since the unicam driver was modified to write to a dummy buffer when no @@ -180637,7 +180582,7 @@ index 98ae97c367ea..6501fb205e20 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 1 Sep 2020 18:15:27 +0100 -Subject: [PATCH 294/991] staging/fbtft: Add support for display variants +Subject: [PATCH 0293/1015] staging/fbtft: Add support for display variants Display variants are intended as a replacement for the now-deleted fbtft_device drivers. Drivers can register additional compatible @@ -180852,7 +180797,7 @@ index 06afaa9d505b..c6ec045a447c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 3 Feb 2020 09:32:22 +0000 -Subject: [PATCH 295/991] brcmfmac: Increase power saving delay to 2s +Subject: [PATCH 0294/1015] brcmfmac: Increase power saving delay to 2s Increase the delay before entering the lower power state to 2 seconds (the maximum allowed) in order to reduce the packet latencies, @@ -180891,7 +180836,7 @@ index fefa8c058350..077852e6b049 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 21 Sep 2020 14:02:44 +0100 -Subject: [PATCH 296/991] rpivid_h265: Fix width/height typo +Subject: [PATCH 0295/1015] rpivid_h265: Fix width/height typo Signed-off-by: popcornmix --- @@ -180918,7 +180863,7 @@ index 47d4de42c584..b677910e237c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 25 Sep 2020 15:07:23 +0100 -Subject: [PATCH 297/991] net: bcmgenet: Reset RBUF on first open +Subject: [PATCH 0296/1015] net: bcmgenet: Reset RBUF on first open If the RBUF logic is not reset when the kernel starts then there may be some data left over from any network boot loader. If the @@ -180940,7 +180885,7 @@ Signed-off-by: Phil Elwell 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c -index 33407cd423e8..7e6560f9c3b9 100644 +index e24c27abd432..9a90637fb556 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -3257,7 +3257,7 @@ static void bcmgenet_get_hw_addr(struct bcmgenet_priv *priv, @@ -180978,7 +180923,7 @@ index 33407cd423e8..7e6560f9c3b9 100644 /* Reinitialize TDMA and RDMA and SW housekeeping */ ret = bcmgenet_init_dma(priv); -@@ -4200,7 +4208,7 @@ static int bcmgenet_resume(struct device *d) +@@ -4204,7 +4212,7 @@ static int bcmgenet_resume(struct device *d) bcmgenet_hfb_create_rxnfc_filter(priv, rule); /* Disable RX/TX DMA and flush TX queues */ @@ -180994,7 +180939,7 @@ index 33407cd423e8..7e6560f9c3b9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 28 Sep 2020 20:23:30 +0100 -Subject: [PATCH 298/991] char: Add broadcom char drivers back to build files +Subject: [PATCH 0297/1015] char: Add broadcom char drivers back to build files See: https://github.com/raspberrypi/linux/issues/3875 Signed-off-by: popcornmix @@ -181004,7 +180949,7 @@ Signed-off-by: popcornmix 2 files changed, 3 insertions(+) diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig -index 740811893c57..61aa4b1e1ff2 100644 +index 55f48375e3fe..1e9d198f0b60 100644 --- a/drivers/char/Kconfig +++ b/drivers/char/Kconfig @@ -5,6 +5,8 @@ @@ -181032,8 +180977,8 @@ index 264eb398fdd4..9bcd7d729cb0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Wed, 7 Oct 2020 15:09:29 +0100 -Subject: [PATCH 299/991] dwc_otg: initialise sched_frame for periodic QHs that - were parked +Subject: [PATCH 0298/1015] dwc_otg: initialise sched_frame for periodic QHs + that were parked If a periodic QH has no remaining QTDs, then it is removed from all periodic schedules. When re-adding, initialise the sched_frame and @@ -181071,7 +181016,7 @@ index 2823dc9af63f..4503af692aef 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 8 Oct 2020 15:35:14 +0100 -Subject: [PATCH 300/991] staging: bcm2835-camera: Replace deprecated +Subject: [PATCH 0299/1015] staging: bcm2835-camera: Replace deprecated V4L2_PIX_FMT_BGR32 V4L2_PIX_FMT_BGR32 is deprecated as it is ambiguous over where @@ -181107,7 +181052,7 @@ index 6b348e399c06..5d14ddb28339 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 8 Oct 2020 18:49:52 +0100 -Subject: [PATCH 301/991] staging: vc04_services: Add new vc-sm-cma driver +Subject: [PATCH 0300/1015] staging: vc04_services: Add new vc-sm-cma driver Add Broadcom VideoCore Shared Memory support. @@ -184071,7 +184016,7 @@ index 000000000000..988fdd967922 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 6 May 2020 18:09:04 +0100 -Subject: [PATCH 302/991] staging: vchiq-mmal: Add support for 14bit Bayer +Subject: [PATCH 0301/1015] staging: vchiq-mmal: Add support for 14bit Bayer Add in the missing defines. @@ -184104,7 +184049,7 @@ index 44ba91aa6d47..be8af09a6c80 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 6 May 2020 18:11:14 +0100 -Subject: [PATCH 303/991] staging: mmal-vchiq: Add monochrome image formats +Subject: [PATCH 0302/1015] staging: mmal-vchiq: Add monochrome image formats Adds support for monochrome image formats in the various MIPI packings. @@ -184139,7 +184084,7 @@ index be8af09a6c80..897e6cdf8dd9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 25 Sep 2018 16:07:55 +0100 -Subject: [PATCH 304/991] staging: mmal-vchiq: Use vc-sm-cma to support zero +Subject: [PATCH 0303/1015] staging: mmal-vchiq: Use vc-sm-cma to support zero copy With the vc-sm-cma driver we can support zero copy of buffers between @@ -184313,7 +184258,7 @@ index e87f88f99338..247521fbcc1d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 8 Oct 2020 20:24:12 +0100 -Subject: [PATCH 305/991] staging: vc04_services: Add a V4L2 M2M codec driver +Subject: [PATCH 0304/1015] staging: vc04_services: Add a V4L2 M2M codec driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -187488,7 +187433,7 @@ index 89059bca0b77..0a1edad8d4a8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2020 00:48:55 +0200 -Subject: [PATCH 306/991] bcm2835-dma: only reserve channel 0 if legacy dma +Subject: [PATCH 0305/1015] bcm2835-dma: only reserve channel 0 if legacy dma driver is enabled If CONFIG_DMA_BCM2708 isn't enabled there's no need to mask out @@ -187526,7 +187471,7 @@ index d1127b9058a4..0cbfa9d559a2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 12 Oct 2020 17:03:14 +0100 -Subject: [PATCH 307/991] uapi: bcm2835-isp: Add bcm2835-isp uapi header file +Subject: [PATCH 0306/1015] uapi: bcm2835-isp: Add bcm2835-isp uapi header file This file defines the userland interface to the bcm2835-isp driver that will follow in a separate commit. @@ -187871,7 +187816,7 @@ index 000000000000..cf8c0437f159 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 23 Apr 2020 10:17:37 +0100 -Subject: [PATCH 308/991] staging: vc04_services: ISP: Add a more complex ISP +Subject: [PATCH 0307/1015] staging: vc04_services: ISP: Add a more complex ISP processing component Driver for the BCM2835 ISP hardware block. This driver uses the MMAL @@ -187904,7 +187849,7 @@ Signed-off-by: Naushir Patuck create mode 100644 drivers/staging/vc04_services/bcm2835-isp/bcm2835-v4l2-isp.c diff --git a/MAINTAINERS b/MAINTAINERS -index f78a5a658706..bdb7032bff54 100644 +index 41581c3d236d..9a4d40ca44e4 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3565,6 +3565,15 @@ S: Maintained @@ -190306,7 +190251,7 @@ index 0a1edad8d4a8..efda4dc039c3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 30 Sep 2020 12:00:54 +0100 -Subject: [PATCH 309/991] gpio: Add gpio-fsm driver +Subject: [PATCH 0308/1015] gpio: Add gpio-fsm driver The gpio-fsm driver implements simple state machines that allow GPIOs to be controlled in response to inputs from other GPIOs - real and @@ -191650,7 +191595,7 @@ index 000000000000..eb40cfdc71df From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 26 Oct 2020 10:23:22 +0000 -Subject: [PATCH 310/991] staging: bcm2835-audio: Add disable-headphones flag +Subject: [PATCH 0309/1015] staging: bcm2835-audio: Add disable-headphones flag Add a property to allow the headphone output to be disabled. Use an integer property rather than a boolean so that an overlay can clear it. @@ -191690,7 +191635,7 @@ index a0cba3823e5e..ccda115ab9e0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 26 Oct 2020 16:38:21 +0000 -Subject: [PATCH 311/991] rpisense-fb: Set pseudo_pallete to prevent crash on +Subject: [PATCH 0310/1015] rpisense-fb: Set pseudo_pallete to prevent crash on fbcon takeover Signed-off-by: Serge Schneider @@ -191726,7 +191671,7 @@ index 26432a5a0b4b..325977def531 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 27 Oct 2020 09:59:49 +0000 -Subject: [PATCH 312/991] dwc_otg: Minimise header and fix build warnings +Subject: [PATCH 0311/1015] dwc_otg: Minimise header and fix build warnings Delete a large amount of unused declaration from "usb.h", some of which were causing build warnings, and get the module building cleanly. @@ -192631,7 +192576,7 @@ index e55ea9c74be4..76e94b4ebb43 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 27 Oct 2020 12:10:40 +0000 -Subject: [PATCH 313/991] rpivid_h625: Fix build warnings +Subject: [PATCH 0312/1015] rpivid_h625: Fix build warnings Signed-off-by: Phil Elwell --- @@ -192705,7 +192650,7 @@ index b677910e237c..fc3caed58187 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 27 Oct 2020 12:12:22 +0000 -Subject: [PATCH 314/991] bcm2708_fb: Fix a build warning +Subject: [PATCH 0313/1015] bcm2708_fb: Fix a build warning Signed-off-by: Phil Elwell --- @@ -192733,8 +192678,8 @@ index dac5c021ce52..365c5b96b8a0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Tim Gover Date: Thu, 22 Oct 2020 15:30:55 +0100 -Subject: [PATCH 315/991] watchdog: bcm2835: Ignore params after the partition - number +Subject: [PATCH 0314/1015] watchdog: bcm2835: Ignore params after the + partition number Use sscanf to extract the partition number and ignore extra parameters which are only relevant to other reboot notifiers. @@ -192768,8 +192713,8 @@ index 58d5a1b89584..e8d151d524fd 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Tim Gover Date: Tue, 20 Oct 2020 11:55:37 +0100 -Subject: [PATCH 316/991] firmware: raspberrypi: Add support for tryonce reboot - flag +Subject: [PATCH 0315/1015] firmware: raspberrypi: Add support for tryonce + reboot flag Define a new mailbox (SET_REBOOT_FLAGS) which may be used to pass optional flags to the Raspberry Pi firmware that changes @@ -192848,7 +192793,7 @@ index 6a7b665a1a82..ee361b90eb29 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 14 May 2019 17:00:41 +0100 -Subject: [PATCH 317/991] phy: broadcom: split out the BCM54213PE from the +Subject: [PATCH 0316/1015] phy: broadcom: split out the BCM54213PE from the BCM54210E IDs The last nibble is a revision ID, and the 54213pe is a later rev @@ -192927,7 +192872,7 @@ index c2c2147dfeb8..ea2f8ea92d54 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 29 Oct 2020 14:10:56 +0000 -Subject: [PATCH 318/991] phy: broadcom: Add bcm54213pe configuration +Subject: [PATCH 0317/1015] phy: broadcom: Add bcm54213pe configuration Signed-off-by: Phil Elwell --- @@ -192967,7 +192912,7 @@ index 6f93379bfdd9..05492268ae42 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 11 Nov 2020 17:08:33 +0000 -Subject: [PATCH 319/991] PCI: brcmstb: Restore initial fundamental reset +Subject: [PATCH 0318/1015] PCI: brcmstb: Restore initial fundamental reset [1] replaced a single reset function with a pointer to one of two implementations, but also removed the call asserting the reset @@ -193008,8 +192953,8 @@ index 77967a37cbd9..d26844f03e25 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 6 Nov 2020 18:45:10 +0000 -Subject: [PATCH 320/991] Input: edt-ft5x06: Poll the device if no interrupt is - configured. +Subject: [PATCH 0319/1015] Input: edt-ft5x06: Poll the device if no interrupt + is configured. Not all systems have the interrupt line wired up, so switch to polling the touchscreen off a timer if no interrupt line is @@ -193111,7 +193056,7 @@ index bb2e1cbffba7..339eae4ec7a8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 23 Apr 2020 10:17:18 +0100 -Subject: [PATCH 321/991] drm/panel/raspberrypi-touchscreen: Use independent +Subject: [PATCH 0320/1015] drm/panel/raspberrypi-touchscreen: Use independent I2C actions with delay. We now have the hardware I2C controller pinmuxed to the drive the @@ -193175,8 +193120,8 @@ index 145047e19394..2ef5f611a334 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 10 Nov 2020 11:21:56 +0000 -Subject: [PATCH 322/991] drm/panel/raspberrypi-ts: Insert delay before polling - for startup state +Subject: [PATCH 0321/1015] drm/panel/raspberrypi-ts: Insert delay before + polling for startup state In switching to the hardware I2C controller there is an issue where we seem to not get back the correct state from the Pi @@ -193207,7 +193152,7 @@ index 2ef5f611a334..bd15c2f2e247 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 12 Nov 2020 17:01:52 +0000 -Subject: [PATCH 323/991] dt-bindings: Add compatible for BCM2711 DSI1 +Subject: [PATCH 0322/1015] dt-bindings: Add compatible for BCM2711 DSI1 DSI1 on BCM2711 doesn't require the DMA workaround that is used on BCM2835/6/7, therefore it needs a new compatible string. @@ -193236,7 +193181,7 @@ index 32608578a352..112bc56de0b1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 2 Dec 2020 15:22:23 +0000 -Subject: [PATCH 324/991] media: bcm2835-unicam: Correctly handle error +Subject: [PATCH 0323/1015] media: bcm2835-unicam: Correctly handle error propagation for stream on On a failure in start_streaming(), the error code would not propagate to @@ -193269,7 +193214,7 @@ index 6501fb205e20..c13a0a20fd12 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 2 Dec 2020 15:26:09 +0000 -Subject: [PATCH 325/991] media: bcm2835-unicam: Return early from +Subject: [PATCH 0324/1015] media: bcm2835-unicam: Return early from stop_streaming() if stopped clk_disable_unprepare() is called unconditionally in stop_streaming(). @@ -193339,7 +193284,7 @@ index c13a0a20fd12..60309de02369 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 2 Dec 2020 16:48:41 +0000 -Subject: [PATCH 326/991] media: bcm2835-unicam: Clear clock state when +Subject: [PATCH 0325/1015] media: bcm2835-unicam: Clear clock state when stopping streaming Commit 65e08c465020d4c5b51afb452efc2246d80fd66f failed to clear the @@ -193370,7 +193315,7 @@ index 60309de02369..a8b3f5433f04 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 3 Dec 2020 13:44:42 +0000 -Subject: [PATCH 327/991] PCI: brcmstb: Advertise MSI-X support +Subject: [PATCH 0326/1015] PCI: brcmstb: Advertise MSI-X support Although the BRCMSTB PCIe interface doesn't technically support the MSI-X spec, in practise it seems to work provided no more than 32 @@ -193403,7 +193348,7 @@ index d26844f03e25..44f0ea66b60b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 15 Dec 2020 16:38:37 +0000 -Subject: [PATCH 328/991] net: lan78xx: Ack pending PHY ints when resetting +Subject: [PATCH 0327/1015] net: lan78xx: Ack pending PHY ints when resetting lan78xx_link_reset explicitly clears the MAC's view of the PHY's IRQ status. In doing so it potentially leaves the PHY with a pending @@ -193441,7 +193386,7 @@ index 0cf3f00b52ff..ac68716136cf 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 9 Dec 2020 11:30:12 +0000 -Subject: [PATCH 329/991] media: i2c: imx477: Selection compliance fixes +Subject: [PATCH 0328/1015] media: i2c: imx477: Selection compliance fixes To comply with the intended usage of the V4L2 selection target when used to retrieve a sensor image properties, adjust the rectangles @@ -193527,7 +193472,7 @@ index d0848f3f3c09..07a1e023ade8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: gesangtome Date: Fri, 1 Jan 2021 18:03:17 +0800 -Subject: [PATCH 330/991] vc-sm-cma: fixed kbuild problem +Subject: [PATCH 0329/1015] vc-sm-cma: fixed kbuild problem error logs: drivers/staging/vc04_services/vc-sm-cma/Kconfig:1:error: recursive dependency detected! @@ -193563,7 +193508,7 @@ index a7c1a7bf516e..5df9198cdab1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 Jan 2021 10:43:20 +0000 -Subject: [PATCH 331/991] staging/vc04_services: Add additional unpacked raw +Subject: [PATCH 0330/1015] staging/vc04_services: Add additional unpacked raw formats Support has been added for the unpacked (16bpp) versions of @@ -193620,7 +193565,7 @@ index 8eb6334ee055..59f7ad3a5b3b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 Jan 2021 10:45:16 +0000 -Subject: [PATCH 332/991] staging/bcm2835-codec: Add the unpacked (16bpp) raw +Subject: [PATCH 0331/1015] staging/bcm2835-codec: Add the unpacked (16bpp) raw formats Now that the firmware supports the unpacked (16bpp) variants @@ -193793,7 +193738,7 @@ index 8a8f1e8db7d0..c883db63808f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 Jan 2021 11:41:26 +0000 -Subject: [PATCH 333/991] staging/bcm2835-codec: Log the number of excess +Subject: [PATCH 0332/1015] staging/bcm2835-codec: Log the number of excess supported formats When logging that the firmware has provided more supported formats @@ -193842,7 +193787,7 @@ index c883db63808f..94691ab7175a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 Jan 2021 11:37:10 +0000 -Subject: [PATCH 334/991] staging/bcm2835-isp: Add the unpacked (16bpp) raw +Subject: [PATCH 0333/1015] staging/bcm2835-isp: Add the unpacked (16bpp) raw formats Now that the firmware supports the unpacked (16bpp) variants @@ -194024,7 +193969,7 @@ index 8bb3d115b27a..9a313ffcabf5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 Jan 2021 11:43:22 +0000 -Subject: [PATCH 335/991] staging/bcm2835-isp: Log the number of excess +Subject: [PATCH 0334/1015] staging/bcm2835-isp: Log the number of excess supported formats When logging that the firmware has provided more supported formats @@ -194059,7 +194004,7 @@ index 9a313ffcabf5..afac2ad65790 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 6 Jan 2021 18:16:10 +0000 -Subject: [PATCH 336/991] bcm2835-dma: Avoid losing CS flags after interrupt +Subject: [PATCH 0335/1015] bcm2835-dma: Avoid losing CS flags after interrupt Signed-off-by: Dom Cobley --- @@ -194086,7 +194031,7 @@ index 0cbfa9d559a2..9878d1bed589 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 8 Jan 2021 13:37:25 +0000 -Subject: [PATCH 337/991] arch/arm: Add __memset alias to memset_rpi.S +Subject: [PATCH 0336/1015] arch/arm: Add __memset alias to memset_rpi.S memset_rpi.S is an optimised memset implementation, but doesn't define __memset (which was just added to memset.S). As a result, building @@ -194125,8 +194070,8 @@ index e8469cecabc1..bda4c5b99367 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 30 Dec 2020 14:51:29 +0000 -Subject: [PATCH 338/991] bcm2835-dma: Add bcm2835-dma: Add DMA_WIDE_SOURCE and - DMA_WIDE_DEST flags +Subject: [PATCH 0337/1015] bcm2835-dma: Add bcm2835-dma: Add DMA_WIDE_SOURCE + and DMA_WIDE_DEST flags Use (reserved) bits 24 and 25 of the dreq value (the second cell of the DT DMA descriptor) to request @@ -194195,7 +194140,7 @@ index 9878d1bed589..6aee9e97d207 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 14 Jan 2021 09:18:42 +0000 -Subject: [PATCH 339/991] uapi: bcm2835-isp: Add colour denoise configuration +Subject: [PATCH 0338/1015] uapi: bcm2835-isp: Add colour denoise configuration Add a configuration structure for colour denoise to the bcm2835_isp driver. @@ -194257,7 +194202,7 @@ index cf8c0437f159..c50e3ca81565 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 14 Jan 2021 09:20:52 +0000 -Subject: [PATCH 340/991] staging: vc04_services: ISP: Add colour denoise +Subject: [PATCH 0339/1015] staging: vc04_services: ISP: Add colour denoise control Add colour denoise control to the bcm2835 driver through a new v4l2 @@ -194342,7 +194287,7 @@ index efda4dc039c3..79438d23912f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 28 Jan 2021 11:30:04 +0000 -Subject: [PATCH 341/991] spi: bcm2835: Workaround/fix for zero-length +Subject: [PATCH 0340/1015] spi: bcm2835: Workaround/fix for zero-length transfers A relatively recent commit ([1]) contained optimisation for the PIO @@ -194398,7 +194343,7 @@ index 80444e6bf034..5b7e32c0cf49 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 Jan 2021 10:34:11 +0000 -Subject: [PATCH 342/991] kbuild: Silence unavoidable dtc overlay warnings +Subject: [PATCH 0341/1015] kbuild: Silence unavoidable dtc overlay warnings Much effort has been put into finding ways to avoid warnings from dtc about overlays, usually to do with the presence of #address-cells and @@ -194435,7 +194380,7 @@ index dff7d1ef5ff4..fa25e95035a9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 4 Feb 2021 17:29:32 +0000 -Subject: [PATCH 343/991] media: i2c: imx290: Replace V4L2_CID_GAIN with +Subject: [PATCH 0342/1015] media: i2c: imx290: Replace V4L2_CID_GAIN with V4L2_CID_ANALOGUE_GAIN Most software (including libcamera) requires V4L2_CID_ANALOGUE_GAIN, @@ -194479,7 +194424,7 @@ index def5e8fe41a0..1028a339beee 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 4 Feb 2021 21:21:44 +0000 -Subject: [PATCH 344/991] media: i2c: imx290: Fix number of controls in +Subject: [PATCH 0343/1015] media: i2c: imx290: Fix number of controls in v4l2_ctrl_handler_init The number is only a hint, but may as well be correct. @@ -194513,7 +194458,7 @@ index 1028a339beee..401afc4dc67d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 11 Jan 2021 15:23:07 +0100 -Subject: [PATCH 345/991] dt-binding: display: bcm2711-hdmi: Add CEC and +Subject: [PATCH 0344/1015] dt-binding: display: bcm2711-hdmi: Add CEC and hotplug interrupts The CEC and hotplug interrupts were missing when that binding was @@ -194545,7 +194490,7 @@ index a1d5a32660e0..57324a5f0271 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 8 Feb 2021 11:48:35 +0000 -Subject: [PATCH 346/991] staging:bcm2835-camera: Fix the cherry-pick of AWB +Subject: [PATCH 0345/1015] staging:bcm2835-camera: Fix the cherry-pick of AWB Greyworld The cherry-pick of the patch that added the greyworld AWB mode @@ -194579,7 +194524,7 @@ index a7af25f90449..f73daa38fa66 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Tue, 12 Jan 2021 13:55:39 +0000 -Subject: [PATCH 347/991] bcm2835-isp: Allow formats with different colour +Subject: [PATCH 0346/1015] bcm2835-isp: Allow formats with different colour spaces. Each supported format now includes a mask showing the allowed colour @@ -195299,7 +195244,7 @@ index 4d24aec7203d..5cca8bdd1d65 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: John Cox Date: Mon, 8 Feb 2021 16:01:37 +0000 -Subject: [PATCH 348/991] staging: rpivid: Fix crash when CMA alloc fails +Subject: [PATCH 0347/1015] staging: rpivid: Fix crash when CMA alloc fails If realloc to increase coeff size fails then attempt to re-allocate the original size. If that also fails then flag a fatal error to abort @@ -195425,7 +195370,7 @@ index fc3caed58187..e6b07920aa8c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 10 Feb 2021 10:18:53 +0000 -Subject: [PATCH 349/991] media: i2c: imx477: Remove auto frame length +Subject: [PATCH 0348/1015] media: i2c: imx477: Remove auto frame length adjusting The V4L2_CID_EXPOSURE_AUTO_PRIORITY was used to let the sensor control @@ -195573,8 +195518,8 @@ index 07a1e023ade8..217780b88ad1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 10 Feb 2021 10:50:32 +0000 -Subject: [PATCH 350/991] media: i2c: imx477: Add very long exposure control to - the driver +Subject: [PATCH 0349/1015] media: i2c: imx477: Add very long exposure control + to the driver Add support for very long exposures by using the exposure multiplier register. Userland does not need to pass any additional controls to @@ -195705,7 +195650,7 @@ index 217780b88ad1..7907d5142d17 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Wed, 17 Feb 2021 18:08:12 +0000 -Subject: [PATCH 351/991] media: i2c: imx290: Fix up exposure calcuations and +Subject: [PATCH 0350/1015] media: i2c: imx290: Fix up exposure calcuations and ranges Should now correspond exactly to the datasheet. @@ -195770,7 +195715,7 @@ index 401afc4dc67d..36e9261af23d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 18 Feb 2021 11:58:29 +0000 -Subject: [PATCH 352/991] media: i2c: imx290: Handle exposure correctly when +Subject: [PATCH 0351/1015] media: i2c: imx290: Handle exposure correctly when vblank changes When vblank changes we must modify the exposure range. Also, with this @@ -195818,7 +195763,7 @@ index 36e9261af23d..836d3684c273 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 18 Feb 2021 15:05:57 +0000 -Subject: [PATCH 353/991] media: i2c: imx477: Fix crop height for 2028x1080 +Subject: [PATCH 0352/1015] media: i2c: imx477: Fix crop height for 2028x1080 mode The crop height for this mode was set at 2600 lines, it should be 2160 @@ -195849,7 +195794,7 @@ index 7907d5142d17..27ee391eee49 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 18 Feb 2021 15:23:11 +0000 -Subject: [PATCH 354/991] media: i2c: imx477: Replace existing 1012x760 mode +Subject: [PATCH 0353/1015] media: i2c: imx477: Replace existing 1012x760 mode The existing 1012x760 120 fps mode has significant IQ problem using the internal sensor scaler. Replace this mode with a 1332x990 120 fps @@ -196052,7 +195997,7 @@ index 27ee391eee49..178ddc43bb73 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 19 Feb 2021 10:30:49 +0000 -Subject: [PATCH 355/991] media: i2c: imx477: Remove internal +Subject: [PATCH 0354/1015] media: i2c: imx477: Remove internal v4l2_mbus_framefmt from the state The only field in this struct that is used is the format code, so @@ -196128,7 +196073,8 @@ index 178ddc43bb73..74e8d892d4a6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 19 Feb 2021 11:06:40 +0000 -Subject: [PATCH 356/991] media: i2c: imx477: Remove unused function parameter +Subject: [PATCH 0355/1015] media: i2c: imx477: Remove unused function + parameter The struct imx477 *ctrl parameter is not used in the function imx477_adjust_exposure_range(), so remove it. @@ -196168,7 +196114,7 @@ index 74e8d892d4a6..31e48512c165 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 5 Mar 2021 15:40:45 +0000 -Subject: [PATCH 357/991] media: bcm2835-unicam: Fix bug in buffer swapping +Subject: [PATCH 0356/1015] media: bcm2835-unicam: Fix bug in buffer swapping logic If multiple sets of interrupts occur simultaneously, it may be unsafe @@ -196250,8 +196196,8 @@ index a8b3f5433f04..234f0eaf9c8c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Mon, 8 Mar 2021 15:32:25 +0000 -Subject: [PATCH 358/991] Assign crypto aliases to different AES implementation - modules +Subject: [PATCH 0357/1015] Assign crypto aliases to different AES + implementation modules The kernel modules aes-neon-blk and aes-neon-bs perform poorly, at least on Cortex-A72 without crypto extensions. In fact, aes-arm64 outperforms them @@ -196365,7 +196311,7 @@ index fb507d569922..cc52829d426a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 1 Feb 2021 18:48:47 +0000 -Subject: [PATCH 359/991] media/v4l2_m2m: In buffered mode run jobs if either +Subject: [PATCH 0358/1015] media/v4l2_m2m: In buffered mode run jobs if either port is streaming In order to get the intended behaviour of the stateful video @@ -196404,7 +196350,7 @@ index 3de683b5e06d..9af3a2f9a041 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 1 Feb 2021 18:55:37 +0000 -Subject: [PATCH 360/991] staging/bcm2835-codec: Correct logging of size_t to +Subject: [PATCH 0359/1015] staging/bcm2835-codec: Correct logging of size_t to %zu Fixes: "staging/bcm2835-codec: Log the number of excess supported formats" @@ -196444,7 +196390,7 @@ index 94691ab7175a..0c4d8bf77b91 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 2 Feb 2021 15:50:18 +0000 -Subject: [PATCH 361/991] staging/bcm2835-codec: Add support for pixel aspect +Subject: [PATCH 0360/1015] staging/bcm2835-codec: Add support for pixel aspect ratio If the format is detected by the driver and a V4L2_EVENT_SOURCE_CHANGE @@ -196532,7 +196478,7 @@ index 0c4d8bf77b91..46f659e55f18 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 2 Feb 2021 16:46:39 +0000 -Subject: [PATCH 362/991] staging/bcm2835-codec: Implement additional +Subject: [PATCH 0361/1015] staging/bcm2835-codec: Implement additional g_selection calls for decode v4l_cropcap calls our vidioc_g_pixelaspect function to get the pixel @@ -196573,7 +196519,7 @@ index 46f659e55f18..7aa6c53e279e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 10 Mar 2021 19:07:48 +0000 -Subject: [PATCH 363/991] staging/bcm2835-codec: Add VC-1 support. +Subject: [PATCH 0362/1015] staging/bcm2835-codec: Add VC-1 support. Providing the relevant licence has been purchased, then Pi0-3 can decode VC-1. @@ -196608,7 +196554,7 @@ index 7aa6c53e279e..5729a8a7d94e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 17 Mar 2021 12:45:53 +0000 -Subject: [PATCH 364/991] hack: fixup bcm2835-unicam +Subject: [PATCH 0363/1015] hack: fixup bcm2835-unicam --- drivers/media/platform/bcm2835/bcm2835-unicam.c | 3 +++ @@ -196635,7 +196581,7 @@ index 234f0eaf9c8c..db99d1562904 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Zefa Chen Date: Fri, 17 May 2019 18:23:03 +0800 -Subject: [PATCH 365/991] media: i2c: add ov9281 driver. +Subject: [PATCH 0364/1015] media: i2c: add ov9281 driver. Change-Id: I7b77250bbc56d2f861450cf77271ad15f9b88ab1 Signed-off-by: Zefa Chen @@ -197864,7 +197810,7 @@ index 000000000000..6d1d3ddc3970 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 14 Apr 2020 15:47:09 +0100 -Subject: [PATCH 366/991] media: i2c: ov9281: fix mclk issue when probe +Subject: [PATCH 0365/1015] media: i2c: ov9281: fix mclk issue when probe multiple camera. Takes the ov9281 part only from the Rockchip's patch. @@ -197930,8 +197876,8 @@ index 6d1d3ddc3970..68142ec69c5c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 14 Apr 2020 15:51:50 +0100 -Subject: [PATCH 367/991] media: i2c: ov9281: add enum_frame_interval function - for iq tool 2.2 and hal3 +Subject: [PATCH 0366/1015] media: i2c: ov9281: add enum_frame_interval + function for iq tool 2.2 and hal3 Adds the ov9281 parts of the Rockchip patch adding enum_frame_interval to a large number of drivers. @@ -198033,8 +197979,8 @@ index 68142ec69c5c..52bba5dff953 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 14 Apr 2020 16:12:33 +0100 -Subject: [PATCH 368/991] media: i2c: ov9281: Fixup for recent kernel releases, - and remove custom code +Subject: [PATCH 0367/1015] media: i2c: ov9281: Fixup for recent kernel + releases, and remove custom code The Rockchip driver was based on a 4.4 kernel, and had several custom Rockchip parts. @@ -198716,7 +198662,7 @@ index 52bba5dff953..b28dbe6d08c3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 6 Jul 2020 17:51:32 +0100 -Subject: [PATCH 369/991] media: i2c: ov9281: Read chip ID via 2 reads +Subject: [PATCH 0368/1015] media: i2c: ov9281: Read chip ID via 2 reads Vision Components have made an OV9281 module which blocks reading back the majority of registers to comply with NDAs, and in doing @@ -198764,7 +198710,7 @@ index b28dbe6d08c3..837b37198bb4 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 7 Jul 2020 18:29:10 +0100 -Subject: [PATCH 370/991] media: i2c: ov9281: Add support for 8 bit readout +Subject: [PATCH 0369/1015] media: i2c: ov9281: Add support for 8 bit readout The sensor supports 8 bit mode as well as 10bit, so add the relevant code to allow selection of this. @@ -198958,7 +198904,7 @@ index 837b37198bb4..05cf78416bc7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Sun, 22 Nov 2020 11:01:08 +0000 -Subject: [PATCH 371/991] media: ov9281: Add 1280x720 and 640x480 modes +Subject: [PATCH 0370/1015] media: ov9281: Add 1280x720 and 640x480 modes Breaks out common register set and adds the different registers for 1280x720 (cropped) and 640x480 (skipped) modes @@ -199173,7 +199119,7 @@ index 05cf78416bc7..132cbf6aad8a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mathias Anhalt Date: Sun, 24 Jan 2021 15:15:01 +0100 -Subject: [PATCH 372/991] Fixed picture line bug in all ov9281 modes +Subject: [PATCH 0371/1015] Fixed picture line bug in all ov9281 modes Signed-off-by: Mathias Anhalt --- @@ -199217,7 +199163,7 @@ index 132cbf6aad8a..eff9bc356326 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mathias Anhalt Date: Wed, 3 Feb 2021 20:34:09 +0100 -Subject: [PATCH 373/991] Added hflip and vflip controls to ov9281 +Subject: [PATCH 0372/1015] Added hflip and vflip controls to ov9281 Signed-off-by: Mathias Anhalt --- @@ -199335,7 +199281,7 @@ index eff9bc356326..8d799b8b53c6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Wed, 15 Jan 2020 13:40:38 +0000 -Subject: [PATCH 374/991] media: ov5647: Fix return codes from +Subject: [PATCH 0373/1015] media: ov5647: Fix return codes from ov5647_write/ov5647_read functions. Previously they were returning positive non-zero codes for success, @@ -199430,7 +199376,7 @@ index d346d18ce629..c5c68ec75473 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sat, 4 Jul 2020 01:45:08 +0300 -Subject: [PATCH 375/991] media: i2c: ov5647: Parse and register properties +Subject: [PATCH 0374/1015] media: i2c: ov5647: Parse and register properties Parse device properties and register controls for them using the V4L2 fwnode properties helpers. @@ -199485,7 +199431,7 @@ index c5c68ec75473..9158f44ec822 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 22 Feb 2021 18:47:19 +0000 -Subject: [PATCH 376/991] clk-raspberrypi: Also support HEVC clock +Subject: [PATCH 0375/1015] clk-raspberrypi: Also support HEVC clock Signed-off-by: Dom Cobley --- @@ -199511,7 +199457,7 @@ index 19f4e3b7b190..1e1bee7f43ed 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 22 Feb 2021 18:50:50 +0000 -Subject: [PATCH 377/991] rpivid: Request maximum hevc clock +Subject: [PATCH 0376/1015] rpivid: Request maximum hevc clock Query maximum and minimum clock from driver and use those @@ -199568,7 +199514,7 @@ index 3b9e51ca05b3..b377c17dfb21 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 17 Mar 2021 12:34:57 +0000 -Subject: [PATCH 378/991] staging/bcm2835-camera: Add support for DMABUFs +Subject: [PATCH 0377/1015] staging/bcm2835-camera: Add support for DMABUFs DMABUFs are all handled by videobuf2, so there is no reason not to enable support for them. @@ -199611,7 +199557,7 @@ index 5d14ddb28339..0a8721eaa6d3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 19 Feb 2021 10:25:01 +0000 -Subject: [PATCH 379/991] staging: fbtft: Add minipitft13 variant +Subject: [PATCH 0378/1015] staging: fbtft: Add minipitft13 variant The Adafruit Mini-PiTFT13 display needs offsets applying when rotated, so use the "variant" mechanism to select a custom set_addr_win method @@ -199721,7 +199667,7 @@ index 861a154144e6..3bcd9ee17b6c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jo Henke <37883863+jo-he@users.noreply.github.com> Date: Tue, 6 Apr 2021 11:21:35 +0000 -Subject: [PATCH 380/991] dwc-otg: fix clang -Wignored-attributes warning +Subject: [PATCH 0379/1015] dwc-otg: fix clang -Wignored-attributes warning warning: attribute declaration must precede definition --- @@ -199763,7 +199709,8 @@ index 537cc237b4bc..86b4aaf977fb 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jo Henke <37883863+jo-he@users.noreply.github.com> Date: Tue, 6 Apr 2021 11:38:28 +0000 -Subject: [PATCH 381/991] dwc-otg: fix clang -Wsometimes-uninitialized warning +Subject: [PATCH 0380/1015] dwc-otg: fix clang -Wsometimes-uninitialized + warning warning: variable 'retval' is used uninitialized whenever 'if' condition is false --- @@ -199790,7 +199737,8 @@ index 799ab14b9eda..e1c1e3804095 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jo Henke <37883863+jo-he@users.noreply.github.com> Date: Tue, 6 Apr 2021 11:45:14 +0000 -Subject: [PATCH 382/991] dwc-otg: fix clang -Wpointer-bool-conversion warning +Subject: [PATCH 0381/1015] dwc-otg: fix clang -Wpointer-bool-conversion + warning warning: address of array 'desc->wMaxPacketSize' will always evaluate to 'true' @@ -199820,8 +199768,8 @@ index 9dabbe5c9791..2ffd4f11d0bf 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 4 Nov 2020 18:54:20 +0000 -Subject: [PATCH 383/991] staging: vcsm-cma: Fix memory leak from not detaching - dmabuf +Subject: [PATCH 0382/1015] staging: vcsm-cma: Fix memory leak from not + detaching dmabuf When importing there was a missing call to detach the buffer, so each import leaked the sg table entry. @@ -199903,7 +199851,7 @@ index 40ce67f06fac..88c4df822922 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 13 Apr 2021 11:00:01 +0200 -Subject: [PATCH 384/991] clk: Introduce a clock request API +Subject: [PATCH 0383/1015] clk: Introduce a clock request API It's not unusual to find clocks being shared across multiple devices that need to change the rate depending on what the device is doing at a @@ -200195,7 +200143,7 @@ index 266e8de3cb51..2aa52140d8a9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 13 Apr 2021 16:48:35 +0100 -Subject: [PATCH 385/991] bcm2835-unicam: Switch to new clock api +Subject: [PATCH 0384/1015] bcm2835-unicam: Switch to new clock api Signed-off-by: Dom Cobley --- @@ -200254,7 +200202,7 @@ index db99d1562904..a603891986b9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 19 Apr 2021 19:30:26 +0100 -Subject: [PATCH 386/991] rpivid: Switch to new clock api +Subject: [PATCH 0385/1015] rpivid: Switch to new clock api Signed-off-by: Dom Cobley --- @@ -200316,7 +200264,7 @@ index b377c17dfb21..def891a86e55 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 20 Apr 2021 13:34:18 +0100 -Subject: [PATCH 387/991] rpivid: Only clk_request_done once +Subject: [PATCH 0386/1015] rpivid: Only clk_request_done once Fixes: 25486f49bfe2e3ae13b90478d1eebd91413136ad Signed-off-by: Dom Cobley @@ -200348,7 +200296,7 @@ index def891a86e55..37c8f62649d6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: wangzx <593074943@qq.com> Date: Tue, 20 Apr 2021 22:33:26 +0800 -Subject: [PATCH 388/991] dwc_otg: fix an undeclared variable Replace an +Subject: [PATCH 0387/1015] dwc_otg: fix an undeclared variable Replace an undeclared variable used by DWC_DEBUGPL with the real endpoint address. DWC_DEBUGPL does nothing with DEBUG undefined so it did not go wrong before. Signed-off-by: Zixuan Wang @@ -200378,7 +200326,7 @@ index 50c8705185ad..2ee27450c6f6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 15 Apr 2021 17:30:35 +0100 -Subject: [PATCH 389/991] drm/panel: jdi-lt070me05000: Use +Subject: [PATCH 0388/1015] drm/panel: jdi-lt070me05000: Use gpiod_set_value_cansleep There is no reason why the control GPIOs for the panel can not @@ -200451,7 +200399,7 @@ index 3c86ad262d5e..ff827cc7a060 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 21 Apr 2021 12:14:44 +0200 -Subject: [PATCH 390/991] clk: requests: Ignore if the pointer is null +Subject: [PATCH 0389/1015] clk: requests: Ignore if the pointer is null Signed-off-by: Maxime Ripard --- @@ -200479,8 +200427,8 @@ index bc569c1670ad..cdcbcf5053d7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 22 Apr 2021 10:45:37 +0200 -Subject: [PATCH 391/991] clk: requests: Dereference the request pointer after - the check +Subject: [PATCH 0390/1015] clk: requests: Dereference the request pointer + after the check The current code will first dereference the req pointer and then test if it's NULL, resulting in a NULL pointer dereference if req is indeed @@ -200515,8 +200463,8 @@ index cdcbcf5053d7..b829858525ae 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Mar 2021 18:28:40 +0000 -Subject: [PATCH 392/991] staging/bcm2835-codec: Fix support for levels 4.1 and - 4.2 +Subject: [PATCH 0391/1015] staging/bcm2835-codec: Fix support for levels 4.1 + and 4.2 The driver said it supported H264 levels 4.1 and 4.2, but was missing the V4L2 to MMAL mappings. @@ -200557,7 +200505,7 @@ index 5729a8a7d94e..4622057e71cb 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 4 Feb 2021 19:08:23 +0000 -Subject: [PATCH 393/991] staging/bcm2835-codec: Set the colourspace +Subject: [PATCH 0392/1015] staging/bcm2835-codec: Set the colourspace appropriately for RGB formats Video decode supports YUV and RGB formats. YUV needs to report SMPTE170M @@ -200647,7 +200595,7 @@ index 4622057e71cb..08429a42c847 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 9 Dec 2020 18:53:56 +0000 -Subject: [PATCH 394/991] staging/bcm2835-codec: Pass corrupt frame flag. +Subject: [PATCH 0393/1015] staging/bcm2835-codec: Pass corrupt frame flag. MMAL has the flag MMAL_BUFFER_HEADER_FLAG_CORRUPTED but that wasn't being passed through, so add it. @@ -200695,7 +200643,7 @@ index 08429a42c847..3ed9f47a37fe 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Mar 2021 18:34:50 +0000 -Subject: [PATCH 395/991] staging/bcm2835-camera: Add support for H264 levels +Subject: [PATCH 0394/1015] staging/bcm2835-camera: Add support for H264 levels 4.1 and 4.2 Whilst the hardware can't achieve the limits of level 4.2 under @@ -200759,8 +200707,8 @@ index f73daa38fa66..f3480a5c5170 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 15 Apr 2021 11:07:55 +0100 -Subject: [PATCH 396/991] staging/bcm2835-codec: Do not update crop from S_FMT - after res change +Subject: [PATCH 0395/1015] staging/bcm2835-codec: Do not update crop from + S_FMT after res change During decode, setting the CAPTURE queue format was setting the crop rectangle to the requested height before aligning up the format to @@ -200801,7 +200749,7 @@ index 3ed9f47a37fe..a97666a1a4be 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 23 Apr 2021 16:16:49 +0100 -Subject: [PATCH 397/991] staging/bcm2835-isp: Fix compiler warning +Subject: [PATCH 0396/1015] staging/bcm2835-isp: Fix compiler warning The result of dividing a u32 by a size_t is an unsigned int on arm32 and a long unsigned int on arm64. Use "%zu" (the size_t format) to @@ -200832,7 +200780,7 @@ index 5cca8bdd1d65..08dce8bba9bb 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 27 Apr 2021 08:59:01 +0100 -Subject: [PATCH 398/991] gpio-poweroff: Remember the old poweroff handler +Subject: [PATCH 0397/1015] gpio-poweroff: Remember the old poweroff handler Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the @@ -200891,7 +200839,7 @@ index e5dca66360a7..81e7acb8acb5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Tue, 11 May 2021 12:52:26 +0100 -Subject: [PATCH 399/991] media: i2c: ov5647: Correct pixel array offset +Subject: [PATCH 0398/1015] media: i2c: ov5647: Correct pixel array offset The top offset in the pixel array is actually 6 (see page 3-1 of the OV5647 data sheet). @@ -200922,7 +200870,7 @@ index 9158f44ec822..4228e98e7975 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Tue, 11 May 2021 12:57:22 +0100 -Subject: [PATCH 400/991] media: i2c: ov5647: Correct minimum VBLANK value +Subject: [PATCH 0399/1015] media: i2c: ov5647: Correct minimum VBLANK value Trial and error reveals that the minimum vblank value appears to be 24 (the OV5647 data sheet does not give any clues). This fixes streaming @@ -200954,7 +200902,7 @@ index 4228e98e7975..62adb70df488 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Wed, 12 May 2021 07:39:21 +0100 -Subject: [PATCH 401/991] media: i2c: ov5647: Fix v4l2-compliance failure +Subject: [PATCH 0400/1015] media: i2c: ov5647: Fix v4l2-compliance failure subscribing to events Fixes the following v4l2-compliance failure: @@ -200986,7 +200934,7 @@ index 62adb70df488..4b6f4962e644 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: John Cox Date: Thu, 21 May 2020 11:49:37 +0100 -Subject: [PATCH 402/991] media: rpivid: Remove the need to have +Subject: [PATCH 0401/1015] media: rpivid: Remove the need to have num_entry_points set VAAPI H265 has num entry points but never sets it. Allow a VAAPI @@ -201969,7 +201917,7 @@ index e6b07920aa8c..434a366ecfc2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: John Cox Date: Thu, 11 Mar 2021 12:51:00 +0000 -Subject: [PATCH 403/991] media: rpivid: Convert to MPLANE +Subject: [PATCH 0402/1015] media: rpivid: Convert to MPLANE Use multi-planar interface rather than single plane interface. This allows dmabufs holding compressed data to be resized. @@ -202312,7 +202260,7 @@ index 9c4f3fb2f9f6..5c0fd9c8a6d7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: John Cox Date: Thu, 11 Mar 2021 18:43:15 +0000 -Subject: [PATCH 404/991] media: rpivid: Add an enable count to irq claim Qs +Subject: [PATCH 0403/1015] media: rpivid: Add an enable count to irq claim Qs Add an enable count to the irq Q structures to allow the irq logic to block further callbacks if resources associated with the irq are not @@ -202556,7 +202504,7 @@ index cf4cc8be8a55..ec73a2332b73 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ezequiel Garcia Date: Sun, 21 Mar 2021 16:38:54 -0300 -Subject: [PATCH 405/991] RFC: media: Add media_request_{pin,unpin} API +Subject: [PATCH 0404/1015] RFC: media: Add media_request_{pin,unpin} API This is probably not the API we will want to add, but it should show what semantics are needed by drivers. @@ -202658,7 +202606,7 @@ index 3cd25a2717ce..0de5c2c94188 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: John Cox Date: Thu, 11 Mar 2021 19:08:00 +0000 -Subject: [PATCH 406/991] media: rpivid: Add a Pass0 to accumulate slices and +Subject: [PATCH 0405/1015] media: rpivid: Add a Pass0 to accumulate slices and rework job finish Due to overheads in assembling controls and requests it is worth having @@ -203724,7 +203672,7 @@ index ada6107ab675..396263bb352e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: John Cox Date: Mon, 29 Mar 2021 17:42:16 +0100 -Subject: [PATCH 407/991] media: rpivid: Map cmd buffer directly +Subject: [PATCH 0406/1015] media: rpivid: Map cmd buffer directly It is unnecessary to have a separate dmabuf to hold the cmd buffer. Map it directly from the kmalloc. @@ -203894,7 +203842,7 @@ index 396263bb352e..2bb86d564b33 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: John Cox Date: Thu, 1 Apr 2021 16:20:58 +0100 -Subject: [PATCH 408/991] media: rpivid: Improve values returned when setting +Subject: [PATCH 0407/1015] media: rpivid: Improve values returned when setting output format Guess a better value for the compressed bitstream buffer size @@ -204120,7 +204068,7 @@ index 5c0fd9c8a6d7..a3b228556497 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: John Cox Date: Sat, 3 Apr 2021 16:27:03 +0100 -Subject: [PATCH 409/991] media: rpivid: Improve stream_on/off conformance & +Subject: [PATCH 0408/1015] media: rpivid: Improve stream_on/off conformance & clock setup Fix stream on & off such that failures leave the driver in the correct @@ -204392,7 +204340,7 @@ index 3d882a6853a5..705015890e71 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: John Cox Date: Thu, 8 Apr 2021 18:34:09 +0100 -Subject: [PATCH 410/991] media: rpivid: Improve SPS/PPS error +Subject: [PATCH 0409/1015] media: rpivid: Improve SPS/PPS error handling/validation Move size and width checking from bitstream processing to control @@ -204658,7 +204606,7 @@ index ee5a48f26912..bb280b215a2e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: jc-kynesim Date: Fri, 11 Jun 2021 15:14:31 +0100 -Subject: [PATCH 411/991] bcm2835: Allow compressed frames to set sizeimage +Subject: [PATCH 0410/1015] bcm2835: Allow compressed frames to set sizeimage (#4386) Allow the user to set sizeimage in TRY_FMT and S_FMT if the format @@ -204711,7 +204659,7 @@ index a97666a1a4be..c3ba5c25a2ab 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 11 Jun 2021 12:47:07 +0100 -Subject: [PATCH 412/991] media: i2c: imx477: Fix for long exposure limit +Subject: [PATCH 0411/1015] media: i2c: imx477: Fix for long exposure limit calculations Do not scale IMX477_EXPOSURE_OFFSET with the long exposure factor during @@ -204743,7 +204691,7 @@ index 31e48512c165..07ccdf738883 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 8 Jul 2021 09:37:10 +0100 -Subject: [PATCH 413/991] clk: bcm2835: Pass DT node to rpi_firmware_get +Subject: [PATCH 0412/1015] clk: bcm2835: Pass DT node to rpi_firmware_get The fw_node pointer has already been retrieved, and using it allows us to remove a downstream patch to the firmware driver. @@ -204773,7 +204721,7 @@ index 961acade005f..e4dfbe2cf50e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 30 Apr 2019 19:15:30 +0100 -Subject: [PATCH 414/991] bcm2835-pcm.c: Support multichannel audio +Subject: [PATCH 0413/1015] bcm2835-pcm.c: Support multichannel audio --- .../vc04_services/bcm2835-audio/bcm2835-pcm.c | 13 +++++++------ @@ -204813,7 +204761,7 @@ index f2ef1d641e70..5e9a6e28c4c6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 27 Oct 2020 12:24:14 +0000 -Subject: [PATCH 415/991] bcm2835-pcm: Fix up multichannel pcm audio +Subject: [PATCH 0414/1015] bcm2835-pcm: Fix up multichannel pcm audio Fixes: a9c1660ff5f02d048c5f31abf1fd1108ccf9ef87 Signed-off-by: Dom Cobley @@ -204855,7 +204803,8 @@ index 5e9a6e28c4c6..f2ef1d641e70 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 17 Jun 2021 12:05:25 +0100 -Subject: [PATCH 416/991] media: i2c: imx290: Support 60fps in 2 lane operation +Subject: [PATCH 0415/1015] media: i2c: imx290: Support 60fps in 2 lane + operation Commit "97589ad61c73 media: i2c: imx290: Add support for 2 data lanes" added support for running in two lane mode (instead of 4), but @@ -205170,7 +205119,8 @@ index 836d3684c273..af75e10593fa 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 17 Jun 2021 13:00:39 +0100 -Subject: [PATCH 417/991] media: i2c: imx290: Fix the pixel rate at 148.5Mpix/s +Subject: [PATCH 0416/1015] media: i2c: imx290: Fix the pixel rate at + 148.5Mpix/s Whilst the datasheet lists the link frequency changing between 1080p and 720p modes, reality is that with the default blanking @@ -205225,7 +205175,7 @@ index af75e10593fa..6b990e8c6bff 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 17 Jun 2021 17:27:46 +0100 -Subject: [PATCH 418/991] media: i2c: imx290: Fix clock setup register +Subject: [PATCH 0417/1015] media: i2c: imx290: Fix clock setup register assignments When the clock setups were added for the alternate external clocks, @@ -205280,7 +205230,7 @@ index 6b990e8c6bff..7aee4a30bcdd 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: John Cox Date: Thu, 24 Jun 2021 14:43:49 +0100 -Subject: [PATCH 419/991] media: rpivid: Fix H265 aux ent reuse of the same +Subject: [PATCH 0418/1015] media: rpivid: Fix H265 aux ent reuse of the same slot It is legitimate, though unusual, for an aux ent associated with a slot @@ -205437,7 +205387,7 @@ index bb280b215a2e..a5a0e31bd5ba 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 28 Jun 2021 10:49:04 +0100 -Subject: [PATCH 420/991] media: i2c: ov9281: Remove override of subdev name +Subject: [PATCH 0419/1015] media: i2c: ov9281: Remove override of subdev name From the original Rockchip driver, the subdev was renamed from the default to being "mov9281 " whereas the @@ -205471,7 +205421,7 @@ index 8d799b8b53c6..5f1b83d77473 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 29 Jun 2021 12:50:58 +0100 -Subject: [PATCH 421/991] staging: vc04_services: isp: Set the YUV420/YVU420 +Subject: [PATCH 0420/1015] staging: vc04_services: isp: Set the YUV420/YVU420 format stride to 64 bytes The bcm2835 ISP requires the base address of all input/output planes to have 32 @@ -205516,7 +205466,7 @@ index 7541fb316cb9..f6d6c88d13ba 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Tue, 29 Jun 2021 14:38:23 +0100 -Subject: [PATCH 422/991] Documentation: devicetree: Add documentation for +Subject: [PATCH 0421/1015] Documentation: devicetree: Add documentation for imx378 sensor The imx378 sensor is compatible with the imx477 and shares common @@ -205649,10 +205599,10 @@ index 000000000000..f832b4bfab93 + +... diff --git a/MAINTAINERS b/MAINTAINERS -index bdb7032bff54..1777d31b7bb1 100644 +index 9a4d40ca44e4..258997f34548 100644 --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -17527,6 +17527,7 @@ M: Raspberry Pi Kernel Maintenance +@@ -17529,6 +17529,7 @@ M: Raspberry Pi Kernel Maintenance L: linux-media@vger.kernel.org S: Maintained T: git git://linuxtv.org/media_tree.git @@ -205667,7 +205617,7 @@ index bdb7032bff54..1777d31b7bb1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Tue, 29 Jun 2021 14:43:01 +0100 -Subject: [PATCH 423/991] media: i2c: imx477: Extend driver to support imx378 +Subject: [PATCH 0422/1015] media: i2c: imx477: Extend driver to support imx378 sensor The imx378 sensor is almost identical to the imx477 and can be @@ -205865,7 +205815,8 @@ index 07ccdf738883..bc0fb02a159e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 23 Jun 2021 11:47:38 +0200 -Subject: [PATCH 424/991] dt-bindings: clk: raspberrypi: Remove unused property +Subject: [PATCH 0423/1015] dt-bindings: clk: raspberrypi: Remove unused + property The raspberrypi,firmware property has been documented as required in the binding but was never actually used in the final version of the binding. @@ -205911,7 +205862,7 @@ index d37bc311321d..2047e25700c6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 23 Jun 2021 11:48:35 +0200 -Subject: [PATCH 425/991] dt-bindings: display: vc4: Add phandle to the +Subject: [PATCH 0424/1015] dt-bindings: display: vc4: Add phandle to the firmware The vc4 driver will need to tell the firmware that it takes over the @@ -205946,39 +205897,9 @@ index 49a5e041aa49..eac739a812f5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Dom Cobley -Date: Thu, 8 Jul 2021 13:48:11 +0100 -Subject: [PATCH 426/991] bcm2711_thermal: Don't clamp temperature at zero - -The temperature sensor is valid below zero and the linux framework is happy with it. - -See: https://www.raspberrypi.org/forums/viewtopic.php?f=98&t=315382 -Signed-off-by: Dom Cobley ---- - drivers/thermal/broadcom/bcm2711_thermal.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/thermal/broadcom/bcm2711_thermal.c b/drivers/thermal/broadcom/bcm2711_thermal.c -index 1ec57d9ecf53..011b2789e2df 100644 ---- a/drivers/thermal/broadcom/bcm2711_thermal.c -+++ b/drivers/thermal/broadcom/bcm2711_thermal.c -@@ -52,7 +52,7 @@ static int bcm2711_get_temp(void *data, int *temp) - /* Convert a HW code to a temperature reading (millidegree celsius) */ - t = slope * val + offset; - -- *temp = t < 0 ? 0 : t; -+ *temp = t; - - return 0; - } --- -2.18.4 - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Van=C4=9Bk?= Date: Wed, 7 Jul 2021 22:48:20 +0200 -Subject: [PATCH 427/991] media: bcm2835-unicam: Forward input status from +Subject: [PATCH 0425/1015] media: bcm2835-unicam: Forward input status from subdevice MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -206037,7 +205958,7 @@ index a603891986b9..cf5d16103d56 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Thu, 15 Jul 2021 15:55:22 +0100 -Subject: [PATCH 428/991] media: v4l2-subdev: add subdev-wide state struct +Subject: [PATCH 0426/1015] media: v4l2-subdev: add subdev-wide state struct Signed-off-by: Dom Cobley --- @@ -206534,8 +206455,8 @@ index 08dce8bba9bb..00b044e7d77e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 19 May 2020 14:54:28 +0100 -Subject: [PATCH 429/991] drm/vc4: Adopt the dma configuration from the HVS or - V3D component +Subject: [PATCH 0427/1015] drm/vc4: Adopt the dma configuration from the HVS + or V3D component vc4_drv isn't necessarily under the /soc node in DT as it is a virtual device, but it is the one that does the allocations. @@ -206594,7 +206515,7 @@ index 2150637e40dc..0a889f765672 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Joerg Quinten Date: Fri, 18 Jun 2021 13:02:29 +0200 -Subject: [PATCH 430/991] Support RPi DPI interface in mode6 for 18-bit color +Subject: [PATCH 0428/1015] Support RPi DPI interface in mode6 for 18-bit color A matching media bus format was added and an overlay for using it, both with FB and VC4 was added as well. @@ -206714,7 +206635,7 @@ index e7a2fac30ae4..6e143e47d967 100644 - MEDIA_BUS_FMT_RGB666_1X24_CPADHI diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c -index f9242c19b458..7f9a2293aea8 100644 +index 8dd7013c75f2..281b8d908f37 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -2472,6 +2472,38 @@ static const struct panel_desc innolux_at043tn24 = { @@ -206756,7 +206677,7 @@ index f9242c19b458..7f9a2293aea8 100644 static const struct drm_display_mode innolux_at070tn92_mode = { .clock = 33333, .hdisplay = 800, -@@ -4658,6 +4690,9 @@ static const struct of_device_id platform_of_match[] = { +@@ -4659,6 +4691,9 @@ static const struct of_device_id platform_of_match[] = { }, { .compatible = "innolux,at043tn24", .data = &innolux_at043tn24, @@ -206822,7 +206743,7 @@ index aa56d7f54784..6ad34f88c7dd 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 15 Dec 2021 10:17:38 +0100 -Subject: [PATCH 431/991] drm/vc4: plane: Add support for DRM_FORMAT_P030 +Subject: [PATCH 0429/1015] drm/vc4: plane: Add support for DRM_FORMAT_P030 The P030 format, used with the DRM_FORMAT_MOD_BROADCOM_SAND128 modifier, is a format output by the video decoder on the BCM2711. @@ -207044,7 +206965,7 @@ index ac761c683663..022cd12f561e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 15 Dec 2021 10:17:39 +0100 -Subject: [PATCH 432/991] drm/vc4: plane: Add support for YUV color encodings +Subject: [PATCH 0430/1015] drm/vc4: plane: Add support for YUV color encodings and ranges The BT601/BT709 color encoding and limited vs full @@ -207159,10 +207080,10 @@ index 022cd12f561e..920a9eefe426 100644 } diff --git a/drivers/gpu/drm/vc4/vc4_regs.h b/drivers/gpu/drm/vc4/vc4_regs.h -index 489f921ef44d..7538b84a6dca 100644 +index 8ac2f088106a..e3761ffbac7b 100644 --- a/drivers/gpu/drm/vc4/vc4_regs.h +++ b/drivers/gpu/drm/vc4/vc4_regs.h -@@ -975,7 +975,10 @@ enum hvs_pixel_format { +@@ -983,7 +983,10 @@ enum hvs_pixel_format { #define SCALER_CSC0_COEF_CR_OFS_SHIFT 0 #define SCALER_CSC0_ITR_R_601_5 0x00f00000 #define SCALER_CSC0_ITR_R_709_3 0x00f00000 @@ -207173,7 +207094,7 @@ index 489f921ef44d..7538b84a6dca 100644 /* S2.8 contribution of Cb to Green */ #define SCALER_CSC1_COEF_CB_GRN_MASK VC4_MASK(31, 22) -@@ -990,8 +993,11 @@ enum hvs_pixel_format { +@@ -998,8 +1001,11 @@ enum hvs_pixel_format { #define SCALER_CSC1_COEF_CR_BLU_MASK VC4_MASK(1, 0) #define SCALER_CSC1_COEF_CR_BLU_SHIFT 0 #define SCALER_CSC1_ITR_R_601_5 0xe73304a8 @@ -207187,7 +207108,7 @@ index 489f921ef44d..7538b84a6dca 100644 /* S2.8 contribution of Cb to Red */ #define SCALER_CSC2_COEF_CB_RED_MASK VC4_MASK(29, 20) -@@ -1002,9 +1008,12 @@ enum hvs_pixel_format { +@@ -1010,9 +1016,12 @@ enum hvs_pixel_format { /* S2.8 contribution of Cb to Blue */ #define SCALER_CSC2_COEF_CB_BLU_MASK VC4_MASK(19, 10) #define SCALER_CSC2_COEF_CB_BLU_SHIFT 10 @@ -207210,7 +207131,7 @@ index 489f921ef44d..7538b84a6dca 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 19 May 2020 16:20:30 +0100 -Subject: [PATCH 433/991] drm/vc4: Add FKMS as an acceptable node for dma +Subject: [PATCH 0431/1015] drm/vc4: Add FKMS as an acceptable node for dma ranges. Under FKMS, the firmware (via FKMS) also requires the VideoCore cache @@ -207243,7 +207164,7 @@ index 0a889f765672..44c9ea24b9f6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 31 Jul 2019 17:36:34 +0100 -Subject: [PATCH 434/991] drm/vc4: A present but empty dmas disables audio +Subject: [PATCH 0432/1015] drm/vc4: A present but empty dmas disables audio Overlays are unable to remove properties in the base DTB, but they can overwrite them. Allow a present but empty 'dmas' property @@ -207257,10 +207178,10 @@ Signed-off-by: Phil Elwell 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index df291945489d..9a8efd2edec7 100644 +index 987d073b206b..01cefacc1b8b 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1692,10 +1692,12 @@ static int vc4_hdmi_audio_init(struct vc4_hdmi *vc4_hdmi) +@@ -1693,10 +1693,12 @@ static int vc4_hdmi_audio_init(struct vc4_hdmi *vc4_hdmi) const __be32 *addr; int index; int ret; @@ -207282,7 +207203,7 @@ index df291945489d..9a8efd2edec7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 6 Oct 2020 18:44:42 +0100 -Subject: [PATCH 435/991] drm/vc4: Add debugfs node that dumps the current +Subject: [PATCH 0433/1015] drm/vc4: Add debugfs node that dumps the current display lists This allows easy analysis of display lists when debugging. @@ -207293,7 +207214,7 @@ Signed-off-by: Dave Stevenson 1 file changed, 41 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_hvs.c b/drivers/gpu/drm/vc4/vc4_hvs.c -index 604933e20e6a..ab79d0a82a19 100644 +index 9d88bfb50c9b..327ffe2fcbb5 100644 --- a/drivers/gpu/drm/vc4/vc4_hvs.c +++ b/drivers/gpu/drm/vc4/vc4_hvs.c @@ -95,6 +95,45 @@ static int vc4_hvs_debugfs_underrun(struct seq_file *m, void *data) @@ -207342,7 +207263,7 @@ index 604933e20e6a..ab79d0a82a19 100644 /* The filter kernel is composed of dwords each containing 3 9-bit * signed integers packed next to each other. */ -@@ -689,6 +728,8 @@ static int vc4_hvs_bind(struct device *dev, struct device *master, void *data) +@@ -728,6 +767,8 @@ static int vc4_hvs_bind(struct device *dev, struct device *master, void *data) vc4_debugfs_add_regset32(drm, "hvs_regs", &hvs->regset); vc4_debugfs_add_file(drm, "hvs_underrun", vc4_hvs_debugfs_underrun, NULL); @@ -207358,8 +207279,8 @@ index 604933e20e6a..ab79d0a82a19 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 21 Oct 2020 18:34:56 +0100 -Subject: [PATCH 436/991] drm/vc4: Add all the HDMI registers into the debugfs - dumps +Subject: [PATCH 0434/1015] drm/vc4: Add all the HDMI registers into the + debugfs dumps The vc5 HDMI registers hadn't been added into the debugfs register sets, therefore weren't dumped on request. @@ -207372,10 +207293,10 @@ Signed-off-by: Dave Stevenson 2 files changed, 47 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 9a8efd2edec7..ec7a3798f5c3 100644 +index 01cefacc1b8b..8029478d3284 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -112,6 +112,12 @@ static int vc4_hdmi_debugfs_regs(struct seq_file *m, void *unused) +@@ -113,6 +113,12 @@ static int vc4_hdmi_debugfs_regs(struct seq_file *m, void *unused) drm_print_regset32(&p, &vc4_hdmi->hdmi_regset); drm_print_regset32(&p, &vc4_hdmi->hd_regset); @@ -207388,7 +207309,7 @@ index 9a8efd2edec7..ec7a3798f5c3 100644 return 0; } -@@ -2361,6 +2367,7 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) +@@ -2362,6 +2368,7 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) struct platform_device *pdev = vc4_hdmi->pdev; struct device *dev = &pdev->dev; struct resource *res; @@ -207396,7 +207317,7 @@ index 9a8efd2edec7..ec7a3798f5c3 100644 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "hdmi"); if (!res) -@@ -2457,6 +2464,38 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) +@@ -2458,6 +2465,38 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) return PTR_ERR(vc4_hdmi->reset); } @@ -207461,7 +207382,7 @@ index 0c51c91f9d5c..275c4674d50f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 26 Oct 2020 12:38:27 +0000 -Subject: [PATCH 437/991] drm/vc4: Add the 2711 HVS as a suitable DMA node +Subject: [PATCH 0435/1015] drm/vc4: Add the 2711 HVS as a suitable DMA node With vc4-drv node not being under /soc on Pi4, we need to adopt the correct DMA parameters from a suitable sub-component. @@ -207491,7 +207412,7 @@ index 44c9ea24b9f6..902c66de3bd5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 9 Nov 2020 19:49:32 +0000 -Subject: [PATCH 438/991] vc4_hdmi: Report that 3d/stereo is allowed +Subject: [PATCH 0436/1015] vc4_hdmi: Report that 3d/stereo is allowed Signed-off-by: Dom Cobley --- @@ -207499,10 +207420,10 @@ Signed-off-by: Dom Cobley 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index ec7a3798f5c3..d7a2ce653d03 100644 +index 8029478d3284..1d341803251e 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -398,6 +398,7 @@ static int vc4_hdmi_connector_init(struct drm_device *dev, +@@ -399,6 +399,7 @@ static int vc4_hdmi_connector_init(struct drm_device *dev, connector->interlace_allowed = 1; connector->doublescan_allowed = 0; @@ -207517,7 +207438,7 @@ index ec7a3798f5c3..d7a2ce653d03 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 10 Nov 2020 20:04:08 +0000 -Subject: [PATCH 439/991] vc4: Clear unused infoframe packet RAM registers +Subject: [PATCH 0437/1015] vc4: Clear unused infoframe packet RAM registers Using a hdmi analyser the bytes in packet ram registers beyond the length were visible in the @@ -207531,10 +207452,10 @@ Signed-off-by: Dom Cobley 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index d7a2ce653d03..9d911fc4a7e3 100644 +index 1d341803251e..79487ca562aa 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -436,9 +436,11 @@ static void vc4_hdmi_write_infoframe(struct drm_encoder *encoder, +@@ -437,9 +437,11 @@ static void vc4_hdmi_write_infoframe(struct drm_encoder *encoder, const struct vc4_hdmi_register *ram_packet_start = &vc4_hdmi->variant->registers[HDMI_RAM_PACKET_START]; u32 packet_reg = ram_packet_start->offset + VC4_HDMI_PACKET_STRIDE * packet_id; @@ -207547,7 +207468,7 @@ index d7a2ce653d03..9d911fc4a7e3 100644 unsigned long flags; ssize_t len, i; int ret; -@@ -474,6 +476,13 @@ static void vc4_hdmi_write_infoframe(struct drm_encoder *encoder, +@@ -475,6 +477,13 @@ static void vc4_hdmi_write_infoframe(struct drm_encoder *encoder, packet_reg += 4; } @@ -207568,7 +207489,7 @@ index d7a2ce653d03..9d911fc4a7e3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 12 Feb 2021 17:31:37 +0000 -Subject: [PATCH 440/991] drm/vc4: Change the default DPI format to being +Subject: [PATCH 0438/1015] drm/vc4: Change the default DPI format to being 18bpp, not 24. DPI hasn't really been used up until now, so the default has @@ -207608,7 +207529,7 @@ index afb446f49e9c..dde2c6014748 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Sun, 24 Jan 2021 15:44:10 +0000 -Subject: [PATCH 441/991] vc4/drm: Avoid full hdmi audio fifo writes +Subject: [PATCH 0439/1015] vc4/drm: Avoid full hdmi audio fifo writes We are getting occasional VC4_HD_MAI_CTL_ERRORF in HDMI_MAI_CTL which seem to correspond with audio dropouts. @@ -207621,10 +207542,10 @@ Signed-off-by: Dom Cobley 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 9d911fc4a7e3..ccaced0b4836 100644 +index 79487ca562aa..5eb9400caa7f 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1612,10 +1612,10 @@ static int vc4_hdmi_audio_prepare(struct device *dev, void *data, +@@ -1613,10 +1613,10 @@ static int vc4_hdmi_audio_prepare(struct device *dev, void *data, /* Set the MAI threshold */ HDMI_WRITE(HDMI_MAI_THR, @@ -207646,7 +207567,8 @@ index 9d911fc4a7e3..ccaced0b4836 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 15 Mar 2021 13:28:06 +0000 -Subject: [PATCH 442/991] vc4/drm: vc4_plane: Remove subpixel positioning check +Subject: [PATCH 0440/1015] vc4/drm: vc4_plane: Remove subpixel positioning + check There is little harm in ignoring fractional coordinates (they just get truncated). @@ -207714,7 +207636,7 @@ index 920a9eefe426..f0f80ef43f96 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 13 Apr 2021 14:10:03 +0100 -Subject: [PATCH 443/991] drm/vc4: hdmi: Convert to the new clock request API +Subject: [PATCH 0441/1015] drm/vc4: hdmi: Convert to the new clock request API The new clock request API allows us to increase the rate of the core clock as required during mode set while decreasing it when @@ -207762,7 +207684,7 @@ index 06a4f765a51c..87e51d4d86f4 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 11 Feb 2021 18:37:04 +0000 -Subject: [PATCH 444/991] drm/vc4: Correct pixel order for DSI0 +Subject: [PATCH 0442/1015] drm/vc4: Correct pixel order for DSI0 For slightly unknown reasons, dsi0 takes a different pixel format to dsi1, and that has to be set in the pixel valve. @@ -207775,7 +207697,7 @@ Signed-off-by: Dave Stevenson 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c -index 799aaf8c1abf..402059f81b84 100644 +index c9b684d36fb2..7dfd28fa619a 100644 --- a/drivers/gpu/drm/vc4/vc4_crtc.c +++ b/drivers/gpu/drm/vc4/vc4_crtc.c @@ -317,7 +317,8 @@ static void vc4_crtc_config_pv(struct drm_crtc *crtc, struct drm_encoder *encode @@ -207795,7 +207717,7 @@ index 799aaf8c1abf..402059f81b84 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 8 Feb 2021 11:22:01 +0000 -Subject: [PATCH 445/991] drm/vc4: Register dsi0 as the correct vc4 encoder +Subject: [PATCH 0443/1015] drm/vc4: Register dsi0 as the correct vc4 encoder type vc4_dsi was registering both dsi0 and dsi1 as VC4_ENCODER_TYPE_DSI1 @@ -207830,7 +207752,7 @@ index ca8506316660..0903e771c6fb 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 10 Feb 2021 18:46:22 +0000 -Subject: [PATCH 446/991] drm/vc4: Fix dsi0 interrupt support. +Subject: [PATCH 0444/1015] drm/vc4: Fix dsi0 interrupt support. DSI0 seemingly had very little or no testing as a load of the register mappings were incorrect/missing, so host @@ -208024,7 +207946,7 @@ index 0903e771c6fb..2b0d22c40af1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 15 Apr 2021 16:18:16 +0100 -Subject: [PATCH 447/991] drm/vc4: Add correct stop condition to +Subject: [PATCH 0445/1015] drm/vc4: Add correct stop condition to vc4_dsi_encoder_disable iteration vc4_dsi_encoder_disable is partially an open coded version of @@ -208060,7 +207982,8 @@ index 2b0d22c40af1..bb5afcd11fa7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 Jan 2021 16:30:55 +0000 -Subject: [PATCH 448/991] drm/atomic: Don't fixup modes that haven't been reset +Subject: [PATCH 0446/1015] drm/atomic: Don't fixup modes that haven't been + reset Signed-off-by: Dave Stevenson --- @@ -208068,7 +207991,7 @@ Signed-off-by: Dave Stevenson 1 file changed, 5 insertions(+) diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c -index ff2bc9a11801..d616fdaa0879 100644 +index aa09a19fae37..cd48d4aa20dd 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c @@ -431,6 +431,11 @@ mode_fixup(struct drm_atomic_state *state) @@ -208090,7 +208013,7 @@ index ff2bc9a11801..d616fdaa0879 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 5 May 2021 15:35:34 +0200 -Subject: [PATCH 449/991] clk: Always clamp the rounded rate +Subject: [PATCH 0447/1015] clk: Always clamp the rounded rate The current core while setting the min and max rate properly in the clk_request structure will not make sure that the requested rate is @@ -208124,7 +208047,7 @@ index b829858525ae..e79569eef194 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 26 May 2021 16:13:02 +0200 -Subject: [PATCH 450/991] drm/vc4: Increase the core clock based on HVS load +Subject: [PATCH 0448/1015] drm/vc4: Increase the core clock based on HVS load Depending on a given HVS output (HVS to PixelValves) and input (planes attached to a channel) load, the HVS needs for the core clock to be @@ -208140,7 +208063,7 @@ Signed-off-by: Maxime Ripard 2 files changed, 14 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h -index 4329e09d357c..3921959b4a5e 100644 +index 801da3e8ebdb..5d22ccd1ddd2 100644 --- a/drivers/gpu/drm/vc4/vc4_drv.h +++ b/drivers/gpu/drm/vc4/vc4_drv.h @@ -321,6 +321,7 @@ struct vc4_hvs { @@ -208189,7 +208112,8 @@ index 87e51d4d86f4..3453932835b1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 27 Oct 2021 14:38:50 +0100 -Subject: [PATCH 451/991] drm/vc4: hdmi: Simplify the connector state retrieval +Subject: [PATCH 0449/1015] drm/vc4: hdmi: Simplify the connector state + retrieval When we have the entire DRM state, retrieving the connector state only requires the drm_connector pointer. Fortunately for us, we have @@ -208202,10 +208126,10 @@ Signed-off-by: Maxime Ripard 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index ccaced0b4836..980a0f354c17 100644 +index 5eb9400caa7f..f615f37d271c 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1002,30 +1002,15 @@ static void vc4_hdmi_recenter_fifo(struct vc4_hdmi *vc4_hdmi) +@@ -1003,30 +1003,15 @@ static void vc4_hdmi_recenter_fifo(struct vc4_hdmi *vc4_hdmi) "VC4_HDMI_FIFO_CTL_RECENTER_DONE"); } @@ -208246,7 +208170,7 @@ index ccaced0b4836..980a0f354c17 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: kFYatek <4499762+kFYatek@users.noreply.github.com> Date: Wed, 23 Jun 2021 01:11:26 +0200 -Subject: [PATCH 452/991] drm/vc4: Fix timings for interlaced modes +Subject: [PATCH 0450/1015] drm/vc4: Fix timings for interlaced modes Increase the number of post-sync blanking lines on odd fields instead of decreasing it on even fields. This makes the total number of lines @@ -208263,7 +208187,7 @@ Signed-off-by: Mateusz Kwiatkowski 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c -index 402059f81b84..cf9b751fe199 100644 +index 7dfd28fa619a..0b4f05451ac5 100644 --- a/drivers/gpu/drm/vc4/vc4_crtc.c +++ b/drivers/gpu/drm/vc4/vc4_crtc.c @@ -344,7 +344,8 @@ static void vc4_crtc_config_pv(struct drm_crtc *crtc, struct drm_encoder *encode @@ -208295,10 +208219,10 @@ index 402059f81b84..cf9b751fe199 100644 CRTC_WRITE(PV_VSYNCD_EVEN, 0); } else { diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 980a0f354c17..395a9e9c1e5a 100644 +index f615f37d271c..3b5d864b3ffb 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -840,12 +840,12 @@ static void vc4_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, +@@ -841,12 +841,12 @@ static void vc4_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, VC4_HDMI_VERTA_VFP) | VC4_SET_FIELD(mode->crtc_vdisplay, VC4_HDMI_VERTA_VAL)); u32 vertb = (VC4_SET_FIELD(0, VC4_HDMI_VERTB_VSPO) | @@ -208314,7 +208238,7 @@ index 980a0f354c17..395a9e9c1e5a 100644 VC4_HDMI_VERTB_VBP)); unsigned long flags; -@@ -891,12 +891,12 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, +@@ -892,12 +892,12 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, VC5_HDMI_VERTA_VFP) | VC4_SET_FIELD(mode->crtc_vdisplay, VC5_HDMI_VERTA_VAL)); u32 vertb = (VC4_SET_FIELD(0, VC5_HDMI_VERTB_VSPO) | @@ -208337,7 +208261,7 @@ index 980a0f354c17..395a9e9c1e5a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 5 Jul 2021 19:38:21 +0100 -Subject: [PATCH 453/991] dwc_otg: Update NetBSD usb.h header licence +Subject: [PATCH 0451/1015] dwc_otg: Update NetBSD usb.h header licence NetBSD have changed their licensing requirements such that the 2-clause licence is preferred. Update usb.h in the downstream dwc_otg code @@ -208376,8 +208300,8 @@ index f78593575736..b1cedb1876b7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 12 Jul 2021 12:27:59 +0100 -Subject: [PATCH 454/991] drm/vc4: Fix margin calculations for the right/bottom - edges +Subject: [PATCH 0452/1015] drm/vc4: Fix margin calculations for the + right/bottom edges The calculations clipped the right/bottom edge of the clipped range based on the left/top margins. @@ -208420,7 +208344,7 @@ index f0f80ef43f96..c737fff3cf8d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mateusz Kwiatkowski Date: Thu, 15 Jul 2021 01:07:30 +0200 -Subject: [PATCH 455/991] drm/vc4: Fix timings for VEC modes +Subject: [PATCH 0453/1015] drm/vc4: Fix timings for VEC modes This commit fixes vertical timings of the VEC (composite output) modes to accurately represent the 525-line ("NTSC") and 625-line ("PAL") ITU-R @@ -208442,7 +208366,7 @@ Signed-off-by: Mateusz Kwiatkowski 2 files changed, 45 insertions(+), 29 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c -index cf9b751fe199..3a612cb347b9 100644 +index 0b4f05451ac5..5158992ef6a7 100644 --- a/drivers/gpu/drm/vc4/vc4_crtc.c +++ b/drivers/gpu/drm/vc4/vc4_crtc.c @@ -318,8 +318,14 @@ static void vc4_crtc_config_pv(struct drm_crtc *crtc, struct drm_encoder *encode @@ -208576,7 +208500,7 @@ index 11fc3d6f66b1..4e2250b8fa23 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mateusz Kwiatkowski Date: Thu, 15 Jul 2021 01:07:49 +0200 -Subject: [PATCH 456/991] drm/vc4: Refactor VEC TV mode setting +Subject: [PATCH 0454/1015] drm/vc4: Refactor VEC TV mode setting Change the mode_set function pointer logic to declarative config0, config1 and custom_freq fields, to make TV mode setting logic more @@ -208749,7 +208673,7 @@ index 4e2250b8fa23..809690f2dd55 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mateusz Kwiatkowski Date: Thu, 15 Jul 2021 01:07:53 +0200 -Subject: [PATCH 457/991] drm/vc4: Fix definition of PAL-M mode +Subject: [PATCH 0455/1015] drm/vc4: Fix definition of PAL-M mode PAL-M is a Brazilian analog TV standard that uses a PAL-style chroma subcarrier at 3.575611[888111] MHz on top of 525-line (480i60) timings. @@ -208832,7 +208756,7 @@ index 809690f2dd55..231ed492cb71 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mateusz Kwiatkowski Date: Thu, 15 Jul 2021 01:07:58 +0200 -Subject: [PATCH 458/991] drm/vc4: Add support for more analog TV standards +Subject: [PATCH 0456/1015] drm/vc4: Add support for more analog TV standards Add support for the following composite output modes (all of them are somewhat more obscure than the previously defined ones): @@ -208986,7 +208910,7 @@ index 231ed492cb71..e0bd484321d1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mateusz Kwiatkowski Date: Thu, 15 Jul 2021 01:08:01 +0200 -Subject: [PATCH 459/991] drm/vc4: Allow setting the TV norm via module +Subject: [PATCH 0457/1015] drm/vc4: Allow setting the TV norm via module parameter Similar to the ch7006 and nouveau drivers, introduce a "tv_mode" module @@ -209136,7 +209060,7 @@ index e0bd484321d1..fb4360c0d9e3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mateusz Kwiatkowski Date: Thu, 15 Jul 2021 01:08:05 +0200 -Subject: [PATCH 460/991] drm/vc4: Refactor mode checking logic +Subject: [PATCH 0458/1015] drm/vc4: Refactor mode checking logic Replace drm_encoder_helper_funcs::atomic_check with drm_connector_helper_funcs::atomic_check - the former is not called @@ -209227,7 +209151,7 @@ index fb4360c0d9e3..b684595a5d0b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 7 Sep 2020 17:32:27 +0100 -Subject: [PATCH 461/991] drm/vc4: Add firmware-kms mode +Subject: [PATCH 0459/1015] drm/vc4: Add firmware-kms mode This is a squash of all firmware-kms related patches from previous branches, up to and including @@ -209399,7 +209323,7 @@ index 902c66de3bd5..c5d0bf2db2e5 100644 }; diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h -index 3921959b4a5e..48d5d13f38a3 100644 +index 5d22ccd1ddd2..a4739507984a 100644 --- a/drivers/gpu/drm/vc4/vc4_drv.h +++ b/drivers/gpu/drm/vc4/vc4_drv.h @@ -76,11 +76,15 @@ struct vc4_dev { @@ -211747,7 +211671,8 @@ index ee361b90eb29..7fdce4033b46 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Tue, 20 Jul 2021 15:10:03 +0100 -Subject: [PATCH 462/991] media: i2c: imx477: Fix framerates for 1332x990 mode +Subject: [PATCH 0460/1015] media: i2c: imx477: Fix framerates for 1332x990 + mode The imx477 driver's line length for this mode had not been updated to the value supplied to us by the sensor manufacturer. With this @@ -211778,7 +211703,7 @@ index f550ff0d8b72..ba03c68e64a0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 27 Jul 2021 09:27:49 +0100 -Subject: [PATCH 463/991] ASoC: bcm: Compiler warnings in audioinjector-octo +Subject: [PATCH 0461/1015] ASoC: bcm: Compiler warnings in audioinjector-octo Avoid compiler warnings by using the "fallthrough" pseudo-keyword in place of the old "/* fall through */" comment convention. @@ -211846,7 +211771,7 @@ index 47d622df3ec7..db507f341867 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 27 Jul 2021 11:17:08 +0100 -Subject: [PATCH 464/991] media: i2c: tc358743: Fix compiler warning +Subject: [PATCH 0462/1015] media: i2c: tc358743: Fix compiler warning Avoid a compiler warning by using the "fallthrough" pseudo-keyword in place of the old "/* fall through */" comment convention. @@ -211876,7 +211801,7 @@ index da166e6a41d6..e3de5b213e05 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: "chipdip.lab" <43340836+chipdipru@users.noreply.github.com> Date: Mon, 26 Jul 2021 14:45:59 +0300 -Subject: [PATCH 465/991] ASoC: bcm: Add chipdip-dac driver +Subject: [PATCH 0463/1015] ASoC: bcm: Add chipdip-dac driver Driver chipdip-dac.c added into sound/soc/bcm/, files sound/soc/bcm/Kconfig and sound/soc/bcm/Makefile updated. @@ -212212,7 +212137,7 @@ index 000000000000..6cb53692b3c5 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 3 Aug 2021 11:25:59 +0100 -Subject: [PATCH 466/991] media: i2c: imx290: Add fwnode properties controls +Subject: [PATCH 0464/1015] media: i2c: imx290: Add fwnode properties controls Add call to v4l2_ctrl_new_fwnode_properties to read and create the fwnode based controls. @@ -212266,7 +212191,7 @@ index c09b5a22e1a8..4291c77f5a01 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 3 Aug 2021 11:30:58 +0100 -Subject: [PATCH 467/991] media: i2c: ov9281: Add fwnode properties controls +Subject: [PATCH 0465/1015] media: i2c: ov9281: Add fwnode properties controls Add call to v4l2_ctrl_new_fwnode_properties to read and create the fwnode based controls. @@ -212328,7 +212253,7 @@ index c89dc98ad708..e4604746e930 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 3 Aug 2021 11:33:33 +0100 -Subject: [PATCH 468/991] media: i2c: ov7251: Add fwnode properties controls +Subject: [PATCH 0466/1015] media: i2c: ov7251: Add fwnode properties controls Add call to v4l2_ctrl_new_fwnode_properties to read and create the fwnode based controls. @@ -212382,7 +212307,7 @@ index ebb299f207e5..083a62b267f2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: John Cox Date: Fri, 6 Aug 2021 10:47:11 +0100 -Subject: [PATCH 469/991] media: v4l2: Remove v4l2-ctrls.c +Subject: [PATCH 0467/1015] media: v4l2: Remove v4l2-ctrls.c v4l2-ctrls.c has been split into 4 files v4l2-ctrls-*.c, the original is redundant, confusing and probably should have been removed by a @@ -217453,7 +217378,7 @@ index b750ce3ae723..000000000000 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: John Cox Date: Fri, 6 Aug 2021 10:53:50 +0100 -Subject: [PATCH 470/991] media: v4l2: Add HEVC_SCALING_MATRIX attribute to +Subject: [PATCH 0468/1015] media: v4l2: Add HEVC_SCALING_MATRIX attribute to v4l2-ctrl-* Add code to support V4L2_CID_MPEG_VIDEO_HEVC_SCALING_MATRIX to @@ -217519,8 +217444,8 @@ index 421300e13a41..eae300c58274 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: John Cox Date: Thu, 5 Aug 2021 15:18:50 +0100 -Subject: [PATCH 471/991] media: rpivid: Update to compile with new hevc decode - params +Subject: [PATCH 0469/1015] media: rpivid: Update to compile with new hevc + decode params DPB entries have moved from slice params to the new decode params attribute - update to deal with this. Also fixes fallthrough @@ -217728,7 +217653,7 @@ index a5a0e31bd5ba..b630805dbef3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: John Cox Date: Fri, 6 Aug 2021 14:32:44 +0100 -Subject: [PATCH 472/991] media: v4l2: Add Greyworld AWB control name +Subject: [PATCH 0470/1015] media: v4l2: Add Greyworld AWB control name Add name for greyworld to white_balance preset names. This patch previously applied to v4l2-ctrl.c but that was split @@ -217758,7 +217683,7 @@ index eae300c58274..e085f330296a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Hans Verkuil Date: Wed, 14 Apr 2021 15:01:16 +0200 -Subject: [PATCH 473/991] videodev2.h: add V4L2_CTRL_FLAG_DYNAMIC_ARRAY +Subject: [PATCH 0471/1015] videodev2.h: add V4L2_CTRL_FLAG_DYNAMIC_ARRAY Add a new flag that indicates that this control is a dynamically sized array. Also document this flag. @@ -217818,7 +217743,7 @@ index 12f356c48616..272761a87020 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Hans Verkuil Date: Thu, 15 Apr 2021 13:56:53 +0200 -Subject: [PATCH 474/991] v4l2-ctrls: add support for dynamically allocated +Subject: [PATCH 0472/1015] v4l2-ctrls: add support for dynamically allocated arrays. Implement support for dynamically allocated arrays. @@ -218520,7 +218445,7 @@ index 575b59fbac77..ebd9cef13309 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: John Cox Date: Thu, 29 Apr 2021 19:17:06 +0100 -Subject: [PATCH 475/991] media: rpivid: Make slice ctrl dynamic +Subject: [PATCH 0473/1015] media: rpivid: Make slice ctrl dynamic Allows the user to submit a whole frames worth of slice headers in one lump along with a single bitstream dmabuf for the whole lot. @@ -218865,7 +218790,7 @@ index b630805dbef3..72d4c2e20b5f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: John Cox Date: Thu, 6 May 2021 13:48:05 +0100 -Subject: [PATCH 476/991] media: rpivid: Only create aux entries for H265 if +Subject: [PATCH 0474/1015] media: rpivid: Only create aux entries for H265 if needed Only create aux entries of mv info for frames where that info might @@ -218982,7 +218907,7 @@ index 72d4c2e20b5f..e3a5c331ca10 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Wed, 11 Aug 2021 15:33:57 +0100 -Subject: [PATCH 477/991] usb: xhci: workaround for bogus SET_DEQ_PENDING +Subject: [PATCH 0475/1015] usb: xhci: workaround for bogus SET_DEQ_PENDING endpoint state See https://github.com/raspberrypi/linux/issues/3981 @@ -219029,7 +218954,7 @@ index f9707997969d..78981c0b754f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Wed, 8 Sep 2021 14:15:17 +0100 -Subject: [PATCH 478/991] media: i2c: imx477: Allow control of on-sensor DPC +Subject: [PATCH 0476/1015] media: i2c: imx477: Allow control of on-sensor DPC A module parameter "dpc_enable" is added to allow the control of the sensor's on-board DPC (Defective Pixel Correction) function. @@ -219075,7 +219000,7 @@ index ba03c68e64a0..96486a7f007c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Thu, 15 Apr 2021 13:15:14 +0100 -Subject: [PATCH 479/991] sound/usb: add device quirks for A4Tech FHD 1080p +Subject: [PATCH 0477/1015] sound/usb: add device quirks for A4Tech FHD 1080p webcams These devices use a type of Sonix chipset that produces broken microphone @@ -219089,10 +219014,10 @@ Signed-off-by: Jonathan Bell 1 file changed, 2 insertions(+) diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c -index ab9f3da49941..edfdc002d574 100644 +index e8468f9b007d..c2b079e7825d 100644 --- a/sound/usb/quirks.c +++ b/sound/usb/quirks.c -@@ -1900,6 +1900,8 @@ static const struct usb_audio_quirk_flags_table quirk_flags_table[] = { +@@ -1908,6 +1908,8 @@ static const struct usb_audio_quirk_flags_table quirk_flags_table[] = { QUIRK_FLAG_ALIGN_TRANSFER), DEVICE_FLG(0x1224, 0x2a25, /* Jieli Technology USB PHY 2.0 */ QUIRK_FLAG_GET_SAMPLE_RATE), @@ -219108,7 +219033,7 @@ index ab9f3da49941..edfdc002d574 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Wed, 15 Sep 2021 17:56:45 +0100 -Subject: [PATCH 480/991] sound/usb: call usb_autopm_get_interface() for +Subject: [PATCH 0478/1015] sound/usb: call usb_autopm_get_interface() for devices that should not be suspended Webcams with microphones are composite devices, and autosuspend is set @@ -219151,7 +219076,7 @@ index 1764b9302d46..fbbe330a52e3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 22 Jul 2021 14:34:42 +0100 -Subject: [PATCH 481/991] brcmfmac: Try product-specific clm_blob names first +Subject: [PATCH 0479/1015] brcmfmac: Try product-specific clm_blob names first Signed-off-by: Phil Elwell --- @@ -219322,7 +219247,7 @@ index 9fb68c2dc7e3..9bf2dbd30ded 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 1 Nov 2018 17:31:37 +0000 -Subject: [PATCH 482/991] staging: vchiq_arm: Add 36-bit address support +Subject: [PATCH 0480/1015] staging: vchiq_arm: Add 36-bit address support Conditional on a new compatible string, change the pagelist encoding such that the top 24 bits are the pfn, leaving 8 bits for run length @@ -219592,7 +219517,7 @@ index e8e39a154c74..b7653e8ce9e0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 21 Jul 2020 17:34:09 +0100 -Subject: [PATCH 483/991] staging: vchiq_arm: children inherit DMA config +Subject: [PATCH 0481/1015] staging: vchiq_arm: children inherit DMA config Although it is no longer necessary for vchiq's children to have a different DMA configuration to the parent, they do still need to @@ -219634,7 +219559,7 @@ index ff4fae2b51f9..16f3de4c27f1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: detule Date: Tue, 2 Oct 2018 04:10:08 -0400 -Subject: [PATCH 484/991] staging: vchiq_arm: Usa a DMA pool for small bulks +Subject: [PATCH 0482/1015] staging: vchiq_arm: Usa a DMA pool for small bulks During a bulk transfer we request a DMA allocation to hold the scatter-gather list. Most of the time, this allocation is small @@ -219761,7 +219686,7 @@ index 16f3de4c27f1..f3d2fe5bbfa0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 13 Sep 2021 17:30:18 +0100 -Subject: [PATCH 485/991] drm/vc4: Reset HDMI MISC_CONTROL register. +Subject: [PATCH 0483/1015] drm/vc4: Reset HDMI MISC_CONTROL register. The HDMI block can repeat pixels for double clocked modes, and the firmware is now configuring the block to do this as @@ -219778,10 +219703,10 @@ Signed-off-by: Dave Stevenson 2 files changed, 11 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 395a9e9c1e5a..a6afd7d7f21c 100644 +index 3b5d864b3ffb..91af33d54935 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -78,6 +78,9 @@ +@@ -79,6 +79,9 @@ #define VC5_HDMI_VERTB_VSPO_SHIFT 16 #define VC5_HDMI_VERTB_VSPO_MASK VC4_MASK(29, 16) @@ -219791,7 +219716,7 @@ index 395a9e9c1e5a..a6afd7d7f21c 100644 #define VC5_HDMI_SCRAMBLER_CTL_ENABLE BIT(0) #define VC5_HDMI_DEEP_COLOR_CONFIG_1_INIT_PACK_PHASE_SHIFT 8 -@@ -962,6 +965,11 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, +@@ -963,6 +966,11 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, reg |= gcp_en ? VC5_HDMI_GCP_CONFIG_GCP_ENABLE : 0; HDMI_WRITE(HDMI_GCP_CONFIG, reg); @@ -219838,7 +219763,7 @@ index fc971506bd4f..24056441a4bb 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 6 Jul 2021 18:53:28 +0100 -Subject: [PATCH 486/991] drm/vc4: Release workaround buffer and DMA in error +Subject: [PATCH 0484/1015] drm/vc4: Release workaround buffer and DMA in error paths and unbind On Pi0-3 the driver allocates a buffer and requests a DMA channel @@ -219989,7 +219914,7 @@ index bb5afcd11fa7..86f3bec1937f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 18 Jun 2021 21:52:28 +0100 -Subject: [PATCH 487/991] drm/vc4: Correct DSI divider calculations +Subject: [PATCH 0485/1015] drm/vc4: Correct DSI divider calculations The divider calculations tried to find the divider just faster than the clock requested. However if @@ -220030,7 +219955,8 @@ index 86f3bec1937f..f2479f80487a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 8 Sep 2021 14:21:38 +0100 -Subject: [PATCH 488/991] drm/panel/raspberrypi-touchscreen: Handle I2C errors. +Subject: [PATCH 0486/1015] drm/panel/raspberrypi-touchscreen: Handle I2C + errors. rpi_touchscreen_i2c_read returns any errors from i2c_transfer, or the 8 bit received value. @@ -220070,7 +219996,7 @@ index bd15c2f2e247..329341bcfa50 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 26 Mar 2021 17:06:36 +0000 -Subject: [PATCH 489/991] drm/panel-simple: Add a timing for the Raspberry Pi +Subject: [PATCH 0487/1015] drm/panel-simple: Add a timing for the Raspberry Pi 7" panel The Raspberry Pi 7" 800x480 panel uses a Toshiba TC358762 DSI @@ -220083,10 +220009,10 @@ Signed-off-by: Dave Stevenson 1 file changed, 28 insertions(+) diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c -index 7f9a2293aea8..f115d3312712 100644 +index 281b8d908f37..7a6331479a5b 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c -@@ -3758,6 +3758,31 @@ static const struct panel_desc qishenglong_gopher2b_lcd = { +@@ -3759,6 +3759,31 @@ static const struct panel_desc qishenglong_gopher2b_lcd = { .connector_type = DRM_MODE_CONNECTOR_DPI, }; @@ -220118,7 +220044,7 @@ index 7f9a2293aea8..f115d3312712 100644 static const struct display_timing rocktech_rk070er9427_timing = { .pixelclock = { 26400000, 33300000, 46800000 }, .hactive = { 800, 800, 800 }, -@@ -4837,6 +4862,9 @@ static const struct of_device_id platform_of_match[] = { +@@ -4838,6 +4863,9 @@ static const struct of_device_id platform_of_match[] = { }, { .compatible = "qishenglong,gopher2b-lcd", .data = &qishenglong_gopher2b_lcd, @@ -220135,7 +220061,7 @@ index 7f9a2293aea8..f115d3312712 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 8 Sep 2021 14:46:17 +0100 -Subject: [PATCH 490/991] Input: edt-ft54x6: Clean up timer and workqueue on +Subject: [PATCH 0488/1015] Input: edt-ft54x6: Clean up timer and workqueue on remove If no interrupt is defined then a timer and workqueue are used @@ -220172,7 +220098,7 @@ index 339eae4ec7a8..aabd1246b788 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 11 Feb 2021 18:46:06 +0000 -Subject: [PATCH 491/991] regulator: rpi-panel: Register with a unique +Subject: [PATCH 0489/1015] regulator: rpi-panel: Register with a unique backlight name There's no reason why 2 Raspberry Pi DSI displays can't be @@ -220207,7 +220133,7 @@ index 991b4730d768..00fb69efcfa2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 8 Sep 2021 15:02:05 +0100 -Subject: [PATCH 492/991] regulator: rpi-panel: Serialise operations. +Subject: [PATCH 0490/1015] regulator: rpi-panel: Serialise operations. The driver was using the regmap lock to serialise the individual accesses, but we really need to protect the @@ -220467,7 +220393,7 @@ index 00fb69efcfa2..a4af7adad2b5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 8 Sep 2021 15:41:18 +0100 -Subject: [PATCH 493/991] regulator: rpi-panel: Ensure the backlight is off +Subject: [PATCH 0491/1015] regulator: rpi-panel: Ensure the backlight is off during probe. The initial state of the Atmel is not defined, so ensure the @@ -220497,7 +220423,8 @@ index a4af7adad2b5..b3629a1e0e50 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 9 Sep 2021 18:24:57 +0100 -Subject: [PATCH 494/991] regulator: rpi-panel: Convert to drive lines directly +Subject: [PATCH 0492/1015] regulator: rpi-panel: Convert to drive lines + directly The Atmel was doing a load of automatic sequencing of control lines, however it was combining the touch controller's @@ -220702,8 +220629,8 @@ index b3629a1e0e50..995915ca4a9b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 10 Sep 2021 13:50:28 +0100 -Subject: [PATCH 495/991] regulator: rpi-panel: Add GPIO control for panel and - touch resets +Subject: [PATCH 0493/1015] regulator: rpi-panel: Add GPIO control for panel + and touch resets We need independent control of the resets for the panel&bridge, vs the touch controller. @@ -220910,7 +220837,7 @@ index 995915ca4a9b..998233f14085 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 13 May 2021 11:56:21 +0100 -Subject: [PATCH 496/991] staging/bcm2835-codec: Change the default codec res +Subject: [PATCH 0494/1015] staging/bcm2835-codec: Change the default codec res to 32x32 In order to effectively guarantee that a V4L2_EVENT_SOURCE_CHANGE @@ -220956,7 +220883,7 @@ index c3ba5c25a2ab..4c01bc42fa31 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Sun, 10 Jan 2021 19:05:17 +0000 -Subject: [PATCH 497/991] staging/vchiq-mmal: Add buffer flags for interlaced +Subject: [PATCH 0495/1015] staging/vchiq-mmal: Add buffer flags for interlaced video Add the buffer flags that the firmware uses to identify fields @@ -221004,7 +220931,7 @@ index ab63835ce01c..883b77ffae25 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 5 Aug 2021 16:38:34 +0100 -Subject: [PATCH 498/991] staging/vchiq-mmal: Add parameters for interlaced +Subject: [PATCH 0496/1015] staging/vchiq-mmal: Add parameters for interlaced video support Adds enum mmal_interlace_type and struct @@ -221071,7 +220998,7 @@ index 79438d23912f..844a02bf9a22 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 18 Dec 2020 19:56:31 +0000 -Subject: [PATCH 499/991] staging/bcm2835-codec: Add support for decoding +Subject: [PATCH 0497/1015] staging/bcm2835-codec: Add support for decoding interlaced streams The video decoder can support decoding interlaced streams, so add @@ -221250,7 +221177,7 @@ index 4c01bc42fa31..3f15c20bb952 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 5 Aug 2021 15:11:23 +0100 -Subject: [PATCH 500/991] staging/bcm2835-codec: Correct ENUM_FRAMESIZES +Subject: [PATCH 0498/1015] staging/bcm2835-codec: Correct ENUM_FRAMESIZES stepsize to 2 Being YUV420 formats, the step size is always 2 to avoid part @@ -221285,7 +221212,7 @@ index 3f15c20bb952..96de610e8354 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 5 Aug 2021 16:46:42 +0100 -Subject: [PATCH 501/991] staging/bcm2835-codec: Return buffers to QUEUED not +Subject: [PATCH 0499/1015] staging/bcm2835-codec: Return buffers to QUEUED not ERROR state Should start_streaming fail, or buffers be queued during @@ -221326,7 +221253,7 @@ index 96de610e8354..d2b64a369ae8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 6 Aug 2021 13:43:48 +0100 -Subject: [PATCH 502/991] staging/bcm2835_codec: Log MMAL flags in hex +Subject: [PATCH 0500/1015] staging/bcm2835_codec: Log MMAL flags in hex The flags is a bitmask, so it's far easier to interpret as hex data instead of decimal. @@ -221356,7 +221283,7 @@ index d2b64a369ae8..202830aee5b6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Sat, 11 Sep 2021 17:21:07 +0100 -Subject: [PATCH 503/991] staging: bcm2835-codec: Allow custom specified +Subject: [PATCH 0501/1015] staging: bcm2835-codec: Allow custom specified strides/bytesperline. If the client provides a bytesperline value in try_fmt/s_fmt then @@ -221401,8 +221328,8 @@ index 202830aee5b6..8e6a3ab629fc 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 6 Aug 2021 15:44:21 +0100 -Subject: [PATCH 504/991] staging/vchiq-mmal: Add the deinterlace image effects - enums +Subject: [PATCH 0502/1015] staging/vchiq-mmal: Add the deinterlace image + effects enums As we're wanting to wrap the image_fx component for deinterlacing, add the deinterlace algorithm values to enum mmal_parameter_imagefx @@ -221433,7 +221360,7 @@ index 844a02bf9a22..622508dc6e27 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Fri, 6 Aug 2021 15:37:16 +0100 -Subject: [PATCH 505/991] staging/bcm2835_codec: Add support for image_fx to +Subject: [PATCH 0503/1015] staging/bcm2835_codec: Add support for image_fx to deinterlace Adds another /dev/video node wrapping image_fx doing deinterlace. @@ -221706,8 +221633,8 @@ index 8e6a3ab629fc..38b59aa21069 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 14 Sep 2021 16:44:18 +0100 -Subject: [PATCH 506/991] staging/bcm2835-v4l2_codec: Fix for encode selection - API +Subject: [PATCH 0504/1015] staging/bcm2835-v4l2_codec: Fix for encode + selection API Matches correct behaviour from DECODE and DEINTERLACE @@ -221736,7 +221663,7 @@ index 38b59aa21069..8df0eb2b532a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 2 Dec 2019 14:48:05 +0000 -Subject: [PATCH 507/991] Add Raspberry Pi PoE+ HAT support +Subject: [PATCH 0505/1015] Add Raspberry Pi PoE+ HAT support Signed-off-by: Serge Schneider --- @@ -222030,7 +221957,7 @@ index 7fdce4033b46..dd3bbc75e531 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 17 Sep 2021 15:18:51 +0100 -Subject: [PATCH 508/991] configs: Add CAN_PEAK_USB=m +Subject: [PATCH 0506/1015] configs: Add CAN_PEAK_USB=m Add the driver for the PEAK Systems USB CAN interface. @@ -222112,7 +222039,7 @@ index 235fecf9c903..6af6d68a8f38 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 22 Sep 2021 09:16:46 +0100 -Subject: [PATCH 509/991] ARM: dts: Restore downstream dtbs to Makefile +Subject: [PATCH 0507/1015] ARM: dts: Restore downstream dtbs to Makefile Signed-off-by: Phil Elwell --- @@ -222149,7 +222076,7 @@ index ab6a5c6ea5ee..6fb13ebc2837 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: John Cox Date: Wed, 1 Sep 2021 16:34:50 +0100 -Subject: [PATCH 510/991] media: rpivid: Avoid returning EINVAL to a G_FMT +Subject: [PATCH 0508/1015] media: rpivid: Avoid returning EINVAL to a G_FMT ioctl V4L2 spec says that G/S/TRY_FMT IOCTLs should never return errors for @@ -222438,7 +222365,7 @@ index a3b228556497..e22cc0e32aa3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 22 Sep 2021 15:38:13 +0100 -Subject: [PATCH 511/991] net: phy: lan87xx: Allow more time for link detect +Subject: [PATCH 0509/1015] net: phy: lan87xx: Allow more time for link detect With EDPWRDOWN set in idle, it must be cleared before checking for ENERGYON going high, indicating that a link is being established. @@ -222482,7 +222409,7 @@ index d8cac02a79b9..c168a7f95a25 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: John Cox Date: Wed, 22 Sep 2021 18:57:19 +0100 -Subject: [PATCH 512/991] media: rpivid: Remove unused ctx state variable and +Subject: [PATCH 0510/1015] media: rpivid: Remove unused ctx state variable and defines Remove unused ctx state tracking variable and associated defines. @@ -222525,7 +222452,7 @@ index aa8448566c09..fe6cf1806410 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: John Cox Date: Wed, 22 Sep 2021 19:05:30 +0100 -Subject: [PATCH 513/991] media: rpivid: Ensure IRQs have completed before +Subject: [PATCH 0511/1015] media: rpivid: Ensure IRQs have completed before uniniting context Before uniniting the decode context sync with the IRQ queues to ensure @@ -222631,7 +222558,7 @@ index e3a5c331ca10..834e34a8373f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 9 Oct 2020 10:40:27 +0100 -Subject: [PATCH 514/991] staging: bcm2835-codec: Allow decode res changed +Subject: [PATCH 0512/1015] staging: bcm2835-codec: Allow decode res changed before STREAMON(CAPTURE) The V4L2 stateful video decoder API requires that you can STREAMON @@ -222875,8 +222802,8 @@ index 8df0eb2b532a..f8fe8effa06d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 15 Sep 2021 17:44:19 +0100 -Subject: [PATCH 515/991] staging/bcm2835-codec: Do not send buffers to the VPU - unless streaming +Subject: [PATCH 0513/1015] staging/bcm2835-codec: Do not send buffers to the + VPU unless streaming With video decode we now enable both input and output ports on the component. This means that buffers will get passed to the VPU @@ -222974,7 +222901,7 @@ index f8fe8effa06d..4156018dbf7a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 15 Sep 2021 17:49:41 +0100 -Subject: [PATCH 516/991] staging/mmal-vchiq: Rationalise included headers +Subject: [PATCH 0514/1015] staging/mmal-vchiq: Rationalise included headers The list of includes was slightly over generic, and wasn't in alphabetical order. Clean it up. @@ -223016,8 +222943,8 @@ index c88393f22d87..e5ba3b067ae3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 16 Sep 2021 16:32:53 +0100 -Subject: [PATCH 517/991] staging: bcm2835-codec: Format changed should trigger - drain +Subject: [PATCH 0515/1015] staging: bcm2835-codec: Format changed should + trigger drain When a format changed event occurs, the spec says that it triggers an implicit drain, and that needs to be signalled @@ -223065,7 +222992,7 @@ index 4156018dbf7a..73afe99268ff 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 16 Sep 2021 16:39:07 +0100 -Subject: [PATCH 518/991] staging: bcm2835-codec: Signal the firmware to stop +Subject: [PATCH 0516/1015] staging: bcm2835-codec: Signal the firmware to stop on all changes The firmware defaults to not stopping video decode if only the @@ -223121,7 +223048,7 @@ index 622508dc6e27..21087496a481 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 15 Sep 2021 17:54:11 +0100 -Subject: [PATCH 519/991] staging/mmal-vchiq: Add module parameter to enable +Subject: [PATCH 0517/1015] staging/mmal-vchiq: Add module parameter to enable logging. Adds a module parameter "debug" to enable various logging levels. @@ -223448,8 +223375,8 @@ index e5ba3b067ae3..139ca5a733cd 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 16 Sep 2021 16:46:58 +0100 -Subject: [PATCH 520/991] staging: bcm2835-codec: Queue flushed buffers instead - of completing +Subject: [PATCH 0518/1015] staging: bcm2835-codec: Queue flushed buffers + instead of completing When a buffer is returned on a port that is disabled, return it to the videobuf2 QUEUED state instead of DONE which returns it @@ -223482,7 +223409,7 @@ index 6c6e0ba34a0b..03c9ccb35ee1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 21 Sep 2021 17:17:57 +0100 -Subject: [PATCH 521/991] staging: mmal-vchiq: Reset buffers_with_vpu on +Subject: [PATCH 0519/1015] staging: mmal-vchiq: Reset buffers_with_vpu on port_enable Should we go through the timeout failure case with port_disable @@ -223519,7 +223446,7 @@ index 139ca5a733cd..87194606185a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 22 Sep 2021 16:42:49 +0100 -Subject: [PATCH 522/991] staging: bcm2835_codec: Correct flushing code for +Subject: [PATCH 0520/1015] staging: bcm2835_codec: Correct flushing code for refcounting Completions don't reference count, so setting the completion @@ -223617,7 +223544,7 @@ index 03c9ccb35ee1..1b8611549f4f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 20 Sep 2021 15:00:51 +0100 -Subject: [PATCH 523/991] staging: bcm2835-codec: Ensure all ctrls are set on +Subject: [PATCH 0521/1015] staging: bcm2835-codec: Ensure all ctrls are set on streamon Currently the code was only setting some controls from @@ -223734,8 +223661,8 @@ index 1b8611549f4f..f5eaff3e4612 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 20 Sep 2021 14:37:17 +0100 -Subject: [PATCH 524/991] staging: bcm2835-codec: Add support for H&V Flips to - ISP +Subject: [PATCH 0522/1015] staging: bcm2835-codec: Add support for H&V Flips + to ISP The ISP can do H & V flips whilst resizing or converting the image, so expose that via V4L2_CID_[H|V]FLIP. @@ -223825,7 +223752,8 @@ index f5eaff3e4612..6078d6e2ace0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Guennadi Liakhovetski Date: Sun, 19 Sep 2021 13:30:43 +0200 -Subject: [PATCH 525/991] overlays: add support for the MLX90640 thermal camera +Subject: [PATCH 0523/1015] overlays: add support for the MLX90640 thermal + camera This allows using the video-i2c camera driver with MLX90640 thermal infrared sensors, connected to Raspberry Pi. CONFIG_VIDEO_V4L2_I2C @@ -223903,7 +223831,7 @@ index 000000000000..a2655ed82585 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: GabyPCgeeK Date: Mon, 27 Sep 2021 04:43:21 -0400 -Subject: [PATCH 526/991] overlays: Add generic mcp2515 overlay +Subject: [PATCH 0524/1015] overlays: Add generic mcp2515 overlay Can configure mcp2515 on spi0/1/2 without the need for multiple overlays. --- @@ -224120,7 +224048,7 @@ index 000000000000..cda1fb0b1199 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 21 Sep 2021 15:32:50 +0100 -Subject: [PATCH 527/991] regulator: rpi-panel: Remove get_brightness hook +Subject: [PATCH 0525/1015] regulator: rpi-panel: Remove get_brightness hook The driver was implementing a get_brightness function that tried to read back the PWM setting of the display to report @@ -224180,7 +224108,7 @@ index 998233f14085..8090b9a485b5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: madimario Date: Tue, 28 Sep 2021 04:20:06 -0400 -Subject: [PATCH 528/991] bcm2835_smi_dev: Fix handling of word-odd lengths +Subject: [PATCH 0526/1015] bcm2835_smi_dev: Fix handling of word-odd lengths The read and write functions did not use the correct pointer offset when dealing with an odd number of bytes after a DMA transfer. Also, @@ -224277,7 +224205,7 @@ index 9db8f1e3db0f..34976fa4ed59 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Juerg Haefliger Date: Wed, 29 Sep 2021 11:39:46 +0200 -Subject: [PATCH 529/991] Revert "mmc: sdhci-iproc: Fix vmmc regulators on +Subject: [PATCH 0527/1015] Revert "mmc: sdhci-iproc: Fix vmmc regulators on iProc" This reverts commit aed19399a01733dbad9be8bf026a4f7dd823b04f. @@ -224328,7 +224256,7 @@ index 37b0e1cfe7b7..032bf852397f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Juerg Haefliger Date: Wed, 29 Sep 2021 11:42:23 +0200 -Subject: [PATCH 530/991] mmc: sdhci-iproc: Fix vmmc regulators (pre-bcm2711) +Subject: [PATCH 0528/1015] mmc: sdhci-iproc: Fix vmmc regulators (pre-bcm2711) The Linux support for controlling card power via regulators appears to be contentious. I would argue that the default behaviour is contrary to @@ -224362,7 +224290,7 @@ index 032bf852397f..499046ab8113 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Lee Jackson Date: Fri, 27 Aug 2021 14:36:55 +0800 -Subject: [PATCH 531/991] dt-bindings: media: i2c: Add IMX519 CMOS sensor +Subject: [PATCH 0529/1015] dt-bindings: media: i2c: Add IMX519 CMOS sensor binding Add YAML device tree binding for IMX519 CMOS image sensor, and @@ -224495,10 +224423,10 @@ index 000000000000..717230a21764 + +... diff --git a/MAINTAINERS b/MAINTAINERS -index 1777d31b7bb1..b85a51d5abf2 100644 +index 258997f34548..d245122be4b5 100644 --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -17531,6 +17531,14 @@ F: Documentation/devicetree/bindings/media/i2c/imx378.yaml +@@ -17533,6 +17533,14 @@ F: Documentation/devicetree/bindings/media/i2c/imx378.yaml F: Documentation/devicetree/bindings/media/i2c/imx477.yaml F: drivers/media/i2c/imx477.c @@ -224520,7 +224448,7 @@ index 1777d31b7bb1..b85a51d5abf2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Lee Jackson Date: Fri, 27 Aug 2021 13:48:52 +0800 -Subject: [PATCH 532/991] media: i2c: Add driver for IMX519 sensor +Subject: [PATCH 0530/1015] media: i2c: Add driver for IMX519 sensor Adds a driver for the 16MPix IMX519 CSI2 sensor. Whilst the sensor supports 2 or 4 CSI2 data lanes, this driver @@ -226613,7 +226541,7 @@ index 000000000000..5eaf1f28da35 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Arducam Date: Wed, 15 Sep 2021 09:02:08 +0800 -Subject: [PATCH 533/991] media: i2c: imx519: Advertise embedded data node on +Subject: [PATCH 0531/1015] media: i2c: imx519: Advertise embedded data node on media pad 1 This commit updates the imx519 driver to adverise support for embedded @@ -226868,7 +226796,7 @@ index 5eaf1f28da35..fe7e49a70367 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Lee Jackson Date: Thu, 26 Aug 2021 11:15:26 +0800 -Subject: [PATCH 534/991] configs: Add CONFIG_VIDEO_IMX519=m +Subject: [PATCH 0532/1015] configs: Add CONFIG_VIDEO_IMX519=m Include the driver module for the IMX519. @@ -226948,7 +226876,7 @@ index 6af6d68a8f38..6b0ca5314ab3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Lee Jackson Date: Fri, 27 Aug 2021 14:45:43 +0800 -Subject: [PATCH 535/991] overlays: Add imx519-overlay.dts +Subject: [PATCH 0533/1015] overlays: Add imx519-overlay.dts Added overlays for enabling IMX519 and add the relevant information to the README. @@ -227123,8 +227051,8 @@ index 000000000000..693c267af1f0 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 4 Oct 2021 14:15:38 +0100 -Subject: [PATCH 536/991] dtoverlays: Add overlay for ST7735R (160x128) TinyDRM - driver +Subject: [PATCH 0534/1015] dtoverlays: Add overlay for ST7735R (160x128) + TinyDRM driver Adds an overlay to configure the TinyDRM driver for ST7735R based 160x128 and 128x128 (untested) displays such as the @@ -227274,7 +227202,7 @@ index 000000000000..bf186811ec5d From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Wed, 6 Oct 2021 15:27:53 +0100 -Subject: [PATCH 537/991] dwc_otg: pay attention to qh->interval when +Subject: [PATCH 0535/1015] dwc_otg: pay attention to qh->interval when rescheduling periodic queues A regression introduced in https://github.com/raspberrypi/linux/pull/3887 @@ -227309,7 +227237,7 @@ index 4503af692aef..f51fad1e6b70 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Joerg Schambacher Date: Wed, 6 Oct 2021 17:19:58 +0200 -Subject: [PATCH 538/991] Hifiberry DAC+ADCPro DT overlay: add optional +Subject: [PATCH 0536/1015] Hifiberry DAC+ADCPro DT overlay: add optional headphone amp This is a copy of the approach from our DAC+ driver. @@ -227344,7 +227272,7 @@ index cafa2ccd7ff7..561cd84bbb79 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Joerg Schambacher Date: Wed, 6 Oct 2021 17:21:07 +0200 -Subject: [PATCH 539/991] Hifiberry DAC+ADCPro: adding optional headphone amp +Subject: [PATCH 0537/1015] Hifiberry DAC+ADCPro: adding optional headphone amp control This is a copy of the code and approach from our DAC+ driver. @@ -227495,7 +227423,8 @@ index 79eccdb4dc8c..517a70fba7d7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Sten Spans Date: Tue, 12 Oct 2021 20:10:00 +0200 -Subject: [PATCH 540/991] Add module for 8111h chip used in various CM4 boards +Subject: [PATCH 0538/1015] Add module for 8111h chip used in various CM4 + boards --- arch/arm/configs/bcm2711_defconfig | 1 + @@ -227533,8 +227462,8 @@ index d1966d92664b..234e68865bff 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 14 Oct 2021 11:09:18 +0100 -Subject: [PATCH 541/991] drivers/gpio: Add a driver that wraps the PWM API as - a GPIO controller +Subject: [PATCH 0539/1015] drivers/gpio: Add a driver that wraps the PWM API + as a GPIO controller For cases where spare PWM outputs are available, but are desired to be addressed a standard outputs instead. @@ -227736,7 +227665,7 @@ index 000000000000..89f5d6b353ab From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 15 Oct 2021 11:45:36 +0100 -Subject: [PATCH 542/991] rtc: pcf85063: Always clear EXT_TEST from set_time +Subject: [PATCH 0540/1015] rtc: pcf85063: Always clear EXT_TEST from set_time Power-on reset after the insertion of a battery does not always complete successfully, leading to corrupted register content. The EXT_TEST bit @@ -227778,7 +227707,7 @@ index 14da4ab30104..ea75b71a1f16 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 11 Oct 2021 17:33:05 +0100 -Subject: [PATCH 543/991] char: vcio: Rewrite as a firmware node child +Subject: [PATCH 0541/1015] char: vcio: Rewrite as a firmware node child The old vcio driver is a simple character device that manually locates the firmware driver. Initialising it before the firmware driver causes @@ -228021,7 +227950,7 @@ index a39155a94fb7..ac314617229c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 12 Oct 2021 09:59:54 +0100 -Subject: [PATCH 544/991] ARM: dts: Make vcio a child of the firmware node +Subject: [PATCH 0542/1015] ARM: dts: Make vcio a child of the firmware node In order to resolve a potential startup order bug, the vcio driver has been rewritten as a platform driver that depends on a DT node for @@ -228057,7 +227986,7 @@ index 68a7e1c09db1..dc302248ae2a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 18 Oct 2021 11:12:42 +0100 -Subject: [PATCH 545/991] ARM: dts: bcm2835_audio missing firmware reference +Subject: [PATCH 0543/1015] ARM: dts: bcm2835_audio missing firmware reference The firmware driver has been changed to count its clients. An earlier commit removed the downstream patch permitting the hacky technique of @@ -228092,7 +228021,7 @@ index dc302248ae2a..efca67213816 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 18 Oct 2021 11:13:35 +0100 -Subject: [PATCH 546/991] ARM: dts: Delete vestigial vcsm node +Subject: [PATCH 0544/1015] ARM: dts: Delete vestigial vcsm node Signed-off-by: Phil Elwell --- @@ -228123,7 +228052,7 @@ index efca67213816..57e7d5f60d3e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 18 Oct 2021 16:39:11 +0100 -Subject: [PATCH 547/991] config: Enable FSFS_FS_SECURITY +Subject: [PATCH 0545/1015] config: Enable FSFS_FS_SECURITY Add a negligible amount of core kernel code for capability-based access control on F2FS. @@ -228206,7 +228135,7 @@ index 6b0ca5314ab3..f16857163068 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 19 Oct 2021 11:23:43 +0100 -Subject: [PATCH 548/991] gpio: bcm-virt: Fix the get() method +Subject: [PATCH 0546/1015] gpio: bcm-virt: Fix the get() method The get() method does not understand the on-the-wire encoding of the remote GPIO states, thinking they are simple on/off bits when they are @@ -228241,7 +228170,7 @@ index 49e28ad9760e..55c40190e88a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Erik Tagirov Date: Wed, 20 Oct 2021 09:51:26 +0200 -Subject: [PATCH 549/991] configs: Add CONFIG_FB_SIMPLE to bcmrpi3_defconfig +Subject: [PATCH 0547/1015] configs: Add CONFIG_FB_SIMPLE to bcmrpi3_defconfig See: https://github.com/raspberrypi/linux/pull/4640 @@ -228269,7 +228198,7 @@ index f16857163068..b252255397fa 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 21 Oct 2021 14:41:55 +0100 -Subject: [PATCH 550/991] media: i2c: imx219: Sensor should report RAW color +Subject: [PATCH 0548/1015] media: i2c: imx219: Sensor should report RAW color space Tested on Raspberry Pi running libcamera. @@ -228308,7 +228237,7 @@ index e10af3f74b38..7ef1f2b9b7a8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 21 Oct 2021 14:44:01 +0100 -Subject: [PATCH 551/991] media: i2c: imx290: Sensor should report RAW color +Subject: [PATCH 0549/1015] media: i2c: imx290: Sensor should report RAW color space Tested on Raspberry Pi running libcamera. @@ -228338,7 +228267,7 @@ index 4291c77f5a01..a6f4ba5b9345 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 21 Oct 2021 14:44:43 +0100 -Subject: [PATCH 552/991] media: i2c: imx477: Sensor should report RAW color +Subject: [PATCH 0550/1015] media: i2c: imx477: Sensor should report RAW color space Tested on Raspberry Pi running libcamera. @@ -228368,7 +228297,7 @@ index 96486a7f007c..54bc4e858081 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 21 Oct 2021 14:45:07 +0100 -Subject: [PATCH 553/991] media: i2c: imx519: Sensor should report RAW color +Subject: [PATCH 0551/1015] media: i2c: imx519: Sensor should report RAW color space Tested on Raspberry Pi running libcamera. @@ -228398,7 +228327,7 @@ index fe7e49a70367..fa09cfca8afe 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 21 Oct 2021 14:47:00 +0100 -Subject: [PATCH 554/991] media: i2c: ov5647: Sensor should report RAW color +Subject: [PATCH 0552/1015] media: i2c: ov5647: Sensor should report RAW color space Tested on Raspberry Pi running libcamera. @@ -228455,7 +228384,7 @@ index 4b6f4962e644..ac9074acdd9c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 21 Oct 2021 14:47:20 +0100 -Subject: [PATCH 555/991] media: i2c: ov9281: Sensor should report RAW color +Subject: [PATCH 0553/1015] media: i2c: ov9281: Sensor should report RAW color space Tested on Raspberry Pi running libcamera. @@ -228503,8 +228432,8 @@ index e4604746e930..f0d5551b23c1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 21 Oct 2021 14:49:15 +0100 -Subject: [PATCH 556/991] vc04_services: isp: Report input node as wanting full - range RAW color space +Subject: [PATCH 0554/1015] vc04_services: isp: Report input node as wanting + full range RAW color space RAW color spaces are more usually reported as having full range quantization. @@ -228538,7 +228467,7 @@ index 00b044e7d77e..c62f2fb25e94 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 23 Sep 2020 15:16:18 +0100 -Subject: [PATCH 557/991] media/bcm2835-unicam: Parse pad numbers correctly +Subject: [PATCH 0555/1015] media/bcm2835-unicam: Parse pad numbers correctly The driver was making big assumptions about the source device using pad 0 and 1, which doesn't follow for more complex @@ -228775,7 +228704,7 @@ index f1ea1c2da6c3..642764ebf4b8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 15 Oct 2021 17:57:27 +0100 -Subject: [PATCH 558/991] media/bcm2835-unicam: Add support for configuration +Subject: [PATCH 0556/1015] media/bcm2835-unicam: Add support for configuration via MC API Adds Media Controller API support for more complex pipelines. @@ -231494,7 +231423,7 @@ index 642764ebf4b8..80196cd1a54c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 25 Oct 2021 11:48:18 +0100 -Subject: [PATCH 559/991] ARM: dts: vc4-kms-v3d: Always disable firmware HDMI +Subject: [PATCH 0557/1015] ARM: dts: vc4-kms-v3d: Always disable firmware HDMI Both the firmware audio driver and the vc4-kms-v3d driver are capable of providing HDMI audio, but only one should be active at any time. @@ -231549,8 +231478,8 @@ index 4285e12a4e53..76229cad7803 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: soyer Date: Sat, 23 Oct 2021 12:23:50 +0200 -Subject: [PATCH 560/991] staging/bcm2835-camera: Add support for H264_MIN_QP, - H264_MAX_QP +Subject: [PATCH 0558/1015] staging/bcm2835-camera: Add support for + H264_MIN_QP, H264_MAX_QP Signed-off-by: Gergo Koteles --- @@ -231611,7 +231540,7 @@ index f3480a5c5170..de59f435696d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Gergo Koteles Date: Sun, 24 Oct 2021 23:18:09 +0200 -Subject: [PATCH 561/991] staging/bcm2835-camera: Add support for +Subject: [PATCH 0559/1015] staging/bcm2835-camera: Add support for MPEG_VIDEO_FORCE_KEY_FRAME Signed-off-by: Gergo Koteles @@ -231662,7 +231591,7 @@ index de59f435696d..b1b02fbc473d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 9 Sep 2021 10:37:15 +0100 -Subject: [PATCH 562/991] ARM: dts: Add Pi Zero 2 support +Subject: [PATCH 0560/1015] ARM: dts: Add Pi Zero 2 support Signed-off-by: Phil Elwell --- @@ -231895,7 +231824,7 @@ index 000000000000..f76f553599ef From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 19 Oct 2021 14:13:53 +0100 -Subject: [PATCH 563/991] clk-raspberrypi: Support VEC clock +Subject: [PATCH 0561/1015] clk-raspberrypi: Support VEC clock Signed-off-by: Dom Cobley --- @@ -231937,7 +231866,7 @@ index 1e1bee7f43ed..c4829d62faad 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 19 Oct 2021 14:15:45 +0100 -Subject: [PATCH 564/991] dt: Move VEC clock to clk-raspberrypi +Subject: [PATCH 0562/1015] dt: Move VEC clock to clk-raspberrypi clk-2835 is deprecated and gets an innacurate clock for VEC (107MHz). Switch to clk-raspberrypi which uses the right PLL to get an accurate 108MHz. @@ -231981,7 +231910,7 @@ index 06d8c3882cb7..15f3975f1ca1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 19 Oct 2021 14:14:55 +0100 -Subject: [PATCH 565/991] clk-bcm2835: Remove VEC clock support +Subject: [PATCH 0563/1015] clk-bcm2835: Remove VEC clock support Signed-off-by: Dom Cobley --- @@ -232021,7 +231950,7 @@ index e4dfbe2cf50e..7112a9c4f7e3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 27 Apr 2021 14:24:21 +0200 -Subject: [PATCH 566/991] drm/vc4: Add support for gamma on BCM2711 +Subject: [PATCH 0564/1015] drm/vc4: Add support for gamma on BCM2711 BCM2711 changes from a 256 entry lookup table to a 16 point piecewise linear function as the pipeline bitdepth has increased @@ -232043,7 +231972,7 @@ Signed-off-by: Maxime Ripard 4 files changed, 159 insertions(+), 13 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c -index 3a612cb347b9..e63e08d7932d 100644 +index 5158992ef6a7..7cda521b3955 100644 --- a/drivers/gpu/drm/vc4/vc4_crtc.c +++ b/drivers/gpu/drm/vc4/vc4_crtc.c @@ -1164,19 +1164,42 @@ int vc4_crtc_init(struct drm_device *drm, struct vc4_crtc *vc4_crtc, @@ -232096,7 +232025,7 @@ index 3a612cb347b9..e63e08d7932d 100644 return 0; diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h -index 48d5d13f38a3..56d014b91e4e 100644 +index a4739507984a..5e1a8fa50300 100644 --- a/drivers/gpu/drm/vc4/vc4_drv.h +++ b/drivers/gpu/drm/vc4/vc4_drv.h @@ -19,6 +19,7 @@ @@ -232149,7 +232078,7 @@ index 48d5d13f38a3..56d014b91e4e 100644 struct drm_pending_vblank_event *event; diff --git a/drivers/gpu/drm/vc4/vc4_hvs.c b/drivers/gpu/drm/vc4/vc4_hvs.c -index ab79d0a82a19..73751bd6775a 100644 +index 327ffe2fcbb5..e9df33b586a7 100644 --- a/drivers/gpu/drm/vc4/vc4_hvs.c +++ b/drivers/gpu/drm/vc4/vc4_hvs.c @@ -236,6 +236,80 @@ static void vc4_hvs_update_gamma_lut(struct drm_crtc *crtc) @@ -232230,10 +232159,10 @@ index ab79d0a82a19..73751bd6775a 100644 + vc5_hvs_lut_load(crtc); +} + - int vc4_hvs_get_fifo_from_output(struct drm_device *dev, unsigned int output) + u8 vc4_hvs_get_fifo_frame_count(struct drm_device *dev, unsigned int fifo) { struct vc4_dev *vc4 = to_vc4_dev(dev); -@@ -329,14 +403,16 @@ static int vc4_hvs_init_channel(struct vc4_dev *vc4, struct drm_crtc *crtc, +@@ -352,14 +426,16 @@ static int vc4_hvs_init_channel(struct vc4_dev *vc4, struct drm_crtc *crtc, dispbkgndx &= ~SCALER_DISPBKGND_INTERLACE; HVS_WRITE(SCALER_DISPBKGNDX(chan), dispbkgndx | @@ -232253,7 +232182,7 @@ index ab79d0a82a19..73751bd6775a 100644 return 0; } -@@ -534,7 +610,10 @@ void vc4_hvs_atomic_flush(struct drm_crtc *crtc, +@@ -557,7 +633,10 @@ void vc4_hvs_atomic_flush(struct drm_crtc *crtc, u32 dispbkgndx = HVS_READ(SCALER_DISPBKGNDX(vc4_state->assigned_channel)); if (crtc->state->gamma_lut) { @@ -232266,10 +232195,10 @@ index ab79d0a82a19..73751bd6775a 100644 } else { /* Unsetting DISPBKGND_GAMMA skips the gamma lut step diff --git a/drivers/gpu/drm/vc4/vc4_regs.h b/drivers/gpu/drm/vc4/vc4_regs.h -index 7538b84a6dca..5989b2ff28c7 100644 +index e3761ffbac7b..9ac2b7f122ee 100644 --- a/drivers/gpu/drm/vc4/vc4_regs.h +++ b/drivers/gpu/drm/vc4/vc4_regs.h -@@ -491,6 +491,28 @@ +@@ -499,6 +499,28 @@ #define SCALER_DLIST_START 0x00002000 #define SCALER_DLIST_SIZE 0x00004000 @@ -232305,7 +232234,7 @@ index 7538b84a6dca..5989b2ff28c7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 28 Apr 2021 12:32:10 +0200 -Subject: [PATCH 567/991] drm/vc4: Add debugfs node that dumps the vc5 gamma +Subject: [PATCH 0565/1015] drm/vc4: Add debugfs node that dumps the vc5 gamma PWL entries This helps with debugging the conversion from a 256 point gamma LUT to @@ -232320,7 +232249,7 @@ Signed-off-by: Maxime Ripard 1 file changed, 81 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_hvs.c b/drivers/gpu/drm/vc4/vc4_hvs.c -index 73751bd6775a..6fbf26e9f113 100644 +index e9df33b586a7..d0637293bb59 100644 --- a/drivers/gpu/drm/vc4/vc4_hvs.c +++ b/drivers/gpu/drm/vc4/vc4_hvs.c @@ -134,6 +134,84 @@ static int vc4_hvs_debugfs_dlist(struct seq_file *m, void *data) @@ -232408,7 +232337,7 @@ index 73751bd6775a..6fbf26e9f113 100644 /* The filter kernel is composed of dwords each containing 3 9-bit * signed integers packed next to each other. */ -@@ -809,6 +887,9 @@ static int vc4_hvs_bind(struct device *dev, struct device *master, void *data) +@@ -848,6 +926,9 @@ static int vc4_hvs_bind(struct device *dev, struct device *master, void *data) NULL); vc4_debugfs_add_file(drm, "hvs_dlists", vc4_hvs_debugfs_dlist, NULL); @@ -232425,7 +232354,7 @@ index 73751bd6775a..6fbf26e9f113 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 14 Jun 2021 15:28:30 +0200 -Subject: [PATCH 568/991] drm/vc4: hvs: Force modeset on gamma lut change +Subject: [PATCH 0566/1015] drm/vc4: hvs: Force modeset on gamma lut change The HVS Gamma block can only be updated when idle, so we need to disable the HVS channel when the gamma property is set in an atomic commit. @@ -232442,7 +232371,7 @@ Signed-off-by: Maxime Ripard 3 files changed, 51 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c -index e63e08d7932d..29165868cc66 100644 +index 7cda521b3955..393f1bc85871 100644 --- a/drivers/gpu/drm/vc4/vc4_crtc.c +++ b/drivers/gpu/drm/vc4/vc4_crtc.c @@ -294,6 +294,23 @@ struct drm_encoder *vc4_get_crtc_encoder(struct drm_crtc *crtc, @@ -232470,7 +232399,7 @@ index e63e08d7932d..29165868cc66 100644 { struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h -index 56d014b91e4e..67a70d38e22e 100644 +index 5e1a8fa50300..ef8bc5c44376 100644 --- a/drivers/gpu/drm/vc4/vc4_drv.h +++ b/drivers/gpu/drm/vc4/vc4_drv.h @@ -568,6 +568,9 @@ vc4_crtc_to_vc4_pv_data(const struct vc4_crtc *crtc) @@ -232484,10 +232413,10 @@ index 56d014b91e4e..67a70d38e22e 100644 struct drm_crtc_state *state); diff --git a/drivers/gpu/drm/vc4/vc4_hvs.c b/drivers/gpu/drm/vc4/vc4_hvs.c -index 6fbf26e9f113..6372c48097d5 100644 +index d0637293bb59..ca3870bac136 100644 --- a/drivers/gpu/drm/vc4/vc4_hvs.c +++ b/drivers/gpu/drm/vc4/vc4_hvs.c -@@ -519,6 +519,36 @@ void vc4_hvs_stop_channel(struct drm_device *dev, unsigned int chan) +@@ -542,6 +542,36 @@ void vc4_hvs_stop_channel(struct drm_device *dev, unsigned int chan) SCALER_DISPSTATX_EMPTY); } @@ -232524,7 +232453,7 @@ index 6fbf26e9f113..6372c48097d5 100644 int vc4_hvs_atomic_check(struct drm_crtc *crtc, struct drm_atomic_state *state) { struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state, crtc); -@@ -549,7 +579,7 @@ int vc4_hvs_atomic_check(struct drm_crtc *crtc, struct drm_atomic_state *state) +@@ -572,7 +602,7 @@ int vc4_hvs_atomic_check(struct drm_crtc *crtc, struct drm_atomic_state *state) if (ret) return ret; @@ -232540,7 +232469,8 @@ index 6fbf26e9f113..6372c48097d5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: neocortex-vision Date: Thu, 28 Oct 2021 17:37:36 +0100 -Subject: [PATCH 569/991] media: i2c: imx477: Add vsync trigger_mode parameter +Subject: [PATCH 0567/1015] media: i2c: imx477: Add vsync trigger_mode + parameter trigger_mode == 0 (default) => no effect / no registers written trigger_mode == 1 => source @@ -232610,7 +232540,7 @@ index 54bc4e858081..2b4dfdd7975a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mateusz Kwiatkowski Date: Thu, 15 Jul 2021 01:08:08 +0200 -Subject: [PATCH 570/991] drm/vc4: Relax VEC modeline requirements and add +Subject: [PATCH 0568/1015] drm/vc4: Relax VEC modeline requirements and add progressive mode support Make vc4_vec_encoder_atomic_check() accept arbitrary modelines, as long @@ -232625,7 +232555,7 @@ Signed-off-by: Mateusz Kwiatkowski 2 files changed, 83 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c -index 29165868cc66..5813b4ab619e 100644 +index 393f1bc85871..38fd3b7d9b38 100644 --- a/drivers/gpu/drm/vc4/vc4_crtc.c +++ b/drivers/gpu/drm/vc4/vc4_crtc.c @@ -410,6 +410,7 @@ static void vc4_crtc_config_pv(struct drm_crtc *crtc, struct drm_encoder *encode @@ -232774,7 +232704,7 @@ index b684595a5d0b..661fac65b8a8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mateusz Kwiatkowski Date: Thu, 15 Jul 2021 01:08:11 +0200 -Subject: [PATCH 571/991] drm/vc4: Make VEC progressive modes readily +Subject: [PATCH 0569/1015] drm/vc4: Make VEC progressive modes readily accessible Add predefined modelines for the 240p (NTSC) and 288p (PAL) progressive @@ -232946,7 +232876,8 @@ index 661fac65b8a8..d263fdaa1ee8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Sun, 31 Oct 2021 11:47:59 +0000 -Subject: [PATCH 572/991] bcm2835-v4l2-codec: Remove advertised support of VP8 +Subject: [PATCH 0570/1015] bcm2835-v4l2-codec: Remove advertised support of + VP8 The support for this format by firmware is very limited and won't be faster than the arm. @@ -232979,7 +232910,7 @@ index 6078d6e2ace0..97c8afa0861e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 1 Nov 2021 15:44:31 +0000 -Subject: [PATCH 573/991] ARM: dts: Rename Zero 2 W DT files +Subject: [PATCH 0571/1015] ARM: dts: Rename Zero 2 W DT files Retain the old names for backwards compatibility for a while, while the necessary firmware change rolls out. @@ -233377,7 +233308,7 @@ index 42185a450666..daa12bd30d6b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 2 Nov 2021 11:13:42 +0000 -Subject: [PATCH 574/991] brcmfmac: Don't promote INFO logging to ERR +Subject: [PATCH 0572/1015] brcmfmac: Don't promote INFO logging to ERR An unwanted side effect of enabling the BRCMDBG config setting is redefining brcmf_info to be brcmf_err. This can be alarming to users @@ -233415,7 +233346,7 @@ index 9bb5f709d41a..ca49700cca50 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 21 Oct 2021 15:06:02 +0100 -Subject: [PATCH 575/991] dtoverlays: Update all image sensor overlays for +Subject: [PATCH 0573/1015] dtoverlays: Update all image sensor overlays for Media Controller option Add an option to enable configuration via the Media Controller API @@ -233778,7 +233709,7 @@ index a1f8af36d2e7..d679d9ba84b6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 26 Oct 2021 16:38:44 +0100 -Subject: [PATCH 576/991] ARM: dt: Add DT nodes for the WLAN interfaces +Subject: [PATCH 0574/1015] ARM: dt: Add DT nodes for the WLAN interfaces Mirror upstream changes into the downstream dts files. @@ -233869,7 +233800,7 @@ index 6d0f0c9aae0f..2bd223a405a7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 28 Oct 2021 15:03:16 +0100 -Subject: [PATCH 577/991] brcmfmac: Read alternative firmware names from DT +Subject: [PATCH 0575/1015] brcmfmac: Read alternative firmware names from DT Add the ability to load the names of alternative firmwares from the Device Tree node. This permits separate firmwares for 43436s and 43438 @@ -234075,7 +234006,7 @@ index 89de65d32ed5..88c08fee58f6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 28 Oct 2021 15:09:25 +0100 -Subject: [PATCH 578/991] ARM: dts: Provide WLAN firmware names for Zero 2 W +Subject: [PATCH 0576/1015] ARM: dts: Provide WLAN firmware names for Zero 2 W BCM43430/2 may be BCM43430B0 or BCM43436P, and BCM43430/1 can be either BCM43430A1 or BCM43436S, the former being upstream names and the @@ -234121,7 +234052,7 @@ index 2bd223a405a7..1cd3d01a166d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 2 Nov 2021 16:01:36 +0000 -Subject: [PATCH 579/991] drm: Check whether the gamma lut has changed before +Subject: [PATCH 0577/1015] drm: Check whether the gamma lut has changed before updating drm_crtc_legacy_gamma_set updates the gamma_lut blob unconditionally, @@ -234160,7 +234091,7 @@ index bb14f488c8f6..f99b77d15dac 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 3 Nov 2021 11:53:13 +0000 -Subject: [PATCH 580/991] brcmfmac: Protect against reprobing +Subject: [PATCH 0578/1015] brcmfmac: Protect against reprobing It is important to reinitialise the firmware array pointers to protect against the case that the brcmfmac driver is reprobed without first @@ -234205,7 +234136,7 @@ index 88c08fee58f6..67b0ad9819f4 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 20 Oct 2021 13:31:22 +0200 -Subject: [PATCH 581/991] drm/vc4: kms: Fix return code check +Subject: [PATCH 0579/1015] drm/vc4: kms: Fix return code check The HVS global state functions return an error pointer, but in most cases we check if it's NULL, possibly resulting in an invalid pointer @@ -234253,7 +234184,7 @@ index 2bf3436e4512..0334529fa3ea 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 4 Nov 2021 14:04:37 +0100 -Subject: [PATCH 582/991] drm/vc4: kms: Move clock request to our HVS state +Subject: [PATCH 0580/1015] drm/vc4: kms: Move clock request to our HVS state Our current clock request has been stored so far on the main HVS structure, but even though we shouldn't have two commits in parallel and @@ -234269,7 +234200,7 @@ Signed-off-by: Maxime Ripard 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h -index 67a70d38e22e..81bca15b31e2 100644 +index ef8bc5c44376..d956daf7d36b 100644 --- a/drivers/gpu/drm/vc4/vc4_drv.h +++ b/drivers/gpu/drm/vc4/vc4_drv.h @@ -326,7 +326,6 @@ struct vc4_hvs { @@ -234320,7 +234251,7 @@ index 0334529fa3ea..6d78cd5335c8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Wed, 3 Nov 2021 12:21:14 +0100 -Subject: [PATCH 583/991] overlays: Add fbtft overlay +Subject: [PATCH 0581/1015] overlays: Add fbtft overlay MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -235106,7 +235037,7 @@ index 000000000000..db45f8c53bcc From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 10 Nov 2021 09:48:50 +0000 -Subject: [PATCH 584/991] configs: Regenerate defconfigs +Subject: [PATCH 0582/1015] configs: Regenerate defconfigs Signed-off-by: Phil Elwell --- @@ -235224,7 +235155,7 @@ index b252255397fa..29d98dc91225 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 10 Nov 2021 09:52:22 +0000 -Subject: [PATCH 585/991] configs: Add NTFS3 support +Subject: [PATCH 0583/1015] configs: Add NTFS3 support ntfs3 provides improved support for NTFS filesystems without the performance hit of a userspace FUSE filesystem. @@ -235305,7 +235236,7 @@ index 29d98dc91225..38fff49a5951 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 10 Nov 2021 09:54:35 +0000 -Subject: [PATCH 586/991] configs: Add kernel SMB3 server support +Subject: [PATCH 0584/1015] configs: Add kernel SMB3 server support Enable the in-kernel (module) SMB3 server. @@ -235385,7 +235316,7 @@ index 38fff49a5951..82c996f54a8d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: arturo182 Date: Tue, 9 Nov 2021 16:21:56 +0100 -Subject: [PATCH 587/991] config: Set TCA8418 to module +Subject: [PATCH 0585/1015] config: Set TCA8418 to module This chip is a popular way to add a matrix keyboard using I2C. --- @@ -235463,7 +235394,7 @@ index 82c996f54a8d..4e7296ad96c2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 11 Nov 2021 10:24:02 +0000 -Subject: [PATCH 588/991] overlays: Additional parameters for gpio-poweroff +Subject: [PATCH 0586/1015] overlays: Additional parameters for gpio-poweroff The gpio-poweroff driver supports active-delay-ms and inactive-delay-ms properties. Add parameters to set these parameters - active_delay_ms @@ -235521,7 +235452,7 @@ index 416aa2bc797a..8153f83f0427 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: VMsunghwan Date: Tue, 16 Nov 2021 03:24:36 +0900 -Subject: [PATCH 589/991] configs: Add TCA6416 driver module +Subject: [PATCH 0587/1015] configs: Add TCA6416 driver module Add a matrix keyboard on I2C @@ -235601,7 +235532,7 @@ index 4e7296ad96c2..5a8cc83a7386 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 8 Nov 2021 13:55:15 +0000 -Subject: [PATCH 590/991] drm: Fix double free from checking if gamma lut has +Subject: [PATCH 0588/1015] drm: Fix double free from checking if gamma lut has been updated The code falls through to "fail" under all conditions, so there is no @@ -235633,7 +235564,7 @@ index f99b77d15dac..da282e7454a8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 8 Nov 2021 17:32:45 +0000 -Subject: [PATCH 591/991] drm/vc4: Enable gamma block only when required. +Subject: [PATCH 0589/1015] drm/vc4: Enable gamma block only when required. With HVS5 the gamma block is now only reprogrammed with a disable/enable. Loading the table from vc4_hvs_init_channel @@ -235651,10 +235582,10 @@ Signed-off-by: Dave Stevenson 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hvs.c b/drivers/gpu/drm/vc4/vc4_hvs.c -index 6372c48097d5..1302260d7d87 100644 +index ca3870bac136..0a9b2ea949e3 100644 --- a/drivers/gpu/drm/vc4/vc4_hvs.c +++ b/drivers/gpu/drm/vc4/vc4_hvs.c -@@ -480,8 +480,12 @@ static int vc4_hvs_init_channel(struct vc4_dev *vc4, struct drm_crtc *crtc, +@@ -503,8 +503,12 @@ static int vc4_hvs_init_channel(struct vc4_dev *vc4, struct drm_crtc *crtc, dispbkgndx &= ~SCALER_DISPBKGND_GAMMA; dispbkgndx &= ~SCALER_DISPBKGND_INTERLACE; @@ -235668,7 +235599,7 @@ index 6372c48097d5..1302260d7d87 100644 (interlace ? SCALER_DISPBKGND_INTERLACE : 0)); /* Reload the LUT, since the SRAMs would have been disabled if -@@ -718,17 +722,25 @@ void vc4_hvs_atomic_flush(struct drm_crtc *crtc, +@@ -741,17 +745,25 @@ void vc4_hvs_atomic_flush(struct drm_crtc *crtc, u32 dispbkgndx = HVS_READ(SCALER_DISPBKGNDX(vc4_state->assigned_channel)); if (crtc->state->gamma_lut) { @@ -235705,7 +235636,7 @@ index 6372c48097d5..1302260d7d87 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 8 Nov 2021 18:25:49 +0000 -Subject: [PATCH 592/991] drm/vc4: Only add gamma properties once. +Subject: [PATCH 0590/1015] drm/vc4: Only add gamma properties once. Two calls were made to drm_crtc_enable_color_mgmt to add gamma and CTM, however they were both set to add the gamma properties, @@ -235718,7 +235649,7 @@ Signed-off-by: Dave Stevenson 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c -index 5813b4ab619e..69a70af0b933 100644 +index 38fd3b7d9b38..4af8ce915b09 100644 --- a/drivers/gpu/drm/vc4/vc4_crtc.c +++ b/drivers/gpu/drm/vc4/vc4_crtc.c @@ -1196,7 +1196,7 @@ int vc4_crtc_init(struct drm_device *drm, struct vc4_crtc *vc4_crtc, @@ -235737,7 +235668,7 @@ index 5813b4ab619e..69a70af0b933 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 10 Nov 2021 15:55:32 +0000 -Subject: [PATCH 593/991] dtoverlays: Remove i2c0mux and i20if status from +Subject: [PATCH 0591/1015] dtoverlays: Remove i2c0mux and i20if status from edt-ft5406.dtsi edt-ft5406.dtsi is included from vc4-kms-dsi-7inch which was @@ -235824,7 +235755,7 @@ index ecd3bef3d65a..5e1700d0367a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 10 Nov 2021 16:36:12 +0000 -Subject: [PATCH 594/991] drm/vc4: Validate the size of the gamma_lut +Subject: [PATCH 0592/1015] drm/vc4: Validate the size of the gamma_lut Add a check to vc4_hvs_gamma_check to ensure a new non-empty gamma LUT is of the correct length before accepting it. @@ -235835,10 +235766,10 @@ Signed-off-by: Dave Stevenson 1 file changed, 10 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_hvs.c b/drivers/gpu/drm/vc4/vc4_hvs.c -index 1302260d7d87..a873d9d8fd58 100644 +index 0a9b2ea949e3..082e8a8b2531 100644 --- a/drivers/gpu/drm/vc4/vc4_hvs.c +++ b/drivers/gpu/drm/vc4/vc4_hvs.c -@@ -538,6 +538,16 @@ static int vc4_hvs_gamma_check(struct drm_crtc *crtc, +@@ -561,6 +561,16 @@ static int vc4_hvs_gamma_check(struct drm_crtc *crtc, if (!crtc_state->color_mgmt_changed) return 0; @@ -235862,7 +235793,7 @@ index 1302260d7d87..a873d9d8fd58 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 16 Nov 2021 10:34:34 +0000 -Subject: [PATCH 595/991] drm/vc4: Don't try disabling SCDC on Pi0-3. +Subject: [PATCH 0593/1015] drm/vc4: Don't try disabling SCDC on Pi0-3. The code that set the scdc_enabled flag to ensure it was disabled at boot time also ran on Pi0-3 where there is no @@ -235880,10 +235811,10 @@ Signed-off-by: Dave Stevenson 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index a6afd7d7f21c..70a1beb67dda 100644 +index 91af33d54935..67a92f9fed0f 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -2557,7 +2557,8 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) +@@ -2558,7 +2558,8 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) * vc4_hdmi_disable_scrambling() will thus run at boot, make * sure it's disabled, and avoid any inconsistency. */ @@ -235900,7 +235831,7 @@ index a6afd7d7f21c..70a1beb67dda 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Sean McAvoy Date: Fri, 19 Nov 2021 02:36:24 -0500 -Subject: [PATCH 596/991] enable several virtual devices for hosting virtual +Subject: [PATCH 0594/1015] enable several virtual devices for hosting virtual machines --- @@ -235971,7 +235902,7 @@ index 5a8cc83a7386..05f1eba91510 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ilya Trukhanov Date: Sat, 20 Nov 2021 16:26:36 +0200 -Subject: [PATCH 597/991] configs: add CONFIG_HID_PLAYSTATION=m and +Subject: [PATCH 0595/1015] configs: add CONFIG_HID_PLAYSTATION=m and CONFIG_PLAYSTATION_FF=y Enables support for the PlayStation 5 'DualSense' controller and its @@ -236067,7 +235998,7 @@ index 05f1eba91510..2a319d0550a2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Heimpold Date: Thu, 4 Nov 2021 23:09:07 +0100 -Subject: [PATCH 598/991] configs: add LEDS_PWM=y +Subject: [PATCH 0596/1015] configs: add LEDS_PWM=y Enable support for PWM driven LEDs. @@ -236147,7 +236078,7 @@ index 2a319d0550a2..c4dff0b42461 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 22 Nov 2021 10:28:55 +0000 -Subject: [PATCH 599/991] configs: Add USB gadget support (for Zero 2 W) +Subject: [PATCH 0597/1015] configs: Add USB gadget support (for Zero 2 W) Bring the Pi 3 kernel in line with the Pi Zero and Pi 4 by enabling USB gadget support, which is useful on Zero 2 W. @@ -236195,7 +236126,7 @@ index 317b0018d6e2..e844c6d60011 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Mon, 22 Nov 2021 13:10:39 +0000 -Subject: [PATCH 600/991] media: i2c: ov5647: Support HFLIP and VFLIP +Subject: [PATCH 0598/1015] media: i2c: ov5647: Support HFLIP and VFLIP Add these missing V4L2 controls. Tested binned and full resolution modes in all four orientations using Raspberry Pi running libcamera. @@ -236390,7 +236321,7 @@ index ac9074acdd9c..9275952afccc 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 16 Nov 2021 12:38:44 +0000 -Subject: [PATCH 601/991] drivers: bcm2835_isp: Allow multiple users for the +Subject: [PATCH 0599/1015] drivers: bcm2835_isp: Allow multiple users for the ISP driver. Add a second (identical) set of device nodes to allow concurrent use of the ISP @@ -236569,7 +236500,7 @@ index c62f2fb25e94..3b0bab17e03d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 25 Nov 2021 08:59:58 +0000 -Subject: [PATCH 602/991] drivers: bcm2835_isp: Fix div by 0 bug. +Subject: [PATCH 0600/1015] drivers: bcm2835_isp: Fix div by 0 bug. Fix a possible division by 0 bug when setting up the mmal port for the stats port. @@ -236598,7 +236529,7 @@ index f6d6c88d13ba..a545dbf2b5dd 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxim Devaev Date: Wed, 17 Nov 2021 04:57:56 +0300 -Subject: [PATCH 603/991] Pass V4L2_CID_MPEG_VIDEO_H264_MIN_QP/MAX_QP to +Subject: [PATCH 0601/1015] Pass V4L2_CID_MPEG_VIDEO_H264_MIN_QP/MAX_QP to bcm2835-v4l2-codec Following raspberrypi/linux#4704. This is necessary to set up @@ -236671,7 +236602,7 @@ index 97c8afa0861e..d11148c3cb45 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 26 Nov 2021 15:20:06 +0000 -Subject: [PATCH 604/991] ARM: dts: Update rpi-400 and cm4 dts to match 4-b +Subject: [PATCH 0602/1015] ARM: dts: Update rpi-400 and cm4 dts to match 4-b The Pi 4B dts file has had numerous updates since the Pi 400 and CM4 dts files were written. Apply those updates to the other files to @@ -237010,7 +236941,7 @@ index 76dd97513a20..b688ac19c66c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 29 Nov 2021 12:14:49 +0000 -Subject: [PATCH 605/991] spi: spidev: Restore loading from Device Tree +Subject: [PATCH 0603/1015] spi: spidev: Restore loading from Device Tree As happens occasionally, an upstream change has once again prevented spidev from being loaded via Device Tree. We now need "spidev" to be @@ -237041,7 +236972,7 @@ index 9a3b8a51eaef..36966627f49b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Nov 2021 14:45:33 +0000 -Subject: [PATCH 606/991] drm/vc4: Add support for composite syncs to vc4_dpi +Subject: [PATCH 0604/1015] drm/vc4: Add support for composite syncs to vc4_dpi The hardware can combine H&V syncs onto the output enable line as composite syncs, so add the relevant configuration to do that. @@ -237102,7 +237033,7 @@ index dde2c6014748..4dd8df6ddcbe 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 19 Nov 2021 16:16:40 +0000 -Subject: [PATCH 607/991] drm/vc4: Ensure vc4_hdmi doesn't use 2711 HPD +Subject: [PATCH 0605/1015] drm/vc4: Ensure vc4_hdmi doesn't use 2711 HPD registers on Pi0-3 The existing logic was flawed in that it could try reading the @@ -237119,10 +237050,10 @@ Signed-off-by: Dave Stevenson 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 70a1beb67dda..e3ad84ac10a6 100644 +index 67a92f9fed0f..e463a126f5b7 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -205,14 +205,8 @@ vc4_hdmi_connector_detect(struct drm_connector *connector, bool force) +@@ -206,14 +206,8 @@ vc4_hdmi_connector_detect(struct drm_connector *connector, bool force) if (gpiod_get_value_cansleep(vc4_hdmi->hpd_gpio)) connected = true; } else { @@ -237139,7 +237070,7 @@ index 70a1beb67dda..e3ad84ac10a6 100644 connected = true; } -@@ -1354,6 +1348,18 @@ static u32 vc5_hdmi_channel_map(struct vc4_hdmi *vc4_hdmi, u32 channel_mask) +@@ -1355,6 +1349,18 @@ static u32 vc5_hdmi_channel_map(struct vc4_hdmi *vc4_hdmi, u32 channel_mask) return channel_map; } @@ -237158,7 +237089,7 @@ index 70a1beb67dda..e3ad84ac10a6 100644 /* HDMI audio codec callbacks */ static void vc4_hdmi_audio_set_mai_clock(struct vc4_hdmi *vc4_hdmi, unsigned int samplerate) -@@ -2778,6 +2784,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { +@@ -2779,6 +2785,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { .phy_rng_disable = vc5_hdmi_phy_rng_disable, .channel_map = vc5_hdmi_channel_map, .supports_hdr = true, @@ -237166,7 +237097,7 @@ index 70a1beb67dda..e3ad84ac10a6 100644 }; static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { -@@ -2806,6 +2813,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { +@@ -2807,6 +2814,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { .phy_rng_disable = vc5_hdmi_phy_rng_disable, .channel_map = vc5_hdmi_channel_map, .supports_hdr = true, @@ -237195,7 +237126,8 @@ index 275c4674d50f..ea5c3e2a2a27 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 26 Nov 2021 14:37:40 +0000 -Subject: [PATCH 608/991] input: edt-ft5x06: Handle unreliable TOUCH_UP events +Subject: [PATCH 0606/1015] input: edt-ft5x06: Handle unreliable TOUCH_UP + events The ft5x06 is unreliable in sending touch up events, so some touch IDs can become stuck in the detected state. @@ -237264,8 +237196,8 @@ index aabd1246b788..f03349617a5e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 26 Nov 2021 16:56:37 +0000 -Subject: [PATCH 609/991] dtoverlays: Use edt-ft5506 for 10 points, instead of - edt-ft5x06 +Subject: [PATCH 0607/1015] dtoverlays: Use edt-ft5506 for 10 points, instead + of edt-ft5x06 Whilst all the datasheets describe FT5x06 as supporting "up to 10 points of absolution X and Y coordinates", the driver @@ -237300,8 +237232,8 @@ index 6f9b4d02460b..2d0ff0e8b24e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 26 Nov 2021 16:46:22 +0000 -Subject: [PATCH 610/991] staging/bcm2835-codec: bytesperline for YUV420/YVU420 - needs to be 64 +Subject: [PATCH 0608/1015] staging/bcm2835-codec: bytesperline for + YUV420/YVU420 needs to be 64 Matching https://github.com/raspberrypi/linux/pull/4419, the ISP block (which is also used on the input of the encoder, and output @@ -237348,7 +237280,7 @@ index d11148c3cb45..90fb41e20be1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: John Cox Date: Mon, 29 Nov 2021 16:39:35 +0000 -Subject: [PATCH 611/991] media: rpivid: remove min_buffers_needed from src +Subject: [PATCH 0609/1015] media: rpivid: remove min_buffers_needed from src queue Remove min_buffers_needed=1 from src queue init. Src buffers are bound @@ -237379,7 +237311,7 @@ index 1efaa99a55f6..93b3d86b41e3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 29 Nov 2021 19:11:29 +0000 -Subject: [PATCH 612/991] staging/bcm2835-codec: Allow a different stride +Subject: [PATCH 0610/1015] staging/bcm2835-codec: Allow a different stride alignment per role Deinterlace and decode aren't affected in the same way as encode @@ -237975,7 +237907,7 @@ index 90fb41e20be1..fdbaa96c25a0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 30 Nov 2021 10:39:41 +0000 -Subject: [PATCH 613/991] drivers: bcm2835_unicam: Add logging message when a +Subject: [PATCH 0611/1015] drivers: bcm2835_unicam: Add logging message when a frame is dropped. If a dummy buffer is still active on a frame start, it indicates that this frame @@ -238007,8 +237939,8 @@ index 80196cd1a54c..61b08f655058 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 29 Nov 2021 18:31:37 +0000 -Subject: [PATCH 614/991] regulator/rpi-panel-attiny: Don't read the LCD power - status +Subject: [PATCH 0612/1015] regulator/rpi-panel-attiny: Don't read the LCD + power status The I2C to the Atmel is very fussy, and locks up easily on Pi0-3 particularly on reads. @@ -238059,8 +237991,8 @@ index 8090b9a485b5..8b80c0de1022 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Nov 2021 14:50:10 +0000 -Subject: [PATCH 615/991] regulator/rpi-panel-attiny: Use two transactions for - I2C read +Subject: [PATCH 0613/1015] regulator/rpi-panel-attiny: Use two transactions + for I2C read The I2C to the Atmel is very fussy, and locks up easily on Pi0-3 particularly on reads. @@ -238133,8 +238065,8 @@ index 8b80c0de1022..e3decc419814 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 30 Nov 2021 17:28:50 +0000 -Subject: [PATCH 616/991] input: edt-ft5x06: Only look at the number of points - reported +Subject: [PATCH 0614/1015] input: edt-ft5x06: Only look at the number of + points reported Register 0x02 in the FT5x06 is TD_STATUS containing the number of valid touch points being reported. @@ -238183,7 +238115,7 @@ index f03349617a5e..719a5ad821ff 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Nov 2021 14:46:55 +0000 -Subject: [PATCH 617/991] drm/vc4: Move HDMI reset to pm_resume +Subject: [PATCH 0615/1015] drm/vc4: Move HDMI reset to pm_resume Pi0-3 have power domains attached to the pm_runtime hooks for the HDMI block. Initialisation done in the reset called @@ -238203,10 +238135,10 @@ Signed-off-by: Dave Stevenson 2 files changed, 41 insertions(+), 24 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index e3ad84ac10a6..4d8bb7f599a3 100644 +index e463a126f5b7..8beb1f324202 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -2194,7 +2194,6 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) +@@ -2195,7 +2195,6 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) struct platform_device *pdev = vc4_hdmi->pdev; struct device *dev = &pdev->dev; unsigned long flags; @@ -238214,7 +238146,7 @@ index e3ad84ac10a6..4d8bb7f599a3 100644 int ret; if (!of_find_property(dev->of_node, "interrupts", NULL)) { -@@ -2213,15 +2212,6 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) +@@ -2214,15 +2213,6 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) cec_fill_conn_info_from_drm(&conn_info, &vc4_hdmi->connector); cec_s_conn_info(vc4_hdmi->cec_adap, &conn_info); @@ -238230,7 +238162,7 @@ index e3ad84ac10a6..4d8bb7f599a3 100644 if (vc4_hdmi->variant->external_irq_controller) { ret = request_threaded_irq(platform_get_irq_byname(pdev, "cec-rx"), vc4_cec_irq_handler_rx_bare, -@@ -2284,6 +2274,29 @@ static void vc4_hdmi_cec_exit(struct vc4_hdmi *vc4_hdmi) +@@ -2285,6 +2275,29 @@ static void vc4_hdmi_cec_exit(struct vc4_hdmi *vc4_hdmi) cec_unregister_adapter(vc4_hdmi->cec_adap); } @@ -238260,7 +238192,7 @@ index e3ad84ac10a6..4d8bb7f599a3 100644 #else static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) { -@@ -2292,6 +2305,10 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) +@@ -2293,6 +2306,10 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) static void vc4_hdmi_cec_exit(struct vc4_hdmi *vc4_hdmi) {}; @@ -238271,7 +238203,7 @@ index e3ad84ac10a6..4d8bb7f599a3 100644 #endif static int vc4_hdmi_build_regset(struct vc4_hdmi *vc4_hdmi, -@@ -2526,6 +2543,15 @@ static int vc4_hdmi_runtime_resume(struct device *dev) +@@ -2527,6 +2544,15 @@ static int vc4_hdmi_runtime_resume(struct device *dev) if (ret) return ret; @@ -238287,7 +238219,7 @@ index e3ad84ac10a6..4d8bb7f599a3 100644 return 0; } -@@ -2616,20 +2642,11 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) +@@ -2617,20 +2643,11 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) if (ret) goto err_put_ddc; @@ -238340,7 +238272,7 @@ index 24056441a4bb..72b769412482 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 2 Dec 2021 13:53:36 +0000 -Subject: [PATCH 618/991] clk: bcm: rpi: Add the BCM283x pixel clock. +Subject: [PATCH 0616/1015] clk: bcm: rpi: Add the BCM283x pixel clock. The clk-bcm2835 handling of the pixel clock does not function correctly when the HDMI power domain is disabled. @@ -238372,7 +238304,7 @@ index c4829d62faad..99cc4c856de1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 2 Dec 2021 14:11:09 +0000 -Subject: [PATCH 619/991] dt: bcm283x: Change BCM283x HDMI to use firmware +Subject: [PATCH 0617/1015] dt: bcm283x: Change BCM283x HDMI to use firmware clock driver The clk-bcm2835 handling of the pixel clock does not function @@ -238407,7 +238339,7 @@ index 15f3975f1ca1..7f46a6ec512c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 11 Nov 2021 13:33:25 +0000 -Subject: [PATCH 620/991] overlays: vc4-kms-v3d: Change composite handling +Subject: [PATCH 0618/1015] overlays: vc4-kms-v3d: Change composite handling On a Pi 4, enabling composite video disables the HDMI output. As a consequence, the composite output is disabled by default. Change the @@ -238475,7 +238407,7 @@ index 62e1d77a8182..351fc160e803 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 2 Dec 2021 18:10:55 +0000 -Subject: [PATCH 621/991] drm/panel-simple: Populate bpc when using panel-dpi +Subject: [PATCH 0619/1015] drm/panel-simple: Populate bpc when using panel-dpi panel-dpi doesn't know the bit depth, so in the same way that DPI is guessed for the connector type, guess that it'll be 8bpc. @@ -238486,7 +238418,7 @@ Signed-off-by: Dave Stevenson 1 file changed, 2 insertions(+) diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c -index f115d3312712..6776317b4950 100644 +index 7a6331479a5b..5d63eb3b6556 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -607,6 +607,8 @@ static int panel_dpi_probe(struct device *dev, @@ -238505,7 +238437,7 @@ index f115d3312712..6776317b4950 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 2 Dec 2021 18:16:21 +0000 -Subject: [PATCH 622/991] drm/panel-simple: Allow the bus format to be read +Subject: [PATCH 0620/1015] drm/panel-simple: Allow the bus format to be read from DT for panel-dpi The "panel-dpi" compatible string configures panel from device tree, @@ -238521,7 +238453,7 @@ Signed-off-by: Dave Stevenson 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c -index 6776317b4950..b88897a85e38 100644 +index 5d63eb3b6556..c0d178bcbefa 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -598,6 +598,7 @@ static int panel_dpi_probe(struct device *dev, @@ -238539,7 +238471,7 @@ index 6776317b4950..b88897a85e38 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 2 Dec 2021 18:21:46 +0000 -Subject: [PATCH 623/991] drm/vc4: dpi: Add option for inverting pixel clock +Subject: [PATCH 0621/1015] drm/vc4: dpi: Add option for inverting pixel clock and output enable DRM provides flags for inverting pixel clock and output enable @@ -238660,7 +238592,7 @@ index 4dd8df6ddcbe..e19c34d5dbd6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 2 Dec 2021 18:28:29 +0000 -Subject: [PATCH 624/991] drm/vc4: dpi: Ensure a default format is selected +Subject: [PATCH 0622/1015] drm/vc4: dpi: Ensure a default format is selected In a couple of error/incomplete configuration cases, the DPI_FORMAT bits wouldn't get set. @@ -238711,7 +238643,7 @@ index e19c34d5dbd6..08147d0eab83 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 2 Dec 2021 18:24:44 +0000 -Subject: [PATCH 625/991] dt: bcm270x: Add GPIO defines for RGB565 DPI output +Subject: [PATCH 0623/1015] dt: bcm270x: Add GPIO defines for RGB565 DPI output modes Adds the pinctrl defines for the RGB565 DPI output modes. @@ -238761,7 +238693,7 @@ index badcf341ecd2..49f9019dc125 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 2 Dec 2021 18:06:37 +0000 -Subject: [PATCH 626/991] dtoverlays: Add a generic DPI panel overlay for KMS +Subject: [PATCH 0624/1015] dtoverlays: Add a generic DPI panel overlay for KMS Uses the "panel-dpi" compatible to set panel timings from DT. @@ -238930,7 +238862,7 @@ index 000000000000..def175746f66 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Mon, 26 Oct 2020 14:03:35 +0000 -Subject: [PATCH 627/991] xhci: quirks: add link TRB quirk for VL805 +Subject: [PATCH 0625/1015] xhci: quirks: add link TRB quirk for VL805 The VL805 controller can't cope with the TR Dequeue Pointer for an endpoint being set to a Link TRB. The hardware-maintained endpoint context ends up @@ -238950,10 +238882,10 @@ Signed-off-by: Jonathan Bell 3 files changed, 11 insertions(+) diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c -index cb8b481a9499..994a0470abc2 100644 +index 7d13ddff6b33..0e7b5b322ebb 100644 --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -298,6 +298,7 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) +@@ -300,6 +300,7 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483) { xhci->quirks |= XHCI_LPM_SUPPORT; xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS; @@ -239000,8 +238932,8 @@ index ac6c1c064d66..2595ffa43aac 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Fri, 3 Dec 2021 14:32:05 +0000 -Subject: [PATCH 628/991] xhci: correct room_on_ring() for cases where there is - a single segment +Subject: [PATCH 0626/1015] xhci: correct room_on_ring() for cases where there + is a single segment Don't calculate space based on the number of TRBs in the current segment, as it's OK to wrap to the start (and flip the cycle state bit). @@ -239035,8 +238967,8 @@ index 674f94ca1608..fe8037ebad0e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 8 Dec 2021 13:22:48 +0100 -Subject: [PATCH 629/991] media: imx219: Advertise embedded data node on media - pad 1 +Subject: [PATCH 0627/1015] media: imx219: Advertise embedded data node on + media pad 1 This commit updates the imx219 driver to adverise support for embedded data streams. This can then be used by the bcm2835-unicam driver, which @@ -239457,8 +239389,8 @@ index 7ef1f2b9b7a8..ddc6db846f94 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 8 Dec 2021 15:57:15 +0000 -Subject: [PATCH 630/991] vc4/drm: Ignore vc4_hdmi->output_enabled for allowing - audio (#4759) +Subject: [PATCH 0628/1015] vc4/drm: Ignore vc4_hdmi->output_enabled for + allowing audio (#4759) Otherwise we reject audio playback when switching hdmi modes @@ -239469,10 +239401,10 @@ Signed-off-by: Dom Cobley 2 files changed, 2 insertions(+), 33 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 4d8bb7f599a3..881c48e60555 100644 +index 8beb1f324202..79d94b193b62 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -210,6 +210,7 @@ vc4_hdmi_connector_detect(struct drm_connector *connector, bool force) +@@ -211,6 +211,7 @@ vc4_hdmi_connector_detect(struct drm_connector *connector, bool force) connected = true; } @@ -239480,7 +239412,7 @@ index 4d8bb7f599a3..881c48e60555 100644 if (connected) { if (connector->status != connector_status_connected) { struct edid *edid = drm_get_edid(connector, vc4_hdmi->ddc); -@@ -730,15 +731,6 @@ static void vc4_hdmi_encoder_post_crtc_powerdown(struct drm_encoder *encoder, +@@ -731,15 +732,6 @@ static void vc4_hdmi_encoder_post_crtc_powerdown(struct drm_encoder *encoder, mutex_unlock(&vc4_hdmi->mutex); } @@ -239496,7 +239428,7 @@ index 4d8bb7f599a3..881c48e60555 100644 static void vc4_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, bool enable) { unsigned long flags; -@@ -1218,15 +1210,6 @@ static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder, +@@ -1219,15 +1211,6 @@ static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder, mutex_unlock(&vc4_hdmi->mutex); } @@ -239512,7 +239444,7 @@ index 4d8bb7f599a3..881c48e60555 100644 static void vc4_hdmi_encoder_atomic_mode_set(struct drm_encoder *encoder, struct drm_crtc_state *crtc_state, struct drm_connector_state *conn_state) -@@ -1320,8 +1303,6 @@ static const struct drm_encoder_helper_funcs vc4_hdmi_encoder_helper_funcs = { +@@ -1321,8 +1304,6 @@ static const struct drm_encoder_helper_funcs vc4_hdmi_encoder_helper_funcs = { .atomic_check = vc4_hdmi_encoder_atomic_check, .atomic_mode_set = vc4_hdmi_encoder_atomic_mode_set, .mode_valid = vc4_hdmi_encoder_mode_valid, @@ -239521,7 +239453,7 @@ index 4d8bb7f599a3..881c48e60555 100644 }; static u32 vc4_hdmi_channel_map(struct vc4_hdmi *vc4_hdmi, u32 channel_mask) -@@ -1420,17 +1401,11 @@ static bool vc4_hdmi_audio_can_stream(struct vc4_hdmi *vc4_hdmi) +@@ -1421,17 +1402,11 @@ static bool vc4_hdmi_audio_can_stream(struct vc4_hdmi *vc4_hdmi) { lockdep_assert_held(&vc4_hdmi->mutex); @@ -239564,7 +239496,7 @@ index ea5c3e2a2a27..be3f93a86e62 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: peterharperuk <77111776+peterharperuk@users.noreply.github.com> Date: Mon, 13 Dec 2021 14:00:35 +0000 -Subject: [PATCH 631/991] ARM: dts: Create bcm2711-rpi-cm4s.dts (#4761) +Subject: [PATCH 0629/1015] ARM: dts: Create bcm2711-rpi-cm4s.dts (#4761) Signed-off-by: Peter Harper --- @@ -239998,8 +239930,8 @@ index 000000000000..226e71198f6a From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Mon, 13 Dec 2021 15:05:56 +0000 -Subject: [PATCH 632/991] xhci: refactor out TRBS_PER_SEGMENT define in runtime - code +Subject: [PATCH 0630/1015] xhci: refactor out TRBS_PER_SEGMENT define in + runtime code In anticipation of adjusting the number of utilised TRBs in a ring segment, add trbs_per_seg to struct xhci_ring and use this instead @@ -240268,7 +240200,7 @@ index 2595ffa43aac..1b989a3bb876 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Mon, 13 Dec 2021 16:04:03 +0000 -Subject: [PATCH 633/991] usb: xhci: add VLI_TRB_CACHE_BUG quirk +Subject: [PATCH 0631/1015] usb: xhci: add VLI_TRB_CACHE_BUG quirk The VL805 fetches up to 4 transfer TRBs at a time. TRB reads don't cross a 64B boundary, and if a TRB is fetched and is not on a 64B boundary, @@ -240321,10 +240253,10 @@ index 3d21c7cc7e0d..6df995c58eac 100644 &ring->last_seg, num_segs, ring->trbs_per_seg, cycle_state, type, max_packet, flags); diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c -index 994a0470abc2..0d2501e4135f 100644 +index 0e7b5b322ebb..99f916b4b902 100644 --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -299,6 +299,7 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) +@@ -301,6 +301,7 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) xhci->quirks |= XHCI_LPM_SUPPORT; xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS; xhci->quirks |= XHCI_AVOID_DQ_ON_LINK; @@ -240351,7 +240283,7 @@ index 1b989a3bb876..ef9eb513d061 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Dec 2021 21:53:18 +0000 -Subject: [PATCH 634/991] drm/vc4: Fix build without DRM_VC4_HDMI_CEC +Subject: [PATCH 0632/1015] drm/vc4: Fix build without DRM_VC4_HDMI_CEC As reported by @asavah. @@ -240363,10 +240295,10 @@ Signed-off-by: Phil Elwell 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 881c48e60555..ed6a9d4ee115 100644 +index 79d94b193b62..0f52cad40f02 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -2280,7 +2280,7 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) +@@ -2281,7 +2281,7 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) static void vc4_hdmi_cec_exit(struct vc4_hdmi *vc4_hdmi) {}; @@ -240382,7 +240314,7 @@ index 881c48e60555..ed6a9d4ee115 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Sat, 20 Nov 2021 10:48:36 +0000 -Subject: [PATCH 635/991] dt: Create static regulators and clocks for camera +Subject: [PATCH 0633/1015] dt: Create static regulators and clocks for camera nodes Unloading regulators through dynamic device tree doesn't work @@ -240802,8 +240734,8 @@ index 55237d03ed94..000000000000 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Sat, 20 Nov 2021 14:43:29 +0000 -Subject: [PATCH 636/991] dtoverlays: Convert the camera sensor overlays to use - the new regs and clks. +Subject: [PATCH 0634/1015] dtoverlays: Convert the camera sensor overlays to + use the new regs and clks. Now that we have regulators and clocks defined in the base DT for image sensors, switch the overlays to use them. @@ -241294,7 +241226,7 @@ index b2b9a47c6d27..35d9f79980fe 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 22 Nov 2021 12:31:35 +0000 -Subject: [PATCH 637/991] media: i2c: ov5647: Add support for regulator +Subject: [PATCH 0635/1015] media: i2c: ov5647: Add support for regulator control. The driver supported using GPIOs to control the shutdown line, @@ -241411,7 +241343,7 @@ index 9275952afccc..491246786f7c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 22 Nov 2021 12:30:18 +0000 -Subject: [PATCH 638/991] dtoverlays: Convert ov5647 to use the regulator +Subject: [PATCH 0636/1015] dtoverlays: Convert ov5647 to use the regulator framework Fixing up shutdown GPIOs via overrides is ugly, and doesn't work @@ -241465,7 +241397,7 @@ index a7b4085d4e57..018d424a0f71 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 14 Dec 2021 17:18:49 +0000 -Subject: [PATCH 639/991] media: i2c: ov7251: Make the enable GPIO optional. +Subject: [PATCH 0637/1015] media: i2c: ov7251: Make the enable GPIO optional. Not all implementations wire up the enable GPIO and may just tie it to a supply rail. @@ -241497,8 +241429,8 @@ index 083a62b267f2..2bcc3b70918f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 14 Dec 2021 14:54:15 +0000 -Subject: [PATCH 640/991] ARM: dts: bcm2711-cm4s Correct i2c0mux to use 0/1 and - 28/29 & 2 regulators +Subject: [PATCH 0638/1015] ARM: dts: bcm2711-cm4s Correct i2c0mux to use 0/1 + and 28/29 & 2 regulators CM4S follows CM1/3, so based on the documentation cameras/displays connect to 0/1 and 28/29, not 0/1 and 44/45. @@ -241552,8 +241484,8 @@ index 226e71198f6a..f279edfeaf6f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 22 Nov 2021 12:44:29 +0000 -Subject: [PATCH 641/991] dtoverlays: Add option to select camera as on CAM0 of - CM +Subject: [PATCH 0639/1015] dtoverlays: Add option to select camera as on CAM0 + of CM Parameterise the overlays so that they can have an optional cam0 parameter to switch to i2c_vc and csi0. @@ -242528,7 +242460,8 @@ index d679d9ba84b6..c85782688e39 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Joerg Schambacher Date: Wed, 15 Dec 2021 19:27:00 +0100 -Subject: [PATCH 642/991] ASoC:ma120x0p: Increase maximum sample rate to 192KHz +Subject: [PATCH 0640/1015] ASoC:ma120x0p: Increase maximum sample rate to + 192KHz Change the maximum sample rate for the amplifier to 192KHz as given in the Infineon specification. @@ -242558,7 +242491,7 @@ index e1591b6aff43..c447d37450b7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 16 Dec 2021 16:25:00 +0000 -Subject: [PATCH 643/991] staging/bcm2835-isp: Fix cleanup after init fail +Subject: [PATCH 0641/1015] staging/bcm2835-isp: Fix cleanup after init fail bcm2835_isp_remove is called on an initialisation failure, but at that point the drvdata hasn't been set. This causes a crash when e.g. using @@ -242602,7 +242535,7 @@ index 3b0bab17e03d..9aea0b998bd6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 18 Nov 2021 14:04:00 +0100 -Subject: [PATCH 644/991] drm/vc4: kms: Take old state core clock rate into +Subject: [PATCH 0642/1015] drm/vc4: kms: Take old state core clock rate into account During a commit, the core clock, which feeds the HVS, needs to run at @@ -242646,7 +242579,7 @@ index 6d78cd5335c8..20fa5a15d6f6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 29 Nov 2021 12:18:39 +0100 -Subject: [PATCH 645/991] drm/vc4: hvs: Store channel in variable +Subject: [PATCH 0643/1015] drm/vc4: hvs: Store channel in variable The assigned_channel field of our vc4_crtc_state structure is accessed multiple times in vc4_hvs_atomic_flush, so let's move it to a variable @@ -242658,10 +242591,10 @@ Signed-off-by: Maxime Ripard 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hvs.c b/drivers/gpu/drm/vc4/vc4_hvs.c -index a873d9d8fd58..2995a2796b11 100644 +index 082e8a8b2531..c1e5c2131f37 100644 --- a/drivers/gpu/drm/vc4/vc4_hvs.c +++ b/drivers/gpu/drm/vc4/vc4_hvs.c -@@ -674,6 +674,7 @@ void vc4_hvs_atomic_flush(struct drm_crtc *crtc, +@@ -697,6 +697,7 @@ void vc4_hvs_atomic_flush(struct drm_crtc *crtc, struct drm_device *dev = crtc->dev; struct vc4_dev *vc4 = to_vc4_dev(dev); struct vc4_crtc_state *vc4_state = to_vc4_crtc_state(crtc->state); @@ -242669,7 +242602,7 @@ index a873d9d8fd58..2995a2796b11 100644 struct drm_plane *plane; struct vc4_plane_state *vc4_plane_state; bool debug_dump_regs = false; -@@ -714,8 +715,8 @@ void vc4_hvs_atomic_flush(struct drm_crtc *crtc, +@@ -737,8 +738,8 @@ void vc4_hvs_atomic_flush(struct drm_crtc *crtc, /* This sets a black background color fill, as is the case * with other DRM drivers. */ @@ -242680,7 +242613,7 @@ index a873d9d8fd58..2995a2796b11 100644 SCALER_DISPBKGND_FILL); /* Only update DISPLIST if the CRTC was already running and is not -@@ -729,7 +730,7 @@ void vc4_hvs_atomic_flush(struct drm_crtc *crtc, +@@ -752,7 +753,7 @@ void vc4_hvs_atomic_flush(struct drm_crtc *crtc, vc4_hvs_update_dlist(crtc); if (crtc->state->color_mgmt_changed) { @@ -242689,7 +242622,7 @@ index a873d9d8fd58..2995a2796b11 100644 if (crtc->state->gamma_lut) { if (!vc4->hvs->hvs5) { -@@ -752,7 +753,7 @@ void vc4_hvs_atomic_flush(struct drm_crtc *crtc, +@@ -775,7 +776,7 @@ void vc4_hvs_atomic_flush(struct drm_crtc *crtc, if (!vc4->hvs->hvs5) dispbkgndx &= ~SCALER_DISPBKGND_GAMMA; } @@ -242705,7 +242638,7 @@ index a873d9d8fd58..2995a2796b11 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 6 Dec 2021 16:17:56 +0100 -Subject: [PATCH 646/991] drm/vc4: hvs: Remove dlist setup duplication +Subject: [PATCH 0644/1015] drm/vc4: hvs: Remove dlist setup duplication Setting the DISPLISTx register needs to occur in every case, and we don't need to protect the register using the event_lock, so we can just @@ -242717,10 +242650,10 @@ Signed-off-by: Maxime Ripard 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hvs.c b/drivers/gpu/drm/vc4/vc4_hvs.c -index 2995a2796b11..00e78efe06a5 100644 +index c1e5c2131f37..89f2c3d43be1 100644 --- a/drivers/gpu/drm/vc4/vc4_hvs.c +++ b/drivers/gpu/drm/vc4/vc4_hvs.c -@@ -616,15 +616,12 @@ static void vc4_hvs_update_dlist(struct drm_crtc *crtc) +@@ -639,15 +639,12 @@ static void vc4_hvs_update_dlist(struct drm_crtc *crtc) crtc->state->event = NULL; } @@ -242746,7 +242679,7 @@ index 2995a2796b11..00e78efe06a5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 6 Dec 2021 16:31:33 +0100 -Subject: [PATCH 647/991] drm/vc4: hvs: Move the dlist setup to its own +Subject: [PATCH 0645/1015] drm/vc4: hvs: Move the dlist setup to its own function The vc4_hvs_update_dlist function mostly deals with setting up the @@ -242762,10 +242695,10 @@ Signed-off-by: Maxime Ripard 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hvs.c b/drivers/gpu/drm/vc4/vc4_hvs.c -index 00e78efe06a5..44651229bf1d 100644 +index 89f2c3d43be1..e9fbe02f4581 100644 --- a/drivers/gpu/drm/vc4/vc4_hvs.c +++ b/drivers/gpu/drm/vc4/vc4_hvs.c -@@ -596,10 +596,19 @@ int vc4_hvs_atomic_check(struct drm_crtc *crtc, struct drm_atomic_state *state) +@@ -619,10 +619,19 @@ int vc4_hvs_atomic_check(struct drm_crtc *crtc, struct drm_atomic_state *state) return vc4_hvs_gamma_check(crtc, state); } @@ -242786,7 +242719,7 @@ index 00e78efe06a5..44651229bf1d 100644 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); struct vc4_crtc_state *vc4_state = to_vc4_crtc_state(crtc->state); unsigned long flags; -@@ -619,9 +628,6 @@ static void vc4_hvs_update_dlist(struct drm_crtc *crtc) +@@ -642,9 +651,6 @@ static void vc4_hvs_update_dlist(struct drm_crtc *crtc) spin_unlock_irqrestore(&dev->event_lock, flags); } @@ -242796,7 +242729,7 @@ index 00e78efe06a5..44651229bf1d 100644 spin_lock_irqsave(&vc4_crtc->irq_lock, flags); vc4_crtc->current_dlist = vc4_state->mm.start; spin_unlock_irqrestore(&vc4_crtc->irq_lock, flags); -@@ -648,6 +654,7 @@ void vc4_hvs_atomic_enable(struct drm_crtc *crtc, +@@ -671,6 +677,7 @@ void vc4_hvs_atomic_enable(struct drm_crtc *crtc, struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); bool oneshot = vc4_crtc->feeds_txp; @@ -242804,7 +242737,7 @@ index 00e78efe06a5..44651229bf1d 100644 vc4_hvs_update_dlist(crtc); vc4_hvs_init_channel(vc4, crtc, mode, oneshot); } -@@ -723,8 +730,10 @@ void vc4_hvs_atomic_flush(struct drm_crtc *crtc, +@@ -746,8 +753,10 @@ void vc4_hvs_atomic_flush(struct drm_crtc *crtc, * If the CRTC is being disabled, there's no point in updating this * information. */ @@ -242823,7 +242756,7 @@ index 00e78efe06a5..44651229bf1d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 6 Dec 2021 16:32:10 +0100 -Subject: [PATCH 648/991] drm/vc4: hvs: Ignore atomic_flush if we're disabled +Subject: [PATCH 0646/1015] drm/vc4: hvs: Ignore atomic_flush if we're disabled atomic_flush will be called for each CRTC even if they aren't enabled. @@ -242836,10 +242769,10 @@ Signed-off-by: Maxime Ripard 1 file changed, 3 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_hvs.c b/drivers/gpu/drm/vc4/vc4_hvs.c -index 44651229bf1d..c979d3c41353 100644 +index e9fbe02f4581..78a9346bdfd2 100644 --- a/drivers/gpu/drm/vc4/vc4_hvs.c +++ b/drivers/gpu/drm/vc4/vc4_hvs.c -@@ -686,6 +686,9 @@ void vc4_hvs_atomic_flush(struct drm_crtc *crtc, +@@ -709,6 +709,9 @@ void vc4_hvs_atomic_flush(struct drm_crtc *crtc, u32 __iomem *dlist_start = vc4->hvs->dlist + vc4_state->mm.start; u32 __iomem *dlist_next = dlist_start; @@ -242856,7 +242789,7 @@ index 44651229bf1d..c979d3c41353 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Fri, 10 Dec 2021 18:03:18 +0000 -Subject: [PATCH 649/991] drm/vc4: Skip writes to disabled packet RAM +Subject: [PATCH 0647/1015] drm/vc4: Skip writes to disabled packet RAM This path actually occurs when audio is started during a hdmi mode set. As the data will be written by vc4_hdmi_set_infoframes when packet RAM @@ -242869,10 +242802,10 @@ Signed-off-by: Dom Cobley 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index ed6a9d4ee115..cddc2270a08d 100644 +index 0f52cad40f02..90a01075e2d3 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -684,6 +684,7 @@ static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder, +@@ -685,6 +685,7 @@ static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder, mutex_lock(&vc4_hdmi->mutex); @@ -242880,7 +242813,7 @@ index ed6a9d4ee115..cddc2270a08d 100644 spin_lock_irqsave(&vc4_hdmi->hw_lock, flags); HDMI_WRITE(HDMI_RAM_PACKET_CONFIG, 0); -@@ -1200,6 +1201,7 @@ static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder, +@@ -1201,6 +1202,7 @@ static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder, VC4_HDMI_RAM_PACKET_ENABLE); spin_unlock_irqrestore(&vc4_hdmi->hw_lock, flags); @@ -242888,7 +242821,7 @@ index ed6a9d4ee115..cddc2270a08d 100644 vc4_hdmi_set_infoframes(encoder); } -@@ -1605,7 +1607,8 @@ static int vc4_hdmi_audio_prepare(struct device *dev, void *data, +@@ -1606,7 +1608,8 @@ static int vc4_hdmi_audio_prepare(struct device *dev, void *data, spin_unlock_irqrestore(&vc4_hdmi->hw_lock, flags); memcpy(&vc4_hdmi->audio.infoframe, ¶ms->cea, sizeof(params->cea)); @@ -242922,8 +242855,8 @@ index be3f93a86e62..ea5c3e2a2a27 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 14 Apr 2021 16:21:08 +0200 -Subject: [PATCH 650/991] drm/edid: Rename drm_hdmi_avi_infoframe_colorspace to - _colorimetry +Subject: [PATCH 0648/1015] drm/edid: Rename drm_hdmi_avi_infoframe_colorspace + to _colorimetry The drm_hdmi_avi_infoframe_colorspace() function actually sets the colorimetry and extended_colorimetry fields in the hdmi_avi_infoframe @@ -242946,7 +242879,7 @@ Signed-off-by: Maxime Ripard 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c -index ee6f44f9a81c..c0c8595fe649 100644 +index 6ab048ba8021..8d3e8067f150 100644 --- a/drivers/gpu/drm/drm_edid.c +++ b/drivers/gpu/drm/drm_edid.c @@ -5742,13 +5742,13 @@ static const u32 hdmi_colorimetry_val[] = { @@ -243002,10 +242935,10 @@ index 05d2d750fa53..092a925c6cf5 100644 /* nonsense combination */ drm_WARN_ON(encoder->base.dev, crtc_state->limited_color_range && diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index cddc2270a08d..1b70cdafa9c7 100644 +index 90a01075e2d3..46753fd4f456 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -516,7 +516,7 @@ static void vc4_hdmi_set_avi_infoframe(struct drm_encoder *encoder) +@@ -517,7 +517,7 @@ static void vc4_hdmi_set_avi_infoframe(struct drm_encoder *encoder) vc4_encoder->limited_rgb_range ? HDMI_QUANTIZATION_RANGE_LIMITED : HDMI_QUANTIZATION_RANGE_FULL); @@ -243015,7 +242948,7 @@ index cddc2270a08d..1b70cdafa9c7 100644 vc4_hdmi_write_infoframe(encoder, &frame); diff --git a/include/drm/drm_edid.h b/include/drm/drm_edid.h -index deccfd39e6db..1c639e81de64 100644 +index c24559f5329d..1be502b8fc44 100644 --- a/include/drm/drm_edid.h +++ b/include/drm/drm_edid.h @@ -401,8 +401,8 @@ drm_hdmi_vendor_infoframe_from_display_mode(struct hdmi_vendor_infoframe *frame, @@ -243036,7 +242969,7 @@ index deccfd39e6db..1c639e81de64 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 12 Jan 2021 15:55:07 +0100 -Subject: [PATCH 651/991] drm/vc4: hdmi: Add full range RGB helper +Subject: [PATCH 0649/1015] drm/vc4: hdmi: Add full range RGB helper We're going to need to tell whether we want to run with a full or limited range RGB output in multiple places in the code, so let's create @@ -243049,10 +242982,10 @@ Signed-off-by: Maxime Ripard 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 1b70cdafa9c7..4826bec65cb1 100644 +index 46753fd4f456..aab5bfd98b77 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -107,6 +107,15 @@ static bool vc4_hdmi_mode_needs_scrambling(const struct drm_display_mode *mode) +@@ -108,6 +108,15 @@ static bool vc4_hdmi_mode_needs_scrambling(const struct drm_display_mode *mode) return (mode->clock * 1000) > HDMI_14_MAX_TMDS_CLK; } @@ -243068,7 +243001,7 @@ index 1b70cdafa9c7..4826bec65cb1 100644 static int vc4_hdmi_debugfs_regs(struct seq_file *m, void *unused) { struct drm_info_node *node = (struct drm_info_node *)m->private; -@@ -1115,8 +1124,7 @@ static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder, +@@ -1116,8 +1125,7 @@ static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder, mutex_lock(&vc4_hdmi->mutex); @@ -243085,7 +243018,8 @@ index 1b70cdafa9c7..4826bec65cb1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 12 Jan 2021 15:57:50 +0100 -Subject: [PATCH 652/991] drm/vc4: hdmi: Use full range helper in csc functions +Subject: [PATCH 0650/1015] drm/vc4: hdmi: Use full range helper in csc + functions The CSC callbacks takes a boolean as an argument to tell whether we're using the full range or limited range RGB. @@ -243103,10 +243037,10 @@ Signed-off-by: Maxime Ripard 2 files changed, 13 insertions(+), 22 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 4826bec65cb1..5442b0c1ed0f 100644 +index aab5bfd98b77..b32f2c71fd09 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -504,7 +504,6 @@ static void vc4_hdmi_write_infoframe(struct drm_encoder *encoder, +@@ -505,7 +505,6 @@ static void vc4_hdmi_write_infoframe(struct drm_encoder *encoder, static void vc4_hdmi_set_avi_infoframe(struct drm_encoder *encoder) { struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); @@ -243114,7 +243048,7 @@ index 4826bec65cb1..5442b0c1ed0f 100644 struct drm_connector *connector = &vc4_hdmi->connector; struct drm_connector_state *cstate = connector->state; const struct drm_display_mode *mode = &vc4_hdmi->saved_adjusted_mode; -@@ -522,9 +521,9 @@ static void vc4_hdmi_set_avi_infoframe(struct drm_encoder *encoder) +@@ -523,9 +522,9 @@ static void vc4_hdmi_set_avi_infoframe(struct drm_encoder *encoder) drm_hdmi_avi_infoframe_quant_range(&frame.avi, connector, mode, @@ -243127,7 +243061,7 @@ index 4826bec65cb1..5442b0c1ed0f 100644 drm_hdmi_avi_infoframe_colorimetry(&frame.avi, cstate); drm_hdmi_avi_infoframe_bars(&frame.avi, cstate); -@@ -741,7 +740,8 @@ static void vc4_hdmi_encoder_post_crtc_powerdown(struct drm_encoder *encoder, +@@ -742,7 +741,8 @@ static void vc4_hdmi_encoder_post_crtc_powerdown(struct drm_encoder *encoder, mutex_unlock(&vc4_hdmi->mutex); } @@ -243137,7 +243071,7 @@ index 4826bec65cb1..5442b0c1ed0f 100644 { unsigned long flags; u32 csc_ctl; -@@ -751,7 +751,7 @@ static void vc4_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, bool enable) +@@ -752,7 +752,7 @@ static void vc4_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, bool enable) csc_ctl = VC4_SET_FIELD(VC4_HD_CSC_CTL_ORDER_BGR, VC4_HD_CSC_CTL_ORDER); @@ -243146,7 +243080,7 @@ index 4826bec65cb1..5442b0c1ed0f 100644 /* CEA VICs other than #1 requre limited range RGB * output unless overridden by an AVI infoframe. * Apply a colorspace conversion to squash 0-255 down -@@ -781,7 +781,8 @@ static void vc4_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, bool enable) +@@ -782,7 +782,8 @@ static void vc4_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, bool enable) spin_unlock_irqrestore(&vc4_hdmi->hw_lock, flags); } @@ -243156,7 +243090,7 @@ index 4826bec65cb1..5442b0c1ed0f 100644 { unsigned long flags; u32 csc_ctl; -@@ -790,7 +791,7 @@ static void vc5_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, bool enable) +@@ -791,7 +792,7 @@ static void vc5_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, bool enable) spin_lock_irqsave(&vc4_hdmi->hw_lock, flags); @@ -243165,7 +243099,7 @@ index 4826bec65cb1..5442b0c1ed0f 100644 /* CEA VICs other than #1 requre limited range RGB * output unless overridden by an AVI infoframe. * Apply a colorspace conversion to squash 0-255 down -@@ -1119,22 +1120,12 @@ static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder, +@@ -1120,22 +1121,12 @@ static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder, { struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); struct drm_display_mode *mode = &vc4_hdmi->saved_adjusted_mode; @@ -243219,7 +243153,7 @@ index ea5c3e2a2a27..7468754fc2a7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 13 Jan 2021 11:07:48 +0100 -Subject: [PATCH 653/991] drm/vc4: hdmi: Move XBAR setup to csc_setup +Subject: [PATCH 0651/1015] drm/vc4: hdmi: Move XBAR setup to csc_setup On the BCM2711, the HDMI_VEC_INTERFACE_XBAR register configuration depends on whether we're using an RGB or YUV output. Let's move that @@ -243232,10 +243166,10 @@ Signed-off-by: Maxime Ripard 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 5442b0c1ed0f..1552245b59ed 100644 +index b32f2c71fd09..79f5f46330dd 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -791,6 +791,8 @@ static void vc5_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, +@@ -792,6 +792,8 @@ static void vc5_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, spin_lock_irqsave(&vc4_hdmi->hw_lock, flags); @@ -243244,7 +243178,7 @@ index 5442b0c1ed0f..1552245b59ed 100644 if (!vc4_hdmi_is_full_range_rgb(vc4_hdmi, mode)) { /* CEA VICs other than #1 requre limited range RGB * output unless overridden by an AVI infoframe. -@@ -905,7 +907,6 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, +@@ -906,7 +908,6 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, spin_lock_irqsave(&vc4_hdmi->hw_lock, flags); @@ -243259,7 +243193,7 @@ index 5442b0c1ed0f..1552245b59ed 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 13 Jan 2021 11:20:08 +0100 -Subject: [PATCH 654/991] drm/vc4: hdmi: Replace CSC_CTL hardcoded value by +Subject: [PATCH 0652/1015] drm/vc4: hdmi: Replace CSC_CTL hardcoded value by defines On BCM2711, the HDMI_CSC_CTL register value has been hardcoded to an @@ -243273,10 +243207,10 @@ Signed-off-by: Maxime Ripard 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 1552245b59ed..5635ce9f89f9 100644 +index 79f5f46330dd..3e9f70947b6a 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -785,9 +785,8 @@ static void vc5_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, +@@ -786,9 +786,8 @@ static void vc5_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, const struct drm_display_mode *mode) { unsigned long flags; @@ -243289,10 +243223,10 @@ index 1552245b59ed..5635ce9f89f9 100644 spin_lock_irqsave(&vc4_hdmi->hw_lock, flags); diff --git a/drivers/gpu/drm/vc4/vc4_regs.h b/drivers/gpu/drm/vc4/vc4_regs.h -index 5989b2ff28c7..82d46cf9f298 100644 +index 9ac2b7f122ee..f7c48aed655b 100644 --- a/drivers/gpu/drm/vc4/vc4_regs.h +++ b/drivers/gpu/drm/vc4/vc4_regs.h -@@ -796,6 +796,9 @@ enum { +@@ -804,6 +804,9 @@ enum { # define VC4_HD_CSC_CTL_RGB2YCC BIT(1) # define VC4_HD_CSC_CTL_ENABLE BIT(0) @@ -243309,7 +243243,7 @@ index 5989b2ff28c7..82d46cf9f298 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 13 Jan 2021 11:30:21 +0100 -Subject: [PATCH 655/991] drm/vc4: hdmi: Define colorspace matrices +Subject: [PATCH 0653/1015] drm/vc4: hdmi: Define colorspace matrices The current CSC setup code for the BCM2711 uses a sequence of register writes to configure the CSC depending on whether we output using a full @@ -243327,10 +243261,10 @@ Signed-off-by: Maxime Ripard 1 file changed, 50 insertions(+), 29 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 5635ce9f89f9..7186aa8dc140 100644 +index 3e9f70947b6a..e937ee05db6b 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -781,6 +781,52 @@ static void vc4_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, +@@ -782,6 +782,52 @@ static void vc4_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, spin_unlock_irqrestore(&vc4_hdmi->hw_lock, flags); } @@ -243383,7 +243317,7 @@ index 5635ce9f89f9..7186aa8dc140 100644 static void vc5_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, const struct drm_display_mode *mode) { -@@ -792,35 +838,10 @@ static void vc5_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, +@@ -793,35 +839,10 @@ static void vc5_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, HDMI_WRITE(HDMI_VEC_INTERFACE_XBAR, 0x354021); @@ -243430,7 +243364,7 @@ index 5635ce9f89f9..7186aa8dc140 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 18 Jan 2021 09:51:12 +0100 -Subject: [PATCH 656/991] drm/vc4: hdmi: Change CSC callback prototype +Subject: [PATCH 0654/1015] drm/vc4: hdmi: Change CSC callback prototype In order to support the YUV output, we'll need the atomic state to know what is the state of the associated property in the CSC setup callback. @@ -243445,10 +243379,10 @@ Signed-off-by: Maxime Ripard 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 7186aa8dc140..955a52dbc2a4 100644 +index e937ee05db6b..7c21f03c8a17 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -741,6 +741,7 @@ static void vc4_hdmi_encoder_post_crtc_powerdown(struct drm_encoder *encoder, +@@ -742,6 +742,7 @@ static void vc4_hdmi_encoder_post_crtc_powerdown(struct drm_encoder *encoder, } static void vc4_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, @@ -243456,7 +243390,7 @@ index 7186aa8dc140..955a52dbc2a4 100644 const struct drm_display_mode *mode) { unsigned long flags; -@@ -828,6 +829,7 @@ static void vc5_hdmi_set_csc_coeffs(struct vc4_hdmi *vc4_hdmi, +@@ -829,6 +830,7 @@ static void vc5_hdmi_set_csc_coeffs(struct vc4_hdmi *vc4_hdmi, } static void vc5_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, @@ -243464,7 +243398,7 @@ index 7186aa8dc140..955a52dbc2a4 100644 const struct drm_display_mode *mode) { unsigned long flags; -@@ -1140,13 +1142,16 @@ static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder, +@@ -1141,13 +1143,16 @@ static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder, struct drm_atomic_state *state) { struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); @@ -243501,7 +243435,7 @@ index 7468754fc2a7..e297dfdd9932 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 2 Dec 2021 16:58:17 +0100 -Subject: [PATCH 657/991] drm/vc4: hdmi: Move clock validation to its own +Subject: [PATCH 0655/1015] drm/vc4: hdmi: Move clock validation to its own function Our code is doing the same clock rate validation in multiple instances. @@ -243513,10 +243447,10 @@ Signed-off-by: Maxime Ripard 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 955a52dbc2a4..60a3430d3630 100644 +index 7c21f03c8a17..c57f0a61471d 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1250,6 +1250,19 @@ static void vc4_hdmi_encoder_atomic_mode_set(struct drm_encoder *encoder, +@@ -1251,6 +1251,19 @@ static void vc4_hdmi_encoder_atomic_mode_set(struct drm_encoder *encoder, mutex_unlock(&vc4_hdmi->mutex); } @@ -243536,7 +243470,7 @@ index 955a52dbc2a4..60a3430d3630 100644 #define WIFI_2_4GHz_CH1_MIN_FREQ 2400000000ULL #define WIFI_2_4GHz_CH1_MAX_FREQ 2422000000ULL -@@ -1294,10 +1307,7 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, +@@ -1295,10 +1308,7 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, if (mode->flags & DRM_MODE_FLAG_DBLCLK) pixel_rate = pixel_rate * 2; @@ -243548,7 +243482,7 @@ index 955a52dbc2a4..60a3430d3630 100644 return -EINVAL; vc4_state->pixel_rate = pixel_rate; -@@ -1317,13 +1327,7 @@ vc4_hdmi_encoder_mode_valid(struct drm_encoder *encoder, +@@ -1318,13 +1328,7 @@ vc4_hdmi_encoder_mode_valid(struct drm_encoder *encoder, (mode->hsync_end % 2) || (mode->htotal % 2))) return MODE_H_ILLEGAL; @@ -243570,7 +243504,7 @@ index 955a52dbc2a4..60a3430d3630 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 2 Dec 2021 17:04:18 +0100 -Subject: [PATCH 658/991] drm/vc4: hdmi: Move clock calculation into its own +Subject: [PATCH 0656/1015] drm/vc4: hdmi: Move clock calculation into its own function The code to compute our clock rate for a given setup will be called in @@ -243583,10 +243517,10 @@ Signed-off-by: Maxime Ripard 1 file changed, 34 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 60a3430d3630..8b9fe278d33d 100644 +index c57f0a61471d..d25d653d07d4 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1263,6 +1263,35 @@ vc4_hdmi_encoder_clock_valid(const struct vc4_hdmi *vc4_hdmi, +@@ -1264,6 +1264,35 @@ vc4_hdmi_encoder_clock_valid(const struct vc4_hdmi *vc4_hdmi, return MODE_OK; } @@ -243622,7 +243556,7 @@ index 60a3430d3630..8b9fe278d33d 100644 #define WIFI_2_4GHz_CH1_MIN_FREQ 2400000000ULL #define WIFI_2_4GHz_CH1_MAX_FREQ 2422000000ULL -@@ -1275,6 +1304,7 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, +@@ -1276,6 +1305,7 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); unsigned long long pixel_rate = mode->clock * 1000; unsigned long long tmds_rate; @@ -243630,7 +243564,7 @@ index 60a3430d3630..8b9fe278d33d 100644 if (vc4_hdmi->variant->unsupported_odd_h_timings && !(mode->flags & DRM_MODE_FLAG_DBLCLK) && -@@ -1296,21 +1326,10 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, +@@ -1297,21 +1327,10 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, pixel_rate = mode->clock * 1000; } @@ -243663,8 +243597,8 @@ index 60a3430d3630..8b9fe278d33d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 13 Dec 2021 15:33:11 +0100 -Subject: [PATCH 659/991] drm/vc4: hdmi: Take the sink maximum TMDS clock into - account +Subject: [PATCH 0657/1015] drm/vc4: hdmi: Take the sink maximum TMDS clock + into account In the function that validates that the clock isn't too high, we've only taken our controller limitations into account so far. @@ -243680,10 +243614,10 @@ Signed-off-by: Maxime Ripard 1 file changed, 6 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 8b9fe278d33d..282832b7ab7d 100644 +index d25d653d07d4..ac988ad5f1da 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1254,12 +1254,18 @@ static enum drm_mode_status +@@ -1255,12 +1255,18 @@ static enum drm_mode_status vc4_hdmi_encoder_clock_valid(const struct vc4_hdmi *vc4_hdmi, unsigned long long clock) { @@ -243709,7 +243643,7 @@ index 8b9fe278d33d..282832b7ab7d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 10 Dec 2021 15:00:04 +0100 -Subject: [PATCH 660/991] drm/vc4: hdmi: Take bpp into account for the +Subject: [PATCH 0658/1015] drm/vc4: hdmi: Take bpp into account for the scrambler The current code only base its decision for whether the scrambler must be @@ -243726,10 +243660,10 @@ Signed-off-by: Maxime Ripard 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 282832b7ab7d..f3fdbe709606 100644 +index ac988ad5f1da..153cf025163a 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -102,9 +102,17 @@ +@@ -103,9 +103,17 @@ #define HDMI_14_MAX_TMDS_CLK (340 * 1000 * 1000) @@ -243749,7 +243683,7 @@ index 282832b7ab7d..f3fdbe709606 100644 } static bool vc4_hdmi_is_full_range_rgb(struct vc4_hdmi *vc4_hdmi, -@@ -276,7 +284,7 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) +@@ -277,7 +285,7 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) struct drm_display_mode *mode; list_for_each_entry(mode, &connector->probed_modes, head) { @@ -243758,7 +243692,7 @@ index 282832b7ab7d..f3fdbe709606 100644 drm_warn_once(drm, "The core clock cannot reach frequencies high enough to support 4k @ 60Hz."); drm_warn_once(drm, "Please change your config.txt file to add hdmi_enable_4kp60."); } -@@ -627,7 +635,7 @@ static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder) +@@ -628,7 +636,7 @@ static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder) if (!vc4_hdmi_supports_scrambling(encoder, mode)) return; @@ -243767,7 +243701,7 @@ index 282832b7ab7d..f3fdbe709606 100644 return; drm_scdc_set_high_tmds_clock_ratio(vc4_hdmi->ddc, true); -@@ -1244,6 +1252,7 @@ static void vc4_hdmi_encoder_atomic_mode_set(struct drm_encoder *encoder, +@@ -1245,6 +1253,7 @@ static void vc4_hdmi_encoder_atomic_mode_set(struct drm_encoder *encoder, struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); mutex_lock(&vc4_hdmi->mutex); @@ -243798,7 +243732,7 @@ index e297dfdd9932..6041571ab41f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 10 Dec 2021 15:29:56 +0100 -Subject: [PATCH 661/991] drm/vc4: hdmi: Always try to have the highest bpc +Subject: [PATCH 0659/1015] drm/vc4: hdmi: Always try to have the highest bpc Currently we take the max_bpc property as the bpc value and do not try anything else. @@ -243817,10 +243751,10 @@ Signed-off-by: Maxime Ripard 2 files changed, 43 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index f3fdbe709606..168dffc177b0 100644 +index 153cf025163a..fcfd9504a7bc 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -356,6 +356,7 @@ vc4_hdmi_connector_duplicate_state(struct drm_connector *connector) +@@ -357,6 +357,7 @@ vc4_hdmi_connector_duplicate_state(struct drm_connector *connector) return NULL; new_state->pixel_rate = vc4_state->pixel_rate; @@ -243828,7 +243762,7 @@ index f3fdbe709606..168dffc177b0 100644 __drm_atomic_helper_connector_duplicate_state(connector, &new_state->base); return &new_state->base; -@@ -913,6 +914,8 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, +@@ -914,6 +915,8 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, struct drm_connector_state *state, struct drm_display_mode *mode) { @@ -243837,7 +243771,7 @@ index f3fdbe709606..168dffc177b0 100644 bool hsync_pos = mode->flags & DRM_MODE_FLAG_PHSYNC; bool vsync_pos = mode->flags & DRM_MODE_FLAG_PVSYNC; bool interlaced = mode->flags & DRM_MODE_FLAG_INTERLACE; -@@ -960,7 +963,7 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, +@@ -961,7 +964,7 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, HDMI_WRITE(HDMI_VERTB0, vertb_even); HDMI_WRITE(HDMI_VERTB1, vertb); @@ -243846,7 +243780,7 @@ index f3fdbe709606..168dffc177b0 100644 case 12: gcp = 6; gcp_en = true; -@@ -1250,9 +1253,11 @@ static void vc4_hdmi_encoder_atomic_mode_set(struct drm_encoder *encoder, +@@ -1251,9 +1254,11 @@ static void vc4_hdmi_encoder_atomic_mode_set(struct drm_encoder *encoder, struct drm_connector_state *conn_state) { struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); @@ -243859,7 +243793,7 @@ index f3fdbe709606..168dffc177b0 100644 memcpy(&vc4_hdmi->saved_adjusted_mode, &crtc_state->adjusted_mode, sizeof(vc4_hdmi->saved_adjusted_mode)); -@@ -1307,6 +1312,38 @@ vc4_hdmi_encoder_compute_clock(const struct vc4_hdmi *vc4_hdmi, +@@ -1308,6 +1313,38 @@ vc4_hdmi_encoder_compute_clock(const struct vc4_hdmi *vc4_hdmi, return 0; } @@ -243898,7 +243832,7 @@ index f3fdbe709606..168dffc177b0 100644 #define WIFI_2_4GHz_CH1_MIN_FREQ 2400000000ULL #define WIFI_2_4GHz_CH1_MAX_FREQ 2422000000ULL -@@ -1341,8 +1378,7 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, +@@ -1342,8 +1379,7 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, pixel_rate = mode->clock * 1000; } @@ -243937,7 +243871,7 @@ index 6041571ab41f..36d2a60cc565 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 4 Dec 2020 17:12:06 +0100 -Subject: [PATCH 662/991] drm/vc4: hdmi: Support HDMI YUV output +Subject: [PATCH 0660/1015] drm/vc4: hdmi: Support HDMI YUV output In addition to the RGB444 output, the BCM2711 HDMI controller supports the YUV444 and YUV422 output formats. @@ -243954,10 +243888,10 @@ Signed-off-by: Maxime Ripard 4 files changed, 309 insertions(+), 16 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 168dffc177b0..0f2418f07554 100644 +index fcfd9504a7bc..c0fb275e2190 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -102,15 +102,30 @@ +@@ -103,15 +103,30 @@ #define HDMI_14_MAX_TMDS_CLK (340 * 1000 * 1000) @@ -243991,7 +243925,7 @@ index 168dffc177b0..0f2418f07554 100644 return clock > HDMI_14_MAX_TMDS_CLK; } -@@ -284,7 +299,7 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) +@@ -285,7 +300,7 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) struct drm_display_mode *mode; list_for_each_entry(mode, &connector->probed_modes, head) { @@ -244000,7 +243934,7 @@ index 168dffc177b0..0f2418f07554 100644 drm_warn_once(drm, "The core clock cannot reach frequencies high enough to support 4k @ 60Hz."); drm_warn_once(drm, "Please change your config.txt file to add hdmi_enable_4kp60."); } -@@ -341,6 +356,7 @@ static void vc4_hdmi_connector_reset(struct drm_connector *connector) +@@ -342,6 +357,7 @@ static void vc4_hdmi_connector_reset(struct drm_connector *connector) new_state->base.max_bpc = 8; new_state->base.max_requested_bpc = 8; @@ -244008,7 +243942,7 @@ index 168dffc177b0..0f2418f07554 100644 drm_atomic_helper_connector_tv_reset(connector); } -@@ -357,6 +373,7 @@ vc4_hdmi_connector_duplicate_state(struct drm_connector *connector) +@@ -358,6 +374,7 @@ vc4_hdmi_connector_duplicate_state(struct drm_connector *connector) new_state->pixel_rate = vc4_state->pixel_rate; new_state->output_bpc = vc4_state->output_bpc; @@ -244016,7 +243950,7 @@ index 168dffc177b0..0f2418f07554 100644 __drm_atomic_helper_connector_duplicate_state(connector, &new_state->base); return &new_state->base; -@@ -510,11 +527,38 @@ static void vc4_hdmi_write_infoframe(struct drm_encoder *encoder, +@@ -511,11 +528,38 @@ static void vc4_hdmi_write_infoframe(struct drm_encoder *encoder, DRM_ERROR("Failed to wait for infoframe to start: %d\n", ret); } @@ -244055,7 +243989,7 @@ index 168dffc177b0..0f2418f07554 100644 const struct drm_display_mode *mode = &vc4_hdmi->saved_adjusted_mode; union hdmi_infoframe frame; int ret; -@@ -534,6 +578,7 @@ static void vc4_hdmi_set_avi_infoframe(struct drm_encoder *encoder) +@@ -535,6 +579,7 @@ static void vc4_hdmi_set_avi_infoframe(struct drm_encoder *encoder) HDMI_QUANTIZATION_RANGE_FULL : HDMI_QUANTIZATION_RANGE_LIMITED); drm_hdmi_avi_infoframe_colorimetry(&frame.avi, cstate); @@ -244063,7 +243997,7 @@ index 168dffc177b0..0f2418f07554 100644 drm_hdmi_avi_infoframe_bars(&frame.avi, cstate); vc4_hdmi_write_infoframe(encoder, &frame); -@@ -636,7 +681,9 @@ static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder) +@@ -637,7 +682,9 @@ static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder) if (!vc4_hdmi_supports_scrambling(encoder, mode)) return; @@ -244074,7 +244008,7 @@ index 168dffc177b0..0f2418f07554 100644 return; drm_scdc_set_high_tmds_clock_ratio(vc4_hdmi->ddc, true); -@@ -824,6 +871,38 @@ static const u16 vc5_hdmi_csc_full_rgb_to_limited_rgb[3][4] = { +@@ -825,6 +872,38 @@ static const u16 vc5_hdmi_csc_full_rgb_to_limited_rgb[3][4] = { { 0x0000, 0x0000, 0x1b80, 0x0400 }, }; @@ -244113,7 +244047,7 @@ index 168dffc177b0..0f2418f07554 100644 static void vc5_hdmi_set_csc_coeffs(struct vc4_hdmi *vc4_hdmi, const u16 coeffs[3][4]) { -@@ -841,19 +920,53 @@ static void vc5_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, +@@ -842,19 +921,53 @@ static void vc5_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, struct drm_connector_state *state, const struct drm_display_mode *mode) { @@ -244172,7 +244106,7 @@ index 168dffc177b0..0f2418f07554 100644 HDMI_WRITE(HDMI_CSC_CTL, csc_ctl); spin_unlock_irqrestore(&vc4_hdmi->hw_lock, flags); -@@ -979,6 +1092,15 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, +@@ -980,6 +1093,15 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, break; } @@ -244188,7 +244122,7 @@ index 168dffc177b0..0f2418f07554 100644 reg = HDMI_READ(HDMI_DEEP_COLOR_CONFIG_1); reg &= ~(VC5_HDMI_DEEP_COLOR_CONFIG_1_INIT_PACK_PHASE_MASK | VC5_HDMI_DEEP_COLOR_CONFIG_1_COLOR_DEPTH_MASK); -@@ -1258,12 +1380,97 @@ static void vc4_hdmi_encoder_atomic_mode_set(struct drm_encoder *encoder, +@@ -1259,12 +1381,97 @@ static void vc4_hdmi_encoder_atomic_mode_set(struct drm_encoder *encoder, mutex_lock(&vc4_hdmi->mutex); vc4_hdmi->output_bpc = vc4_state->output_bpc; @@ -244286,7 +244220,7 @@ index 168dffc177b0..0f2418f07554 100644 static enum drm_mode_status vc4_hdmi_encoder_clock_valid(const struct vc4_hdmi *vc4_hdmi, unsigned long long clock) -@@ -1285,13 +1492,17 @@ vc4_hdmi_encoder_clock_valid(const struct vc4_hdmi *vc4_hdmi, +@@ -1286,13 +1493,17 @@ vc4_hdmi_encoder_clock_valid(const struct vc4_hdmi *vc4_hdmi, static unsigned long long vc4_hdmi_encoder_compute_mode_clock(const struct drm_display_mode *mode, @@ -244305,7 +244239,7 @@ index 168dffc177b0..0f2418f07554 100644 return clock * bpc / 8; } -@@ -1299,11 +1510,11 @@ static int +@@ -1300,11 +1511,11 @@ static int vc4_hdmi_encoder_compute_clock(const struct vc4_hdmi *vc4_hdmi, struct vc4_hdmi_connector_state *vc4_state, const struct drm_display_mode *mode, @@ -244319,7 +244253,7 @@ index 168dffc177b0..0f2418f07554 100644 if (vc4_hdmi_encoder_clock_valid(vc4_hdmi, clock) != MODE_OK) return -EINVAL; -@@ -1312,11 +1523,56 @@ vc4_hdmi_encoder_compute_clock(const struct vc4_hdmi *vc4_hdmi, +@@ -1313,11 +1524,56 @@ vc4_hdmi_encoder_compute_clock(const struct vc4_hdmi *vc4_hdmi, return 0; } @@ -244376,7 +244310,7 @@ index 168dffc177b0..0f2418f07554 100644 struct drm_connector_state *conn_state = &vc4_state->base; unsigned int max_bpc = clamp_t(unsigned int, conn_state->max_bpc, 8, 12); unsigned int bpc; -@@ -1325,17 +1581,18 @@ vc4_hdmi_encoder_compute_config(const struct vc4_hdmi *vc4_hdmi, +@@ -1326,17 +1582,18 @@ vc4_hdmi_encoder_compute_config(const struct vc4_hdmi *vc4_hdmi, for (bpc = max_bpc; bpc >= 8; bpc -= 2) { drm_dbg(dev, "Trying with a %d bpc output\n", bpc); @@ -244490,10 +244424,10 @@ index 72b769412482..0198de96c7b2 100644 static inline diff --git a/drivers/gpu/drm/vc4/vc4_regs.h b/drivers/gpu/drm/vc4/vc4_regs.h -index 82d46cf9f298..f40dd93f2cdd 100644 +index f7c48aed655b..88e9a398758e 100644 --- a/drivers/gpu/drm/vc4/vc4_regs.h +++ b/drivers/gpu/drm/vc4/vc4_regs.h -@@ -796,11 +796,27 @@ enum { +@@ -804,11 +804,27 @@ enum { # define VC4_HD_CSC_CTL_RGB2YCC BIT(1) # define VC4_HD_CSC_CTL_ENABLE BIT(0) @@ -244528,7 +244462,8 @@ index 82d46cf9f298..f40dd93f2cdd 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Mon, 16 Aug 2021 13:39:08 +0200 -Subject: [PATCH 663/991] media: v4l2-ctrls: Add V4L2_CID_NOTIFY_GAINS control +Subject: [PATCH 0661/1015] media: v4l2-ctrls: Add V4L2_CID_NOTIFY_GAINS + control commit a9c80593ff80ddb7c6496624e5384e1ea3460a72 upstream. @@ -244587,7 +244522,7 @@ index cda42967cdb3..781f06077c94 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Mon, 16 Aug 2021 13:39:09 +0200 -Subject: [PATCH 664/991] media: v4l2-ctrls: Document V4L2_CID_NOTIFY_GAINS +Subject: [PATCH 0662/1015] media: v4l2-ctrls: Document V4L2_CID_NOTIFY_GAINS control commit 311a839a1ad255ebcb7291fb4e0d2ec2f32312a7 upstream. @@ -244641,7 +244576,7 @@ index de43f5c8486d..71f23f131f97 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Penk Chen Date: Mon, 20 Dec 2021 03:44:56 +0900 -Subject: [PATCH 665/991] Extending ili9881c driver support for nwe080 panel +Subject: [PATCH 0663/1015] Extending ili9881c driver support for nwe080 panel Signed-off-by: Penk Chen --- @@ -244965,7 +244900,7 @@ index 534dd7414d42..6e03d9b0be60 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Penk Chen Date: Mon, 20 Dec 2021 03:45:46 +0900 -Subject: [PATCH 666/991] Enable ili9881 panel and pwm backlight driver by +Subject: [PATCH 0664/1015] Enable ili9881 panel and pwm backlight driver by default Signed-off-by: Penk Chen @@ -245021,7 +244956,7 @@ index 0fffa3b4f72b..62c8654fb68b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Penk Chen Date: Mon, 20 Dec 2021 03:46:26 +0900 -Subject: [PATCH 667/991] Add panel overlay for CutiePi +Subject: [PATCH 0665/1015] Add panel overlay for CutiePi Signed-off-by: Penk Chen --- @@ -245206,8 +245141,8 @@ index bc6e3bce22c7..9fd31bcd5569 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Van=C4=9Bk?= Date: Tue, 28 Dec 2021 15:43:10 +0100 -Subject: [PATCH 668/991] dtoverlays: Enable cam1_clock when using tc358743 or - irs1125 +Subject: [PATCH 0666/1015] dtoverlays: Enable cam1_clock when using tc358743 + or irs1125 This fixes a regression introduced in 131f1322039284932ccb601a5cffdd9ca5d36d96 (see also https://github.com/raspberrypi/linux/issues/4791). @@ -245256,7 +245191,7 @@ index c85782688e39..c3eebfd1f6ee 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 4 Jan 2022 13:56:42 +0000 -Subject: [PATCH 669/991] uapi/v4l2-controls: Reset +Subject: [PATCH 0667/1015] uapi/v4l2-controls: Reset V4L2_CID_USER_BCM2835_ISP_BASE to same as 5.10 https://github.com/raspberrypi/linux/issues/4440 @@ -245295,7 +245230,7 @@ index 781f06077c94..df3a8448375f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Thu, 30 Dec 2021 14:28:37 +0100 -Subject: [PATCH 670/991] drm/vc4: hdmi: Fix HDMI monitor detection in polled +Subject: [PATCH 0668/1015] drm/vc4: hdmi: Fix HDMI monitor detection in polled mode When vc4_hdmi_connector_detect() was called in @@ -245311,10 +245246,10 @@ Signed-off-by: Matthias Reichl 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 0f2418f07554..570c8ebef9fb 100644 +index c0fb275e2190..3d0f7e9d77fd 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -242,7 +242,6 @@ vc4_hdmi_connector_detect(struct drm_connector *connector, bool force) +@@ -243,7 +243,6 @@ vc4_hdmi_connector_detect(struct drm_connector *connector, bool force) connected = true; } @@ -245322,7 +245257,7 @@ index 0f2418f07554..570c8ebef9fb 100644 if (connected) { if (connector->status != connector_status_connected) { struct edid *edid = drm_get_edid(connector, vc4_hdmi->ddc); -@@ -251,6 +250,8 @@ vc4_hdmi_connector_detect(struct drm_connector *connector, bool force) +@@ -252,6 +251,8 @@ vc4_hdmi_connector_detect(struct drm_connector *connector, bool force) cec_s_phys_addr_from_edid(vc4_hdmi->cec_adap, edid); vc4_hdmi->encoder.hdmi_monitor = drm_detect_hdmi_monitor(edid); kfree(edid); @@ -245331,7 +245266,7 @@ index 0f2418f07554..570c8ebef9fb 100644 } } -@@ -260,6 +261,8 @@ vc4_hdmi_connector_detect(struct drm_connector *connector, bool force) +@@ -261,6 +262,8 @@ vc4_hdmi_connector_detect(struct drm_connector *connector, bool force) return connector_status_connected; } @@ -245347,7 +245282,7 @@ index 0f2418f07554..570c8ebef9fb 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Thu, 30 Dec 2021 15:12:19 +0100 -Subject: [PATCH 671/991] drm/vc4: hdmi: Fix no video output on DVI monitors +Subject: [PATCH 0669/1015] drm/vc4: hdmi: Fix no video output on DVI monitors The drm edid parser doesn't signal RGB support on DVI monitors with old edid versions, leading to 8-bit RGB mode being rejected @@ -245362,10 +245297,10 @@ Signed-off-by: Matthias Reichl 1 file changed, 3 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 570c8ebef9fb..56c082ab4c45 100644 +index 3d0f7e9d77fd..4659b59b348a 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1414,9 +1414,6 @@ vc4_hdmi_sink_supports_format_bpc(const struct vc4_hdmi *vc4_hdmi, +@@ -1415,9 +1415,6 @@ vc4_hdmi_sink_supports_format_bpc(const struct vc4_hdmi *vc4_hdmi, case VC4_HDMI_OUTPUT_RGB: drm_dbg(dev, "RGB Format, checking the constraints.\n"); @@ -245382,7 +245317,7 @@ index 570c8ebef9fb..56c082ab4c45 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Andriy Gelman Date: Sun, 2 Jan 2022 12:22:52 -0500 -Subject: [PATCH 672/991] staging/bcm2835-codec: Fix typo +Subject: [PATCH 0670/1015] staging/bcm2835-codec: Fix typo Signed-off-by: Andriy Gelman --- @@ -245409,8 +245344,8 @@ index fdbaa96c25a0..472d97d1d228 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 4 Jan 2022 14:46:01 +0000 -Subject: [PATCH 673/991] media: i2c: ov9281: Increase diff between VTS and max - exposure +Subject: [PATCH 0671/1015] media: i2c: ov9281: Increase diff between VTS and + max exposure The driver did allow the exposure to go up to VTS - 4 lines, but this would produce a visible line on 1280x800, and a stall of @@ -245475,7 +245410,7 @@ index f0d5551b23c1..7d939128899b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Andreas Blaesius Date: Wed, 5 Jan 2022 20:38:39 +0100 -Subject: [PATCH 674/991] Use GitHubs issue form for bug reports +Subject: [PATCH 0672/1015] Use GitHubs issue form for bug reports Use GitHubs issue form for bug reports. @@ -245651,7 +245586,7 @@ index 000000000000..338282d8eb46 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Padmanabha Srinivasaiah Date: Thu, 30 Dec 2021 21:45:10 +0100 -Subject: [PATCH 675/991] bcm2835-v4l2-isp: Add missing lock initialization +Subject: [PATCH 0673/1015] bcm2835-v4l2-isp: Add missing lock initialization ISP device allocation is dynamic hence the locks too. struct mutex queue_lock is not initialized which result in bug. @@ -245708,7 +245643,7 @@ index 9aea0b998bd6..57e0ecc193f3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jeff LaBundy Date: Tue, 29 Jan 2019 19:35:45 -0600 -Subject: [PATCH 676/991] configs: Enable Azoteq IQS550/572/525 +Subject: [PATCH 0674/1015] configs: Enable Azoteq IQS550/572/525 This patch enables the Azoteq IQS550/572/525 trackpad/touchscreen controller as a module. @@ -245789,7 +245724,7 @@ index c4dff0b42461..c7d9a50ec713 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jeff LaBundy Date: Mon, 28 Jan 2019 23:11:47 -0600 -Subject: [PATCH 677/991] overlays: Add overlay for Azoteq IQS550 +Subject: [PATCH 0675/1015] overlays: Add overlay for Azoteq IQS550 This patch adds a device tree overlay for the Azoteq IQS550 trackpad/touchscreen controller. @@ -245897,7 +245832,7 @@ index 000000000000..bb5a4d921962 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 7 Jan 2022 11:12:08 +0000 -Subject: [PATCH 678/991] dtoverlays: Add backlight-gpio parameter to +Subject: [PATCH 0676/1015] dtoverlays: Add backlight-gpio parameter to vc4-kms-dpi-generic To allow for the cases where a simple panel does have a GPIO @@ -245965,7 +245900,7 @@ index def175746f66..7846d56c1d1a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: marcone <48169102+marcone@users.noreply.github.com> Date: Mon, 10 Jan 2022 11:37:39 -0800 -Subject: [PATCH 679/991] configs: add CONFIG_LEDS_TRIGGER_PATTERN=m +Subject: [PATCH 0677/1015] configs: add CONFIG_LEDS_TRIGGER_PATTERN=m Enable the pattern led trigger. @@ -246045,7 +245980,8 @@ index c7d9a50ec713..c741bcbb0c4a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Sat, 8 Jan 2022 13:24:10 +0000 -Subject: [PATCH 680/991] drm/vc4: Add alpha_blend_mode property to each plane. +Subject: [PATCH 0678/1015] drm/vc4: Add alpha_blend_mode property to each + plane. Move from only supporting the default of pre-multiplied alpha to supporting user specified blend mode using the @@ -246159,7 +246095,7 @@ index c737fff3cf8d..7714066b6298 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 11 Jan 2022 10:48:30 +0000 -Subject: [PATCH 681/991] arm: Fix custom rpi __memset32 and __memset64 +Subject: [PATCH 0679/1015] arm: Fix custom rpi __memset32 and __memset64 See: https://github.com/raspberrypi/linux/issues/4798 @@ -246222,7 +246158,7 @@ index bda4c5b99367..087d68ea5d18 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 12 Jan 2022 12:48:53 +0000 -Subject: [PATCH 682/991] overlays: Add vl805 overlay +Subject: [PATCH 0680/1015] overlays: Add vl805 overlay With the automatic VL805 support being removed from the standard CM4 dtb (since most CM4 carriers don't have a VL805), retain support @@ -246305,7 +246241,7 @@ index 000000000000..81adf34b29f2 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 12 Jan 2022 17:27:03 +0000 -Subject: [PATCH 683/991] arm: Fix annoying .eh_frame section warnings +Subject: [PATCH 0681/1015] arm: Fix annoying .eh_frame section warnings Replace the cfi directives with the UNWIND equivalents. This prevents the .eh_frame section from being created, eliminating the warnings. @@ -246438,8 +246374,8 @@ index 8b0760c0904c..5715dfd95859 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 13 Jan 2022 11:30:42 +0000 -Subject: [PATCH 684/991] drm/vc4: Disable Gamma control on HVS5 due to issues - writing the table +Subject: [PATCH 0682/1015] drm/vc4: Disable Gamma control on HVS5 due to + issues writing the table Still under investigation, but the conditions under which the HVS will accept values written to the gamma PWL are not straightforward. @@ -246453,7 +246389,7 @@ Signed-off-by: Dave Stevenson 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c -index 69a70af0b933..fe15cda3bc53 100644 +index 4af8ce915b09..160cefd0585e 100644 --- a/drivers/gpu/drm/vc4/vc4_crtc.c +++ b/drivers/gpu/drm/vc4/vc4_crtc.c @@ -1182,15 +1182,9 @@ int vc4_crtc_init(struct drm_device *drm, struct vc4_crtc *vc4_crtc, @@ -246480,7 +246416,7 @@ index 69a70af0b933..fe15cda3bc53 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Thu, 13 Jan 2022 15:47:23 +0000 -Subject: [PATCH 685/991] drm/vc4: hdmi: Fix clock value used for validating +Subject: [PATCH 0683/1015] drm/vc4: hdmi: Fix clock value used for validating hdmi modes We are using mode->crt_clock here which is filled by drm_mode_set_crtcinfo() @@ -246496,10 +246432,10 @@ Signed-off-by: Dom Cobley 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 56c082ab4c45..506157cc551a 100644 +index 4659b59b348a..696cb1e723bb 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1495,7 +1495,7 @@ vc4_hdmi_encoder_compute_mode_clock(const struct drm_display_mode *mode, +@@ -1496,7 +1496,7 @@ vc4_hdmi_encoder_compute_mode_clock(const struct drm_display_mode *mode, unsigned int bpc, enum vc4_hdmi_output_format fmt) { @@ -246515,7 +246451,7 @@ index 56c082ab4c45..506157cc551a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 12 Jan 2022 14:39:46 +0000 -Subject: [PATCH 686/991] ARM: dts: Remove VL805 USB node from CM4 dts +Subject: [PATCH 0684/1015] ARM: dts: Remove VL805 USB node from CM4 dts Neither the CM4 module nor the CM4IO board have a VL805 USB3 controller. The existing "usb@0,0" node is a hangover from the @@ -246553,7 +246489,7 @@ index 062e888a3ecd..6e99da17e3c5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 19 Jan 2022 17:22:57 +0000 -Subject: [PATCH 687/991] mfd: simple-mfd-i2c: Add configuration for RPi POE +Subject: [PATCH 0685/1015] mfd: simple-mfd-i2c: Add configuration for RPi POE HAT The Raspbery Pi PoE+ HAT exposes a fan controller and power @@ -246624,8 +246560,8 @@ index 51536691ad9d..16eb2a3d0d29 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 19 Jan 2022 17:26:22 +0000 -Subject: [PATCH 688/991] pwm: raspberrypi-poe: Add option of being created by - MFD or FW +Subject: [PATCH 0686/1015] pwm: raspberrypi-poe: Add option of being created + by MFD or FW The firmware can only use I2C0 if the kernel isn't, therefore with libcamera and DRM using it the PoE HAT fan control needs @@ -246641,7 +246577,7 @@ Signed-off-by: Dave Stevenson 1 file changed, 48 insertions(+), 33 deletions(-) diff --git a/drivers/pwm/pwm-raspberrypi-poe.c b/drivers/pwm/pwm-raspberrypi-poe.c -index 579a15240e0a..576a4306ea1c 100644 +index c877de37734d..1d9ab15a01a5 100644 --- a/drivers/pwm/pwm-raspberrypi-poe.c +++ b/drivers/pwm/pwm-raspberrypi-poe.c @@ -16,6 +16,7 @@ @@ -246801,7 +246737,7 @@ index 579a15240e0a..576a4306ea1c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 20 Jan 2022 15:48:03 +0000 -Subject: [PATCH 689/991] power: rpi-poe: Drop CURRENT_AVG as it is not +Subject: [PATCH 0687/1015] power: rpi-poe: Drop CURRENT_AVG as it is not hardware averaged As documented the _AVG parameters are meant to be hardware @@ -246850,8 +246786,8 @@ index 0c96b2c1e8ab..7cf1014aa524 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 20 Jan 2022 15:50:27 +0000 -Subject: [PATCH 690/991] power: rpi-poe: Add option of being created by MFD or - FW +Subject: [PATCH 0688/1015] power: rpi-poe: Add option of being created by MFD + or FW The firmware can only use I2C0 if the kernel isn't, therefore with libcamera and DRM using it the PoE HAT fan control needs @@ -247090,7 +247026,7 @@ index 7cf1014aa524..e96f98c39f0e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 19 Jan 2022 17:33:14 +0000 -Subject: [PATCH 691/991] defconfigs: Add MFD_RASPBERRYPI_POE_HAT to Pi +Subject: [PATCH 0689/1015] defconfigs: Add MFD_RASPBERRYPI_POE_HAT to Pi defconfigs. Required for PoE HAT when driven from Linux over I2C. @@ -247171,7 +247107,7 @@ index c741bcbb0c4a..19cba51847c7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 19 Jan 2022 17:29:13 +0000 -Subject: [PATCH 692/991] dtoverlays: Add option for PoE HAT to use Linux I2C +Subject: [PATCH 0690/1015] dtoverlays: Add option for PoE HAT to use Linux I2C instead of FW. Adds parameter "i2c" to use the PoE HAT I2C MFD driver to instantiate @@ -247339,7 +247275,7 @@ index 011f92ad33f3..b78868945e72 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 18 Jan 2022 13:13:14 +0000 -Subject: [PATCH 693/991] drivers: bcm2835_unicam: Disable trigger mode +Subject: [PATCH 0691/1015] drivers: bcm2835_unicam: Disable trigger mode operation On a Pi3 B/B+ platform the imx219 sensor frequently generates a single corrupt @@ -247402,7 +247338,7 @@ index 61b08f655058..1a7524282046 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 21 Jan 2022 08:49:13 +0000 -Subject: [PATCH 694/991] arm: Remove spurious .fnend directive +Subject: [PATCH 0692/1015] arm: Remove spurious .fnend directive ...a.k.a. Fix annoying build error @@ -247435,7 +247371,7 @@ index 883023aaa6c2..65a6e065a7f2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 22 Oct 2021 16:48:50 +0100 -Subject: [PATCH 695/991] drm/vc4: dsi: Correct max divider to 255 (not 7) +Subject: [PATCH 0693/1015] drm/vc4: dsi: Correct max divider to 255 (not 7) The integer divider from parent PLL to DSI clock is capable of going up to /255, not just /7 that the driver was trying. @@ -247467,7 +247403,7 @@ index f2479f80487a..f19ce4d00378 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 21 Jan 2022 14:11:57 +0000 -Subject: [PATCH 696/991] defconfig: Add BACKLIGHT_PWM to bcm2709 and bcmrpi +Subject: [PATCH 0694/1015] defconfig: Add BACKLIGHT_PWM to bcm2709 and bcmrpi defconfigs BACKLIGHT_PWM can be used with DPI displays, so add it to the @@ -247523,7 +247459,7 @@ index 19cba51847c7..6f06ebb08a8d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 21 Jan 2022 14:22:01 +0000 -Subject: [PATCH 697/991] dtoverlays: Add pwm backlight option to +Subject: [PATCH 0695/1015] dtoverlays: Add pwm backlight option to vc4-kms-dpi-generic Adds the option of a PWM controlled backlight on a generic @@ -247638,7 +247574,7 @@ index 7846d56c1d1a..b62c0945582f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 21 Jan 2022 15:12:25 +0000 -Subject: [PATCH 698/991] dtoverlays: Correct [h|v]sync_invert config in +Subject: [PATCH 0696/1015] dtoverlays: Correct [h|v]sync_invert config in vc4-kms-dpi-generic Both the base node and override set these parameters to 0, @@ -247682,7 +247618,7 @@ index b62c0945582f..54bcd7d8505c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 21 Jan 2022 12:24:57 +0000 -Subject: [PATCH 699/991] ARM: dts: BCM2711 AON_INTR2 generates IRQ edges +Subject: [PATCH 0697/1015] ARM: dts: BCM2711 AON_INTR2 generates IRQ edges THe AON_INTR2 controller manages the HDMI interrupts, combining them into a single interrupt passed to the GIC. bcm2711.dtsi declares the @@ -247727,7 +247663,7 @@ index 2ac2125ce7d3..f8c327b3c660 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Andreas Watterott <1488433+awatterott@users.noreply.github.com> Date: Sat, 22 Jan 2022 12:32:09 +0100 -Subject: [PATCH 700/991] update rpi-display-overlay.dts pins for 5.10+ +Subject: [PATCH 0698/1015] update rpi-display-overlay.dts pins for 5.10+ backlight has been turned off --- @@ -247754,7 +247690,7 @@ index de87432ff2be..2cf937b56456 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Tue, 25 Jan 2022 15:48:53 +0000 -Subject: [PATCH 701/991] media: i2c: imx219: Correct the minimum vblanking +Subject: [PATCH 0699/1015] media: i2c: imx219: Correct the minimum vblanking value The datasheet for this sensor documents the minimum vblanking as being @@ -247786,7 +247722,7 @@ index ddc6db846f94..6ee046096ef4 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 8 Apr 2020 16:12:02 +0100 -Subject: [PATCH 702/991] drm/vc4_hdmi: Add Broadcast RGB property to allow +Subject: [PATCH 0700/1015] drm/vc4_hdmi: Add Broadcast RGB property to allow override of RGB range Copy Intel's "Broadcast RGB" property semantics to add manual override @@ -247800,10 +247736,10 @@ Signed-off-by: Dave Stevenson 2 files changed, 118 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 506157cc551a..724a18ca7f49 100644 +index 696cb1e723bb..f135ec975c0a 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -56,6 +56,14 @@ +@@ -57,6 +57,14 @@ #include "vc4_hdmi_regs.h" #include "vc4_regs.h" @@ -247818,7 +247754,7 @@ index 506157cc551a..724a18ca7f49 100644 #define VC5_HDMI_HORZA_HFP_SHIFT 16 #define VC5_HDMI_HORZA_HFP_MASK VC4_MASK(28, 16) #define VC5_HDMI_HORZA_VPOS BIT(15) -@@ -135,6 +143,10 @@ static bool vc4_hdmi_is_full_range_rgb(struct vc4_hdmi *vc4_hdmi, +@@ -136,6 +144,10 @@ static bool vc4_hdmi_is_full_range_rgb(struct vc4_hdmi *vc4_hdmi, { struct vc4_hdmi_encoder *vc4_encoder = &vc4_hdmi->encoder; @@ -247829,7 +247765,7 @@ index 506157cc551a..724a18ca7f49 100644 return !vc4_encoder->hdmi_monitor || drm_default_rgb_quant_range(mode) == HDMI_QUANTIZATION_RANGE_FULL; } -@@ -341,6 +353,65 @@ static int vc4_hdmi_connector_atomic_check(struct drm_connector *connector, +@@ -342,6 +354,65 @@ static int vc4_hdmi_connector_atomic_check(struct drm_connector *connector, return 0; } @@ -247895,7 +247831,7 @@ index 506157cc551a..724a18ca7f49 100644 static void vc4_hdmi_connector_reset(struct drm_connector *connector) { struct vc4_hdmi_connector_state *old_state = -@@ -377,6 +448,7 @@ vc4_hdmi_connector_duplicate_state(struct drm_connector *connector) +@@ -378,6 +449,7 @@ vc4_hdmi_connector_duplicate_state(struct drm_connector *connector) new_state->pixel_rate = vc4_state->pixel_rate; new_state->output_bpc = vc4_state->output_bpc; new_state->output_format = vc4_state->output_format; @@ -247903,7 +247839,7 @@ index 506157cc551a..724a18ca7f49 100644 __drm_atomic_helper_connector_duplicate_state(connector, &new_state->base); return &new_state->base; -@@ -389,6 +461,8 @@ static const struct drm_connector_funcs vc4_hdmi_connector_funcs = { +@@ -390,6 +462,8 @@ static const struct drm_connector_funcs vc4_hdmi_connector_funcs = { .reset = vc4_hdmi_connector_reset, .atomic_duplicate_state = vc4_hdmi_connector_duplicate_state, .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, @@ -247912,7 +247848,7 @@ index 506157cc551a..724a18ca7f49 100644 }; static const struct drm_connector_helper_funcs vc4_hdmi_connector_helper_funcs = { -@@ -396,6 +470,32 @@ static const struct drm_connector_helper_funcs vc4_hdmi_connector_helper_funcs = +@@ -397,6 +471,32 @@ static const struct drm_connector_helper_funcs vc4_hdmi_connector_helper_funcs = .atomic_check = vc4_hdmi_connector_atomic_check, }; @@ -247945,7 +247881,7 @@ index 506157cc551a..724a18ca7f49 100644 static int vc4_hdmi_connector_init(struct drm_device *dev, struct vc4_hdmi *vc4_hdmi) { -@@ -439,6 +539,8 @@ static int vc4_hdmi_connector_init(struct drm_device *dev, +@@ -440,6 +540,8 @@ static int vc4_hdmi_connector_init(struct drm_device *dev, if (vc4_hdmi->variant->supports_hdr) drm_connector_attach_hdr_output_metadata_property(connector); @@ -247954,7 +247890,7 @@ index 506157cc551a..724a18ca7f49 100644 drm_connector_attach_encoder(connector, encoder); return 0; -@@ -1384,6 +1486,7 @@ static void vc4_hdmi_encoder_atomic_mode_set(struct drm_encoder *encoder, +@@ -1385,6 +1487,7 @@ static void vc4_hdmi_encoder_atomic_mode_set(struct drm_encoder *encoder, mutex_lock(&vc4_hdmi->mutex); vc4_hdmi->output_bpc = vc4_state->output_bpc; vc4_hdmi->output_format = vc4_state->output_format; @@ -248016,7 +247952,7 @@ index 49935370c08f..0d2de05839c4 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: coldspark29 Date: Wed, 18 Aug 2021 14:42:22 +0200 -Subject: [PATCH 703/991] configs: Add CONFIG_MAX30102=m +Subject: [PATCH 0701/1015] configs: Add CONFIG_MAX30102=m See: https://github.com/raspberrypi/linux/pull/4535 @@ -248096,7 +248032,7 @@ index 6f06ebb08a8d..6210be66f700 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: coldspark29 Date: Wed, 18 Aug 2021 13:41:04 +0200 -Subject: [PATCH 704/991] overlays: Add MAX30102 HR to i2c-sensor overlay +Subject: [PATCH 0702/1015] overlays: Add MAX30102 HR to i2c-sensor overlay Add support for the MAX30102 heart rate and blood oxygen sensor to the i2c-sensor overlay. @@ -248182,7 +248118,7 @@ index b05b0fa91942..33965be4b1e8 100755 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Nathan Chancellor Date: Mon, 31 Jan 2022 17:12:10 -0700 -Subject: [PATCH 705/991] misc: bcm2835_smi: Use proper enum types for +Subject: [PATCH 0703/1015] misc: bcm2835_smi: Use proper enum types for dma_{,un}map_single() Clang warns: @@ -248273,7 +248209,7 @@ index f1a7f6a3e966..831b7038c78d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Nathan Chancellor Date: Mon, 31 Jan 2022 17:15:35 -0700 -Subject: [PATCH 706/991] ASoC: ma120x0p: Remove unnecessary const specifier +Subject: [PATCH 0704/1015] ASoC: ma120x0p: Remove unnecessary const specifier Clang warns: @@ -248317,7 +248253,7 @@ index c447d37450b7..ac812e83178d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Nathan Chancellor Date: Mon, 31 Jan 2022 17:20:55 -0700 -Subject: [PATCH 707/991] ASoC: bcm: allo-piano-dac-plus: Remove unnecessary +Subject: [PATCH 0705/1015] ASoC: bcm: allo-piano-dac-plus: Remove unnecessary const specifiers Clang warns: @@ -248398,7 +248334,7 @@ index fd0fe58421b0..3efc898c601d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Nathan Chancellor Date: Mon, 31 Jan 2022 17:23:38 -0700 -Subject: [PATCH 708/991] media: bcm2835-unicam: Set ret on error path in +Subject: [PATCH 0706/1015] media: bcm2835-unicam: Set ret on error path in unicam_async_complete() Clang warns: @@ -248447,7 +248383,7 @@ index 1a7524282046..4bba864b2366 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Nathan Chancellor Date: Mon, 31 Jan 2022 17:50:43 -0700 -Subject: [PATCH 709/991] media: i2c: ov9281: Initialize id_msb to zero in +Subject: [PATCH 0707/1015] media: i2c: ov9281: Initialize id_msb to zero in ov9281_check_sensor_id() Clang warns: @@ -248501,7 +248437,8 @@ index 7d939128899b..0a5f9e0927ae 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Alex Crawford Date: Fri, 28 Jan 2022 13:36:51 -0800 -Subject: [PATCH 710/991] i2c: bcm2835: Make clock-stretch timeout configurable +Subject: [PATCH 0708/1015] i2c: bcm2835: Make clock-stretch timeout + configurable The default clock-stretch timeout is 35 mS, which works well for SMBus, but there are some I2C devices which can stretch the clock even @@ -248551,7 +248488,7 @@ index d768247c7e50..7408e2c136b0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: tiagofreire-pt <41837236+tiagofreire-pt@users.noreply.github.com> Date: Sat, 29 Jan 2022 10:01:36 +0000 -Subject: [PATCH 711/991] Patching lan78xx for SOF_TIMESTAMPING_TX_SOFTWARE +Subject: [PATCH 0709/1015] Patching lan78xx for SOF_TIMESTAMPING_TX_SOFTWARE support --- @@ -248577,7 +248514,7 @@ index ac68716136cf..2ccda40a7d0a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 31 Jan 2022 16:28:43 +0000 -Subject: [PATCH 712/991] drm/vc4: Add DRM 210101010 RGB formats for hvs5. +Subject: [PATCH 0710/1015] drm/vc4: Add DRM 210101010 RGB formats for hvs5. HVS5 supports the 210101010 RGB[A|X] formats, but they were missing from the DRM to HVS mapping list, so weren't available. @@ -248634,7 +248571,7 @@ index 7714066b6298..7a0f9d55777d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 31 Jan 2022 21:01:25 +0000 -Subject: [PATCH 713/991] overlays: Add spi0-0cs overlay +Subject: [PATCH 0711/1015] overlays: Add spi0-0cs overlay An overlay to enable SPI0 without claiming any chip select GPIOs. @@ -248729,7 +248666,7 @@ index 000000000000..0d2acabf56a4 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 31 Jan 2022 17:25:19 +0000 -Subject: [PATCH 714/991] dtoverlays: Rework vc4-kms-dpi overlays to remove +Subject: [PATCH 0712/1015] dtoverlays: Rework vc4-kms-dpi overlays to remove duplication Removes all the common panel, dpi, and backlight configuration @@ -249297,7 +249234,7 @@ index b03394844abd..4c1aa1c70158 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Chris Morgan Date: Fri, 28 Jan 2022 17:37:43 -0600 -Subject: [PATCH 715/991] media: uapi: Document format +Subject: [PATCH 0713/1015] media: uapi: Document format MEDIA_BUS_FMT_RGB565_1X24_CPADHI Add support for MEDIA_BUS_FMT_RGB565_1X24_CPADHI. This format is used @@ -249363,7 +249300,7 @@ index 6e143e47d967..6901f53d2196 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Chris Morgan Date: Fri, 28 Jan 2022 17:38:40 -0600 -Subject: [PATCH 716/991] media: uapi: add MEDIA_BUS_FMT_RGB565_1X24_CPADHI +Subject: [PATCH 0714/1015] media: uapi: add MEDIA_BUS_FMT_RGB565_1X24_CPADHI Add the MEDIA_BUS_FMT_RGB565_1X24_CPADHI format used by the Geekworm MZP280 panel for the Raspberry Pi. @@ -249400,7 +249337,7 @@ index 6ad34f88c7dd..bd33edf8f5f7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Chris Morgan Date: Fri, 28 Jan 2022 17:39:54 -0600 -Subject: [PATCH 717/991] drm/vc4: dpi: Support DPI interface in mode3 for +Subject: [PATCH 0715/1015] drm/vc4: dpi: Support DPI interface in mode3 for RGB565 Add support for the VC4 DPI driver to utilize DPI mode 3. This is @@ -249437,7 +249374,7 @@ index 08147d0eab83..0d4fb6818d51 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Chris Morgan Date: Fri, 28 Jan 2022 17:40:50 -0600 -Subject: [PATCH 718/991] dt-bindings: vendor-prefixes: Add Geekworm +Subject: [PATCH 0716/1015] dt-bindings: vendor-prefixes: Add Geekworm Add vendor prefix for Geekworm (https://geekworm.com). @@ -249466,7 +249403,7 @@ index 008fb3c902ed..3c65028f5335 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Chris Morgan Date: Fri, 28 Jan 2022 17:41:18 -0600 -Subject: [PATCH 719/991] dt-bindings: display: simple: add Geekworm MZP280 +Subject: [PATCH 0717/1015] dt-bindings: display: simple: add Geekworm MZP280 Panel The Geekworm MZP280 panel is a 480x640 (portrait) panel with a @@ -249506,7 +249443,7 @@ index 6637cb1243c3..37a9e6d12118 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Chris Morgan Date: Fri, 28 Jan 2022 17:42:12 -0600 -Subject: [PATCH 720/991] drm/panel: simple: add Geekworm MZP280 Panel +Subject: [PATCH 0718/1015] drm/panel: simple: add Geekworm MZP280 Panel Add support for the Geekworm MZP280 Panel @@ -249517,7 +249454,7 @@ Acked-by: Maxime Ripard 1 file changed, 29 insertions(+) diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c -index b88897a85e38..6ce3b2301900 100644 +index c0d178bcbefa..93a4a9bd1adc 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -2321,6 +2321,32 @@ static const struct panel_desc friendlyarm_hd702e = { @@ -249553,7 +249490,7 @@ index b88897a85e38..6ce3b2301900 100644 static const struct drm_display_mode giantplus_gpg482739qs5_mode = { .clock = 9000, .hdisplay = 480, -@@ -4700,6 +4726,9 @@ static const struct of_device_id platform_of_match[] = { +@@ -4701,6 +4727,9 @@ static const struct of_device_id platform_of_match[] = { }, { .compatible = "friendlyarm,hd702e", .data = &friendlyarm_hd702e, @@ -249570,7 +249507,7 @@ index b88897a85e38..6ce3b2301900 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 2 Feb 2022 09:11:20 +0000 -Subject: [PATCH 721/991] overlays: README: Deprecate vc4-kms-kippah-7inch +Subject: [PATCH 0719/1015] overlays: README: Deprecate vc4-kms-kippah-7inch The vc4-kms-kippah-7inch overlay has been replaced by the container overlay vc4-kms-dpi-panel, using the "kippah-7inch" parameter. The @@ -249607,8 +249544,8 @@ index d92f41146c13..cfc8bfbcbef8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 1 Feb 2022 12:20:20 +0000 -Subject: [PATCH 722/991] drm/panel: Add and initialise an orientation field to - drm_panel +Subject: [PATCH 0720/1015] drm/panel: Add and initialise an orientation field + to drm_panel Current usage of drm_connector_set_panel_orientation is from a panel's get_modes call. However if the panel orientation property doesn't @@ -249706,7 +249643,7 @@ index 4602f833eb51..830b4d058622 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 1 Feb 2022 12:24:51 +0000 -Subject: [PATCH 723/991] drm/panel: simple: Remove custom handling of +Subject: [PATCH 0721/1015] drm/panel: simple: Remove custom handling of orientation Panel orientation is now handled by the drm_panel and @@ -249718,7 +249655,7 @@ Signed-off-by: Dave Stevenson 1 file changed, 11 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c -index 6ce3b2301900..21106d52fa61 100644 +index 93a4a9bd1adc..8f7e4af449f6 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -195,8 +195,6 @@ struct panel_simple { @@ -249760,7 +249697,7 @@ index 6ce3b2301900..21106d52fa61 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Chris Morgan Date: Wed, 2 Feb 2022 10:42:00 -0600 -Subject: [PATCH 724/991] overlays: Add rotate property to vc4-kms-dpi-panel +Subject: [PATCH 0722/1015] overlays: Add rotate property to vc4-kms-dpi-panel Allow a user to specify the panel rotation in devicetree as 0, 90, 180, or 270 by setting a parameter. @@ -249817,7 +249754,7 @@ index 02d7f7fb109c..f78fa48b19f9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Chris Morgan Date: Wed, 2 Feb 2022 10:43:32 -0600 -Subject: [PATCH 725/991] overlays: Add Geekworm mzp280 to vc4-kms-dpi-panel +Subject: [PATCH 0723/1015] overlays: Add Geekworm mzp280 to vc4-kms-dpi-panel Add support for the Geekworm mzp280 DPI panel to the generic vc4-kms-dpi-panel overlay. @@ -249871,7 +249808,8 @@ index 63b616f0345c..ee9e2e8fd246 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 5 Jan 2022 19:14:48 +0000 -Subject: [PATCH 726/991] drm/panel: Add panel driver for Ilitek ILI9806E panel +Subject: [PATCH 0724/1015] drm/panel: Add panel driver for Ilitek ILI9806E + panel The Ilitek ILI9806E driver is used in the Pimoroni HyperPixel4 and potentially other displays. Whilst it can support multiple @@ -250419,7 +250357,8 @@ index 000000000000..90300f0de477 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 26 Jan 2022 16:02:31 +0000 -Subject: [PATCH 727/991] drm/panel: Add panel driver for TDO Y17B based panels +Subject: [PATCH 0725/1015] drm/panel: Add panel driver for TDO Y17B based + panels The Top DisplayOptoelectronics (TDO) T17B driver chip is used in the TL040HDS20CT panel (found in the Pimoroni HyperPixel4 @@ -250761,7 +250700,7 @@ index 000000000000..8edabb1d81ce From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 1 Feb 2022 15:27:01 +0000 -Subject: [PATCH 728/991] drm/panel/panel-sitronix-st7701: Support SPI config +Subject: [PATCH 0726/1015] drm/panel/panel-sitronix-st7701: Support SPI config and RGB data The ST7701 supports numerous different interface mechanisms for @@ -251331,7 +251270,7 @@ index 320a2a8fd459..0744f6810706 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 6 Jan 2022 13:15:46 +0000 -Subject: [PATCH 729/991] defconfig: Enable Pimoroni HyperPixel drivers in Pi +Subject: [PATCH 0727/1015] defconfig: Enable Pimoroni HyperPixel drivers in Pi defconfigs Drivers for Pimoroni HyperPixel4, HyperPixel 4 Square, and @@ -251435,7 +251374,7 @@ index 6210be66f700..98c473412018 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 4 Feb 2022 11:33:28 +0000 -Subject: [PATCH 730/991] bindings: Add sck-idle-input to spi-gpio +Subject: [PATCH 0728/1015] bindings: Add sck-idle-input to spi-gpio Signed-off-by: Phil Elwell --- @@ -251464,7 +251403,7 @@ index 0d0b6d9dad1c..9136f081f420 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 12 Jan 2022 08:23:28 +0000 -Subject: [PATCH 731/991] spi: gpio: Add sck-idle-input property +Subject: [PATCH 0729/1015] spi: gpio: Add sck-idle-input property The sck-idle-input property indicates that the spi-gpio driver should return the SCK line to an input when the chip select signals are @@ -251527,7 +251466,7 @@ index 0584f4d2fde2..6890a14eed8e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 6 Jan 2022 13:04:34 +0000 -Subject: [PATCH 732/991] dtoverlays: Add overlays for Pimoroni Hyperpixel +Subject: [PATCH 0730/1015] dtoverlays: Add overlays for Pimoroni Hyperpixel displays Adds an overlays for the Pimoroni HyperPixel4, HyperPixel 4 @@ -251941,7 +251880,7 @@ index 000000000000..700046348ecf From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 3 Feb 2022 11:17:16 +0000 -Subject: [PATCH 733/991] dtoverlay: Reduce size of PCIE IB window in +Subject: [PATCH 0731/1015] dtoverlay: Reduce size of PCIE IB window in pcie-32-dma overlay The PCIE inbound window is rounded up to a power of 2, so the default @@ -251998,7 +251937,8 @@ index cca3e83721b7..955703563df7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 2 Feb 2022 17:47:54 +0000 -Subject: [PATCH 734/991] ARM: dts: Permanently disable hdmi1 and ddc1 on CM4S +Subject: [PATCH 0732/1015] ARM: dts: Permanently disable hdmi1 and ddc1 on + CM4S CM4S has no HDMI1 output, so it is advisable to disable the controller and its I2C interface in software. This is ordinarily done by setting @@ -252045,7 +251985,7 @@ index a30458a2014e..30068ca41d0e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 3 Feb 2022 15:51:41 +0000 -Subject: [PATCH 735/991] net: phy: lan87xx: Decrease phy polling rate +Subject: [PATCH 0733/1015] net: phy: lan87xx: Decrease phy polling rate Polling at 100Hz for 1.5s consumes quite a bit of kworker time with no obvious benefit. Reduce that polling rate to ~6Hz. @@ -252106,7 +252046,7 @@ index c168a7f95a25..92fa77486f2d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Sat, 5 Feb 2022 18:41:07 +0000 -Subject: [PATCH 736/991] drm: panel: Fix compilation warnings +Subject: [PATCH 0734/1015] drm: panel: Fix compilation warnings See: https://github.com/raspberrypi/linux/pull/4812 @@ -252149,8 +252089,8 @@ index 8edabb1d81ce..074bf0dadfba 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 4 Feb 2022 16:12:35 +0000 -Subject: [PATCH 737/991] media: bcm2835-unicam: Handle a repeated frame start - with no end +Subject: [PATCH 0735/1015] media: bcm2835-unicam: Handle a repeated frame + start with no end In the case of 2 frame starts being received with no frame end between, the queued buffer held in next_frm was lost as the @@ -252218,7 +252158,7 @@ index 4bba864b2366..1e0101bb3af9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Feb 2022 16:06:11 +0000 -Subject: [PATCH 738/991] overlays: rpi-poe(-plus): Fix parameters +Subject: [PATCH 0736/1015] overlays: rpi-poe(-plus): Fix parameters The support of PoE HATs is complicated because there are two methods to control them - via the firmware, and directly over I2C - the choice @@ -252346,7 +252286,7 @@ index b78868945e72..54deda2f18c3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Grigori Goronzy Date: Wed, 9 Feb 2022 22:20:17 +0100 -Subject: [PATCH 739/991] dtoverlays: fix overrides in vc4-kms-dpi-generic +Subject: [PATCH 0737/1015] dtoverlays: fix overrides in vc4-kms-dpi-generic Apparently broken by commit 3c033975. Introduce new names to allow for proper addressing of overrides. @@ -252405,7 +252345,7 @@ index 1e5c5080592b..3e7e172c6c3d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Grigori Goronzy Date: Wed, 9 Feb 2022 22:23:11 +0100 -Subject: [PATCH 740/991] dtoverlays: add rgb565-padhi output to +Subject: [PATCH 0738/1015] dtoverlays: add rgb565-padhi output to vc4-kms-dpi-generic This mode is used by some DPI based display adapters, such as the @@ -252450,7 +252390,7 @@ index 3e7e172c6c3d..bf2ac6fe1b0d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 8 Feb 2022 13:49:11 +0000 -Subject: [PATCH 741/991] media: i2c: imx219: Scale the pixel clock rate for +Subject: [PATCH 0739/1015] media: i2c: imx219: Scale the pixel clock rate for the 640x480 mode The 640x480 mode uses a special binning mode for high framerate operation where @@ -252585,7 +252525,7 @@ index 6ee046096ef4..4339ddcb5ebc 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 14 Feb 2022 15:34:51 +0000 -Subject: [PATCH 742/991] drm/vc4: For DPI, MEDIA_BUS_FMT_RGB565_1X16 is mode +Subject: [PATCH 0740/1015] drm/vc4: For DPI, MEDIA_BUS_FMT_RGB565_1X16 is mode 1, not 3. The mapping is incorrect for RGB565_1X16 as it should be @@ -252616,7 +252556,7 @@ index 0d4fb6818d51..1bf1a4c6033d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 14 Feb 2022 15:59:32 +0000 -Subject: [PATCH 743/991] dtoverlays: Add additional mappings to +Subject: [PATCH 0741/1015] dtoverlays: Add additional mappings to vc4-kms-dpi-generic Adds mappings for bgr666, bgr666-padhi, and bgr888. @@ -252669,8 +252609,8 @@ index bf2ac6fe1b0d..85875c266296 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 17 Dec 2021 13:36:52 +0000 -Subject: [PATCH 744/991] drm/dsi: Document the meaning and spec references for - MIPI_DSI_MODE_* +Subject: [PATCH 0742/1015] drm/dsi: Document the meaning and spec references + for MIPI_DSI_MODE_* The MIPI_DSI_MODE_* flags have fairly terse descriptions and no reference to the DSI specification as to their exact meaning. Usage has therefore @@ -252751,7 +252691,7 @@ index af7ba8071eb0..eea8d86e0668 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 20 Jan 2022 17:29:36 +0000 -Subject: [PATCH 745/991] drm/bridge: tc358762: Ignore EPROBE_DEFER when +Subject: [PATCH 0743/1015] drm/bridge: tc358762: Ignore EPROBE_DEFER when logging errors mipi_dsi_attach can fail due to resources not being available @@ -252782,7 +252722,7 @@ index 1bfdfc6affaf..7cda18a12e98 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 30 Sep 2021 17:51:16 +0100 -Subject: [PATCH 746/991] drm/vc4: Rename bridge to out_bridge +Subject: [PATCH 0744/1015] drm/vc4: Rename bridge to out_bridge In preparation for converting the encoder to being a bridge, rename the variable holding the next bridge in the chain to @@ -252864,7 +252804,8 @@ index f19ce4d00378..bfb59a1665ec 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 7 Feb 2022 17:14:51 +0000 -Subject: [PATCH 747/991] drm/vc4: Move DSI initialisation to encoder_mode_set. +Subject: [PATCH 0745/1015] drm/vc4: Move DSI initialisation to + encoder_mode_set. Breaking the bridge chain does not work for atomic bridges/panels and generally causes issues. @@ -252935,7 +252876,7 @@ index bfb59a1665ec..0db98e26ab25 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 15 Dec 2021 17:44:49 +0000 -Subject: [PATCH 748/991] drm/vc4: Remove splitting the bridge chain from the +Subject: [PATCH 0746/1015] drm/vc4: Remove splitting the bridge chain from the driver. Splitting the bridge chain fails for atomic bridges as the @@ -253051,7 +252992,7 @@ index 0db98e26ab25..34c398b4eb10 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 15 Dec 2021 17:47:14 +0000 -Subject: [PATCH 749/991] drm/vc4: Convert vc4_dsi to use atomic +Subject: [PATCH 0747/1015] drm/vc4: Convert vc4_dsi to use atomic enable/disable/mode_set. The atomic calls are preferred as the non-atomic ones @@ -253142,8 +253083,8 @@ index 34c398b4eb10..a2daf23526ed 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 15 Dec 2021 17:57:45 +0000 -Subject: [PATCH 750/991] drm/vc4: Convert vc4_dsi to using a bridge instead of - encoder. +Subject: [PATCH 0748/1015] drm/vc4: Convert vc4_dsi to using a bridge instead + of encoder. Remove the encoder functions, and create a bridge attached to this dumb encoder which implements the same functionality. @@ -253412,7 +253353,7 @@ index a2daf23526ed..f9cb7a2ad289 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 11 Feb 2022 14:15:26 +0000 -Subject: [PATCH 751/991] drm/vc4: Remove entry to ULPS from vc4_dsi +Subject: [PATCH 0749/1015] drm/vc4: Remove entry to ULPS from vc4_dsi post_disable Post_disable was sending the D-PHY sequence to put any device @@ -253450,7 +253391,7 @@ index f9cb7a2ad289..0b80247961bb 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Wed, 16 Feb 2022 14:31:02 +0000 -Subject: [PATCH 752/991] usb: xhci: add a quirk for Superspeed bulk OUT +Subject: [PATCH 0750/1015] usb: xhci: add a quirk for Superspeed bulk OUT transfers on VL805 The VL805 has a bug in its internal FIFO space accounting that results @@ -253474,10 +253415,10 @@ Signed-off-by: Jonathan Bell 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c -index 0d2501e4135f..b783d83a3e72 100644 +index 99f916b4b902..e548265c526f 100644 --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -300,6 +300,7 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) +@@ -302,6 +302,7 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS; xhci->quirks |= XHCI_AVOID_DQ_ON_LINK; xhci->quirks |= XHCI_VLI_TRB_CACHE_BUG; @@ -253556,7 +253497,7 @@ index ef9eb513d061..810f74cb47ce 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 17 Feb 2022 15:16:56 +0000 -Subject: [PATCH 753/991] dtoverlays: Correct link frequency for ov7251 +Subject: [PATCH 0751/1015] dtoverlays: Correct link frequency for ov7251 It was incorrect, so the driver rejected it. @@ -253585,7 +253526,7 @@ index 0e44be8a4468..fcb889f591f7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Tue, 15 Feb 2022 23:07:30 +0000 -Subject: [PATCH 754/991] media: i2c: Add acpi support to ov7251 +Subject: [PATCH 0752/1015] media: i2c: Add acpi support to ov7251 Add support for enumeration through ACPI to the ov7251 driver @@ -253630,7 +253571,7 @@ index 2bcc3b70918f..aaaeca14dcc1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Tue, 15 Feb 2022 23:07:31 +0000 -Subject: [PATCH 755/991] media: i2c: Provide ov7251_check_hwcfg() +Subject: [PATCH 0753/1015] media: i2c: Provide ov7251_check_hwcfg() Move the endpoint checking from .probe() to a dedicated function, and additionally check that the firmware provided link frequencies @@ -253757,7 +253698,7 @@ index aaaeca14dcc1..e4faf28c6b58 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Tue, 15 Feb 2022 23:07:32 +0000 -Subject: [PATCH 756/991] media: i2c: Add ov7251_pll_configure() +Subject: [PATCH 0754/1015] media: i2c: Add ov7251_pll_configure() Rather than having the pll settings hidden inside mode blobs, define them in structs and use a dedicated function to set them. This makes @@ -254029,7 +253970,7 @@ index e4faf28c6b58..a7576f662250 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Tue, 15 Feb 2022 23:07:33 +0000 -Subject: [PATCH 757/991] media: i2c: Add support for 19.2MHz clock to ov7251 +Subject: [PATCH 0755/1015] media: i2c: Add support for 19.2MHz clock to ov7251 The OV7251 sensor is used as the IR camera sensor on the Microsoft Surface line of tablets; this provides a 19.2MHz external clock. Add @@ -254179,7 +254120,7 @@ index a7576f662250..084d68b852f7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Tue, 15 Feb 2022 23:07:34 +0000 -Subject: [PATCH 758/991] media: i2c: Add ov7251_detect_chip() +Subject: [PATCH 0756/1015] media: i2c: Add ov7251_detect_chip() .probe() is quite busy for this driver; make it cleaner by moving the chip verification to a dedicated function. @@ -254283,7 +254224,7 @@ index 084d68b852f7..492b7082254e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Tue, 15 Feb 2022 23:07:35 +0000 -Subject: [PATCH 759/991] media: i2c: Add pm_runtime support to ov7251 +Subject: [PATCH 0757/1015] media: i2c: Add pm_runtime support to ov7251 Add pm_runtime support to the ov7251 driver. @@ -254497,7 +254438,7 @@ index 492b7082254e..4d047226e370 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Tue, 15 Feb 2022 23:07:36 +0000 -Subject: [PATCH 760/991] media: i2c: Remove .s_power() from ov7251 +Subject: [PATCH 0758/1015] media: i2c: Remove .s_power() from ov7251 The .s_power() callback is deprecated, and now that we have pm_runtime functionality in the driver there's no further use for it. Delete the @@ -254592,7 +254533,7 @@ index 4d047226e370..18f4c28c573e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 17 Feb 2022 14:48:30 +0000 -Subject: [PATCH 761/991] media: i2c: ov7251: Reinstate setting +Subject: [PATCH 0759/1015] media: i2c: ov7251: Reinstate setting ov7251_global_init_setting "media: i2c: Remove .s_power() from ov7251" removed the call that @@ -254630,7 +254571,7 @@ index 18f4c28c573e..3ba98ad4850b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Sat, 12 Feb 2022 09:47:38 +0000 -Subject: [PATCH 762/991] media: i2c: ov7251: V4L2_CID_PIXEL_RATE is fixed +Subject: [PATCH 0760/1015] media: i2c: ov7251: V4L2_CID_PIXEL_RATE is fixed The pixel rate doesn't actually change based on the mode, and can not be set by userspace. @@ -254740,7 +254681,8 @@ index 3ba98ad4850b..06e45f46e723 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Sat, 12 Feb 2022 09:53:47 +0000 -Subject: [PATCH 763/991] media: i2c: ov7251: V4L2_CID_LINK_FREQUENCY is fixed +Subject: [PATCH 0761/1015] media: i2c: ov7251: V4L2_CID_LINK_FREQUENCY is + fixed The link frequency does not change with the mode, so remove the special handling for it. @@ -254853,7 +254795,7 @@ index 06e45f46e723..419fce0348a7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Sat, 12 Feb 2022 11:57:19 +0000 -Subject: [PATCH 764/991] media: i2c: ov7251: Initialise current_mode during +Subject: [PATCH 0762/1015] media: i2c: ov7251: Initialise current_mode during probe Initialise ov7251->current_mode during probe to avoid the issue @@ -254885,7 +254827,7 @@ index 419fce0348a7..8f782c83eac7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Sat, 12 Feb 2022 12:05:02 +0000 -Subject: [PATCH 765/991] media: i2c: ov7251: Add V4L2_CID_HBLANK control +Subject: [PATCH 0763/1015] media: i2c: ov7251: Add V4L2_CID_HBLANK control HBLANK is a fixed value in this driver, so add as a fixed read-only control. @@ -254976,7 +254918,8 @@ index 8f782c83eac7..04cc0118d28f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Sat, 12 Feb 2022 12:33:13 +0000 -Subject: [PATCH 766/991] media: i2c: ov7251: Do not reset gain on mode change +Subject: [PATCH 0764/1015] media: i2c: ov7251: Do not reset gain on mode + change There is no reaon why changing mode should reset the analogue gain of the sensor, and it's not the behaviour that userspace @@ -255040,7 +254983,7 @@ index 04cc0118d28f..db3ac100686c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 17 Feb 2022 15:57:01 +0000 -Subject: [PATCH 767/991] media: i2c: ov7251: Fix link_freq validation loop +Subject: [PATCH 0765/1015] media: i2c: ov7251: Fix link_freq validation loop If only one link frequency was configured, then ov7251_check_hwcfg failed as the conditions weren't checked in the appropriate places. @@ -255079,7 +255022,7 @@ index db3ac100686c..5de185e2db12 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 17 Feb 2022 16:23:23 +0000 -Subject: [PATCH 768/991] media: i2c: ov7251: Add get_selection for +Subject: [PATCH 0766/1015] media: i2c: ov7251: Add get_selection for NATIVE_SIZE, CROP_BOUNDS, CROP_DEFAULT As required by libcamera, add get_selection handling for @@ -255163,7 +255106,7 @@ index 5de185e2db12..00074b68ee43 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 17 Feb 2022 16:24:51 +0000 -Subject: [PATCH 769/991] media: i2c: ov7251: Set VTS instead of having full +Subject: [PATCH 0767/1015] media: i2c: ov7251: Set VTS instead of having full tables for FPS. The driver did have a full copy of the registers for each of @@ -255542,7 +255485,7 @@ index 00074b68ee43..6118c234f342 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 17 Feb 2022 16:44:33 +0000 -Subject: [PATCH 770/991] media: i2c: ov7251: Limit exposure based on VTS +Subject: [PATCH 0768/1015] media: i2c: ov7251: Limit exposure based on VTS The maximum exposure is dictated by VTS, so compute it rather than having the value in the mode table. @@ -255626,7 +255569,7 @@ index 6118c234f342..54eee4fddabe 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 17 Feb 2022 17:00:27 +0000 -Subject: [PATCH 771/991] media: i2c: ov7251: Separate modes from frame +Subject: [PATCH 0769/1015] media: i2c: ov7251: Separate modes from frame intervals The modes and frame intervals are independent, therefore @@ -255866,7 +255809,7 @@ index 54eee4fddabe..108658ac6994 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 17 Feb 2022 18:08:39 +0000 -Subject: [PATCH 772/991] media: i2c: ov7251: Add V4L2_CID_VBLANK +Subject: [PATCH 0770/1015] media: i2c: ov7251: Add V4L2_CID_VBLANK This is a raw sensor so should be implementing V4L2_CID_VBLANK instead of the frame_interval ops, as per docs at @@ -256025,7 +255968,7 @@ index 108658ac6994..65bb3e0fd265 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 17 Feb 2022 18:31:56 +0000 -Subject: [PATCH 773/991] media: i2c: ov7251: Switch from V4L2_CID_GAIN to +Subject: [PATCH 0771/1015] media: i2c: ov7251: Switch from V4L2_CID_GAIN to V4L2_CID_ANALOGUE_GAIN The control is specifically for analogue gain, therefore switch @@ -256067,7 +256010,7 @@ index 65bb3e0fd265..adc8e1980cfd 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 17 Feb 2022 18:12:36 +0000 -Subject: [PATCH 774/991] dtoverlays: Switch ov7251 to using Media Controller +Subject: [PATCH 0772/1015] dtoverlays: Switch ov7251 to using Media Controller by default We should have all the functionality required by now, so switch @@ -256096,134 +256039,8 @@ index fcb889f591f7..3cf109ec998f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard -Date: Thu, 17 Feb 2022 10:55:26 +0100 -Subject: [PATCH 775/991] drm/vc4: hvs: Fix frame count register readout - -In order to get the field currently being output, the driver has been -using the display FIFO frame count in the HVS, reading a 6-bit field at -the offset 12 in the DISPSTATx register. - -While that field is indeed at that location for the FIFO 1 and 2, the -one for the FIFO0 is actually in the DISPSTAT1 register, at the offset -18. - -Fixes: e538092cb15c ("drm/vc4: Enable precise vblank timestamping for interlaced modes.") -Signed-off-by: Maxime Ripard ---- - drivers/gpu/drm/vc4/vc4_crtc.c | 2 +- - drivers/gpu/drm/vc4/vc4_drv.h | 1 + - drivers/gpu/drm/vc4/vc4_hvs.c | 23 +++++++++++++++++++++++ - drivers/gpu/drm/vc4/vc4_regs.h | 12 ++++++++++-- - 4 files changed, 35 insertions(+), 3 deletions(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c -index fe15cda3bc53..160cefd0585e 100644 ---- a/drivers/gpu/drm/vc4/vc4_crtc.c -+++ b/drivers/gpu/drm/vc4/vc4_crtc.c -@@ -123,7 +123,7 @@ static bool vc4_crtc_get_scanout_position(struct drm_crtc *crtc, - *vpos /= 2; - - /* Use hpos to correct for field offset in interlaced mode. */ -- if (VC4_GET_FIELD(val, SCALER_DISPSTATX_FRAME_COUNT) % 2) -+ if (vc4_hvs_get_fifo_frame_count(dev, vc4_crtc_state->assigned_channel) % 2) - *hpos += mode->crtc_htotal / 2; - } - -diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h -index 81bca15b31e2..d956daf7d36b 100644 ---- a/drivers/gpu/drm/vc4/vc4_drv.h -+++ b/drivers/gpu/drm/vc4/vc4_drv.h -@@ -967,6 +967,7 @@ void vc4_irq_reset(struct drm_device *dev); - extern struct platform_driver vc4_hvs_driver; - void vc4_hvs_stop_channel(struct drm_device *dev, unsigned int output); - int vc4_hvs_get_fifo_from_output(struct drm_device *dev, unsigned int output); -+u8 vc4_hvs_get_fifo_frame_count(struct drm_device *dev, unsigned int fifo); - int vc4_hvs_atomic_check(struct drm_crtc *crtc, struct drm_atomic_state *state); - void vc4_hvs_atomic_begin(struct drm_crtc *crtc, struct drm_atomic_state *state); - void vc4_hvs_atomic_enable(struct drm_crtc *crtc, struct drm_atomic_state *state); -diff --git a/drivers/gpu/drm/vc4/vc4_hvs.c b/drivers/gpu/drm/vc4/vc4_hvs.c -index c979d3c41353..bb21def7758a 100644 ---- a/drivers/gpu/drm/vc4/vc4_hvs.c -+++ b/drivers/gpu/drm/vc4/vc4_hvs.c -@@ -388,6 +388,29 @@ static void vc5_hvs_update_gamma_lut(struct drm_crtc *crtc) - vc5_hvs_lut_load(crtc); - } - -+u8 vc4_hvs_get_fifo_frame_count(struct drm_device *dev, unsigned int fifo) -+{ -+ struct vc4_dev *vc4 = to_vc4_dev(dev); -+ u8 field = 0; -+ -+ switch (fifo) { -+ case 0: -+ field = VC4_GET_FIELD(HVS_READ(SCALER_DISPSTAT1), -+ SCALER_DISPSTAT1_FRCNT0); -+ break; -+ case 1: -+ field = VC4_GET_FIELD(HVS_READ(SCALER_DISPSTAT1), -+ SCALER_DISPSTAT1_FRCNT1); -+ break; -+ case 2: -+ field = VC4_GET_FIELD(HVS_READ(SCALER_DISPSTAT2), -+ SCALER_DISPSTAT2_FRCNT2); -+ break; -+ } -+ -+ return field; -+} -+ - int vc4_hvs_get_fifo_from_output(struct drm_device *dev, unsigned int output) - { - struct vc4_dev *vc4 = to_vc4_dev(dev); -diff --git a/drivers/gpu/drm/vc4/vc4_regs.h b/drivers/gpu/drm/vc4/vc4_regs.h -index f40dd93f2cdd..88e9a398758e 100644 ---- a/drivers/gpu/drm/vc4/vc4_regs.h -+++ b/drivers/gpu/drm/vc4/vc4_regs.h -@@ -379,8 +379,6 @@ - # define SCALER_DISPSTATX_MODE_EOF 3 - # define SCALER_DISPSTATX_FULL BIT(29) - # define SCALER_DISPSTATX_EMPTY BIT(28) --# define SCALER_DISPSTATX_FRAME_COUNT_MASK VC4_MASK(17, 12) --# define SCALER_DISPSTATX_FRAME_COUNT_SHIFT 12 - # define SCALER_DISPSTATX_LINE_MASK VC4_MASK(11, 0) - # define SCALER_DISPSTATX_LINE_SHIFT 0 - -@@ -403,9 +401,15 @@ - (x) * (SCALER_DISPBKGND1 - \ - SCALER_DISPBKGND0)) - #define SCALER_DISPSTAT1 0x00000058 -+# define SCALER_DISPSTAT1_FRCNT0_MASK VC4_MASK(23, 18) -+# define SCALER_DISPSTAT1_FRCNT0_SHIFT 18 -+# define SCALER_DISPSTAT1_FRCNT1_MASK VC4_MASK(17, 12) -+# define SCALER_DISPSTAT1_FRCNT1_SHIFT 12 -+ - #define SCALER_DISPSTATX(x) (SCALER_DISPSTAT0 + \ - (x) * (SCALER_DISPSTAT1 - \ - SCALER_DISPSTAT0)) -+ - #define SCALER_DISPBASE1 0x0000005c - #define SCALER_DISPBASEX(x) (SCALER_DISPBASE0 + \ - (x) * (SCALER_DISPBASE1 - \ -@@ -415,7 +419,11 @@ - (x) * (SCALER_DISPCTRL1 - \ - SCALER_DISPCTRL0)) - #define SCALER_DISPBKGND2 0x00000064 -+ - #define SCALER_DISPSTAT2 0x00000068 -+# define SCALER_DISPSTAT2_FRCNT2_MASK VC4_MASK(17, 12) -+# define SCALER_DISPSTAT2_FRCNT2_SHIFT 12 -+ - #define SCALER_DISPBASE2 0x0000006c - #define SCALER_DISPALPHA2 0x00000070 - #define SCALER_GAMADDR 0x00000078 --- -2.18.4 - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Maxime Ripard Date: Mon, 14 Feb 2022 17:21:05 +0100 -Subject: [PATCH 776/991] drm/vc4: hvs: Use pointer to HVS in HVS_READ and +Subject: [PATCH 0773/1015] drm/vc4: hvs: Use pointer to HVS in HVS_READ and HVS_WRITE macros Those macros are really about the HVS itself, and thus its associated @@ -256368,7 +256185,7 @@ index d956daf7d36b..2330d3419e2f 100644 /* vc4_kms.c */ int vc4_kms_load(struct drm_device *dev); diff --git a/drivers/gpu/drm/vc4/vc4_hvs.c b/drivers/gpu/drm/vc4/vc4_hvs.c -index bb21def7758a..dcd166d2ea73 100644 +index 78a9346bdfd2..fa275dcfc251 100644 --- a/drivers/gpu/drm/vc4/vc4_hvs.c +++ b/drivers/gpu/drm/vc4/vc4_hvs.c @@ -64,22 +64,21 @@ static const struct debugfs_reg32 hvs_regs[] = { @@ -256731,7 +256548,7 @@ index 20fa5a15d6f6..dcb27969fba7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 16 Dec 2021 14:54:54 +0100 -Subject: [PATCH 777/991] drm/vc4: hvs: Defer dlist slots deallocation +Subject: [PATCH 0774/1015] drm/vc4: hvs: Defer dlist slots deallocation During normal operations, the cursor position update is done through an asynchronous plane update, which on the vc4 driver basically just @@ -256872,7 +256689,7 @@ index 2330d3419e2f..abd279e1ca58 100644 void vc4_hvs_atomic_begin(struct drm_crtc *crtc, struct drm_atomic_state *state); void vc4_hvs_atomic_enable(struct drm_crtc *crtc, struct drm_atomic_state *state); diff --git a/drivers/gpu/drm/vc4/vc4_hvs.c b/drivers/gpu/drm/vc4/vc4_hvs.c -index dcd166d2ea73..ffc917d64984 100644 +index fa275dcfc251..20dd26576228 100644 --- a/drivers/gpu/drm/vc4/vc4_hvs.c +++ b/drivers/gpu/drm/vc4/vc4_hvs.c @@ -389,6 +389,150 @@ static void vc5_hvs_update_gamma_lut(struct vc4_hvs *hvs, @@ -257124,7 +256941,7 @@ index dcd166d2ea73..ffc917d64984 100644 } /* Clear every per-channel interrupt flag. */ -@@ -902,6 +1055,8 @@ static int vc4_hvs_bind(struct device *dev, struct device *master, void *data) +@@ -903,6 +1056,8 @@ static int vc4_hvs_bind(struct device *dev, struct device *master, void *data) hvs->dlist = hvs->regs + SCALER5_DLIST_START; spin_lock_init(&hvs->mm_lock); @@ -257152,7 +256969,7 @@ index 88e9a398758e..c7b2be063189 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Sun, 20 Feb 2022 16:27:11 +0000 -Subject: [PATCH 778/991] ARM: dts: Add GPIO line names for downstream RPis +Subject: [PATCH 0775/1015] ARM: dts: Add GPIO line names for downstream RPis Largely copied from the upstream dts files, with a few additions and tweaks. @@ -258154,7 +257971,7 @@ index 38629ebfa47f..601b0573c7a7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Joerg Schambacher Date: Wed, 23 Feb 2022 12:08:42 +0100 -Subject: [PATCH 779/991] overlays:fixes probing of Hifiberry DAC2 HD +Subject: [PATCH 0776/1015] overlays:fixes probing of Hifiberry DAC2 HD Removed clocks-declarations in I2C sections of the DT-overlay which kept the devices from probing. @@ -258225,7 +258042,7 @@ index c5583e010339..b9165138c7ad 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: nmbath Date: Thu, 24 Feb 2022 13:10:01 +0000 -Subject: [PATCH 780/991] overlays: Overlays for WaveShare 2-Chan CAN FD HAT +Subject: [PATCH 0777/1015] overlays: Overlays for WaveShare 2-Chan CAN FD HAT This patch adds the overlays for the Waveshare 2-Channel Isolated CAN FD Expansion HAT for Raspberry Pi, Multi Protections. This HAT @@ -258560,7 +258377,7 @@ index 000000000000..b2504922c8de From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 25 Feb 2022 09:53:56 +0000 -Subject: [PATCH 781/991] overlays: Add "drm" parameter to pitft35-resistive +Subject: [PATCH 0778/1015] overlays: Add "drm" parameter to pitft35-resistive The "drm" parameter forces the use of the hx8357d DRM driver, when by default the fb_hx8357d framebuffer driver will be used in preference. @@ -258606,7 +258423,7 @@ index 37629f18a740..713532cb2272 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 25 Feb 2022 15:08:56 +0000 -Subject: [PATCH 782/991] configs: Add CONFIG_TINYDRM_HX8357D=m +Subject: [PATCH 0779/1015] configs: Add CONFIG_TINYDRM_HX8357D=m See: https://forums.raspberrypi.com/viewtopic.php?t=330088 @@ -258686,7 +258503,7 @@ index 98c473412018..01ef1bdc4900 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 1 Mar 2022 15:12:15 +0000 -Subject: [PATCH 783/991] usb: xhci: rework XHCI_VLI_SS_BULK_OUT_BUG quirk +Subject: [PATCH 0780/1015] usb: xhci: rework XHCI_VLI_SS_BULK_OUT_BUG quirk Fix incorrectly applying the quirk for bulk IN endpoints and remove the commentary which is not completely accurate based on observed behaviour. @@ -258743,7 +258560,7 @@ index 5d6cc93594ee..6b4cb26407d5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 1 Mar 2022 15:17:04 +0000 -Subject: [PATCH 784/991] usb: xhci: expand the scope of +Subject: [PATCH 0781/1015] usb: xhci: expand the scope of XHCI_VLI_SS_BULK_OUT_BUG Further testing has revealed that any TRB with buffer length that is not @@ -258813,7 +258630,7 @@ index 35dbb38d48d6..2557d126814b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 25 Feb 2022 18:16:13 +0000 -Subject: [PATCH 785/991] media/i2c: Add driver for Omnivision OV2311 +Subject: [PATCH 0782/1015] media/i2c: Add driver for Omnivision OV2311 Omnivision OV2311 is a CSI2 1600x1300 global shutter image sensor. Add a driver for it. @@ -260054,7 +259871,7 @@ index 000000000000..a6d68e760742 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 25 Feb 2022 18:16:26 +0000 -Subject: [PATCH 786/991] dtoverlays: Add overlay for Omnivision OV2311 image +Subject: [PATCH 0783/1015] dtoverlays: Add overlay for Omnivision OV2311 image sensor Adds an overlay for the OV2311 1600x1300 monochrome global @@ -260212,7 +260029,8 @@ index 000000000000..9f8e1b3edccc From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 25 Feb 2022 18:14:39 +0000 -Subject: [PATCH 787/991] defconfigs: Add OV2311 image sensor to Pi defconfigs +Subject: [PATCH 0784/1015] defconfigs: Add OV2311 image sensor to Pi + defconfigs Signed-off-by: Dave Stevenson --- @@ -260290,7 +260108,7 @@ index 01ef1bdc4900..039d06428669 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 2 Mar 2022 17:23:16 +0000 -Subject: [PATCH 788/991] staging/vc-sm-cma: Avoid log spamming on Pi0/1 over +Subject: [PATCH 0785/1015] staging/vc-sm-cma: Avoid log spamming on Pi0/1 over cache alias. Pi 0/1 use the 0x80000000 cache alias as the ARM also sees the world @@ -260337,7 +260155,7 @@ index 88c4df822922..82a9c6e7f277 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Wed, 2 Mar 2022 16:47:37 +0000 -Subject: [PATCH 789/991] staging: vc04_services: isp: Permit all sRGB colour +Subject: [PATCH 0786/1015] staging: vc04_services: isp: Permit all sRGB colour spaces on ISP outputs ISP outputs actually support all colour spaces that are fundamentally @@ -260504,7 +260322,7 @@ index a545dbf2b5dd..5ab232ff9bd9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 3 Mar 2022 16:45:53 +0000 -Subject: [PATCH 790/991] drivers: staging: bcm2835-isp: Do not cleanup mmal +Subject: [PATCH 0787/1015] drivers: staging: bcm2835-isp: Do not cleanup mmal vcsm buffer on stop_streaming On stop_streaming() the vcsm buffer handle gets released by the buffer cleanup @@ -260553,8 +260371,8 @@ index 57e0ecc193f3..9ea817073dcd 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 8 Sep 2021 21:12:26 +0200 -Subject: [PATCH 791/991] drm/vc4: Fix out of order frames during asynchronous - page flips +Subject: [PATCH 0788/1015] drm/vc4: Fix out of order frames during + asynchronous page flips When doing an asynchronous page flip (PAGE_FLIP ioctl with the DRM_MODE_PAGE_FLIP_ASYNC flag set), the current code waits for the @@ -260656,7 +260474,7 @@ index 49016f7e6b9f..da264e2c4982 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Mon, 7 Mar 2022 10:00:33 +0000 -Subject: [PATCH 792/991] staging: vc04_services: codec: Add support for +Subject: [PATCH 0789/1015] staging: vc04_services: codec: Add support for V4L2_PIX_FMT_RGBA32 format We already support V4L2_PIX_FMT_BGR32 which is the same thing with red @@ -260691,92 +260509,8 @@ index 472d97d1d228..4451ceecb265 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard -Date: Fri, 4 Mar 2022 16:24:00 +0100 -Subject: [PATCH 793/991] drm/vc4: hvs: Reset muxes at probe time - -By default, the HVS driver will force the HVS output 3 to be muxed to -the HVS channel 2. However, the Transposer can only be assigned to the -HVS channel 2, so whenever we try to use the writeback connector, we'll -mux its associated output (Output 2) to the channel 2. - -This leads to both the output 2 and 3 feeding from the same channel, -which is explicitly discouraged in the documentation. - -In order to avoid this, let's reset all the output muxes to their reset -value. - -Fixes: 87ebcd42fb7b ("drm/vc4: crtc: Assign output to channel automatically") -Signed-off-by: Maxime Ripard ---- - drivers/gpu/drm/vc4/vc4_hvs.c | 26 +++++++++++++++++++++----- - 1 file changed, 21 insertions(+), 5 deletions(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_hvs.c b/drivers/gpu/drm/vc4/vc4_hvs.c -index ffc917d64984..20dd26576228 100644 ---- a/drivers/gpu/drm/vc4/vc4_hvs.c -+++ b/drivers/gpu/drm/vc4/vc4_hvs.c -@@ -1017,6 +1017,7 @@ static int vc4_hvs_bind(struct device *dev, struct device *master, void *data) - struct vc4_hvs *hvs = NULL; - int ret; - u32 dispctrl; -+ u32 reg; - - hvs = devm_kzalloc(&pdev->dev, sizeof(*hvs), GFP_KERNEL); - if (!hvs) -@@ -1090,6 +1091,26 @@ static int vc4_hvs_bind(struct device *dev, struct device *master, void *data) - - vc4->hvs = hvs; - -+ reg = HVS_READ(SCALER_DISPECTRL); -+ reg &= ~SCALER_DISPECTRL_DSP2_MUX_MASK; -+ HVS_WRITE(SCALER_DISPECTRL, -+ reg | VC4_SET_FIELD(0, SCALER_DISPECTRL_DSP2_MUX)); -+ -+ reg = HVS_READ(SCALER_DISPCTRL); -+ reg &= ~SCALER_DISPCTRL_DSP3_MUX_MASK; -+ HVS_WRITE(SCALER_DISPCTRL, -+ reg | VC4_SET_FIELD(3, SCALER_DISPCTRL_DSP3_MUX)); -+ -+ reg = HVS_READ(SCALER_DISPEOLN); -+ reg &= ~SCALER_DISPEOLN_DSP4_MUX_MASK; -+ HVS_WRITE(SCALER_DISPEOLN, -+ reg | VC4_SET_FIELD(3, SCALER_DISPEOLN_DSP4_MUX)); -+ -+ reg = HVS_READ(SCALER_DISPDITHER); -+ reg &= ~SCALER_DISPDITHER_DSP5_MUX_MASK; -+ HVS_WRITE(SCALER_DISPDITHER, -+ reg | VC4_SET_FIELD(3, SCALER_DISPDITHER_DSP5_MUX)); -+ - dispctrl = HVS_READ(SCALER_DISPCTRL); - - dispctrl |= SCALER_DISPCTRL_ENABLE; -@@ -1097,10 +1118,6 @@ static int vc4_hvs_bind(struct device *dev, struct device *master, void *data) - SCALER_DISPCTRL_DISPEIRQ(1) | - SCALER_DISPCTRL_DISPEIRQ(2); - -- /* Set DSP3 (PV1) to use HVS channel 2, which would otherwise -- * be unused. -- */ -- dispctrl &= ~SCALER_DISPCTRL_DSP3_MUX_MASK; - dispctrl &= ~(SCALER_DISPCTRL_DMAEIRQ | - SCALER_DISPCTRL_SLVWREIRQ | - SCALER_DISPCTRL_SLVRDEIRQ | -@@ -1114,7 +1131,6 @@ static int vc4_hvs_bind(struct device *dev, struct device *master, void *data) - SCALER_DISPCTRL_DSPEISLUR(1) | - SCALER_DISPCTRL_DSPEISLUR(2) | - SCALER_DISPCTRL_SCLEIRQ); -- dispctrl |= VC4_SET_FIELD(2, SCALER_DISPCTRL_DSP3_MUX); - - HVS_WRITE(SCALER_DISPCTRL, dispctrl); - --- -2.18.4 - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Maxime Ripard Date: Fri, 4 Mar 2022 15:58:51 +0100 -Subject: [PATCH 794/991] drm/vc4: kms: Store channel in local variable +Subject: [PATCH 0790/1015] drm/vc4: kms: Store channel in local variable We use the channel from our vc4_crtc_state structure in multiple places, let's store it in a local variable to make it cleaner. @@ -260852,8 +260586,8 @@ index dcb27969fba7..db82e40fbbce 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 4 Mar 2022 15:59:08 +0100 -Subject: [PATCH 795/991] drm/vc4: kms: Warn if we have an incompatible muxing - setup +Subject: [PATCH 0791/1015] drm/vc4: kms: Warn if we have an incompatible + muxing setup The documentation explicitly states we must prevent the output 2 and 3 from feeding from the same HVS channel. @@ -260887,7 +260621,7 @@ index db82e40fbbce..1dbb6e0427fc 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 4 Mar 2022 15:59:40 +0100 -Subject: [PATCH 796/991] drm/vc4: kms: Improve logging +Subject: [PATCH 0792/1015] drm/vc4: kms: Improve logging When debugging, finding out what muxing decisions were made and what the actual core clock rate is is always useful, so let's add some more @@ -260957,81 +260691,9 @@ index 1dbb6e0427fc..0ac34db76b47 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Maxime Ripard -Date: Fri, 4 Mar 2022 15:55:25 +0100 -Subject: [PATCH 797/991] drm/vc4: txp: Don't set TXP_VSTART_AT_EOF - -The TXP_VSTART_AT_EOF will generate a second VSTART signal to the HVS. -However, the HVS waits for VSTART to enable the FIFO and will thus start -filling the FIFO before the start of the frame. - -This leads to corruption at the beginning of the first frame, and -content from the previous frame at the beginning of the next frames. - -Since one VSTART is enough, let's get rid of it. - -Fixes: 008095e065a8 ("drm/vc4: Add support for the transposer block") -Signed-off-by: Maxime Ripard ---- - drivers/gpu/drm/vc4/vc4_txp.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_txp.c b/drivers/gpu/drm/vc4/vc4_txp.c -index 9809ca3e2945..ace2d03649ba 100644 ---- a/drivers/gpu/drm/vc4/vc4_txp.c -+++ b/drivers/gpu/drm/vc4/vc4_txp.c -@@ -298,7 +298,7 @@ static void vc4_txp_connector_atomic_commit(struct drm_connector *conn, - if (WARN_ON(i == ARRAY_SIZE(drm_fmts))) - return; - -- ctrl = TXP_GO | TXP_VSTART_AT_EOF | TXP_EI | -+ ctrl = TXP_GO | TXP_EI | - VC4_SET_FIELD(0xf, TXP_BYTE_ENABLE) | - VC4_SET_FIELD(txp_fmts[i], TXP_FORMAT); - --- -2.18.4 - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Maxime Ripard -Date: Fri, 4 Mar 2022 16:00:16 +0100 -Subject: [PATCH 798/991] drm/vc4: txp: Force alpha to be 0xff if it's disabled - -If we use a format that has padding instead of the alpha component (such -as XRGB8888), it appears that the Transposer will fill the padding to 0, -disregarding what was stored in the input buffer padding. - -This leads to issues with IGT, since it will set the padding to 0xff, -but will then compare the CRC of the two frames which will thus fail. - -Fixes: 008095e065a8 ("drm/vc4: Add support for the transposer block") -Signed-off-by: Maxime Ripard ---- - drivers/gpu/drm/vc4/vc4_txp.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/drivers/gpu/drm/vc4/vc4_txp.c b/drivers/gpu/drm/vc4/vc4_txp.c -index ace2d03649ba..5b4dd644214f 100644 ---- a/drivers/gpu/drm/vc4/vc4_txp.c -+++ b/drivers/gpu/drm/vc4/vc4_txp.c -@@ -304,6 +304,8 @@ static void vc4_txp_connector_atomic_commit(struct drm_connector *conn, - - if (fb->format->has_alpha) - ctrl |= TXP_ALPHA_ENABLE; -+ else -+ ctrl |= TXP_ALPHA_INVERT; - - gem = drm_fb_cma_get_gem_obj(fb, 0); - TXP_WRITE(TXP_DST_PTR, gem->paddr + fb->offsets[0]); --- -2.18.4 - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 8 Mar 2022 12:47:49 +0000 -Subject: [PATCH 799/991] ARM: dts: bcm2711-rpi-ds: Disable the BCM2835 STC +Subject: [PATCH 0793/1015] ARM: dts: bcm2711-rpi-ds: Disable the BCM2835 STC Although BCM2711 still includes the old BCM2835 system timer, the newer per-core local timers are preferred because they are more efficient to @@ -261064,7 +260726,7 @@ index ebf73b789b4a..cd5c43adc56b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 16 Dec 2021 15:25:35 +0000 -Subject: [PATCH 800/991] drm/bridge: Introduce pre_enable_upstream_first to +Subject: [PATCH 0794/1015] drm/bridge: Introduce pre_enable_upstream_first to alter bridge init order DSI sink devices typically want the DSI host powered up and configured @@ -261380,7 +261042,7 @@ index 46bdfa48c413..e1466106b319 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 23 Feb 2022 15:36:56 +0000 -Subject: [PATCH 801/991] drm/panel: Add prepare_upstream_first flag to +Subject: [PATCH 0795/1015] drm/panel: Add prepare_upstream_first flag to drm_panel Mapping to the drm_bridge flag pre_enable_upstream_first, @@ -261436,7 +261098,7 @@ index 830b4d058622..971f788ec6ca 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 11 Mar 2022 17:24:37 +0000 -Subject: [PATCH 802/991] drm: Include drm_connector.h from drm_panel.h +Subject: [PATCH 0796/1015] drm: Include drm_connector.h from drm_panel.h drm_panel.h wants to reference enum drm_panel_orientation which is defined in drm_connector.h (despite the name). @@ -261478,8 +261140,8 @@ index 971f788ec6ca..99eb628d7dcb 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 16 Dec 2021 15:33:43 +0000 -Subject: [PATCH 803/991] drm/tc358762: Set the pre_enable_upstream_first flag - to configure DSI host +Subject: [PATCH 0797/1015] drm/tc358762: Set the pre_enable_upstream_first + flag to configure DSI host TC358762 wants the DSI host to be prepared before it is powered up, so set the flag to request that the upstream bridges have their @@ -261509,7 +261171,7 @@ index 7cda18a12e98..82d13182697e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxim Devaev Date: Thu, 3 Mar 2022 23:06:15 +0300 -Subject: [PATCH 804/991] bcm2835-codec: /dev/video31 as interface to +Subject: [PATCH 0798/1015] bcm2835-codec: /dev/video31 as interface to image_encode JPEG encoder Signed-off-by: Maxim Devaev @@ -262316,7 +261978,8 @@ index 21087496a481..a1a5e6c9cb74 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Wed, 2 Mar 2022 22:03:00 +0000 -Subject: [PATCH 805/991] media: entity: Skip non-data links in graph iteration +Subject: [PATCH 0799/1015] media: entity: Skip non-data links in graph + iteration When iterating over the media graph, don't follow links that are not data links. @@ -262351,7 +262014,7 @@ index f40f41977142..2a6e16fb0048 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Wed, 2 Mar 2022 22:03:01 +0000 -Subject: [PATCH 806/991] media: media.h: Add new media link type +Subject: [PATCH 0800/1015] media: media.h: Add new media link type To describe in the kernel the connection between devices and their supporting peripherals (for example, a camera sensor and the vcm @@ -262435,7 +262098,7 @@ index 200fa8462b90..afbae7213d35 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Wed, 2 Mar 2022 22:03:02 +0000 -Subject: [PATCH 807/991] media: entity: Add link_type_name() helper +Subject: [PATCH 0801/1015] media: entity: Add link_type_name() helper Now we have three types of media link, printing the right name during debug output is slightly more complicated. Add a helper function to @@ -262490,7 +262153,7 @@ index 2a6e16fb0048..29d1285c805a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Wed, 2 Mar 2022 22:03:03 +0000 -Subject: [PATCH 808/991] media: entity: Add support for ancillary links +Subject: [PATCH 0802/1015] media: entity: Add support for ancillary links Add functions to create ancillary links, so that they don't need to be manually created by users. @@ -262567,7 +262230,7 @@ index 09737b47881f..72c7cd885d6b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Wed, 2 Mar 2022 22:03:04 +0000 -Subject: [PATCH 809/991] media: v4l2-async: Create links during +Subject: [PATCH 0803/1015] media: v4l2-async: Create links during v4l2_async_match_notify() Upon an async fwnode match, there's some typical behaviour that the @@ -262640,7 +262303,7 @@ index cd9e78c63791..84a12788d62c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Sep 2021 12:33:35 +0100 -Subject: [PATCH 810/991] dt-bindings: media: i2c: Add binding for ad5398 VCM +Subject: [PATCH 0804/1015] dt-bindings: media: i2c: Add binding for ad5398 VCM Add a binding for Analog Devices AD5398 10bit current sinking DAC when used as a lens VCM driver. @@ -262686,7 +262349,7 @@ index 000000000000..446ac9717598 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Sep 2021 14:04:28 +0100 -Subject: [PATCH 811/991] media: i2c: Add driver for AD5398 VCM lens driver +Subject: [PATCH 0805/1015] media: i2c: Add driver for AD5398 VCM lens driver Adds a driver for the Analog Devices AD5398 10 bit I2C DAC which is commonly used for driving VCM lens @@ -263085,7 +262748,7 @@ index 000000000000..102c3143f7d7 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 16 Mar 2022 12:15:41 +0000 -Subject: [PATCH 812/991] media: i2c: ov5647: Use +Subject: [PATCH 0806/1015] media: i2c: ov5647: Use v4l2_async_register_subdev_sensor for lens binding v4l2_async_register_subdev doesn't bind in lens or flash drivers, @@ -263117,7 +262780,7 @@ index 491246786f7c..befdb53bda1d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Sep 2021 14:25:49 +0100 -Subject: [PATCH 813/991] defconfigs: Add AD5398 VCM to all Pi defconfigs +Subject: [PATCH 0807/1015] defconfigs: Add AD5398 VCM to all Pi defconfigs Supports AD5398 controlled lens, as found on some 3rd party OV5647 and IMX219 image sensors. @@ -263198,7 +262861,7 @@ index 039d06428669..c98578ac5de0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 11 Mar 2022 15:32:00 +0000 -Subject: [PATCH 814/991] dtoverlays: Add VCM option to imx219 +Subject: [PATCH 0808/1015] dtoverlays: Add VCM option to imx219 Signed-off-by: Dave Stevenson --- @@ -263254,7 +262917,7 @@ index bc1217397dd5..d73f76aba8b6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 15 Mar 2022 18:36:10 +0000 -Subject: [PATCH 815/991] dtoverlay: Add VCM option to ov5647 overlay +Subject: [PATCH 0809/1015] dtoverlay: Add VCM option to ov5647 overlay Signed-off-by: Dave Stevenson --- @@ -263307,7 +262970,7 @@ index a1221024d334..af2c86383e1f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 17 Mar 2022 15:13:10 +0000 -Subject: [PATCH 816/991] media: i2c: Rename ad5398 to ad5398_vcm +Subject: [PATCH 0810/1015] media: i2c: Rename ad5398 to ad5398_vcm There's already a regulator module called ad5398 that exposes this device through the regulator API. That is meaningless in @@ -263346,7 +263009,7 @@ rename to drivers/media/i2c/ad5398_vcm.c From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 21 Feb 2022 10:59:02 +0100 -Subject: [PATCH 817/991] drm/object: Add +Subject: [PATCH 0811/1015] drm/object: Add drm_object_property_get_default_value() function Upstream commit adf47b75297ebc71c53b6dc2d3c55f42b8fb79fd. @@ -263483,7 +263146,7 @@ index c34a3e8030e1..912f1e415685 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 21 Feb 2022 10:59:03 +0100 -Subject: [PATCH 818/991] drm/object: Add default zpos value at reset +Subject: [PATCH 0812/1015] drm/object: Add default zpos value at reset Upstream commit 1a7998dab5dd3d11bada7e3921781922082e7fe6 @@ -263543,7 +263206,7 @@ index ddcf5c2c8e6a..1412cee404ca 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 21 Feb 2022 10:59:14 +0100 -Subject: [PATCH 819/991] drm/object: Add default color encoding and range +Subject: [PATCH 0813/1015] drm/object: Add default color encoding and range value at reset Upstream commit 9a48ab11714c955456fefdd4ab532d324fbef563 @@ -263603,7 +263266,7 @@ index 1412cee404ca..3b6d3bdbd099 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 25 Jan 2022 17:28:18 +0000 -Subject: [PATCH 820/991] drm/vc4: Support zpos on all planes +Subject: [PATCH 0814/1015] drm/vc4: Support zpos on all planes Adds the zpos property to all planes, and creates the dlist by placing the fragments in the correct order based on zpos. @@ -263758,7 +263421,7 @@ index 7a0f9d55777d..0e791620d97b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Rafael Sobral Date: Fri, 18 Mar 2022 23:25:16 -0300 -Subject: [PATCH 821/991] CM3 cam1_reg and cam1_reg_gpio fix +Subject: [PATCH 0815/1015] CM3 cam1_reg and cam1_reg_gpio fix property name is gpio and not gpios --- @@ -263787,7 +263450,7 @@ index fb99c3b1c7f1..f7f18331db02 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Sat, 19 Mar 2022 22:19:51 +0000 -Subject: [PATCH 822/991] overlays: Fix cam*_reg_gpio parameter on CM1 +Subject: [PATCH 0816/1015] overlays: Fix cam*_reg_gpio parameter on CM1 See: https://github.com/raspberrypi/linux/pull/4945 @@ -263818,7 +263481,7 @@ index dd59f884d796..c7845d2ba7ff 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jeff LaBundy Date: Sat, 19 Mar 2022 20:31:30 -0500 -Subject: [PATCH 823/991] overlays: iqs550: Enable interrupt pull-down +Subject: [PATCH 0817/1015] overlays: iqs550: Enable interrupt pull-down The device's active-high interrupt normally serves as a push-pull output, but becomes high-impedance during bootloader mode. Enable @@ -263870,7 +263533,7 @@ index bb5a4d921962..c3956937055f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 21 Mar 2022 18:27:45 +0000 -Subject: [PATCH 824/991] dtoverlays: Connect the backlight to the pitft35 +Subject: [PATCH 0818/1015] dtoverlays: Connect the backlight to the pitft35 display DRM will automatically handle the backlight with the display if @@ -263910,8 +263573,8 @@ index 713532cb2272..e11e1920024a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 7 Mar 2022 15:19:38 +0000 -Subject: [PATCH 825/991] drm/vc4: hdmi: Add CSC for BT601/709/2020 limited and - full range output +Subject: [PATCH 0819/1015] drm/vc4: hdmi: Add CSC for BT601/709/2020 limited + and full range output The HVS always composes in the RGB domain, but there is a colourspace conversion block on the output to allow for sending YCbCr over the @@ -263930,10 +263593,10 @@ Signed-off-by: Dave Stevenson 1 file changed, 146 insertions(+), 52 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 724a18ca7f49..97317bd88068 100644 +index f135ec975c0a..234f018de8c2 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -138,8 +138,8 @@ static bool vc4_hdmi_mode_needs_scrambling(const struct drm_display_mode *mode, +@@ -139,8 +139,8 @@ static bool vc4_hdmi_mode_needs_scrambling(const struct drm_display_mode *mode, return clock > HDMI_14_MAX_TMDS_CLK; } @@ -263944,7 +263607,7 @@ index 724a18ca7f49..97317bd88068 100644 { struct vc4_hdmi_encoder *vc4_encoder = &vc4_hdmi->encoder; -@@ -679,7 +679,7 @@ static void vc4_hdmi_set_avi_infoframe(struct drm_encoder *encoder) +@@ -680,7 +680,7 @@ static void vc4_hdmi_set_avi_infoframe(struct drm_encoder *encoder) drm_hdmi_avi_infoframe_quant_range(&frame.avi, connector, mode, @@ -263953,7 +263616,7 @@ index 724a18ca7f49..97317bd88068 100644 HDMI_QUANTIZATION_RANGE_FULL : HDMI_QUANTIZATION_RANGE_LIMITED); drm_hdmi_avi_infoframe_colorimetry(&frame.avi, cstate); -@@ -913,7 +913,7 @@ static void vc4_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, +@@ -914,7 +914,7 @@ static void vc4_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, csc_ctl = VC4_SET_FIELD(VC4_HD_CSC_CTL_ORDER_BGR, VC4_HD_CSC_CTL_ORDER); @@ -263962,7 +263625,7 @@ index 724a18ca7f49..97317bd88068 100644 /* CEA VICs other than #1 requre limited range RGB * output unless overridden by an AVI infoframe. * Apply a colorspace conversion to squash 0-255 down -@@ -943,7 +943,6 @@ static void vc4_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, +@@ -944,7 +944,6 @@ static void vc4_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, spin_unlock_irqrestore(&vc4_hdmi->hw_lock, flags); } @@ -263970,7 +263633,7 @@ index 724a18ca7f49..97317bd88068 100644 /* * If we need to output Full Range RGB, then use the unity matrix * -@@ -951,15 +950,6 @@ static void vc4_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, +@@ -952,15 +951,6 @@ static void vc4_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, * [ 0 1 0 0] * [ 0 0 1 0] * @@ -263986,7 +263649,7 @@ index 724a18ca7f49..97317bd88068 100644 * CEA VICs other than #1 require limited range RGB output unless * overridden by an AVI infoframe. Apply a colorspace conversion to * squash 0-255 down to 16-235. The matrix here is: -@@ -970,42 +960,105 @@ static const u16 vc5_hdmi_csc_full_rgb_unity[3][4] = { +@@ -971,42 +961,105 @@ static const u16 vc5_hdmi_csc_full_rgb_unity[3][4] = { * * Matrix is signed 2p13 fixed point, with signed 9p6 offsets */ @@ -264114,7 +263777,7 @@ index 724a18ca7f49..97317bd88068 100644 }; static void vc5_hdmi_set_csc_coeffs(struct vc4_hdmi *vc4_hdmi, -@@ -1021,12 +1074,28 @@ static void vc5_hdmi_set_csc_coeffs(struct vc4_hdmi *vc4_hdmi, +@@ -1022,12 +1075,28 @@ static void vc5_hdmi_set_csc_coeffs(struct vc4_hdmi *vc4_hdmi, HDMI_WRITE(HDMI_CSC_34_33, (coeffs[2][3] << 16) | coeffs[2][2]); } @@ -264143,7 +263806,7 @@ index 724a18ca7f49..97317bd88068 100644 unsigned long flags; u32 if_cfg = 0; u32 if_xbar = 0x543210; -@@ -1038,31 +1107,56 @@ static void vc5_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, +@@ -1039,31 +1108,56 @@ static void vc5_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, switch (vc4_state->output_format) { case VC4_HDMI_OUTPUT_YUV444: @@ -264223,7 +263886,7 @@ index 724a18ca7f49..97317bd88068 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 23 Mar 2022 14:44:49 +0000 -Subject: [PATCH 826/991] Revert "usb: xhci: expand the scope of +Subject: [PATCH 0820/1015] Revert "usb: xhci: expand the scope of XHCI_VLI_SS_BULK_OUT_BUG" This reverts commit 40686d87f87a46b3abf48a8dcaee5e0a031deafb. @@ -264286,7 +263949,7 @@ index 2557d126814b..35dbb38d48d6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 14 Mar 2022 17:56:10 +0000 -Subject: [PATCH 827/991] vc4/drm: vc4_plane: Keep fractional source coords +Subject: [PATCH 0821/1015] vc4/drm: vc4_plane: Keep fractional source coords inside state Signed-off-by: Dom Cobley @@ -264505,7 +264168,7 @@ index 0e791620d97b..2ace5e9edc8f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Fri, 9 Apr 2021 15:00:40 +0100 -Subject: [PATCH 828/991] vc4/drm: Handle fractional coordinates using the +Subject: [PATCH 0822/1015] vc4/drm: Handle fractional coordinates using the phase field Signed-off-by: Dom Cobley @@ -264616,7 +264279,7 @@ index 2ace5e9edc8f..69c860c81126 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 26 Jan 2022 15:58:13 +0000 -Subject: [PATCH 829/991] drm: Add chroma siting properties +Subject: [PATCH 0823/1015] drm: Add chroma siting properties Signed-off-by: Dom Cobley --- @@ -264800,7 +264463,7 @@ index fed97e35626f..ef61f7ae8ab6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Thu, 27 Jan 2022 15:32:04 +0000 -Subject: [PATCH 830/991] vc4/drm:plane: Make use of chroma siting parameter +Subject: [PATCH 0824/1015] vc4/drm:plane: Make use of chroma siting parameter Signed-off-by: Dom Cobley --- @@ -264866,8 +264529,8 @@ index 69c860c81126..4595c09c782d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 22 Mar 2022 15:16:40 +0000 -Subject: [PATCH 831/991] drivers: staging: bcm2835-isp: Clear LS table handle - in the firmware +Subject: [PATCH 0825/1015] drivers: staging: bcm2835-isp: Clear LS table + handle in the firmware When all nodes have stopped streaming, ensure the firmware has released its handle on the LS table dmabuf. This is done by passing a null handle in the @@ -264909,7 +264572,7 @@ index 9ea817073dcd..b674992aee01 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Sun, 27 Feb 2022 13:47:09 +0100 -Subject: [PATCH 832/991] dt-bindings: display: add bindings for MIPI DBI +Subject: [PATCH 0826/1015] dt-bindings: display: add bindings for MIPI DBI compatible SPI panels MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -265092,7 +264755,7 @@ index 000000000000..f29789994b18 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Sun, 27 Feb 2022 13:47:11 +0100 -Subject: [PATCH 833/991] drm/modes: Add of_get_drm_panel_display_mode() +Subject: [PATCH 0827/1015] drm/modes: Add of_get_drm_panel_display_mode() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -265212,7 +264875,7 @@ index 29ba4adf0c53..2fa6b2c33b3f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Sun, 27 Feb 2022 13:47:12 +0100 -Subject: [PATCH 834/991] drm/mipi-dbi: Add driver_private member to struct +Subject: [PATCH 0828/1015] drm/mipi-dbi: Add driver_private member to struct mipi_dbi_dev MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -265263,7 +264926,7 @@ index 05e194958265..0981f80eb706 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Sun, 27 Feb 2022 13:47:13 +0100 -Subject: [PATCH 835/991] drm/tiny: Add MIPI DBI compatible SPI driver +Subject: [PATCH 0829/1015] drm/tiny: Add MIPI DBI compatible SPI driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -265324,7 +264987,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20220227124713.39766-6-noral create mode 100644 drivers/gpu/drm/tiny/panel-mipi-dbi.c diff --git a/MAINTAINERS b/MAINTAINERS -index b85a51d5abf2..f8c3d63c4f86 100644 +index d245122be4b5..58e76abca434 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -5975,6 +5975,14 @@ T: git git://anongit.freedesktop.org/drm/drm-misc @@ -265791,7 +265454,7 @@ index 000000000000..7f8c6c51387f From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Wed, 2 Mar 2022 18:17:44 +0100 -Subject: [PATCH 836/991] configs: Add MIPI DBI display driver +Subject: [PATCH 0830/1015] configs: Add MIPI DBI display driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -265874,7 +265537,7 @@ index c98578ac5de0..a24f2c241ed9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Mon, 7 Mar 2022 17:05:49 +0100 -Subject: [PATCH 837/991] overlays: Add overlay for MIPI DBI displays +Subject: [PATCH 0831/1015] overlays: Add overlay for MIPI DBI displays MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -266165,7 +265828,7 @@ index 000000000000..0677f79cce6e From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Matt Flax Date: Sun, 27 Mar 2022 22:42:47 +1100 -Subject: [PATCH 838/991] audioinjector.net: stereo and zero, use +Subject: [PATCH 0832/1015] audioinjector.net: stereo and zero, use dev_err_probe, report success Use dev_err_probe to follow best practice, and leave a message in @@ -266200,7 +265863,7 @@ index 3f24fa739081..ad337201c558 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Sat, 26 Mar 2022 18:59:27 +0100 -Subject: [PATCH 839/991] Revert "update rpi-display-overlay.dts pins for +Subject: [PATCH 0833/1015] Revert "update rpi-display-overlay.dts pins for 5.10+" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -266238,7 +265901,7 @@ index 2cf937b56456..de87432ff2be 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Sun, 27 Mar 2022 18:54:17 +0200 -Subject: [PATCH 840/991] overlays/rpi-display: Add support for DRM driver +Subject: [PATCH 0834/1015] overlays/rpi-display: Add support for DRM driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -266382,7 +266045,7 @@ index de87432ff2be..789644b9f251 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 28 Mar 2022 11:52:48 +0100 -Subject: [PATCH 841/991] bcm2835-codec: Return empty buffers to the VPU +Subject: [PATCH 0835/1015] bcm2835-codec: Return empty buffers to the VPU instead of queueing to vbuf2 The encoder can skip frames totally should rate control overshoot @@ -266437,8 +266100,8 @@ index ebda39a2cc06..8abdd7f6b7fd 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Tue, 29 Mar 2022 16:10:06 +0100 -Subject: [PATCH 842/991] mm,page_alloc,cma: introduce a customisable threshold - for allocating pages in cma +Subject: [PATCH 0836/1015] mm,page_alloc,cma: introduce a customisable + threshold for allocating pages in cma On some platforms the cma area can be half the entire system memory, meaning that allocations start happening in the cma area immediately. @@ -266455,7 +266118,7 @@ Signed-off-by: David Plowman 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index 47c22810c3c5..5963d47d2145 100644 +index a0b7afae59e9..2f6d67a0beaf 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -190,6 +190,27 @@ EXPORT_SYMBOL(init_on_alloc); @@ -266510,7 +266173,7 @@ index 47c22810c3c5..5963d47d2145 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 30 Mar 2022 09:48:41 +0100 -Subject: [PATCH 843/991] pinctrl: bcm2835: Only return non-GPIOs to inputs +Subject: [PATCH 0837/1015] pinctrl: bcm2835: Only return non-GPIOs to inputs Allowing GPIO state to persist allows the use of gpioset to control GPIO levels without having to use the --mode=wait feature. @@ -266521,10 +266184,10 @@ Signed-off-by: Phil Elwell 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -index a68f440518d7..358fc1caf490 100644 +index 90ce5d11f3a6..fc2cc1966041 100644 --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -@@ -892,9 +892,12 @@ static int bcm2835_pmx_free(struct pinctrl_dev *pctldev, +@@ -910,9 +910,12 @@ static int bcm2835_pmx_free(struct pinctrl_dev *pctldev, unsigned offset) { struct bcm2835_pinctrl *pc = pinctrl_dev_get_drvdata(pctldev); @@ -266539,7 +266202,7 @@ index a68f440518d7..358fc1caf490 100644 return 0; } -@@ -936,10 +939,7 @@ static void bcm2835_pmx_gpio_disable_free(struct pinctrl_dev *pctldev, +@@ -954,10 +957,7 @@ static void bcm2835_pmx_gpio_disable_free(struct pinctrl_dev *pctldev, struct pinctrl_gpio_range *range, unsigned offset) { @@ -266558,7 +266221,7 @@ index a68f440518d7..358fc1caf490 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Wed, 30 Mar 2022 11:43:25 +0100 -Subject: [PATCH 844/991] ARM: dts: Enable PMU on Cortex-A72 in AArch32 state +Subject: [PATCH 0838/1015] ARM: dts: Enable PMU on Cortex-A72 in AArch32 state There is no specific AArch32 driver for the Cortex-A72 PMU, but the Cortex-A7 one works and is much better than no PMU driver at all. @@ -266588,7 +266251,7 @@ index f8c327b3c660..ff84a093ad18 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 31 Mar 2022 12:03:36 +0100 -Subject: [PATCH 845/991] drm/panel: ilitek-ili9881c: Clean up on +Subject: [PATCH 0839/1015] drm/panel: ilitek-ili9881c: Clean up on mipi_dsi_attach failure mipi_dsi_attach is allowed to fail, and currently the probe @@ -266625,7 +266288,7 @@ index 6e03d9b0be60..5446b07439f4 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 31 Mar 2022 12:05:04 +0100 -Subject: [PATCH 846/991] drm/panel: panel-ilitek9881c: Add +Subject: [PATCH 0840/1015] drm/panel: panel-ilitek9881c: Add prepare_upstream_first flag The panel sends MIPI DCS commands during prepare and is expecting @@ -266659,7 +266322,7 @@ index 5446b07439f4..c2afc4368553 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 31 Mar 2022 17:55:51 +0100 -Subject: [PATCH 847/991] brcmfmac: Restore ISO3166 and 0 rev as a fallback +Subject: [PATCH 0841/1015] brcmfmac: Restore ISO3166 and 0 rev as a fallback Commit b0b524f079a2 ("brcmfmac: use ISO3166 country code and 0 rev as fallback") was a welcome addition for Raspberry Pi as it replaced @@ -266716,7 +266379,7 @@ index 077852e6b049..94ab63dfc1c6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: 6by9 <6by9@users.noreply.github.com> Date: Fri, 1 Apr 2022 11:31:38 +0100 -Subject: [PATCH 848/991] drm/vc4: Force trigger of dlist update on margins +Subject: [PATCH 0842/1015] drm/vc4: Force trigger of dlist update on margins change (#4970) When the margins are changed, the dlist needs to be regenerated @@ -266782,7 +266445,7 @@ index 7164017d35fa..918dbf8d8058 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Sun, 3 Apr 2022 15:27:46 +0100 -Subject: [PATCH 849/991] configs: Re-enable all GSPCA camera modules +Subject: [PATCH 0843/1015] configs: Re-enable all GSPCA camera modules The GSPCA camera modules were lost due to change in a default value - when has that happened before? @@ -267095,7 +266758,8 @@ index a24f2c241ed9..b218f552442c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Vetter Date: Fri, 23 Oct 2020 14:39:23 +0200 -Subject: [PATCH 850/991] drm/atomic-helpers: remove legacy_cursor_update hacks +Subject: [PATCH 0844/1015] drm/atomic-helpers: remove legacy_cursor_update + hacks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -267152,10 +266816,10 @@ Signed-off-by: Maxime Ripard 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c -index d616fdaa0879..fb8c1aa9fcb2 100644 +index cd48d4aa20dd..e54f086b5ba7 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c -@@ -1488,13 +1488,6 @@ drm_atomic_helper_wait_for_vblanks(struct drm_device *dev, +@@ -1498,13 +1498,6 @@ drm_atomic_helper_wait_for_vblanks(struct drm_device *dev, int i, ret; unsigned int crtc_mask = 0; @@ -267169,7 +266833,7 @@ index d616fdaa0879..fb8c1aa9fcb2 100644 for_each_oldnew_crtc_in_state(old_state, crtc, old_crtc_state, new_crtc_state, i) { if (!new_crtc_state->active) continue; -@@ -2123,12 +2116,6 @@ int drm_atomic_helper_setup_commit(struct drm_atomic_state *state, +@@ -2133,12 +2126,6 @@ int drm_atomic_helper_setup_commit(struct drm_atomic_state *state, continue; } @@ -267226,7 +266890,8 @@ index fab09e7c6efc..3f91a9400160 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 31 Mar 2022 15:27:43 +0200 -Subject: [PATCH 851/991] Revert "drm/vc4: hvs: Defer dlist slots deallocation" +Subject: [PATCH 0845/1015] Revert "drm/vc4: hvs: Defer dlist slots + deallocation" This reverts commit e99a1b69da07ee3b89a6b8005b854e6c04bfb450. --- @@ -267580,7 +267245,7 @@ index c7b2be063189..88e9a398758e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 6 Apr 2022 20:35:13 +0100 -Subject: [PATCH 852/991] drm/vc4_hdmi: Force modeset when bpc changes +Subject: [PATCH 0846/1015] drm/vc4_hdmi: Force modeset when bpc changes See: https://forum.libreelec.tv/thread/25427-le-10-0-2-on-rpi4-not-playing-files-that-10-0-1-had-no-problems-with/ @@ -267603,10 +267268,10 @@ Signed-off-by: Dom Cobley 1 file changed, 8 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 97317bd88068..93a901ccfd17 100644 +index 234f018de8c2..801033c1bf3b 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1808,6 +1808,9 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, +@@ -1809,6 +1809,9 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, struct vc4_hdmi_connector_state *vc4_state = conn_state_to_vc4_hdmi_conn_state(conn_state); struct drm_display_mode *mode = &crtc_state->adjusted_mode; struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); @@ -267616,7 +267281,7 @@ index 97317bd88068..93a901ccfd17 100644 unsigned long long pixel_rate = mode->clock * 1000; unsigned long long tmds_rate; int ret; -@@ -1836,6 +1839,11 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, +@@ -1837,6 +1840,11 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, if (ret) return ret; @@ -267635,7 +267300,7 @@ index 97317bd88068..93a901ccfd17 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 15 Jun 2021 18:18:42 +0100 -Subject: [PATCH 853/991] media: i2c: imx258: Remove unused defines +Subject: [PATCH 0847/1015] media: i2c: imx258: Remove unused defines The IMX258_FLL_* defines are unused. Remove them. @@ -267668,7 +267333,7 @@ index c249507aa2db..f3172e165354 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 15 Jun 2021 18:34:38 +0100 -Subject: [PATCH 854/991] media: i2c: imx258: Make image geometry meet sensor +Subject: [PATCH 0848/1015] media: i2c: imx258: Make image geometry meet sensor requirements MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -267821,7 +267486,7 @@ index f3172e165354..c494cdf69bc8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 30 Mar 2022 14:55:01 +0100 -Subject: [PATCH 855/991] media: i2c: imx258: Disable digital cropping on +Subject: [PATCH 0849/1015] media: i2c: imx258: Disable digital cropping on binned modes The binned modes set DIG_CROP_X_OFFSET and DIG_CROP_IMAGE_WIDTH @@ -267874,7 +267539,7 @@ index c494cdf69bc8..c150742d9c75 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 15 Jun 2021 18:29:52 +0100 -Subject: [PATCH 856/991] media: i2c: imx258: Implement HFLIP and VFLIP +Subject: [PATCH 0850/1015] media: i2c: imx258: Implement HFLIP and VFLIP controls. The sensor supports H & V flips, so implement the relevant controls. @@ -268149,7 +267814,7 @@ index c150742d9c75..7e3874461772 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 15 Jun 2021 18:38:46 +0100 -Subject: [PATCH 857/991] media: i2c: imx258: Remove redundant I2C writes. +Subject: [PATCH 0851/1015] media: i2c: imx258: Remove redundant I2C writes. Registers 0x0202 and 0x0203 are written via the control handler for V4L2_CID_EXPOSURE, so are not needed from the mode lists. @@ -268197,7 +267862,7 @@ index 7e3874461772..72992f406425 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 15 Jun 2021 18:45:40 +0100 -Subject: [PATCH 858/991] media: i2c: imx258: Add regulator control +Subject: [PATCH 0852/1015] media: i2c: imx258: Add regulator control The device tree bindings define the relevant regulators for the sensor, so update the driver to request the regulators and control @@ -268312,7 +267977,7 @@ index 72992f406425..43ad104eb1a2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 15 Jun 2021 18:56:33 +0100 -Subject: [PATCH 859/991] media: i2c: imx258: Make V4L2_CID_VBLANK +Subject: [PATCH 0853/1015] media: i2c: imx258: Make V4L2_CID_VBLANK configurable. The values and ranges of V4L2_CID_VBLANK are all computed, @@ -268394,7 +268059,7 @@ index 43ad104eb1a2..e21a2eadf48a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 15 Jun 2021 19:01:46 +0100 -Subject: [PATCH 860/991] media: i2c: imx258: Register the ctrls from fwnode +Subject: [PATCH 0854/1015] media: i2c: imx258: Register the ctrls from fwnode properties Use v4l2_ctrl_new_fwnode_properties to register the standard @@ -268436,7 +268101,7 @@ index e21a2eadf48a..8f80ec208e4f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 16 Jun 2021 13:08:00 +0100 -Subject: [PATCH 861/991] media: i2c: imx258: Add support for 24MHz clock +Subject: [PATCH 0855/1015] media: i2c: imx258: Add support for 24MHz clock There's no reason why the clock must be 19.2MHz and nothing else (indeed this isn't even a frequency listed in the datasheet), @@ -268728,8 +268393,8 @@ index 8f80ec208e4f..e0c74e871633 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 16 Jun 2021 16:27:06 +0100 -Subject: [PATCH 862/991] media: i2c: imx258: Add support for running on 2 CSI - data lanes +Subject: [PATCH 0856/1015] media: i2c: imx258: Add support for running on 2 + CSI data lanes Extends the driver to also support 2 data lanes. Frame rates are obviously more restricted on 2 lanes, but some @@ -269145,8 +268810,8 @@ index e0c74e871633..f1d136616e35 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 16 Jun 2021 17:19:17 +0100 -Subject: [PATCH 863/991] media: i2c: imx258: Follow normal V4L2 behaviours for - clipping exposure +Subject: [PATCH 0857/1015] media: i2c: imx258: Follow normal V4L2 behaviours + for clipping exposure V4L2 sensor drivers are expected are expected to clip the supported exposure range based on the VBLANK configured. @@ -269254,8 +268919,8 @@ index f1d136616e35..e485176f49ff 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 23 Mar 2022 15:48:49 +0000 -Subject: [PATCH 864/991] media: i2c: imx258: Add get_selection for pixel array - information +Subject: [PATCH 0858/1015] media: i2c: imx258: Add get_selection for pixel + array information Libcamera requires the cropping information for each mode, so add this information to the driver. @@ -269429,8 +269094,8 @@ index e485176f49ff..21a8cc4d9e01 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 31 Mar 2022 15:33:59 +0100 -Subject: [PATCH 865/991] media: i2c: imx258: Allow configuration of clock lane - behaviour +Subject: [PATCH 0859/1015] media: i2c: imx258: Allow configuration of clock + lane behaviour The sensor supports the clock lane either remaining in HS mode during frame blanking, or dropping to LP11. @@ -269495,7 +269160,7 @@ index 21a8cc4d9e01..d4b3fefa31c6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 31 Mar 2022 15:39:40 +0100 -Subject: [PATCH 866/991] media: i2c: imx258: Correct max FRM_LENGTH_LINES +Subject: [PATCH 0860/1015] media: i2c: imx258: Correct max FRM_LENGTH_LINES value The data sheet states that the maximum value for registers @@ -269527,7 +269192,7 @@ index d4b3fefa31c6..9f193625d61b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 31 Mar 2022 16:45:36 +0100 -Subject: [PATCH 867/991] media: i2c: imx258: Add support for long exposure +Subject: [PATCH 0861/1015] media: i2c: imx258: Add support for long exposure modes The sensor has a register CIT_LSHIFT which extends the exposure @@ -269633,7 +269298,7 @@ index 9f193625d61b..ab6db06d294b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 31 Mar 2022 17:12:12 +0100 -Subject: [PATCH 868/991] media: i2c: imx258: Issue reset before starting +Subject: [PATCH 0862/1015] media: i2c: imx258: Issue reset before starting streaming Whilst not documented, register 0x0103 bit 0 is the soft @@ -269680,8 +269345,8 @@ index ab6db06d294b..ace09856adda 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 1 Apr 2022 18:54:12 +0100 -Subject: [PATCH 869/991] media: i2c: imx258: Set pixel_rate range to the same - as the value +Subject: [PATCH 0863/1015] media: i2c: imx258: Set pixel_rate range to the + same as the value With a read only control there is limited point in advertising a minimum and maximum for the control, so change to set the @@ -269745,7 +269410,7 @@ index ace09856adda..7647938f58cf 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 1 Apr 2022 18:56:54 +0100 -Subject: [PATCH 870/991] media: i2c: imx258: Support faster pixel rate on +Subject: [PATCH 0864/1015] media: i2c: imx258: Support faster pixel rate on binned modes With the binned modes, there is little point in faithfully @@ -270005,7 +269670,7 @@ index 7647938f58cf..63692f75c641 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 23 Mar 2022 14:07:56 +0000 -Subject: [PATCH 871/991] defconfigs: Add IMX258 to the Pi defconfigs +Subject: [PATCH 0865/1015] defconfigs: Add IMX258 to the Pi defconfigs Signed-off-by: Dave Stevenson --- @@ -270083,7 +269748,8 @@ index b218f552442c..d4ffabfdc9c6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 10 Jun 2021 17:42:47 +0100 -Subject: [PATCH 872/991] dtoverlays: Add overlay for Sony IMX258 image sensor +Subject: [PATCH 0866/1015] dtoverlays: Add overlay for Sony IMX258 image + sensor Signed-off-by: Dave Stevenson --- @@ -270295,8 +269961,8 @@ index 000000000000..12326040c457 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Matt Flax Date: Tue, 12 Apr 2022 02:28:07 +1000 -Subject: [PATCH 873/991] Add support for the AudioInjector.net bare i2s sound - card +Subject: [PATCH 0867/1015] Add support for the AudioInjector.net bare i2s + sound card Signed-off-by: Matt Flax --- @@ -270398,7 +270064,7 @@ index 000000000000..7565ac4d1c28 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 30 Mar 2022 17:49:31 +0100 -Subject: [PATCH 874/991] vc4_hdmi: Remove +Subject: [PATCH 0868/1015] vc4_hdmi: Remove VC4_HDMI_SCHEDULER_CONTROL_VERT_ALWAYS_KEEPOUT This bit ensures data island packets are never generated when disallowed by HDCP. @@ -270410,10 +270076,10 @@ Signed-off-by: Dom Cobley 1 file changed, 3 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 93a901ccfd17..b5c5623664aa 100644 +index 801033c1bf3b..dc7ca3db6865 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1550,9 +1550,6 @@ static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder, +@@ -1551,9 +1551,6 @@ static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder, WARN_ON(!(HDMI_READ(HDMI_SCHEDULER_CONTROL) & VC4_HDMI_SCHEDULER_CONTROL_HDMI_ACTIVE)); @@ -270430,7 +270096,7 @@ index 93a901ccfd17..b5c5623664aa 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 13 Apr 2022 13:50:30 +0100 -Subject: [PATCH 875/991] configs: bcm2711_defconfig: Enable KASLR +Subject: [PATCH 0869/1015] configs: bcm2711_defconfig: Enable KASLR Although KASLR is enabled in the old bcmrpi3_defconfig, it is omitted from bcm2711_defconfig. Correct that oversight. @@ -270461,7 +270127,7 @@ index 98832f25ad60..250770ba059e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 12 Apr 2022 18:30:49 +0100 -Subject: [PATCH 876/991] config: Enable CONFIG_MODULE_COMPRESS_XZ +Subject: [PATCH 0870/1015] config: Enable CONFIG_MODULE_COMPRESS_XZ See: https://github.com/raspberrypi/linux/issues/4966 Signed-off-by: Dom Cobley @@ -270540,7 +270206,7 @@ index d4ffabfdc9c6..45de87991995 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Wed, 13 Apr 2022 19:28:35 +0200 -Subject: [PATCH 877/991] overlays: mipi-dbi-spi: width-mm and height-mm are +Subject: [PATCH 0871/1015] overlays: mipi-dbi-spi: width-mm and height-mm are mandatory MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -270579,7 +270245,7 @@ index 0677f79cce6e..42b0e6b6318a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 19 Apr 2022 17:12:34 +0100 -Subject: [PATCH 878/991] configs: (Re)Enable CONFIG_IR_TOY +Subject: [PATCH 0872/1015] configs: (Re)Enable CONFIG_IR_TOY Somehow or other, CONFIG_IR_TOY=m got dropped from the standard Pi defconfigs around 5.13. Restore it. @@ -270662,7 +270328,7 @@ index 45de87991995..f38d6ac58fdb 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 19 Apr 2022 20:21:26 +0100 -Subject: [PATCH 879/991] config: Enable the NFT_SYNPROXY module +Subject: [PATCH 0873/1015] config: Enable the NFT_SYNPROXY module The NFT_SYNPROXY module is apparently useful for port scan protection, and at 11kB barely changes the size of the downloads. @@ -270745,7 +270411,7 @@ index f38d6ac58fdb..e162165e947d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 19 Jan 2022 16:22:19 +0100 -Subject: [PATCH 880/991] clk: Introduce Kunit Tests for the framework +Subject: [PATCH 0874/1015] clk: Introduce Kunit Tests for the framework Let's test various parts of the rate-related clock API with the kunit testing framework. @@ -271601,7 +271267,7 @@ index 000000000000..a8d7eba01de7 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 5 May 2021 15:35:34 +0200 -Subject: [PATCH 881/991] clk: Always clamp the rounded rate +Subject: [PATCH 0875/1015] clk: Always clamp the rounded rate The current core while setting the min and max rate properly in the clk_request structure will not make sure that the requested rate is @@ -271782,7 +271448,7 @@ index a8d7eba01de7..2279be699001 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 17 Jan 2022 16:38:10 +0100 -Subject: [PATCH 882/991] clk: Use clamp instead of open-coding our own +Subject: [PATCH 0876/1015] clk: Use clamp instead of open-coding our own The code in clk_set_rate_range() will, if the current rate is outside of the new range, force it to the minimum or maximum. @@ -271821,7 +271487,7 @@ index e79569eef194..771c1a8d1a55 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 17 Jan 2022 16:43:13 +0100 -Subject: [PATCH 883/991] clk: Always set the rate on clk_set_range_rate +Subject: [PATCH 0877/1015] clk: Always set the rate on clk_set_range_rate When we change a clock minimum or maximum using clk_set_rate_range(), clk_set_min_rate() or clk_set_max_rate(), the current code will only @@ -272025,7 +271691,7 @@ index 2279be699001..2c5d30a9372e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 17 Jan 2022 16:43:52 +0100 -Subject: [PATCH 884/991] clk: Add clk_drop_range +Subject: [PATCH 0878/1015] clk: Add clk_drop_range In order to reset the range on a clock, we need to call clk_set_rate_range with a minimum of 0 and a maximum of ULONG_MAX. Since @@ -272090,7 +271756,7 @@ index 2aa52140d8a9..28b9f9c09686 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 25 Mar 2022 11:27:28 +0100 -Subject: [PATCH 885/991] clk: test: Test clk_set_rate_range on orphan mux +Subject: [PATCH 0879/1015] clk: test: Test clk_set_rate_range on orphan mux A bug recently affected the Tegra30 where calling clk_set_rate_range() on a clock would make it change its rate to the minimum. @@ -272254,7 +271920,7 @@ index a92600311506..146b1759798e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 25 Mar 2022 17:11:44 +0100 -Subject: [PATCH 886/991] clk: Drop the rate range on clk_put() +Subject: [PATCH 0880/1015] clk: Drop the rate range on clk_put() When clk_put() is called we don't make another clk_set_rate() call to re-evaluate the rate boundaries. This is unlike clk_set_rate_range() @@ -272500,7 +272166,7 @@ index 146b1759798e..efd5ffaf7e35 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 1 Apr 2022 17:08:26 +0200 -Subject: [PATCH 887/991] clk: tests: Add test suites description +Subject: [PATCH 0881/1015] clk: tests: Add test suites description We start to have a few test suites, and we'll add more, so it will get pretty confusing to figure out what is supposed to be tested in what @@ -272598,7 +272264,7 @@ index efd5ffaf7e35..4e4428fe9278 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 1 Apr 2022 14:53:49 +0200 -Subject: [PATCH 888/991] clk: tests: Add reference to the orphan mux bug +Subject: [PATCH 0882/1015] clk: tests: Add reference to the orphan mux bug report Some more context might be useful for unit-tests covering a previously @@ -272632,7 +272298,7 @@ index 4e4428fe9278..77230ccae180 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 8 Apr 2022 09:54:39 +0200 -Subject: [PATCH 889/991] clk: tests: Add tests for uncached clock +Subject: [PATCH 0883/1015] clk: tests: Add tests for uncached clock The clock framework supports clocks that can have their rate changed without the kernel knowing about it using the CLK_GET_RATE_NOCACHE flag. @@ -272762,7 +272428,7 @@ index 77230ccae180..e417c69d8492 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 7 Apr 2022 14:21:55 +0200 -Subject: [PATCH 890/991] clk: tests: Add tests for single parent mux +Subject: [PATCH 0884/1015] clk: tests: Add tests for single parent mux We have a few tests for a mux with a single parent, testing the case where it used to be orphan. @@ -273002,7 +272668,7 @@ index e417c69d8492..beca502949fa 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 7 Apr 2022 14:58:34 +0200 -Subject: [PATCH 891/991] clk: tests: Add tests for mux with multiple parents +Subject: [PATCH 0885/1015] clk: tests: Add tests for mux with multiple parents We'll need to test a few corner cases that occur when we have a mux clock whose default parent is missing. @@ -273169,7 +272835,7 @@ index beca502949fa..6c9cbfac3d00 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Sat, 2 Apr 2022 17:27:40 +0200 -Subject: [PATCH 892/991] clk: tests: Add some tests for orphan with multiple +Subject: [PATCH 0886/1015] clk: tests: Add some tests for orphan with multiple parents Let's leverage the dummy mux with multiple parents we have to create a @@ -273385,7 +273051,7 @@ index 6c9cbfac3d00..45c33e22fdce 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 8 Apr 2022 10:06:11 +0200 -Subject: [PATCH 893/991] clk: Take into account uncached clocks in +Subject: [PATCH 0887/1015] clk: Take into account uncached clocks in clk_set_rate_range() clk_set_rate_range() will use the last requested rate for the clock when @@ -273477,7 +273143,7 @@ index 45c33e22fdce..cad3abd27e0c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 1 Apr 2022 11:09:29 +0200 -Subject: [PATCH 894/991] clk: Fix clk_get_parent() documentation +Subject: [PATCH 0888/1015] clk: Fix clk_get_parent() documentation The clk_get_parent() documentation in the header states that it will return a valid pointer, or an error pointer on failure. @@ -273554,7 +273220,7 @@ index 28b9f9c09686..433364d18fe0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 1 Apr 2022 15:26:46 +0200 -Subject: [PATCH 895/991] clk: Set req_rate on reparenting +Subject: [PATCH 0889/1015] clk: Set req_rate on reparenting If a non-rate clock started by default with a parent that never registered, core->req_rate will be 0. The expectation is that whenever @@ -273896,7 +273562,7 @@ index c7099e864688..d2f711e42b81 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 1 Apr 2022 15:27:09 +0200 -Subject: [PATCH 896/991] clk: Skip set_rate_range if our clock is orphan +Subject: [PATCH 0890/1015] clk: Skip set_rate_range if our clock is orphan clk_set_rate_range will now force a clk_set_rate() call to core->req_rate. However, if our clock is orphan, req_rate will be 0 and @@ -274027,7 +273693,7 @@ index d2f711e42b81..2b22b7090968 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Sat, 2 Apr 2022 13:45:05 +0200 -Subject: [PATCH 897/991] clk: Add our request boundaries in +Subject: [PATCH 0891/1015] clk: Add our request boundaries in clk_core_init_rate_req The expectation is that a new clk_rate_request is initialized through a @@ -274095,7 +273761,7 @@ index 9415866b012e..17ae7e6a05e5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Sat, 2 Apr 2022 13:48:03 +0200 -Subject: [PATCH 898/991] clk: Change clk_core_init_rate_req prototype +Subject: [PATCH 0892/1015] clk: Change clk_core_init_rate_req prototype The expectation is that a clk_rate_request structure is supposed to be initialized using clk_core_init_rate_req(), yet the rate we want to @@ -274159,7 +273825,7 @@ index 17ae7e6a05e5..a18f4b2ec43f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Sat, 2 Apr 2022 14:49:56 +0200 -Subject: [PATCH 899/991] clk: Introduce clk_hw_init_rate_request() +Subject: [PATCH 0893/1015] clk: Introduce clk_hw_init_rate_request() Some drivers (at91, imx, qcom) use __clk_determine_rate directly, and thus will need to initialise a clk_rate_request structure. @@ -274240,7 +273906,7 @@ index f59c875271a0..402aef48119b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Sat, 2 Apr 2022 14:01:37 +0200 -Subject: [PATCH 900/991] clk: Add missing clk_core_init_rate_req calls +Subject: [PATCH 0894/1015] clk: Add missing clk_core_init_rate_req calls Some callers of clk_core_round_rate_nolock() will initialize the clk_rate_request structure by hand, missing a few parameters that leads @@ -274295,7 +273961,7 @@ index ca978500782f..890834d0bbdb 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Sat, 2 Apr 2022 14:06:53 +0200 -Subject: [PATCH 901/991] clk: Remove redundant clk_core_init_rate_req() call +Subject: [PATCH 0895/1015] clk: Remove redundant clk_core_init_rate_req() call Since all the users of clk_core_round_rate_nolock() will now properly initialize, there's no need for it to initialize the request itself. @@ -274335,7 +274001,7 @@ index 890834d0bbdb..30b7d299f238 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Sat, 2 Apr 2022 13:52:55 +0200 -Subject: [PATCH 902/991] clk: Switch from __clk_determine_rate to +Subject: [PATCH 0896/1015] clk: Switch from __clk_determine_rate to clk_core_round_rate_nolock clk_mux_determine_rate_flags() will call into __clk_determine_rate() @@ -274401,7 +274067,7 @@ index 30b7d299f238..c4f85073348b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 7 Apr 2022 14:11:37 +0200 -Subject: [PATCH 903/991] clk: Introduce clk_core_has_parent() +Subject: [PATCH 0897/1015] clk: Introduce clk_core_has_parent() We will need to know if a clk_core pointer has a given parent in other functions, so let's create a clk_core_has_parent() function that @@ -274542,7 +274208,8 @@ index 2b22b7090968..9dbc116f49a8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Sat, 2 Apr 2022 14:36:59 +0200 -Subject: [PATCH 904/991] clk: Stop forwarding clk_rate_requests to the parent +Subject: [PATCH 0898/1015] clk: Stop forwarding clk_rate_requests to the + parent If the clock cannot modify its rate and has CLK_SET_RATE_PARENT, clk_mux_determine_rate_flags() and clk_core_round_rate_nolock() will @@ -274916,7 +274583,7 @@ index 9dbc116f49a8..ee91d1efea23 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Sat, 2 Apr 2022 14:37:39 +0200 -Subject: [PATCH 905/991] clk: Zero the clk_rate_request structure +Subject: [PATCH 0899/1015] clk: Zero the clk_rate_request structure In order to make sure we don't carry anything over from an already existing clk_rate_request pointer we would pass to @@ -274950,7 +274617,7 @@ index d27ce02ee691..51fb72525fab 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 5 Apr 2022 15:20:27 +0200 -Subject: [PATCH 906/991] clk: Test the clock pointer in clk_hw_get_name() +Subject: [PATCH 0900/1015] clk: Test the clock pointer in clk_hw_get_name() Unlike __clk_get_name(), clk_hw_get_name() doesn't test wether passed clk_hw pointer is NULL or not and dereferences it directly. This can @@ -274985,7 +274652,7 @@ index 51fb72525fab..85f945ece77b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 17 Jan 2022 17:19:30 +0100 -Subject: [PATCH 907/991] clk: bcm: rpi: Add variant structure +Subject: [PATCH 0901/1015] clk: bcm: rpi: Add variant structure We only export a bunch of firmware clocks, and some of them require special treatment. @@ -275143,7 +274810,7 @@ index 99cc4c856de1..edc052c33030 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 17 Jan 2022 17:31:06 +0100 -Subject: [PATCH 908/991] clk: bcm: rpi: Set a default minimum rate +Subject: [PATCH 0902/1015] clk: bcm: rpi: Set a default minimum rate The M2MC clock provides the state machine clock for both HDMI controllers. @@ -275218,7 +274885,7 @@ index edc052c33030..70bacccc1b5a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 17 Jan 2022 17:36:23 +0100 -Subject: [PATCH 909/991] clk: bcm: rpi: Run some clocks at the minimum rate +Subject: [PATCH 0903/1015] clk: bcm: rpi: Run some clocks at the minimum rate allowed The core clock and M2MC clocks are shared between some devices (Unicam @@ -275322,7 +274989,7 @@ index 70bacccc1b5a..10226a6f5a4b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 16 Mar 2022 09:51:32 +0100 -Subject: [PATCH 910/991] Revert "drm/vc4: kms: Move clock request to our HVS +Subject: [PATCH 0904/1015] Revert "drm/vc4: kms: Move clock request to our HVS state" This reverts commit c65633a429b15f9d182a5bc7d6387fecbd5b7bb0. @@ -275383,8 +275050,8 @@ index 78c4d57fe597..29d3aa347b17 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 16 Mar 2022 09:51:44 +0100 -Subject: [PATCH 911/991] Revert "drm/vc4: Increase the core clock based on HVS - load" +Subject: [PATCH 0905/1015] Revert "drm/vc4: Increase the core clock based on + HVS load" This reverts commit 02c8543cc6940f8201e9beb601bd56421d911e83. --- @@ -275443,7 +275110,7 @@ index 29d3aa347b17..e998a126a3b1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 16 Mar 2022 09:52:34 +0100 -Subject: [PATCH 912/991] Revert "drm/vc4: hdmi: Convert to the new clock +Subject: [PATCH 0906/1015] Revert "drm/vc4: hdmi: Convert to the new clock request API" This reverts commit 5dbb9357519a9479eacdda130713bf0dc44e069c. @@ -275488,7 +275155,7 @@ index e998a126a3b1..a05482e95846 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 16 Mar 2022 09:53:03 +0100 -Subject: [PATCH 913/991] Revert "bcm2835-unicam: Switch to new clock api" +Subject: [PATCH 0907/1015] Revert "bcm2835-unicam: Switch to new clock api" This reverts commit 702228eb413876739f4fee8a9ec66b3e4e54efac. --- @@ -275547,7 +275214,7 @@ index 1e0101bb3af9..401d2c4d734f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 16 Mar 2022 09:58:31 +0100 -Subject: [PATCH 914/991] Revert "rpivid: Switch to new clock api" +Subject: [PATCH 0908/1015] Revert "rpivid: Switch to new clock api" This reverts commit ec7556e20c2c29c3df9493248a1a4d60ed20ae38. --- @@ -275620,7 +275287,7 @@ index 93b3d86b41e3..8007c4dbcf89 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 16 Mar 2022 09:41:44 +0100 -Subject: [PATCH 915/991] Revert "clk: requests: Dereference the request +Subject: [PATCH 0909/1015] Revert "clk: requests: Dereference the request pointer after the check" This reverts commit 12917adc036f82c4fda3b80a068d0d51c947d6a6. @@ -275652,7 +275319,8 @@ index 85f945ece77b..948b3e803589 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 16 Mar 2022 09:41:48 +0100 -Subject: [PATCH 916/991] Revert "clk: requests: Ignore if the pointer is null" +Subject: [PATCH 0910/1015] Revert "clk: requests: Ignore if the pointer is + null" This reverts commit f078b2c9b1901f6297154788ac07f56547ddcb7a. --- @@ -275680,7 +275348,7 @@ index 948b3e803589..58b686957822 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 16 Mar 2022 09:41:49 +0100 -Subject: [PATCH 917/991] Revert "clk: Introduce a clock request API" +Subject: [PATCH 0911/1015] Revert "clk: Introduce a clock request API" This reverts commit 23fbabe348436e250deca7c5f2fd0caf620af174. --- @@ -275935,7 +275603,7 @@ index 433364d18fe0..3b8cf492ff1a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 15 Apr 2022 14:17:41 +0200 -Subject: [PATCH 918/991] clk: Add clk_get_rate_range +Subject: [PATCH 0912/1015] clk: Add clk_get_rate_range With the recent introduction of clock drivers that will force their clock rate to either the minimum or maximum boundaries, it becomes @@ -276080,7 +275748,7 @@ index 3b8cf492ff1a..39710b8453fa 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 15 Apr 2022 14:45:17 +0200 -Subject: [PATCH 919/991] clk: tests: Add some tests for clk_get_rate_range() +Subject: [PATCH 0913/1015] clk: tests: Add some tests for clk_get_rate_range() Let's introduce a bunch of unit tests to make sure the values returned by clk_get_rate_range() are sane. @@ -276311,7 +275979,7 @@ index ee91d1efea23..1e120fe33783 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 15 Apr 2022 15:00:44 +0200 -Subject: [PATCH 920/991] clk: tests: Add missing test case for ranges +Subject: [PATCH 0914/1015] clk: tests: Add missing test case for ranges Let's add a test on the rate range after a reparenting. This fails for now, but it's worth having it to document the corner cases we don't @@ -276395,7 +276063,7 @@ index 1e120fe33783..af40d46987e7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 24 Mar 2022 11:57:57 +0100 -Subject: [PATCH 921/991] drm/vc4: hdmi: Rework hdmi_enable_4kp60 detection +Subject: [PATCH 0915/1015] drm/vc4: hdmi: Rework hdmi_enable_4kp60 detection In order to support higher HDMI frequencies, users have to set the hdmi_enable_4kp60 parameter in their config.txt file. @@ -276443,10 +276111,10 @@ index 6626299e37ec..30b5bf4a7f14 100644 struct vc4_plane { diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index b5c5623664aa..4696ba6f4872 100644 +index dc7ca3db6865..82f00eb905c1 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -291,6 +291,7 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) +@@ -292,6 +292,7 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) { struct vc4_hdmi *vc4_hdmi = connector_to_vc4_hdmi(connector); struct vc4_hdmi_encoder *vc4_encoder = &vc4_hdmi->encoder; @@ -276454,7 +276122,7 @@ index b5c5623664aa..4696ba6f4872 100644 int ret = 0; struct edid *edid; -@@ -309,7 +310,7 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) +@@ -310,7 +311,7 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) ret = drm_add_edid_modes(connector, edid); kfree(edid); @@ -276463,7 +276131,7 @@ index b5c5623664aa..4696ba6f4872 100644 struct drm_device *drm = connector->dev; struct drm_display_mode *mode; -@@ -1671,11 +1672,12 @@ vc4_hdmi_encoder_clock_valid(const struct vc4_hdmi *vc4_hdmi, +@@ -1672,11 +1673,12 @@ vc4_hdmi_encoder_clock_valid(const struct vc4_hdmi *vc4_hdmi, { const struct drm_connector *connector = &vc4_hdmi->connector; const struct drm_display_info *info = &connector->display_info; @@ -276477,7 +276145,7 @@ index b5c5623664aa..4696ba6f4872 100644 return MODE_CLOCK_HIGH; if (info->max_tmds_clock && clock > (info->max_tmds_clock * 1000)) -@@ -3157,14 +3159,6 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) +@@ -3158,14 +3160,6 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) vc4_hdmi->disable_wifi_frequencies = of_property_read_bool(dev->of_node, "wifi-2.4ghz-coexistence"); @@ -276541,7 +276209,7 @@ index 9dcc26d505b0..05b3621ff652 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 25 Mar 2022 15:48:48 +0100 -Subject: [PATCH 922/991] drm/vc4: kms: Warn if clk_set_min_rate fails +Subject: [PATCH 0916/1015] drm/vc4: kms: Warn if clk_set_min_rate fails We currently ignore the clk_set_min_rate return code assuming it would succeed. However, it can fail if we ask for a rate higher than the @@ -276583,8 +276251,8 @@ index a05482e95846..a41d3c8c0458 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 25 Mar 2022 17:09:41 +0100 -Subject: [PATCH 923/991] drm/vc4: Make sure we don't end up with a core clock - too high +Subject: [PATCH 0917/1015] drm/vc4: Make sure we don't end up with a core + clock too high Following the clock rate range improvements to the clock framework, trying to set a disjoint range on a clock will now result in an error. @@ -276647,8 +276315,8 @@ index a41d3c8c0458..e33ce608d174 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 13 Apr 2022 16:22:49 +0200 -Subject: [PATCH 924/991] drm/vc4: kms: Use maximum FIFO load for the HVS clock - rate +Subject: [PATCH 0918/1015] drm/vc4: kms: Use maximum FIFO load for the HVS + clock rate The core clock computation takes into account both the load due to the input (ie, planes) and its output (ie, encoders). @@ -276693,7 +276361,7 @@ index e33ce608d174..190aadef350f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 15 Apr 2022 15:26:07 +0200 -Subject: [PATCH 925/991] rpivid: Use clk_get_max_rate() +Subject: [PATCH 0919/1015] rpivid: Use clk_get_max_rate() The driver was using clk_round_rate() to figure out the maximum clock rate that was allowed for the HEVC clock. @@ -276725,8 +276393,8 @@ index 8007c4dbcf89..bab3ed3ff361 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Alberto Solavagione Date: Wed, 20 Apr 2022 17:15:42 +0200 -Subject: [PATCH 926/991] clk-bcm2835: use subsys_initcall for the clock driver - when IMA is enabled +Subject: [PATCH 0920/1015] clk-bcm2835: use subsys_initcall for the clock + driver when IMA is enabled Co-authored-by: Davide Scovotto Co-developed-by: Davide Scovotto @@ -276759,7 +276427,7 @@ index 7112a9c4f7e3..9ed157b0a37a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Scovotto Davide Date: Wed, 20 Apr 2022 17:22:17 +0200 -Subject: [PATCH 927/991] tpm_tis_spi_main: Force probe routine to run +Subject: [PATCH 0921/1015] tpm_tis_spi_main: Force probe routine to run synchronously with driver and device registration when IMA is enabled Co-authored-by: Alberto Solavagione @@ -276793,7 +276461,7 @@ index aaa59a00eeae..b6cf04812078 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: andrum99 <97977513+andrum99@users.noreply.github.com> Date: Sun, 24 Apr 2022 17:23:23 +0100 -Subject: [PATCH 928/991] overlays: Add "drm" parameter to pitft28-resistive +Subject: [PATCH 0922/1015] overlays: Add "drm" parameter to pitft28-resistive Add "drm" parameter to the pitft28-resistive, forcing use of the mi0283qt DRM driver. @@ -276844,7 +276512,7 @@ index 4a4a3f44c29d..9e9f90ad51e0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 19 Apr 2022 19:57:29 +0100 -Subject: [PATCH 929/991] ARM: dts: Add i2c0mux node to Model B rev 1 +Subject: [PATCH 0923/1015] ARM: dts: Add i2c0mux node to Model B rev 1 The lack of an i2c0mux label prevents the i2c-rtc overlay from being applied. @@ -276878,7 +276546,7 @@ index c2d83b61a63c..9bea71078d5f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Sun, 24 Apr 2022 20:25:34 +0100 -Subject: [PATCH 930/991] overlays: Fix pitft28/35-resistive rotate params +Subject: [PATCH 0924/1015] overlays: Fix pitft28/35-resistive rotate params The drm drivers uses the property name "rotation", not "rotate" as used by the fbtft drivers. Fix suggested by notro. @@ -276926,7 +276594,7 @@ index e11e1920024a..fc0f5e5446ee 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 25 Apr 2022 17:45:16 +0200 -Subject: [PATCH 931/991] ARM: dts: bcm2835: Switch HSM clock to firmware +Subject: [PATCH 0925/1015] ARM: dts: bcm2835: Switch HSM clock to firmware When the bootloader boots without a display connected to the HDMI connector, it won't initialize the HSM clock. @@ -276967,7 +276635,7 @@ index 7f46a6ec512c..69c91c5d7775 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 27 Apr 2022 14:45:35 +0100 -Subject: [PATCH 932/991] drm/vc4_kms: Protect hvs dereference on fkms +Subject: [PATCH 0926/1015] drm/vc4_kms: Protect hvs dereference on fkms fkms has a null hvs pointer so this crashes. Protect against it @@ -276996,7 +276664,7 @@ index 190aadef350f..064093ad890a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Thu, 28 Apr 2022 16:11:20 +0100 -Subject: [PATCH 933/991] Revert "fbdev: Fix unregistering of framebuffers +Subject: [PATCH 0927/1015] Revert "fbdev: Fix unregistering of framebuffers without device" This reverts commit 2388f826cdc9af2651991adc0feb79de9bdf2232. @@ -277005,10 +276673,10 @@ This reverts commit 2388f826cdc9af2651991adc0feb79de9bdf2232. 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c -index 28bf9c4f6664..301bd8ed03ac 100644 +index 9fc7a9d3bfee..d8a8371887ea 100644 --- a/drivers/video/fbdev/core/fbmem.c +++ b/drivers/video/fbdev/core/fbmem.c -@@ -1619,14 +1619,7 @@ static void do_remove_conflicting_framebuffers(struct apertures_struct *a, +@@ -1616,14 +1616,7 @@ static void do_remove_conflicting_framebuffers(struct apertures_struct *a, * If it's not a platform device, at least print a warning. A * fix would add code to remove the device from the system. */ @@ -277031,7 +276699,7 @@ index 28bf9c4f6664..301bd8ed03ac 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Thu, 28 Apr 2022 16:11:34 +0100 -Subject: [PATCH 934/991] Revert "fbdev: Hot-unplug firmware fb devices on +Subject: [PATCH 0928/1015] Revert "fbdev: Hot-unplug firmware fb devices on forced removal" This reverts commit c894ac44786cfed383a6c6b20c1bfb12eb96018a. @@ -277041,7 +276709,7 @@ This reverts commit c894ac44786cfed383a6c6b20c1bfb12eb96018a. 2 files changed, 3 insertions(+), 27 deletions(-) diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c -index 301bd8ed03ac..3073649d248b 100644 +index d8a8371887ea..de114b5d75cc 100644 --- a/drivers/video/fbdev/core/fbmem.c +++ b/drivers/video/fbdev/core/fbmem.c @@ -25,7 +25,6 @@ @@ -277052,7 +276720,7 @@ index 301bd8ed03ac..3073649d248b 100644 #include #include #include -@@ -1596,36 +1595,18 @@ static void do_remove_conflicting_framebuffers(struct apertures_struct *a, +@@ -1593,36 +1592,18 @@ static void do_remove_conflicting_framebuffers(struct apertures_struct *a, /* check all firmware fbs and kick off if the base addr overlaps */ for_each_registered_fb(i) { struct apertures_struct *gen_aper; @@ -277090,7 +276758,7 @@ index 301bd8ed03ac..3073649d248b 100644 } } } -@@ -1952,13 +1933,9 @@ EXPORT_SYMBOL(register_framebuffer); +@@ -1949,13 +1930,9 @@ EXPORT_SYMBOL(register_framebuffer); void unregister_framebuffer(struct fb_info *fb_info) { @@ -277125,7 +276793,7 @@ index 3d7306c9a706..02f362c661c8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 Apr 2022 08:50:43 +0100 -Subject: [PATCH 935/991] config: Update bcmrpi3_defconfig +Subject: [PATCH 0929/1015] config: Update bcmrpi3_defconfig Bring bcmrpi3_defconfig roughly into line with bcm2711_defconfig. @@ -277403,7 +277071,7 @@ index e162165e947d..eec9e1c1f292 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 Apr 2022 09:19:10 +0100 -Subject: [PATCH 936/991] staging: vchiq_arm: Add log_level module params +Subject: [PATCH 0930/1015] staging: vchiq_arm: Add log_level module params Add module parameters to control the logging levels for the various vchiq logging categories. @@ -277436,7 +277104,7 @@ index f3d2fe5bbfa0..3e9bd2aa1142 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 3 May 2022 09:11:27 +0100 -Subject: [PATCH 937/991] configs: Add CONFIG_EEPROM_AT25=m +Subject: [PATCH 0931/1015] configs: Add CONFIG_EEPROM_AT25=m Enable support for more SPI EEPROMs and FRAMs. @@ -277518,7 +277186,7 @@ index eec9e1c1f292..6e9597b2b68d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 5 May 2022 12:16:57 +0100 -Subject: [PATCH 938/991] configs: Enable DM_WRITECACHE module on BCM2711 +Subject: [PATCH 0932/1015] configs: Enable DM_WRITECACHE module on BCM2711 For Pi 4 (which has high speed USB and PCIe), enable DM_WRITECACHE as a module to allow an external SSD to be used as a fast write cache for a @@ -277563,7 +277231,7 @@ index f763b3f666ae..1188bdc2a4b7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 6 May 2022 00:02:54 +0100 -Subject: [PATCH 939/991] configs: Restore settings lost since 5.10 +Subject: [PATCH 0933/1015] configs: Restore settings lost since 5.10 Signed-off-by: Phil Elwell --- @@ -277731,7 +277399,7 @@ index 6e9597b2b68d..3ce71ab7c997 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Lee Jackson Date: Thu, 21 Apr 2022 14:14:29 +0800 -Subject: [PATCH 940/991] dt-bindings: vendor-prefixes: Add Arducam +Subject: [PATCH 0934/1015] dt-bindings: vendor-prefixes: Add Arducam Add vendor prefix for Arducam (https://arducam.com). @@ -277760,8 +277428,8 @@ index 3c65028f5335..c2665870c465 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Lee Jackson Date: Thu, 21 Apr 2022 14:18:44 +0800 -Subject: [PATCH 941/991] media: dt-bindings: media: i2c: Add Arducam Pivariety - Series CMOS sensor binding +Subject: [PATCH 0935/1015] media: dt-bindings: media: i2c: Add Arducam + Pivariety Series CMOS sensor binding Add YAML device tree binding for Arducam Pivariety CMOS image sensor, and the relevant MAINTAINERS entries. @@ -277892,7 +277560,7 @@ index 000000000000..92bf4ff32eb4 + +... diff --git a/MAINTAINERS b/MAINTAINERS -index f8c3d63c4f86..36db6933f4c5 100644 +index 58e76abca434..967a3dd81da9 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1386,6 +1386,14 @@ S: Maintained @@ -277917,7 +277585,7 @@ index f8c3d63c4f86..36db6933f4c5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Lee Jackson Date: Thu, 14 Apr 2022 17:31:01 +0800 -Subject: [PATCH 942/991] media: i2c: Add driver of Arducam Pivariety series +Subject: [PATCH 0936/1015] media: i2c: Add driver of Arducam Pivariety series camera Add a driver for the Arducam Pivariety series CSI2 camera sensor. @@ -279561,7 +279229,7 @@ index 000000000000..b2b8cbc47138 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Lee Jackson Date: Thu, 21 Apr 2022 11:36:41 +0800 -Subject: [PATCH 943/991] configs: Add CONFIG_VIDEO_ARDUCAM_PIVARIETY=m +Subject: [PATCH 0937/1015] configs: Add CONFIG_VIDEO_ARDUCAM_PIVARIETY=m Include the driver module for the ARDUCAM_PIVARIETY. @@ -279641,7 +279309,7 @@ index 3ce71ab7c997..1f20261ab813 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Lee Jackson Date: Thu, 21 Apr 2022 13:15:34 +0800 -Subject: [PATCH 944/991] overlays: Add arducam-pivariety-overlay.dts +Subject: [PATCH 0938/1015] overlays: Add arducam-pivariety-overlay.dts Added overlays for enabling Arducam Pivariety and add the relevant information to the README. @@ -279799,7 +279467,7 @@ index 000000000000..935179fa8851 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 6 May 2022 15:34:44 +0100 -Subject: [PATCH 945/991] thermal: broadcom: Use dev_err_probe to suppress +Subject: [PATCH 0939/1015] thermal: broadcom: Use dev_err_probe to suppress defer errors It is quite common for the devm_thermal_zone_of_sensor_register @@ -279812,10 +279480,10 @@ Signed-off-by: Dave Stevenson 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/thermal/broadcom/bcm2711_thermal.c b/drivers/thermal/broadcom/bcm2711_thermal.c -index 011b2789e2df..6e2ff710b2ec 100644 +index e9bef5c3414b..c6ff8d1eca74 100644 --- a/drivers/thermal/broadcom/bcm2711_thermal.c +++ b/drivers/thermal/broadcom/bcm2711_thermal.c -@@ -95,7 +95,7 @@ static int bcm2711_thermal_probe(struct platform_device *pdev) +@@ -92,7 +92,7 @@ static int bcm2711_thermal_probe(struct platform_device *pdev) &bcm2711_thermal_of_ops); if (IS_ERR(thermal)) { ret = PTR_ERR(thermal); @@ -279831,7 +279499,7 @@ index 011b2789e2df..6e2ff710b2ec 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Shych Date: Sat, 30 Apr 2022 14:49:04 +0300 -Subject: [PATCH 946/991] dt-bindings: hwmon: add microchip,emc2305.yaml dt +Subject: [PATCH 0940/1015] dt-bindings: hwmon: add microchip,emc2305.yaml dt binding description. Submitted to linux-hwmon mailing list at @@ -279913,7 +279581,7 @@ index 000000000000..52ae4c2924d6 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 10 May 2022 14:03:30 +0100 -Subject: [PATCH 947/991] dtbindings: Fixup microchip,emc2305.yaml bindings +Subject: [PATCH 0941/1015] dtbindings: Fixup microchip,emc2305.yaml bindings The bindings submitted to mainline had some issues, so fix them up. @@ -279959,7 +279627,7 @@ index 52ae4c2924d6..efdc3cecb03d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Shych Date: Sat, 30 Apr 2022 14:49:03 +0300 -Subject: [PATCH 948/991] hwmon: (emc2305) add support for EMC2301/2/3/5 +Subject: [PATCH 0942/1015] hwmon: (emc2305) add support for EMC2301/2/3/5 RPM-based PWM Fan Speed Controller. Submitted to linux-hwmon mailing list at @@ -279979,7 +279647,7 @@ Reviewed-by: Vadim Pasternak create mode 100644 drivers/hwmon/emc2305.c diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig -index ccdaeafed0bb..8b666fa6df19 100644 +index 51f1caa10d11..09effe73c111 100644 --- a/drivers/hwmon/Kconfig +++ b/drivers/hwmon/Kconfig @@ -1684,6 +1684,19 @@ config SENSORS_EMC2103 @@ -280656,7 +280324,7 @@ index 000000000000..5c896fdfc525 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 5 May 2022 15:46:07 +0100 -Subject: [PATCH 949/991] hwmon: emc2305: fixups for driver submitted to +Subject: [PATCH 0943/1015] hwmon: emc2305: fixups for driver submitted to mailing lists The driver had a number of issues, checkpatch warnings/errors, @@ -280888,7 +280556,7 @@ index 5c896fdfc525..c78d672ff713 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Shych Date: Sat, 30 Apr 2022 14:49:05 +0300 -Subject: [PATCH 950/991] docs: hwmon: add emc2305.rst to docs +Subject: [PATCH 0944/1015] docs: hwmon: add emc2305.rst to docs Submitted to linux-hwmon mailing list at https://patchwork.kernel.org/project/linux-hwmon/patch/20220430114905.53448-4-michaelsh@nvidia.com/ @@ -280955,7 +280623,7 @@ index 000000000000..258da49d18f9 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 3 May 2022 17:22:55 +0100 -Subject: [PATCH 951/991] configs: Enable the EMC2305 fan controller driver +Subject: [PATCH 0945/1015] configs: Enable the EMC2305 fan controller driver Signed-off-by: Phil Elwell --- @@ -281048,7 +280716,7 @@ index 1f20261ab813..f1910ae088c8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 3 May 2022 17:20:11 +0100 -Subject: [PATCH 952/991] dtoverlays: Add i2c-fan overlay +Subject: [PATCH 0946/1015] dtoverlays: Add i2c-fan overlay Add an i2c-fan overlay, initially with support for the EMC2301 fan controller found on the CM4IO board. @@ -281224,7 +280892,7 @@ index 000000000000..e9424c376d54 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 11 May 2022 15:35:50 +0100 -Subject: [PATCH 953/991] SQUASH: overlays: arducam-pivariety: Strip leading +Subject: [PATCH 0947/1015] SQUASH: overlays: arducam-pivariety: Strip leading zero Newer versions of dtc warn about node addresses with leading zeroes. @@ -281254,7 +280922,7 @@ index 935179fa8851..7434e242dba6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 11 May 2022 15:40:02 +0100 -Subject: [PATCH 954/991] overlays: Remove other leading zeroes from node +Subject: [PATCH 0948/1015] overlays: Remove other leading zeroes from node addresses Newer versions of dtc warn about node addresses with leading zeroes. @@ -281326,7 +280994,7 @@ index af2c86383e1f..d06ee9229b0d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 6 May 2022 12:24:31 +0200 -Subject: [PATCH 955/991] clk: Add locking to clk_get_rate_range +Subject: [PATCH 0949/1015] clk: Add locking to clk_get_rate_range clk_get_rate_range() is missing the proper locks, making lockdep complain. @@ -281357,8 +281025,8 @@ index f3dfb6b23030..de6715cd57c0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 16 Mar 2022 16:44:45 +0100 -Subject: [PATCH 956/991] drm/vc4: plane: Prevent async update if we don't have - a dlist +Subject: [PATCH 0950/1015] drm/vc4: plane: Prevent async update if we don't + have a dlist The vc4 planes are setup in hardware by creating a hardware descriptor in a dedicated RAM. As part of the process to setup a plane in KMS, we @@ -281400,7 +281068,7 @@ index 4595c09c782d..3462c9b6d7cf 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 21 Apr 2022 14:27:11 +0200 -Subject: [PATCH 957/991] drm/vc4: Consolidate Hardware Revision Check +Subject: [PATCH 0951/1015] drm/vc4: Consolidate Hardware Revision Check A new generation of controller has been introduced with the BCM2711/RaspberryPi4. This generation needs a bunch of quirks, and over @@ -281768,7 +281436,7 @@ index 3462c9b6d7cf..f0482d1ef821 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 18 Mar 2022 09:46:35 +0100 -Subject: [PATCH 958/991] drm/vc4: bo: Rename vc4_dumb_create +Subject: [PATCH 0952/1015] drm/vc4: bo: Rename vc4_dumb_create We're going to add a new variant of the dumb BO allocation function, so let's rename vc4_dumb_create() to something a bit more specific. @@ -281834,7 +281502,7 @@ index 17dd7bab636d..335a974cf22a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 21 Apr 2022 10:59:41 +0200 -Subject: [PATCH 959/991] drm/vc4: bo: Split out Dumb buffers fixup +Subject: [PATCH 0953/1015] drm/vc4: bo: Split out Dumb buffers fixup The vc4_bo_dumb_create() both fixes up the allocation arguments to match the hardware constraints and actually performs the allocation. @@ -281916,7 +281584,8 @@ index 335a974cf22a..6caf640e38e7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 21 Apr 2022 11:08:22 +0200 -Subject: [PATCH 960/991] drm/vc4: drv: Register a different driver on BCM2711 +Subject: [PATCH 0954/1015] drm/vc4: drv: Register a different driver on + BCM2711 Prior to the BCM2711/RaspberryPi4, the GPU was a part of the display components of the SoC. It was thus a part of the vc4 driver. @@ -282050,7 +281719,7 @@ index e082432f19ac..48d99248dfb5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 21 Apr 2022 11:13:00 +0200 -Subject: [PATCH 961/991] drm/vc4: kms: Register a different +Subject: [PATCH 0955/1015] drm/vc4: kms: Register a different drm_mode_config_funcs on BCM2711 On the BCM2711, our current definition of drm_mode_config_funcs uses the @@ -282100,7 +281769,7 @@ index 716c40e9d37b..98a30e4bf185 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 21 Apr 2022 11:39:27 +0200 -Subject: [PATCH 962/991] drm/vc4: plane: Register a different +Subject: [PATCH 0956/1015] drm/vc4: plane: Register a different drm_plane_helper_funcs on BCM2711 On the BCM2711, our current definition of drm_plane_helper_funcs uses @@ -282154,7 +281823,7 @@ index f0482d1ef821..d79654e2f65b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 21 Apr 2022 17:29:02 +0200 -Subject: [PATCH 963/991] drm/vc4: drv: Skip BO Backend Initialization on +Subject: [PATCH 0957/1015] drm/vc4: drv: Skip BO Backend Initialization on BCM2711 On the BCM2711, we currently call the vc4_bo_cache_init() and @@ -282212,7 +281881,7 @@ index 48d99248dfb5..aa52709722de 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 2 May 2022 10:20:56 +0200 -Subject: [PATCH 964/991] drm/vc4: crtc: Use an union to store the page flip +Subject: [PATCH 0958/1015] drm/vc4: crtc: Use an union to store the page flip callback We'll need to extend the vc4_async_flip_state structure to rely on @@ -282302,7 +281971,7 @@ index 93adb5c272dd..b3e078638b4b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 2 May 2022 15:25:20 +0200 -Subject: [PATCH 965/991] drm/vc4: crtc: Move the BO handling out of common +Subject: [PATCH 0959/1015] drm/vc4: crtc: Move the BO handling out of common page-flip callback We'll soon introduce another completion callback source that won't need @@ -282376,7 +282045,7 @@ index b3e078638b4b..2749ee3b5f06 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 2 May 2022 15:27:36 +0200 -Subject: [PATCH 966/991] drm/vc4: crtc: Move the BO Handling out of Common +Subject: [PATCH 0960/1015] drm/vc4: crtc: Move the BO Handling out of Common Page-Flip Handler The function vc4_async_page_flip() handles asynchronous page-flips in @@ -282500,7 +282169,7 @@ index 2749ee3b5f06..4020fd9e5603 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 2 May 2022 15:28:05 +0200 -Subject: [PATCH 967/991] drm/vc4: crtc: Don't call into BO Handling on Async +Subject: [PATCH 0961/1015] drm/vc4: crtc: Don't call into BO Handling on Async Page-Flips on BCM2711 The BCM2711 doesn't have a v3d GPU so we don't want to call into its BO @@ -282558,7 +282227,7 @@ index 4020fd9e5603..f10f98dc927f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 21 Apr 2022 16:29:43 +0200 -Subject: [PATCH 968/991] drm/vc4: Warn if some v3d code is run on BCM2711 +Subject: [PATCH 0962/1015] drm/vc4: Warn if some v3d code is run on BCM2711 The BCM2711 has a separate driver for the v3d, and thus we can't call into any of the driver entrypoints that rely on the v3d being there. @@ -283337,7 +283006,7 @@ index 7cf82b071de2..e315aeb5fef5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Suriyan Laohaprapanon Date: Wed, 11 May 2022 18:00:22 +0100 -Subject: [PATCH 969/991] dtoverlays: Fix incorrect property name for display +Subject: [PATCH 0963/1015] dtoverlays: Fix incorrect property name for display rotation --- @@ -283373,7 +283042,7 @@ index bf186811ec5d..6e69bd7fa031 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Thu, 5 May 2022 18:50:04 +0100 -Subject: [PATCH 970/991] drm/vc4_hdmi: Force a modeset when Broadcast RGB +Subject: [PATCH 0964/1015] drm/vc4_hdmi: Force a modeset when Broadcast RGB setting changes Without this the change is not visible until the next modeset @@ -283384,10 +283053,10 @@ Signed-off-by: Dom Cobley 1 file changed, 3 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 4696ba6f4872..b0f9ca6b5edf 100644 +index 82f00eb905c1..e54aff882a3c 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -333,14 +333,17 @@ static int vc4_hdmi_connector_atomic_check(struct drm_connector *connector, +@@ -334,14 +334,17 @@ static int vc4_hdmi_connector_atomic_check(struct drm_connector *connector, { struct drm_connector_state *old_state = drm_atomic_get_old_connector_state(state, connector); @@ -283412,7 +283081,7 @@ index 4696ba6f4872..b0f9ca6b5edf 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 1 Apr 2022 17:10:37 +0100 -Subject: [PATCH 971/991] drm/atomic: If margins are updated, update all +Subject: [PATCH 0965/1015] drm/atomic: If margins are updated, update all planes. Margins may be implemented by scaling the planes, but as there @@ -283478,7 +283147,7 @@ index d6814f145bd5..46976131e6a6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 16 May 2022 12:16:46 +0100 -Subject: [PATCH 972/991] overlays: Add gpio-hog overlay +Subject: [PATCH 0966/1015] overlays: Add gpio-hog overlay Add an overlay to activate a hog on a specified pin. Note that hogged GPIOs are not available for other uses, i.e. drivers or @@ -283570,7 +283239,7 @@ index 000000000000..c9e39046fed9 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Mon, 16 May 2022 10:28:27 +0100 -Subject: [PATCH 973/991] mmc: block: Don't do single-sector reads during +Subject: [PATCH 0967/1015] mmc: block: Don't do single-sector reads during recovery See https://github.com/raspberrypi/linux/issues/5019 @@ -283591,10 +283260,10 @@ Signed-off-by: Jonathan Bell 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c -index 9144ceeea07f..c37a6e5e941f 100644 +index a992dd6dafc5..78184372bc4e 100644 --- a/drivers/mmc/core/block.c +++ b/drivers/mmc/core/block.c -@@ -1871,7 +1871,11 @@ static void mmc_blk_mq_rw_recovery(struct mmc_queue *mq, struct request *req) +@@ -1870,7 +1870,11 @@ static void mmc_blk_mq_rw_recovery(struct mmc_queue *mq, struct request *req) } /* FIXME: Missing single sector read for large sector size */ @@ -283614,7 +283283,7 @@ index 9144ceeea07f..c37a6e5e941f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 17 May 2022 13:39:00 +0100 -Subject: [PATCH 974/991] configs: Regenerate defconfigs +Subject: [PATCH 0968/1015] configs: Regenerate defconfigs Signed-off-by: Phil Elwell --- @@ -283732,7 +283401,7 @@ index f1910ae088c8..95885c250f30 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 16 May 2022 17:33:48 +0100 -Subject: [PATCH 975/991] vc04_services: vchiq-mmal: Add defines for +Subject: [PATCH 0969/1015] vc04_services: vchiq-mmal: Add defines for mmal_es_format flags There is a flags field in struct mmal_es_format, but the defines @@ -283772,7 +283441,7 @@ index a118efd21d98..e0c331eb8799 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 16 May 2022 17:37:35 +0100 -Subject: [PATCH 976/991] vc04_services: bcm2835-codec: Add support for +Subject: [PATCH 0970/1015] vc04_services: bcm2835-codec: Add support for V4L2_PIX_FMT_NV12_COL128 V4L2_PIX_FMT_NV12_COL128 is supported by the ISP and the input of @@ -283932,7 +283601,7 @@ index 8abdd7f6b7fd..dc7c0b97fbc8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 17 May 2022 17:21:43 +0100 -Subject: [PATCH 977/991] drm/vc4: Add HDMI format detection registers to +Subject: [PATCH 0971/1015] drm/vc4: Add HDMI format detection registers to register list The block can detect what the incoming image timings are for @@ -284006,7 +283675,7 @@ index 0198de96c7b2..5a56761e75af 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 17 May 2022 17:23:17 +0100 -Subject: [PATCH 978/991] drm/vc4: Add MISC_CONTROL register for vc4. +Subject: [PATCH 0972/1015] drm/vc4: Add MISC_CONTROL register for vc4. The MISC_CONTROL register allows configuration of pixel repetition for pixel doubling in the HDMI block instead of PixelValve. @@ -284036,8 +283705,8 @@ index 5a56761e75af..48db438550b1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 17 May 2022 17:32:04 +0100 -Subject: [PATCH 979/991] drm/vc4: Correct HDMI timing registers for interlaced - modes +Subject: [PATCH 0973/1015] drm/vc4: Correct HDMI timing registers for + interlaced modes For interlaced modes the timings were not being correctly programmed into the HDMI block, so correct them. @@ -284048,10 +283717,10 @@ Signed-off-by: Dave Stevenson 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index b0f9ca6b5edf..d809a4db70c3 100644 +index e54aff882a3c..b8fb80f3c7cb 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1241,13 +1241,13 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, +@@ -1242,13 +1242,13 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, VC4_SET_FIELD(mode->crtc_vsync_start - mode->crtc_vdisplay, VC5_HDMI_VERTA_VFP) | VC4_SET_FIELD(mode->crtc_vdisplay, VC5_HDMI_VERTA_VAL)); @@ -284076,8 +283745,8 @@ index b0f9ca6b5edf..d809a4db70c3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 17 May 2022 17:34:11 +0100 -Subject: [PATCH 980/991] drm/vc4: Move pixel doubling from Pixelvalve to HDMI - block +Subject: [PATCH 0974/1015] drm/vc4: Move pixel doubling from Pixelvalve to + HDMI block With the change to 2 pixels/clock, the pixel doubling in the PV results in doubling each pair of pixels, ie ABABCDCD instead of @@ -284111,10 +283780,10 @@ index f10f98dc927f..f11b824d1ab5 100644 vc4_encoder->type == VC4_ENCODER_TYPE_DSI1); bool is_dsi1 = vc4_encoder->type == VC4_ENCODER_TYPE_DSI1; diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index d809a4db70c3..3b2c6fe2f78b 100644 +index b8fb80f3c7cb..ed5c21eab117 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -86,6 +86,8 @@ +@@ -87,6 +87,8 @@ #define VC5_HDMI_VERTB_VSPO_SHIFT 16 #define VC5_HDMI_VERTB_VSPO_MASK VC4_MASK(29, 16) @@ -284123,7 +283792,7 @@ index d809a4db70c3..3b2c6fe2f78b 100644 #define VC5_HDMI_MISC_CONTROL_PIXEL_REP_SHIFT 0 #define VC5_HDMI_MISC_CONTROL_PIXEL_REP_MASK VC4_MASK(3, 0) -@@ -1197,6 +1199,7 @@ static void vc4_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, +@@ -1198,6 +1200,7 @@ static void vc4_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, mode->crtc_vsync_end, VC4_HDMI_VERTB_VBP)); unsigned long flags; @@ -284131,7 +283800,7 @@ index d809a4db70c3..3b2c6fe2f78b 100644 spin_lock_irqsave(&vc4_hdmi->hw_lock, flags); -@@ -1223,6 +1226,11 @@ static void vc4_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, +@@ -1224,6 +1227,11 @@ static void vc4_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, HDMI_WRITE(HDMI_VERTB0, vertb_even); HDMI_WRITE(HDMI_VERTB1, vertb); @@ -284143,7 +283812,7 @@ index d809a4db70c3..3b2c6fe2f78b 100644 spin_unlock_irqrestore(&vc4_hdmi->hw_lock, flags); } -@@ -1323,7 +1331,7 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, +@@ -1324,7 +1332,7 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, reg = HDMI_READ(HDMI_MISC_CONTROL); reg &= ~VC5_HDMI_MISC_CONTROL_PIXEL_REP_MASK; @@ -284152,7 +283821,7 @@ index d809a4db70c3..3b2c6fe2f78b 100644 HDMI_WRITE(HDMI_MISC_CONTROL, reg); HDMI_WRITE(HDMI_CLOCK_STOP, 0); -@@ -1817,11 +1825,25 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, +@@ -1818,11 +1826,25 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, unsigned long long tmds_rate; int ret; @@ -284190,7 +283859,7 @@ index d809a4db70c3..3b2c6fe2f78b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Manivannan Sadhasivam Date: Mon, 20 Dec 2021 00:09:47 +0200 -Subject: [PATCH 981/991] dt-bindings: media: i2c: Add IMX296 CMOS sensor +Subject: [PATCH 0975/1015] dt-bindings: media: i2c: Add IMX296 CMOS sensor binding Add YAML devicetree binding for IMX296 CMOS image sensor. Let's also @@ -284307,10 +283976,10 @@ index 000000000000..e8f9a73bf2db + +... diff --git a/MAINTAINERS b/MAINTAINERS -index 36db6933f4c5..b0e51a186d2b 100644 +index 967a3dd81da9..e259a8563e7f 100644 --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -17497,6 +17497,14 @@ T: git git://linuxtv.org/media_tree.git +@@ -17499,6 +17499,14 @@ T: git git://linuxtv.org/media_tree.git F: Documentation/devicetree/bindings/media/i2c/imx290.txt F: drivers/media/i2c/imx290.c @@ -284332,7 +284001,7 @@ index 36db6933f4c5..b0e51a186d2b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Mon, 20 Dec 2021 00:09:48 +0200 -Subject: [PATCH 982/991] media: i2c: IMX296 camera sensor driver +Subject: [PATCH 0976/1015] media: i2c: IMX296 camera sensor driver The IMX296LLR is a monochrome 1.60MP CMOS sensor from Sony. The driver supports cropping and binning (but not both at the same time due to @@ -284351,10 +284020,10 @@ Signed-off-by: Laurent Pinchart create mode 100644 drivers/media/i2c/imx296.c diff --git a/MAINTAINERS b/MAINTAINERS -index b0e51a186d2b..da97f248c1ac 100644 +index e259a8563e7f..489ade7faa4c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -17504,6 +17504,7 @@ L: linux-media@vger.kernel.org +@@ -17506,6 +17506,7 @@ L: linux-media@vger.kernel.org S: Maintained T: git git://linuxtv.org/media_tree.git F: Documentation/devicetree/bindings/media/i2c/sony,imx296.yaml @@ -285610,7 +285279,7 @@ index 000000000000..4be03180deac From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 17 May 2022 11:27:49 +0100 -Subject: [PATCH 983/991] overlays: Add imx296 overlay +Subject: [PATCH 0977/1015] overlays: Add imx296 overlay Add an overlay for the Sony IMX296 camera sensor. @@ -285776,8 +285445,8 @@ index 000000000000..85b6f7e7fca1 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 20 May 2022 11:58:21 +0100 -Subject: [PATCH 984/991] configs: Enable the IMX296 device module in platform - defconfig +Subject: [PATCH 0978/1015] configs: Enable the IMX296 device module in + platform defconfig Build this module by default for the following: bcm2711_defconfig @@ -285861,7 +285530,7 @@ index 95885c250f30..e456d05c8116 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 17 May 2022 12:58:37 +0100 -Subject: [PATCH 985/991] media: imx296: Fix Bayer order +Subject: [PATCH 0979/1015] media: imx296: Fix Bayer order Switch the Bayer ordering advertised by the device driver from BGGR to RGGB. @@ -285899,7 +285568,7 @@ index 4be03180deac..33944155a6ce 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 20 May 2022 09:55:42 +0100 -Subject: [PATCH 986/991] media: imx296: Add standby and stream on/off delays +Subject: [PATCH 0980/1015] media: imx296: Add standby and stream on/off delays Add a 1.5ms delay after coming out of standby. Add a 2ms delay after going into or coming out of streaming state. @@ -285959,7 +285628,7 @@ index 33944155a6ce..c0da6f841d8f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 20 May 2022 09:56:11 +0100 -Subject: [PATCH 987/991] media: imx296: Only advertise the full resolution +Subject: [PATCH 0981/1015] media: imx296: Only advertise the full resolution mode The 1/4 resolution derived mode does not stream correctly, so remove it from @@ -285990,7 +285659,7 @@ index c0da6f841d8f..c565f319be94 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 20 May 2022 11:33:11 +0100 -Subject: [PATCH 988/991] media: imx296: Add horizontal and vertical flips +Subject: [PATCH 0982/1015] media: imx296: Add horizontal and vertical flips support Add support for hflip and vflip controls. Adjust the mbus_code value reported @@ -286150,7 +285819,7 @@ index c565f319be94..21133bf8b685 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 20 May 2022 11:50:24 +0100 -Subject: [PATCH 989/991] media: imx296: Adjust exposure limits on vblank +Subject: [PATCH 0983/1015] media: imx296: Adjust exposure limits on vblank changes The exposure lines control limits are adjusted appropriately during any change @@ -286228,7 +285897,7 @@ index 21133bf8b685..aaebf26d1a5b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 20 May 2022 12:05:33 +0100 -Subject: [PATCH 990/991] media: imx296: Set gain delay to 1 frame +Subject: [PATCH 0984/1015] media: imx296: Set gain delay to 1 frame In order to behave in a similar manner to the rolling shutter sensors, set the gain delay to 1 frame. This simplifies userland control of the gain value. @@ -286258,7 +285927,7 @@ index aaebf26d1a5b..64d46badbee7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 20 May 2022 13:18:58 +0100 -Subject: [PATCH 991/991] media: imx296: Add the link frequency control +Subject: [PATCH 0985/1015] media: imx296: Add the link frequency control Add the V4L2_CID_LINK_FREQ menu control for the imx296. Report a single value of 1188 Mhz for the link frequency. @@ -286306,3 +285975,4893 @@ index 64d46badbee7..c1e71ae0442d 100644 -- 2.18.4 + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Chris Lawrence +Date: Sat, 21 May 2022 20:36:52 -0400 +Subject: [PATCH 0986/1015] configs: add RV8803 RTC module to Raspberry Pi + board defconfigs + +--- + arch/arm/configs/bcm2709_defconfig | 1 + + arch/arm/configs/bcm2711_defconfig | 1 + + arch/arm/configs/bcmrpi_defconfig | 1 + + arch/arm64/configs/bcm2711_defconfig | 1 + + arch/arm64/configs/bcmrpi3_defconfig | 1 + + 5 files changed, 5 insertions(+) + +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index 16698a5be3b9..8f01cc9a9ac6 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -1297,6 +1297,7 @@ CONFIG_RTC_DRV_RX8581=m + CONFIG_RTC_DRV_RX8025=m + CONFIG_RTC_DRV_EM3027=m + CONFIG_RTC_DRV_RV3028=m ++CONFIG_RTC_DRV_RV8803=m + CONFIG_RTC_DRV_SD3078=m + CONFIG_RTC_DRV_M41T93=m + CONFIG_RTC_DRV_M41T94=m +diff --git a/arch/arm/configs/bcm2711_defconfig b/arch/arm/configs/bcm2711_defconfig +index e9da4fda5c40..4905fbccd259 100644 +--- a/arch/arm/configs/bcm2711_defconfig ++++ b/arch/arm/configs/bcm2711_defconfig +@@ -1318,6 +1318,7 @@ CONFIG_RTC_DRV_RX8581=m + CONFIG_RTC_DRV_RX8025=m + CONFIG_RTC_DRV_EM3027=m + CONFIG_RTC_DRV_RV3028=m ++CONFIG_RTC_DRV_RV8803=m + CONFIG_RTC_DRV_SD3078=m + CONFIG_RTC_DRV_M41T93=m + CONFIG_RTC_DRV_M41T94=m +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index a0ecfe93a6ab..b3c7df2bcc00 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -1290,6 +1290,7 @@ CONFIG_RTC_DRV_RX8581=m + CONFIG_RTC_DRV_RX8025=m + CONFIG_RTC_DRV_EM3027=m + CONFIG_RTC_DRV_RV3028=m ++CONFIG_RTC_DRV_RV8803=m + CONFIG_RTC_DRV_SD3078=m + CONFIG_RTC_DRV_M41T93=m + CONFIG_RTC_DRV_M41T94=m +diff --git a/arch/arm64/configs/bcm2711_defconfig b/arch/arm64/configs/bcm2711_defconfig +index 410e2f7c9dfa..c02f0b7f5602 100644 +--- a/arch/arm64/configs/bcm2711_defconfig ++++ b/arch/arm64/configs/bcm2711_defconfig +@@ -1324,6 +1324,7 @@ CONFIG_RTC_DRV_RX8581=m + CONFIG_RTC_DRV_RX8025=m + CONFIG_RTC_DRV_EM3027=m + CONFIG_RTC_DRV_RV3028=m ++CONFIG_RTC_DRV_RV8803=m + CONFIG_RTC_DRV_SD3078=m + CONFIG_RTC_DRV_M41T93=m + CONFIG_RTC_DRV_M41T94=m +diff --git a/arch/arm64/configs/bcmrpi3_defconfig b/arch/arm64/configs/bcmrpi3_defconfig +index e456d05c8116..092e7b6b100b 100644 +--- a/arch/arm64/configs/bcmrpi3_defconfig ++++ b/arch/arm64/configs/bcmrpi3_defconfig +@@ -1232,6 +1232,7 @@ CONFIG_RTC_DRV_RX8581=m + CONFIG_RTC_DRV_RX8025=m + CONFIG_RTC_DRV_EM3027=m + CONFIG_RTC_DRV_RV3028=m ++CONFIG_RTC_DRV_RV8803=m + CONFIG_RTC_DRV_SD3078=m + CONFIG_RTC_DRV_M41T93=m + CONFIG_RTC_DRV_M41T94=m +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Chris Lawrence +Date: Sat, 21 May 2022 20:38:21 -0400 +Subject: [PATCH 0987/1015] overlays: add RV8803 RTC overlay to the generic ARM + RTC device tree + +--- + arch/arm/boot/dts/overlays/i2c-rtc-common.dtsi | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/arch/arm/boot/dts/overlays/i2c-rtc-common.dtsi b/arch/arm/boot/dts/overlays/i2c-rtc-common.dtsi +index 7f749fc2d802..5e03764b67b0 100644 +--- a/arch/arm/boot/dts/overlays/i2c-rtc-common.dtsi ++++ b/arch/arm/boot/dts/overlays/i2c-rtc-common.dtsi +@@ -270,6 +270,19 @@ + }; + }; + ++ fragment@20 { ++ target = <&i2cbus>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ rv8803: rv8803@32 { ++ compatible = "microcrystal,rv8803"; ++ reg = <0x32>; ++ }; ++ }; ++ }; ++ + + __overrides__ { + abx80x = <0>,"+0"; +@@ -292,6 +305,7 @@ + pcf85063a = <0>,"+16"; + s35390a = <0>,"+18"; + bq32000 = <0>,"+19"; ++ rv8803 = <0>,"+20"; + + addr = <&abx80x>, "reg:0", + <&ds1307>, "reg:0", +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dom Cobley +Date: Wed, 25 May 2022 15:57:40 +0100 +Subject: [PATCH 0988/1015] vc-sm-cma: Restore correct cache maintainance + operations + +We have been using the more expensive flush operations rather than +invalidate and clean since kernel rpi-5.9.y + +These are exposed with: +52f1453513ba95084ab811a030032fe605b0cbe2 Re-expose some dmi APIs for use in VCSM + +But I believe that commit was dropped when (non-cma) vc-sm was dropped, +and didn't get updated when the commit was restored + +Signed-off-by: Dom Cobley +--- + drivers/staging/vc04_services/vc-sm-cma/vc_sm.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/drivers/staging/vc04_services/vc-sm-cma/vc_sm.c b/drivers/staging/vc04_services/vc-sm-cma/vc_sm.c +index 82a9c6e7f277..268f97ee8673 100644 +--- a/drivers/staging/vc04_services/vc-sm-cma/vc_sm.c ++++ b/drivers/staging/vc04_services/vc-sm-cma/vc_sm.c +@@ -1247,7 +1247,9 @@ static void (*cache_op_to_func(const unsigned int cache_op)) + return NULL; + + case VC_SM_CACHE_OP_INV: ++ return dmac_inv_range; + case VC_SM_CACHE_OP_CLEAN: ++ return dmac_clean_range; + case VC_SM_CACHE_OP_FLUSH: + return dmac_flush_range; + +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dom Cobley +Date: Tue, 17 May 2022 12:46:42 +0100 +Subject: [PATCH 0989/1015] kms/vc4_hdmi: Refuse 4096x2160@60 hdmi modes + +These are no reliable without overclocking. +See: https://github.com/raspberrypi/linux/issues/5034 + +Signed-off-by: Dom Cobley +--- + drivers/gpu/drm/vc4/vc4_drv.h | 6 ++++++ + drivers/gpu/drm/vc4/vc4_hdmi.c | 14 ++++++++++++++ + drivers/gpu/drm/vc4/vc4_hvs.c | 5 +++++ + 3 files changed, 25 insertions(+) + +diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h +index 0f600a35f09f..4a8940ca91df 100644 +--- a/drivers/gpu/drm/vc4/vc4_drv.h ++++ b/drivers/gpu/drm/vc4/vc4_drv.h +@@ -351,6 +351,12 @@ struct vc4_hvs { + * available. + */ + bool vc5_hdmi_enable_scrambling; ++ ++ /* ++ * 4096x2160@60 requires a core overclock to work, so register ++ * whether that is sufficient. ++ */ ++ bool vc5_hdmi_enable_4096by2160; + }; + + struct vc4_plane { +diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c +index ed5c21eab117..5d37cd0741b6 100644 +--- a/drivers/gpu/drm/vc4/vc4_hdmi.c ++++ b/drivers/gpu/drm/vc4/vc4_hdmi.c +@@ -1822,6 +1822,7 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, + struct drm_connector *connector = &vc4_hdmi->connector; + struct drm_connector_state *old_conn_state = drm_atomic_get_old_connector_state(conn_state->state, connector); + struct vc4_hdmi_connector_state *old_vc4_state = conn_state_to_vc4_hdmi_conn_state(old_conn_state); ++ struct vc4_dev *vc4 = to_vc4_dev(connector->dev); + unsigned long long pixel_rate = mode->clock * 1000; + unsigned long long tmds_rate; + int ret; +@@ -1846,6 +1847,12 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, + return -EINVAL; + } + ++ /* 4096x2160@60 is not reliable without overclocking core */ ++ if (mode->hdisplay > 3840 && mode->vdisplay >= 2160 && ++ drm_mode_vrefresh(mode) >= 50 && ++ !vc4->hvs->vc5_hdmi_enable_4096by2160) ++ return -EINVAL; ++ + /* + * The 1440p@60 pixel rate is in the same range than the first + * WiFi channel (between 2.4GHz and 2.422GHz with 22MHz +@@ -1877,6 +1884,8 @@ vc4_hdmi_encoder_mode_valid(struct drm_encoder *encoder, + const struct drm_display_mode *mode) + { + struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); ++ const struct drm_connector *connector = &vc4_hdmi->connector; ++ struct vc4_dev *vc4 = to_vc4_dev(connector->dev); + + if (vc4_hdmi->variant->unsupported_odd_h_timings && + !(mode->flags & DRM_MODE_FLAG_DBLCLK) && +@@ -1884,6 +1893,11 @@ vc4_hdmi_encoder_mode_valid(struct drm_encoder *encoder, + (mode->hsync_end % 2) || (mode->htotal % 2))) + return MODE_H_ILLEGAL; + ++ if (mode->hdisplay > 3840 && mode->vdisplay >= 2160 && ++ drm_mode_vrefresh(mode) >= 50 && ++ !vc4->hvs->vc5_hdmi_enable_4096by2160) ++ return MODE_CLOCK_HIGH; ++ + return vc4_hdmi_encoder_clock_valid(vc4_hdmi, mode->clock * 1000); + } + +diff --git a/drivers/gpu/drm/vc4/vc4_hvs.c b/drivers/gpu/drm/vc4/vc4_hvs.c +index 8969d233d753..b0acdff916b8 100644 +--- a/drivers/gpu/drm/vc4/vc4_hvs.c ++++ b/drivers/gpu/drm/vc4/vc4_hvs.c +@@ -897,6 +897,7 @@ static int vc4_hvs_bind(struct device *dev, struct device *master, void *data) + hvs->regset.nregs = ARRAY_SIZE(hvs_regs); + + if (vc4->is_vc5) { ++ unsigned long min_rate; + unsigned long max_rate; + + hvs->core_clk = devm_clk_get(&pdev->dev, NULL); +@@ -909,6 +910,10 @@ static int vc4_hvs_bind(struct device *dev, struct device *master, void *data) + if (max_rate >= 550000000) + hvs->vc5_hdmi_enable_scrambling = true; + ++ min_rate = clk_get_min_rate(hvs->core_clk); ++ if (min_rate >= 600000000) ++ hvs->vc5_hdmi_enable_4096by2160 = true; ++ + ret = clk_prepare_enable(hvs->core_clk); + if (ret) { + dev_err(&pdev->dev, "Couldn't enable the core clock\n"); +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Fri, 3 Jun 2022 21:55:22 +0100 +Subject: [PATCH 0990/1015] overlays: Document the rv8803 i2c-rtc parameter + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/overlays/README | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index 52352b083498..e423abbd535c 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -1654,6 +1654,8 @@ Params: abx80x Select one of the ABx80x family: + + rv3028 Select the Micro Crystal RV3028 device + ++ rv8803 Select the Micro Crystal RV8803 device ++ + sd3078 Select the ZXW Shenzhen whwave SD3078 device + + s35390a Select the ABLIC S35390A device +@@ -1724,6 +1726,8 @@ Params: abx80x Select one of the ABx80x family: + + rv3028 Select the Micro Crystal RV3028 device + ++ rv8803 Select the Micro Crystal RV8803 device ++ + sd3078 Select the ZXW Shenzhen whwave SD3078 device + + s35390a Select the ABLIC S35390A device +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dag Bakke +Date: Mon, 30 May 2022 11:57:06 +0200 +Subject: [PATCH 0991/1015] overlays: dht11: make sensor readable via hwmon + +Add a patch to make the sensor readable via the IIO/hwmon bridge. + +Signed-off-by: Dag Bakke +--- + arch/arm/boot/dts/overlays/dht11-overlay.dts | 15 +++++++++++---- + 1 file changed, 11 insertions(+), 4 deletions(-) + +diff --git a/arch/arm/boot/dts/overlays/dht11-overlay.dts b/arch/arm/boot/dts/overlays/dht11-overlay.dts +index 6feeeb402493..8b0fc6b7a3cb 100644 +--- a/arch/arm/boot/dts/overlays/dht11-overlay.dts ++++ b/arch/arm/boot/dts/overlays/dht11-overlay.dts +@@ -10,13 +10,19 @@ + fragment@0 { + target-path = "/"; + __overlay__ { +- +- dht11: dht11@0 { ++ dht11: dht11@4 { + compatible = "dht11"; + pinctrl-names = "default"; + pinctrl-0 = <&dht11_pins>; + gpios = <&gpio 4 0>; + status = "okay"; ++ #io-channel-cells = <1>; ++ }; ++ ++ iio: iio-hwmon@4 { ++ compatible = "iio-hwmon"; ++ status = "okay"; ++ io-channels = <&dht11 0>, <&dht11 1>; + }; + }; + }; +@@ -24,7 +30,7 @@ + fragment@1 { + target = <&gpio>; + __overlay__ { +- dht11_pins: dht11_pins@0 { ++ dht11_pins: dht11_pins@4 { + brcm,pins = <4>; + brcm,function = <0>; // in + brcm,pull = <0>; // off +@@ -36,6 +42,7 @@ + gpiopin = <&dht11_pins>,"brcm,pins:0", + <&dht11_pins>, "reg:0", + <&dht11>,"gpios:4", +- <&dht11>,"reg:0"; ++ <&dht11>,"reg:0", ++ <&iio>,"reg:0"; + }; + }; +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: David Plowman +Date: Mon, 30 May 2022 10:10:37 +0100 +Subject: [PATCH 0992/1015] media: i2c: imx477: Correct minimum exposure lines + +The minimum number of exposure lines value (IMX477_EXPOSURE_MIN) was +previously 20 but this is not correct. The datasheet is not completely +explicit, however the new value of 4 has been tested with all the +sensor modes supported by this driver, and matches the lowest exposure +value of 114us that could be achieved wtih Raspberry Pi's legacy +firmware driver. + +Signed-off-by: David Plowman +--- + drivers/media/i2c/imx477.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/media/i2c/imx477.c b/drivers/media/i2c/imx477.c +index 2b4dfdd7975a..ac79c57292b3 100644 +--- a/drivers/media/i2c/imx477.c ++++ b/drivers/media/i2c/imx477.c +@@ -61,7 +61,7 @@ MODULE_PARM_DESC(trigger_mode, "Set vsync trigger mode: 1=source, 2=sink"); + /* Exposure control */ + #define IMX477_REG_EXPOSURE 0x0202 + #define IMX477_EXPOSURE_OFFSET 22 +-#define IMX477_EXPOSURE_MIN 20 ++#define IMX477_EXPOSURE_MIN 4 + #define IMX477_EXPOSURE_STEP 1 + #define IMX477_EXPOSURE_DEFAULT 0x640 + #define IMX477_EXPOSURE_MAX (IMX477_FRAME_LENGTH_MAX - \ +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Stephen Boyd +Date: Wed, 1 Jun 2022 19:21:09 -0700 +Subject: [PATCH 0993/1015] arm64: Initialize jump labels before + setup_machine_fdt() + +commit 73e2d827a501d48dceeb5b9b267a4cd283d6b1ae upstream. + +A static key warning splat appears during early boot on arm64 systems +that credit randomness from devicetrees that contain an "rng-seed" +property. This is because setup_machine_fdt() is called before +jump_label_init() during setup_arch(). Let's swap the order of these two +calls so that jump labels are initialized before the devicetree is +unflattened and the rng seed is credited. + + static_key_enable_cpuslocked(): static key '0xffffffe51c6fcfc0' used before call to jump_label_init() + WARNING: CPU: 0 PID: 0 at kernel/jump_label.c:166 static_key_enable_cpuslocked+0xb0/0xb8 + Modules linked in: + CPU: 0 PID: 0 Comm: swapper Not tainted 5.18.0+ #224 44b43e377bfc84bc99bb5ab885ff694984ee09ff + pstate: 600001c9 (nZCv dAIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--) + pc : static_key_enable_cpuslocked+0xb0/0xb8 + lr : static_key_enable_cpuslocked+0xb0/0xb8 + sp : ffffffe51c393cf0 + x29: ffffffe51c393cf0 x28: 000000008185054c x27: 00000000f1042f10 + x26: 0000000000000000 x25: 00000000f10302b2 x24: 0000002513200000 + x23: 0000002513200000 x22: ffffffe51c1c9000 x21: fffffffdfdc00000 + x20: ffffffe51c2f0831 x19: ffffffe51c6fcfc0 x18: 00000000ffff1020 + x17: 00000000e1e2ac90 x16: 00000000000000e0 x15: ffffffe51b710708 + x14: 0000000000000066 x13: 0000000000000018 x12: 0000000000000000 + x11: 0000000000000000 x10: 00000000ffffffff x9 : 0000000000000000 + x8 : 0000000000000000 x7 : 61632065726f6665 x6 : 6220646573752027 + x5 : ffffffe51c641d25 x4 : ffffffe51c13142c x3 : ffff0a00ffffff05 + x2 : 40000000ffffe003 x1 : 00000000000001c0 x0 : 0000000000000065 + Call trace: + static_key_enable_cpuslocked+0xb0/0xb8 + static_key_enable+0x2c/0x40 + crng_set_ready+0x24/0x30 + execute_in_process_context+0x80/0x90 + _credit_init_bits+0x100/0x154 + add_bootloader_randomness+0x64/0x78 + early_init_dt_scan_chosen+0x140/0x184 + early_init_dt_scan_nodes+0x28/0x4c + early_init_dt_scan+0x40/0x44 + setup_machine_fdt+0x7c/0x120 + setup_arch+0x74/0x1d8 + start_kernel+0x84/0x44c + __primary_switched+0xc0/0xc8 + ---[ end trace 0000000000000000 ]--- + random: crng init done + Machine model: Google Lazor (rev1 - 2) with LTE + +Cc: Hsin-Yi Wang +Cc: Douglas Anderson +Cc: Ard Biesheuvel +Cc: Steven Rostedt +Cc: Jason A. Donenfeld +Cc: Dominik Brodowski +Fixes: f5bda35fba61 ("random: use static branch for crng_ready()") +Signed-off-by: Stephen Boyd +Reviewed-by: Jason A. Donenfeld +Link: https://lore.kernel.org/r/20220602022109.780348-1-swboyd@chromium.org +Signed-off-by: Catalin Marinas +--- + arch/arm64/kernel/setup.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c +index be5f85b0a24d..644b7cd38e3e 100644 +--- a/arch/arm64/kernel/setup.c ++++ b/arch/arm64/kernel/setup.c +@@ -307,13 +307,14 @@ void __init __no_sanitize_address setup_arch(char **cmdline_p) + early_fixmap_init(); + early_ioremap_init(); + +- setup_machine_fdt(__fdt_pointer); +- + /* + * Initialise the static keys early as they may be enabled by the +- * cpufeature code and early parameters. ++ * cpufeature code, early parameters, and DT setup. + */ + jump_label_init(); ++ ++ setup_machine_fdt(__fdt_pointer); ++ + parse_early_param(); + + /* +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dom Cobley +Date: Wed, 20 Apr 2022 18:08:38 +0100 +Subject: [PATCH 0994/1015] drm/v3d: Switch clock setting to new api + +Signed-off-by: Dom Cobley +--- + drivers/gpu/drm/v3d/v3d_drv.c | 4 ++-- + drivers/gpu/drm/v3d/v3d_gem.c | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/drivers/gpu/drm/v3d/v3d_drv.c b/drivers/gpu/drm/v3d/v3d_drv.c +index 8d7f0bf55ce2..66d1f9a6a511 100644 +--- a/drivers/gpu/drm/v3d/v3d_drv.c ++++ b/drivers/gpu/drm/v3d/v3d_drv.c +@@ -307,7 +307,7 @@ static int v3d_platform_drm_probe(struct platform_device *pdev) + dev_err(dev, "Failed to get clock (%ld)\n", PTR_ERR(v3d->clk)); + return PTR_ERR(v3d->clk); + } +- v3d->clk_up_rate = clk_get_rate(v3d->clk); ++ v3d->clk_up_rate = clk_get_max_rate(v3d->clk); + /* For downclocking, drop it to the minimum frequency we can get from + * the CPRMAN clock generator dividing off our parent. The divider is + * 4 bits, but ask for just higher than that so that rounding doesn't +@@ -342,7 +342,7 @@ static int v3d_platform_drm_probe(struct platform_device *pdev) + if (ret) + goto irq_disable; + +- ret = clk_set_rate(v3d->clk, v3d->clk_down_rate); ++ ret = clk_set_min_rate(v3d->clk, v3d->clk_down_rate); + WARN_ON_ONCE(ret != 0); + + return 0; +diff --git a/drivers/gpu/drm/v3d/v3d_gem.c b/drivers/gpu/drm/v3d/v3d_gem.c +index 4636791617e1..a7afccc2e8eb 100644 +--- a/drivers/gpu/drm/v3d/v3d_gem.c ++++ b/drivers/gpu/drm/v3d/v3d_gem.c +@@ -26,7 +26,7 @@ v3d_clock_down_work(struct work_struct *work) + container_of(work, struct v3d_dev, clk_down_work.work); + int ret; + +- ret = clk_set_rate(v3d->clk, v3d->clk_down_rate); ++ ret = clk_set_min_rate(v3d->clk, v3d->clk_down_rate); + v3d->clk_up = false; + WARN_ON_ONCE(ret != 0); + } +@@ -40,7 +40,7 @@ v3d_clock_up_get(struct v3d_dev *v3d) + if (!v3d->clk_up) { + int ret; + +- ret = clk_set_rate(v3d->clk, v3d->clk_up_rate); ++ ret = clk_set_min_rate(v3d->clk, v3d->clk_up_rate); + WARN_ON_ONCE(ret != 0); + v3d->clk_up = true; + } +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dom Cobley +Date: Wed, 20 Apr 2022 17:40:47 +0100 +Subject: [PATCH 0995/1015] clk-raspberrypi: Enable minimize for all firmware + clocks + +Signed-off-by: Dom Cobley +--- + drivers/clk/bcm/clk-raspberrypi.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/drivers/clk/bcm/clk-raspberrypi.c b/drivers/clk/bcm/clk-raspberrypi.c +index 10226a6f5a4b..c782843d07ac 100644 +--- a/drivers/clk/bcm/clk-raspberrypi.c ++++ b/drivers/clk/bcm/clk-raspberrypi.c +@@ -130,18 +130,23 @@ raspberrypi_clk_variants[RPI_FIRMWARE_NUM_CLK_ID] = { + }, + [RPI_FIRMWARE_V3D_CLK_ID] = { + .export = true, ++ .minimize = true, + }, + [RPI_FIRMWARE_HEVC_CLK_ID] = { + .export = true, ++ .minimize = true, + }, + [RPI_FIRMWARE_PIXEL_BVB_CLK_ID] = { + .export = true, ++ .minimize = true, + }, + [RPI_FIRMWARE_VEC_CLK_ID] = { + .export = true, ++ .minimize = true, + }, + [RPI_FIRMWARE_PIXEL_CLK_ID] = { + .export = true, ++ .minimize = true, + }, + }; + +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Tue, 17 Aug 2021 08:57:48 +0100 +Subject: [PATCH 0996/1015] ARM: dts: Add bcm2709-rpi-cm2.dts + +Compute Module 2 is a CM3 with a 2836. The DTS file reflects that. + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/Makefile | 1 + + arch/arm/boot/dts/bcm2709-rpi-cm2.dts | 219 ++++++++++++++++++++++++++ + 2 files changed, 220 insertions(+) + create mode 100644 arch/arm/boot/dts/bcm2709-rpi-cm2.dts + +diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile +index f9acf5c4a59b..9ccee6490bfb 100644 +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile +@@ -15,6 +15,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += \ + bcm2710-rpi-3-b-plus.dtb \ + bcm2711-rpi-4-b.dtb \ + bcm2711-rpi-400.dtb \ ++ bcm2709-rpi-cm2.dtb \ + bcm2710-rpi-cm3.dtb \ + bcm2711-rpi-cm4.dtb \ + bcm2711-rpi-cm4s.dtb +diff --git a/arch/arm/boot/dts/bcm2709-rpi-cm2.dts b/arch/arm/boot/dts/bcm2709-rpi-cm2.dts +new file mode 100644 +index 000000000000..17fd77bd5744 +--- /dev/null ++++ b/arch/arm/boot/dts/bcm2709-rpi-cm2.dts +@@ -0,0 +1,219 @@ ++/dts-v1/; ++ ++#include "bcm2709.dtsi" ++#include "bcm2709-rpi.dtsi" ++#include "bcm283x-rpi-csi0-2lane.dtsi" ++#include "bcm283x-rpi-csi1-4lane.dtsi" ++#include "bcm283x-rpi-i2c0mux_0_28.dtsi" ++ ++/ { ++ compatible = "raspberrypi,2-compute-module", "brcm,bcm2836"; ++ model = "Raspberry Pi Compute Module 2"; ++}; ++ ++&cam1_reg { ++ gpio = <&gpio 2 GPIO_ACTIVE_HIGH>; ++ status = "disabled"; ++}; ++ ++cam0_reg: &cam0_regulator { ++ gpio = <&gpio 30 GPIO_ACTIVE_HIGH>; ++}; ++ ++&uart0 { ++ status = "okay"; ++}; ++ ++&gpio { ++ /* ++ * This is based on the official GPU firmware DT blob. ++ * ++ * Legend: ++ * "NC" = not connected (no rail from the SoC) ++ * "FOO" = GPIO line named "FOO" on the schematic ++ * "FOO_N" = GPIO line named "FOO" on schematic, active low ++ */ ++ gpio-line-names = "GPIO0", ++ "GPIO1", ++ "GPIO2", ++ "GPIO3", ++ "GPIO4", ++ "GPIO5", ++ "GPIO6", ++ "GPIO7", ++ "GPIO8", ++ "GPIO9", ++ "GPIO10", ++ "GPIO11", ++ "GPIO12", ++ "GPIO13", ++ "GPIO14", ++ "GPIO15", ++ "GPIO16", ++ "GPIO17", ++ "GPIO18", ++ "GPIO19", ++ "GPIO20", ++ "GPIO21", ++ "GPIO22", ++ "GPIO23", ++ "GPIO24", ++ "GPIO25", ++ "GPIO26", ++ "GPIO27", ++ "GPIO28", ++ "GPIO29", ++ "GPIO30", ++ "GPIO31", ++ "GPIO32", ++ "GPIO33", ++ "GPIO34", ++ "GPIO35", ++ "GPIO36", ++ "GPIO37", ++ "GPIO38", ++ "GPIO39", ++ "GPIO40", ++ "GPIO41", ++ "GPIO42", ++ "GPIO43", ++ "GPIO44", ++ "GPIO45", ++ "SMPS_SCL", ++ "SMPS_SDA", ++ /* Used by eMMC */ ++ "SD_CLK_R", ++ "SD_CMD_R", ++ "SD_DATA0_R", ++ "SD_DATA1_R", ++ "SD_DATA2_R", ++ "SD_DATA3_R"; ++ ++ spi0_pins: spi0_pins { ++ brcm,pins = <9 10 11>; ++ brcm,function = <4>; /* alt0 */ ++ }; ++ ++ spi0_cs_pins: spi0_cs_pins { ++ brcm,pins = <8 7>; ++ brcm,function = <1>; /* output */ ++ }; ++ ++ i2c0_pins: i2c0 { ++ brcm,pins = <0 1>; ++ brcm,function = <4>; ++ }; ++ ++ i2c1_pins: i2c1 { ++ brcm,pins = <2 3>; ++ brcm,function = <4>; ++ }; ++ ++ i2s_pins: i2s { ++ brcm,pins = <18 19 20 21>; ++ brcm,function = <4>; /* alt0 */ ++ }; ++ ++ audio_pins: audio_pins { ++ brcm,pins; ++ brcm,function; ++ }; ++}; ++ ++&soc { ++ virtgpio: virtgpio { ++ compatible = "brcm,bcm2835-virtgpio"; ++ gpio-controller; ++ #gpio-cells = <2>; ++ firmware = <&firmware>; ++ status = "okay"; ++ }; ++ ++}; ++ ++&firmware { ++ expgpio: expgpio { ++ compatible = "raspberrypi,firmware-gpio"; ++ gpio-controller; ++ #gpio-cells = <2>; ++ gpio-line-names = "HDMI_HPD_N", ++ "EMMC_EN_N", ++ "NC", ++ "NC", ++ "NC", ++ "NC", ++ "NC", ++ "NC"; ++ status = "okay"; ++ }; ++}; ++ ++&spi0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&spi0_pins &spi0_cs_pins>; ++ cs-gpios = <&gpio 8 1>, <&gpio 7 1>; ++ ++ spidev0: spidev@0{ ++ compatible = "spidev"; ++ reg = <0>; /* CE0 */ ++ #address-cells = <1>; ++ #size-cells = <0>; ++ spi-max-frequency = <125000000>; ++ }; ++ ++ spidev1: spidev@1{ ++ compatible = "spidev"; ++ reg = <1>; /* CE1 */ ++ #address-cells = <1>; ++ #size-cells = <0>; ++ spi-max-frequency = <125000000>; ++ }; ++}; ++ ++&i2c0if { ++ clock-frequency = <100000>; ++}; ++ ++&i2c1 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&i2c1_pins>; ++ clock-frequency = <100000>; ++}; ++ ++&i2c2 { ++ clock-frequency = <100000>; ++}; ++ ++&i2s { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&i2s_pins>; ++}; ++ ++&leds { ++ act_led: led-act { ++ label = "led0"; ++ linux,default-trigger = "mmc0"; ++ gpios = <&virtgpio 0 0>; ++ }; ++}; ++ ++&hdmi { ++ hpd-gpios = <&expgpio 0 GPIO_ACTIVE_LOW>; ++}; ++ ++&audio { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&audio_pins>; ++}; ++ ++/ { ++ __overrides__ { ++ act_led_gpio = <&act_led>,"gpios:4"; ++ act_led_activelow = <&act_led>,"gpios:8"; ++ act_led_trigger = <&act_led>,"linux,default-trigger"; ++ cam0_reg = <&cam0_reg>,"status"; ++ cam0_reg_gpio = <&cam0_reg>,"gpio:4"; ++ cam1_reg = <&cam1_reg>,"status"; ++ cam1_reg_gpio = <&cam1_reg>,"gpio:4"; ++ }; ++}; +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Mon, 6 Jun 2022 16:03:58 +0100 +Subject: [PATCH 0997/1015] spi: bcm2835: Fix for shared interrupts + +BCM2711 shares an interrupt betweem 5 SPI interfaces (0, 3, 4, 5 & 6). +Another interrupt is shared between SPI1, SPI2 and UART1, which also +affects BCM2835/6/7. Acting on an interrupt intended for another +interface ought to be harmless (although potentially inefficient), +but it can cause this driver to crash - presumably because some +critical state is not ready. + +Add a test to the spi-bcm2835 interrupt service routine that interrupts +are enabled on this interface to avoid the crash and improve efficiency. + +Suggested by GitHub user boe-pi. + +See: https://github.com/raspberrypi/linux/issues/5048 + +Signed-off-by: Phil Elwell +--- + drivers/spi/spi-bcm2835.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/drivers/spi/spi-bcm2835.c b/drivers/spi/spi-bcm2835.c +index 5b7e32c0cf49..0f9b027228f7 100644 +--- a/drivers/spi/spi-bcm2835.c ++++ b/drivers/spi/spi-bcm2835.c +@@ -372,6 +372,10 @@ static irqreturn_t bcm2835_spi_interrupt(int irq, void *dev_id) + struct bcm2835_spi *bs = dev_id; + u32 cs = bcm2835_rd(bs, BCM2835_SPI_CS); + ++ /* Bail out early if interrupts are not enabled */ ++ if (!(cs & BCM2835_SPI_CS_INTR)) ++ return IRQ_NONE; ++ + /* + * An interrupt is signaled either if DONE is set (TX FIFO empty) + * or if RXR is set (RX FIFO >= ¾ full). +@@ -384,10 +388,6 @@ static irqreturn_t bcm2835_spi_interrupt(int irq, void *dev_id) + if (bs->tx_len && cs & BCM2835_SPI_CS_DONE) + bcm2835_wr_fifo_blind(bs, BCM2835_SPI_FIFO_SIZE); + +- /* check if we got interrupt enabled */ +- if (!(bcm2835_rd(bs, BCM2835_SPI_CS) & BCM2835_SPI_CS_INTR)) +- return IRQ_NONE; +- + /* Read as many bytes as possible from FIFO */ + bcm2835_rd_fifo(bs); + /* Write as many bytes as possible to FIFO */ +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Fri, 3 Jun 2022 16:45:10 +0100 +Subject: [PATCH 0998/1015] drm: vc4: Fix colour order for xRGB1555 on HVS5 + +Same as the xRGB8888 formats, HVS5 has managed to swap the colour +channels for the xRGB1555 formats as well. Add the relevant +config for pixel_order_hvs5. + +Reported-by: vrazzer +Signed-off-by: Dave Stevenson +--- + drivers/gpu/drm/vc4/vc4_plane.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c +index d79654e2f65b..9fbff67da873 100644 +--- a/drivers/gpu/drm/vc4/vc4_plane.c ++++ b/drivers/gpu/drm/vc4/vc4_plane.c +@@ -73,11 +73,13 @@ static const struct hvs_format { + .drm = DRM_FORMAT_ARGB1555, + .hvs = HVS_PIXEL_FORMAT_RGBA5551, + .pixel_order = HVS_PIXEL_ORDER_ABGR, ++ .pixel_order_hvs5 = HVS_PIXEL_ORDER_ARGB, + }, + { + .drm = DRM_FORMAT_XRGB1555, + .hvs = HVS_PIXEL_FORMAT_RGBA5551, + .pixel_order = HVS_PIXEL_ORDER_ABGR, ++ .pixel_order_hvs5 = HVS_PIXEL_ORDER_ARGB, + }, + { + .drm = DRM_FORMAT_RGB888, +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Fri, 3 Jun 2022 16:49:09 +0100 +Subject: [PATCH 0999/1015] drm: vc4: 0 is a valid value for pixel_order_hvs5, + so fix conditionals + +vc4_plane_mode_set for HVS5 was using pixel_order unless pixel_order_hvs5 +was non-zero, except 0 is a valid value for the pixel_order. + +Specify pixel_order_hvs5 for all formats and remove the conditional. + +Reported-by: vrazzer +Signed-off-by: Dave Stevenson +--- + drivers/gpu/drm/vc4/vc4_plane.c | 20 ++++++++++++++------ + 1 file changed, 14 insertions(+), 6 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c +index 9fbff67da873..00b2c74a44dd 100644 +--- a/drivers/gpu/drm/vc4/vc4_plane.c ++++ b/drivers/gpu/drm/vc4/vc4_plane.c +@@ -63,11 +63,13 @@ static const struct hvs_format { + .drm = DRM_FORMAT_RGB565, + .hvs = HVS_PIXEL_FORMAT_RGB565, + .pixel_order = HVS_PIXEL_ORDER_XRGB, ++ .pixel_order_hvs5 = HVS_PIXEL_ORDER_XRGB, + }, + { + .drm = DRM_FORMAT_BGR565, + .hvs = HVS_PIXEL_FORMAT_RGB565, + .pixel_order = HVS_PIXEL_ORDER_XBGR, ++ .pixel_order_hvs5 = HVS_PIXEL_ORDER_XBGR, + }, + { + .drm = DRM_FORMAT_ARGB1555, +@@ -85,56 +87,67 @@ static const struct hvs_format { + .drm = DRM_FORMAT_RGB888, + .hvs = HVS_PIXEL_FORMAT_RGB888, + .pixel_order = HVS_PIXEL_ORDER_XRGB, ++ .pixel_order_hvs5 = HVS_PIXEL_ORDER_XRGB, + }, + { + .drm = DRM_FORMAT_BGR888, + .hvs = HVS_PIXEL_FORMAT_RGB888, + .pixel_order = HVS_PIXEL_ORDER_XBGR, ++ .pixel_order_hvs5 = HVS_PIXEL_ORDER_XBGR, + }, + { + .drm = DRM_FORMAT_YUV422, + .hvs = HVS_PIXEL_FORMAT_YCBCR_YUV422_3PLANE, + .pixel_order = HVS_PIXEL_ORDER_XYCBCR, ++ .pixel_order_hvs5 = HVS_PIXEL_ORDER_XYCBCR, + }, + { + .drm = DRM_FORMAT_YVU422, + .hvs = HVS_PIXEL_FORMAT_YCBCR_YUV422_3PLANE, + .pixel_order = HVS_PIXEL_ORDER_XYCRCB, ++ .pixel_order_hvs5 = HVS_PIXEL_ORDER_XYCRCB, + }, + { + .drm = DRM_FORMAT_YUV420, + .hvs = HVS_PIXEL_FORMAT_YCBCR_YUV420_3PLANE, + .pixel_order = HVS_PIXEL_ORDER_XYCBCR, ++ .pixel_order_hvs5 = HVS_PIXEL_ORDER_XYCBCR, + }, + { + .drm = DRM_FORMAT_YVU420, + .hvs = HVS_PIXEL_FORMAT_YCBCR_YUV420_3PLANE, + .pixel_order = HVS_PIXEL_ORDER_XYCRCB, ++ .pixel_order_hvs5 = HVS_PIXEL_ORDER_XYCRCB, + }, + { + .drm = DRM_FORMAT_NV12, + .hvs = HVS_PIXEL_FORMAT_YCBCR_YUV420_2PLANE, + .pixel_order = HVS_PIXEL_ORDER_XYCBCR, ++ .pixel_order_hvs5 = HVS_PIXEL_ORDER_XYCBCR, + }, + { + .drm = DRM_FORMAT_NV21, + .hvs = HVS_PIXEL_FORMAT_YCBCR_YUV420_2PLANE, + .pixel_order = HVS_PIXEL_ORDER_XYCRCB, ++ .pixel_order_hvs5 = HVS_PIXEL_ORDER_XYCRCB, + }, + { + .drm = DRM_FORMAT_NV16, + .hvs = HVS_PIXEL_FORMAT_YCBCR_YUV422_2PLANE, + .pixel_order = HVS_PIXEL_ORDER_XYCBCR, ++ .pixel_order_hvs5 = HVS_PIXEL_ORDER_XYCBCR, + }, + { + .drm = DRM_FORMAT_NV61, + .hvs = HVS_PIXEL_FORMAT_YCBCR_YUV422_2PLANE, + .pixel_order = HVS_PIXEL_ORDER_XYCRCB, ++ .pixel_order_hvs5 = HVS_PIXEL_ORDER_XYCRCB, + }, + { + .drm = DRM_FORMAT_P030, + .hvs = HVS_PIXEL_FORMAT_YCBCR_10BIT, + .pixel_order = HVS_PIXEL_ORDER_XYCBCR, ++ .pixel_order_hvs5 = HVS_PIXEL_ORDER_XYCBCR, + .hvs5_only = true, + }, + { +@@ -1083,15 +1096,10 @@ static int vc4_plane_mode_set(struct drm_plane *plane, + vc4_dlist_write(vc4_state, 0xc0c0c0c0); + + } else { +- u32 hvs_pixel_order = format->pixel_order; +- +- if (format->pixel_order_hvs5) +- hvs_pixel_order = format->pixel_order_hvs5; +- + /* Control word */ + vc4_dlist_write(vc4_state, + SCALER_CTL0_VALID | +- (hvs_pixel_order << SCALER_CTL0_ORDER_SHIFT) | ++ (format->pixel_order_hvs5 << SCALER_CTL0_ORDER_SHIFT) | + (hvs_format << SCALER_CTL0_PIXEL_FORMAT_SHIFT) | + VC4_SET_FIELD(tiling, SCALER_CTL0_TILING) | + (vc4_state->is_unity ? +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Mon, 6 Jun 2022 12:23:28 +0100 +Subject: [PATCH 1000/1015] drm: vc4: Omit pixel_order from the hvs_format for + hvs5 only formats + +pixel_order is used for the earlier versions of the HVS, so is +redundant on the 10:10:10:2 and 10bit YUV formats that are only +supported on HVS5. +Remove the assignment from the table to avoid confusion. + +Signed-off-by: Dave Stevenson +--- + drivers/gpu/drm/vc4/vc4_plane.c | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c +index 00b2c74a44dd..a17e2a6ecb50 100644 +--- a/drivers/gpu/drm/vc4/vc4_plane.c ++++ b/drivers/gpu/drm/vc4/vc4_plane.c +@@ -146,35 +146,30 @@ static const struct hvs_format { + { + .drm = DRM_FORMAT_P030, + .hvs = HVS_PIXEL_FORMAT_YCBCR_10BIT, +- .pixel_order = HVS_PIXEL_ORDER_XYCBCR, + .pixel_order_hvs5 = HVS_PIXEL_ORDER_XYCBCR, + .hvs5_only = true, + }, + { + .drm = DRM_FORMAT_XRGB2101010, + .hvs = HVS_PIXEL_FORMAT_RGBA1010102, +- .pixel_order = HVS_PIXEL_ORDER_ABGR, + .pixel_order_hvs5 = HVS_PIXEL_ORDER_ARGB, + .hvs5_only = true, + }, + { + .drm = DRM_FORMAT_ARGB2101010, + .hvs = HVS_PIXEL_FORMAT_RGBA1010102, +- .pixel_order = HVS_PIXEL_ORDER_ABGR, + .pixel_order_hvs5 = HVS_PIXEL_ORDER_ARGB, + .hvs5_only = true, + }, + { + .drm = DRM_FORMAT_ABGR2101010, + .hvs = HVS_PIXEL_FORMAT_RGBA1010102, +- .pixel_order = HVS_PIXEL_ORDER_ARGB, + .pixel_order_hvs5 = HVS_PIXEL_ORDER_ABGR, + .hvs5_only = true, + }, + { + .drm = DRM_FORMAT_XBGR2101010, + .hvs = HVS_PIXEL_FORMAT_RGBA1010102, +- .pixel_order = HVS_PIXEL_ORDER_ARGB, + .pixel_order_hvs5 = HVS_PIXEL_ORDER_ABGR, + .hvs5_only = true, + }, +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Fri, 3 Jun 2022 16:57:04 +0100 +Subject: [PATCH 1001/1015] drm: vc4: Add 3:3:2 and 4:4:4:4 RGB/RGBX/RGBA + formats + +The hardware supports the 332 8bpp and 4:4:4:4 16bpp formats, +but the table of supported formats didn't include them. +Add them in. + +In theory they are supported for T-format as well as linear, +but without a way to test them just add them as linear for now. + +Suggested-by: vrazzer +Signed-off-by: Dave Stevenson +--- + drivers/gpu/drm/vc4/vc4_plane.c | 70 +++++++++++++++++++++++++++++++++ + 1 file changed, 70 insertions(+) + +diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c +index a17e2a6ecb50..849385ff9761 100644 +--- a/drivers/gpu/drm/vc4/vc4_plane.c ++++ b/drivers/gpu/drm/vc4/vc4_plane.c +@@ -173,6 +173,66 @@ static const struct hvs_format { + .pixel_order_hvs5 = HVS_PIXEL_ORDER_ABGR, + .hvs5_only = true, + }, ++ { ++ .drm = DRM_FORMAT_RGB332, ++ .hvs = HVS_PIXEL_FORMAT_RGB332, ++ .pixel_order = HVS_PIXEL_ORDER_ARGB, ++ .pixel_order_hvs5 = HVS_PIXEL_ORDER_ARGB, ++ }, ++ { ++ .drm = DRM_FORMAT_BGR233, ++ .hvs = HVS_PIXEL_FORMAT_RGB332, ++ .pixel_order = HVS_PIXEL_ORDER_ABGR, ++ .pixel_order_hvs5 = HVS_PIXEL_ORDER_ABGR, ++ }, ++ { ++ .drm = DRM_FORMAT_XRGB4444, ++ .hvs = HVS_PIXEL_FORMAT_RGBA4444, ++ .pixel_order = HVS_PIXEL_ORDER_ABGR, ++ .pixel_order_hvs5 = HVS_PIXEL_ORDER_ARGB, ++ }, ++ { ++ .drm = DRM_FORMAT_ARGB4444, ++ .hvs = HVS_PIXEL_FORMAT_RGBA4444, ++ .pixel_order = HVS_PIXEL_ORDER_ABGR, ++ .pixel_order_hvs5 = HVS_PIXEL_ORDER_ARGB, ++ }, ++ { ++ .drm = DRM_FORMAT_XBGR4444, ++ .hvs = HVS_PIXEL_FORMAT_RGBA4444, ++ .pixel_order = HVS_PIXEL_ORDER_ARGB, ++ .pixel_order_hvs5 = HVS_PIXEL_ORDER_ABGR, ++ }, ++ { ++ .drm = DRM_FORMAT_ABGR4444, ++ .hvs = HVS_PIXEL_FORMAT_RGBA4444, ++ .pixel_order = HVS_PIXEL_ORDER_ARGB, ++ .pixel_order_hvs5 = HVS_PIXEL_ORDER_ABGR, ++ }, ++ { ++ .drm = DRM_FORMAT_BGRX4444, ++ .hvs = HVS_PIXEL_FORMAT_RGBA4444, ++ .pixel_order = HVS_PIXEL_ORDER_RGBA, ++ .pixel_order_hvs5 = HVS_PIXEL_ORDER_BGRA, ++ }, ++ { ++ .drm = DRM_FORMAT_BGRA4444, ++ .hvs = HVS_PIXEL_FORMAT_RGBA4444, ++ .pixel_order = HVS_PIXEL_ORDER_RGBA, ++ .pixel_order_hvs5 = HVS_PIXEL_ORDER_BGRA, ++ }, ++ { ++ .drm = DRM_FORMAT_RGBX4444, ++ .hvs = HVS_PIXEL_FORMAT_RGBA4444, ++ .pixel_order = HVS_PIXEL_ORDER_BGRA, ++ .pixel_order_hvs5 = HVS_PIXEL_ORDER_RGBA, ++ }, ++ { ++ .drm = DRM_FORMAT_RGBA4444, ++ .hvs = HVS_PIXEL_FORMAT_RGBA4444, ++ .pixel_order = HVS_PIXEL_ORDER_BGRA, ++ .pixel_order_hvs5 = HVS_PIXEL_ORDER_RGBA, ++ }, + }; + + static const struct hvs_format *vc4_get_hvs_format(u32 drm_format) +@@ -1557,6 +1617,16 @@ static bool vc4_format_mod_supported(struct drm_plane *plane, + case DRM_FORMAT_BGRX1010102: + case DRM_FORMAT_RGBA1010102: + case DRM_FORMAT_BGRA1010102: ++ case DRM_FORMAT_XRGB4444: ++ case DRM_FORMAT_ARGB4444: ++ case DRM_FORMAT_XBGR4444: ++ case DRM_FORMAT_ABGR4444: ++ case DRM_FORMAT_RGBX4444: ++ case DRM_FORMAT_RGBA4444: ++ case DRM_FORMAT_BGRX4444: ++ case DRM_FORMAT_BGRA4444: ++ case DRM_FORMAT_RGB332: ++ case DRM_FORMAT_BGR233: + case DRM_FORMAT_YUV422: + case DRM_FORMAT_YVU422: + case DRM_FORMAT_YUV420: +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Mon, 6 Jun 2022 14:53:56 +0100 +Subject: [PATCH 1002/1015] drm: vc4: Add comments for which + HVS_PIXEL_ORDER_xxx defines apply + +The HVS_PIXEL_ORDER_xxx defines apply to specific HVS_PIXEL_FORMAT_xxx +modes, so add comments to make this obvious. + +Signed-off-by: Dave Stevenson +--- + drivers/gpu/drm/vc4/vc4_regs.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/drivers/gpu/drm/vc4/vc4_regs.h b/drivers/gpu/drm/vc4/vc4_regs.h +index 88e9a398758e..82b0fdabe2a0 100644 +--- a/drivers/gpu/drm/vc4/vc4_regs.h ++++ b/drivers/gpu/drm/vc4/vc4_regs.h +@@ -857,16 +857,19 @@ enum hvs_pixel_format { + /* Note: the LSB is the rightmost character shown. Only valid for + * HVS_PIXEL_FORMAT_RGB8888, not RGB888. + */ ++/* For modes 332, 4444, 555, 5551, 6666, 8888, 10:10:10:2 */ + #define HVS_PIXEL_ORDER_RGBA 0 + #define HVS_PIXEL_ORDER_BGRA 1 + #define HVS_PIXEL_ORDER_ARGB 2 + #define HVS_PIXEL_ORDER_ABGR 3 + ++/* For modes 666 and 888 (4 & 5) */ + #define HVS_PIXEL_ORDER_XBRG 0 + #define HVS_PIXEL_ORDER_XRBG 1 + #define HVS_PIXEL_ORDER_XRGB 2 + #define HVS_PIXEL_ORDER_XBGR 3 + ++/* For YCbCr modes (8-12, and 17) */ + #define HVS_PIXEL_ORDER_XYCBCR 0 + #define HVS_PIXEL_ORDER_XYCRCB 1 + #define HVS_PIXEL_ORDER_YXCBCR 2 +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Tue, 7 Jun 2022 13:37:38 +0100 +Subject: [PATCH 1003/1015] ARM: dts: zero-2-w: Better names for GPIOs 14 & 15 + +GPIOs 14 and 15 are currently labelled TXD0 and RXD0, which matches +comments on the schematic but 1) doesn't reflect their likely usage +(i.e. UART1) and 2) clashes with GPIOs 32 and 33. Adopt the common +naming for those two pins on BT-equipped Pis - TXD1 and RXD1. + +See: https://github.com/raspberrypi/linux/issues/5058 + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/bcm2710-rpi-zero-2-w.dts | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/arm/boot/dts/bcm2710-rpi-zero-2-w.dts b/arch/arm/boot/dts/bcm2710-rpi-zero-2-w.dts +index 601b0573c7a7..c0d7bd733278 100644 +--- a/arch/arm/boot/dts/bcm2710-rpi-zero-2-w.dts ++++ b/arch/arm/boot/dts/bcm2710-rpi-zero-2-w.dts +@@ -45,8 +45,8 @@ + "GPIO12", + "GPIO13", + /* Serial port */ +- "TXD0", +- "RXD0", ++ "TXD1", ++ "RXD1", + "GPIO16", + "GPIO17", + "GPIO18", +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Tue, 7 Jun 2022 14:00:37 +0100 +Subject: [PATCH 1004/1015] ARM: dts: zero-w: Better names for GPIOs 14 & 15 + +GPIOs 14 and 15 are currently labelled TXD0 and RXD0, which matches +comments on the schematic but 1) doesn't reflect their likely usage +(i.e. UART1) and 2) clashes with GPIOs 32 and 33. Adopt the common +naming for those two pins on BT-equipped Pis - TXD1 and RXD1. + +See: https://github.com/raspberrypi/linux/issues/5058 + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/bcm2708-rpi-zero-w.dts | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/arm/boot/dts/bcm2708-rpi-zero-w.dts b/arch/arm/boot/dts/bcm2708-rpi-zero-w.dts +index d96a5c82e069..b49c3cb1438d 100644 +--- a/arch/arm/boot/dts/bcm2708-rpi-zero-w.dts ++++ b/arch/arm/boot/dts/bcm2708-rpi-zero-w.dts +@@ -45,8 +45,8 @@ + "GPIO12", + "GPIO13", + /* Serial port */ +- "TXD0", +- "RXD0", ++ "TXD1", ++ "RXD1", + "GPIO16", + "GPIO17", + "GPIO18", +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Thu, 19 May 2022 17:30:02 +0100 +Subject: [PATCH 1005/1015] vc04_services: bcm2835-codec: Set crop_height for + compressed formats + +In particular for the encoder where the CAPTURE format dictates +the parameters given to the codec we need to be able to set the +value passed as the crop_height for the compressed format. +There's no crop available for cropped modes, so always set +crop_height to the requested height. + +Signed-off-by: Dave Stevenson +--- + .../staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c +index dc7c0b97fbc8..7dcb3d5aa608 100644 +--- a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c ++++ b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c +@@ -1613,7 +1613,8 @@ static int vidioc_s_fmt(struct bcm2835_codec_ctx *ctx, struct v4l2_format *f, + f->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE); + q_data->crop_width = f->fmt.pix_mp.width; + q_data->height = f->fmt.pix_mp.height; +- if (!q_data->selection_set) ++ if (!q_data->selection_set || ++ (q_data->fmt->flags & V4L2_FMT_FLAG_COMPRESSED)) + q_data->crop_height = requested_height; + + /* +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Thu, 19 May 2022 17:38:53 +0100 +Subject: [PATCH 1006/1015] vc04_services: bcm2835-codec: Set port format from + s_selection + +s_selection allows the crop region of an uncompressed pixel +format to be specified, but it wasn't passing the setting on to +the firmware. Depending on call order this would potentially +mean that the crop wasn't actioned. + +Set the port format on s_selection if we have a component created. + +Signed-off-by: Dave Stevenson +--- + .../bcm2835-codec/bcm2835-v4l2-codec.c | 17 +++++++++++++++++ + 1 file changed, 17 insertions(+) + +diff --git a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c +index 7dcb3d5aa608..6df12827713a 100644 +--- a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c ++++ b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c +@@ -1899,6 +1899,8 @@ static int vidioc_s_selection(struct file *file, void *priv, + { + struct bcm2835_codec_ctx *ctx = file2ctx(file); + struct bcm2835_codec_q_data *q_data = NULL; ++ struct vchiq_mmal_port *port = NULL; ++ int ret; + + /* + * The selection API takes V4L2_BUF_TYPE_VIDEO_CAPTURE and +@@ -1914,12 +1916,16 @@ static int vidioc_s_selection(struct file *file, void *priv, + if (ctx->dev->role == ENCODE || ctx->dev->role == ENCODE_IMAGE) + return -EINVAL; + q_data = &ctx->q_data[V4L2_M2M_DST]; ++ if (ctx->component) ++ port = &ctx->component->output[0]; + break; + case V4L2_BUF_TYPE_VIDEO_OUTPUT: + /* OUTPUT on deoder is not valid. */ + if (ctx->dev->role == DECODE) + return -EINVAL; + q_data = &ctx->q_data[V4L2_M2M_SRC]; ++ if (ctx->component) ++ port = &ctx->component->input[0]; + break; + default: + return -EINVAL; +@@ -2004,6 +2010,17 @@ static int vidioc_s_selection(struct file *file, void *priv, + break; + } + ++ if (!port) ++ return 0; ++ ++ setup_mmal_port_format(ctx, q_data, port); ++ ret = vchiq_mmal_port_set_format(ctx->dev->instance, port); ++ if (ret) { ++ v4l2_err(&ctx->dev->v4l2_dev, "%s: Failed vchiq_mmal_port_set_format on port, ret %d\n", ++ __func__, ret); ++ return -EINVAL; ++ } ++ + return 0; + } + +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dom Cobley +Date: Wed, 1 Jun 2022 15:43:51 +0100 +Subject: [PATCH 1007/1015] drm/vc4_hdmi: Allow hotplug detect to be forced + +See: https://forum.libreelec.tv/thread/24783-tv-avr-turns-back-on-right-after-turning-them-off + +While the kernel provides a :D flag for assuming device is connected, +it doesn't stop this function from being called and generating a cec_phys_addr_invalidate +message when hotplug is deasserted. + +That message provokes a flurry of CEC messages which for many users results in the TV +switching back on again and it's very hard to get it to stay switched off. + +It seems to only occur with an AVR and TV connected but has been observed across a +number of manufacturers. + +The issue started with https://github.com/raspberrypi/linux/pull/4371 +and this provides an optional way of getting back the old behaviour + +Signed-off-by: Dom Cobley +--- + drivers/gpu/drm/vc4/vc4_hdmi.c | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c +index 5d37cd0741b6..793dc56746ee 100644 +--- a/drivers/gpu/drm/vc4/vc4_hdmi.c ++++ b/drivers/gpu/drm/vc4/vc4_hdmi.c +@@ -40,6 +40,8 @@ + #include + #include + #include ++#include ++#include + #include + #include + #include +@@ -113,6 +115,10 @@ + + #define HDMI_14_MAX_TMDS_CLK (340 * 1000 * 1000) + ++/* bit field to force hotplug detection. bit0 = HDMI0 */ ++static int force_hotplug = 0; ++module_param(force_hotplug, int, 0644); ++ + static const char * const output_format_str[] = { + [VC4_HDMI_OUTPUT_RGB] = "RGB", + [VC4_HDMI_OUTPUT_YUV420] = "YUV 4:2:0", +@@ -248,7 +254,9 @@ vc4_hdmi_connector_detect(struct drm_connector *connector, bool force) + + WARN_ON(pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev)); + +- if (vc4_hdmi->hpd_gpio) { ++ if (force_hotplug & BIT(vc4_hdmi->encoder.base.type - VC4_ENCODER_TYPE_HDMI0)) ++ connected = true; ++ else if (vc4_hdmi->hpd_gpio) { + if (gpiod_get_value_cansleep(vc4_hdmi->hpd_gpio)) + connected = true; + } else { +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Lee Jackson +Date: Fri, 13 May 2022 17:21:42 +0800 +Subject: [PATCH 1008/1015] media: dt-bindings: media: i2c: Add Arducam 64MP + CMOS sensor binding + +Add YAML device tree binding for Arducam 64MP CMOS image sensor, and +the relevant MAINTAINERS entries. + +Signed-off-by: Lee Jackson +--- + .../bindings/media/i2c/arducam,64mp.yaml | 115 ++++++++++++++++++ + MAINTAINERS | 8 ++ + 2 files changed, 123 insertions(+) + create mode 100644 Documentation/devicetree/bindings/media/i2c/arducam,64mp.yaml + +diff --git a/Documentation/devicetree/bindings/media/i2c/arducam,64mp.yaml b/Documentation/devicetree/bindings/media/i2c/arducam,64mp.yaml +new file mode 100644 +index 000000000000..b71a19782f97 +--- /dev/null ++++ b/Documentation/devicetree/bindings/media/i2c/arducam,64mp.yaml +@@ -0,0 +1,115 @@ ++# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) ++%YAML 1.2 ++--- ++$id: http://devicetree.org/schemas/media/i2c/arducam,64mp.yaml# ++$schema: http://devicetree.org/meta-schemas/core.yaml# ++ ++title: Arducam 1/1.7-Inch 64Mpixel CMOS Digital Image Sensor ++ ++maintainers: ++ - Lee Jackson ++ ++description: |- ++ The Arducam 1/1.7-Inch 64Mpixel CMOS active pixel digital image sensor ++ with an active array size of 9248 x 6944. It is programmable through ++ I2C interface. The I2C address is fixed to 0x1A as per sensor data sheet. ++ Image data is sent through MIPI CSI-2, which can be configured for operation ++ with either 2 or 4 data lanes. ++ ++properties: ++ compatible: ++ const: arducam,64mp ++ ++ reg: ++ description: I2C device address ++ maxItems: 1 ++ ++ clocks: ++ maxItems: 1 ++ ++ VDIG-supply: ++ description: ++ Digital I/O voltage supply, 1.05 volts ++ ++ VANA-supply: ++ description: ++ Analog voltage supply, 2.8 volts ++ ++ VDDL-supply: ++ description: ++ Digital core voltage supply, 1.8 volts ++ ++ reset-gpios: ++ description: |- ++ Reference to the GPIO connected to the xclr pin, if any. ++ Must be released (set high) after all supplies and INCK are applied. ++ ++ # See ../video-interfaces.txt for more details ++ port: ++ type: object ++ properties: ++ endpoint: ++ type: object ++ properties: ++ data-lanes: ++ description: |- ++ The sensor supports either two-lane, or four-lane operation. ++ For two-lane operation the property must be set to <1 2>. ++ anyOf: ++ - items: ++ - const: 1 ++ - const: 2 ++ - items: ++ - const: 1 ++ - const: 2 ++ - const: 3 ++ - const: 4 ++ ++ clock-noncontinuous: true ++ ++ link-frequencies: ++ allOf: ++ - $ref: /schemas/types.yaml#/definitions/uint64-array ++ description: ++ Allowed data bus frequencies. ++ ++ required: ++ - link-frequencies ++ ++required: ++ - compatible ++ - reg ++ - clocks ++ - VANA-supply ++ - VDIG-supply ++ - VDDL-supply ++ - port ++ ++additionalProperties: false ++ ++examples: ++ - | ++ i2c0 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ arducam_64mp: sensor@1a { ++ compatible = "arducam,64mp"; ++ reg = <0x1a>; ++ clocks = <&arducam_64mp_clk>; ++ VANA-supply = <&arducam_64mp_vana>; /* 2.8v */ ++ VDIG-supply = <&arducam_64mp_vdig>; /* 1.05v */ ++ VDDL-supply = <&arducam_64mp_vddl>; /* 1.8v */ ++ ++ port { ++ arducam_64mp_0: endpoint { ++ remote-endpoint = <&csi1_ep>; ++ data-lanes = <1 2>; ++ clock-noncontinuous; ++ link-frequencies = /bits/ 64 <456000000>; ++ }; ++ }; ++ }; ++ }; ++ ++... +diff --git a/MAINTAINERS b/MAINTAINERS +index 489ade7faa4c..8309ed6ac525 100644 +--- a/MAINTAINERS ++++ b/MAINTAINERS +@@ -1386,6 +1386,14 @@ S: Maintained + F: drivers/net/arcnet/ + F: include/uapi/linux/if_arcnet.h + ++ARDUCAM 64MP SENSOR DRIVER ++M: Arducam Kernel Maintenance ++L: linux-media@vger.kernel.org ++S: Maintained ++T: git git://linuxtv.org/media_tree.git ++F: Documentation/devicetree/bindings/media/i2c/arducam,64mp.yaml ++F: drivers/media/i2c/arducam_64mp.c ++ + ARDUCAM PIVARIETY SENSOR DRIVER + M: Arducam Kernel Maintenance + L: linux-media@vger.kernel.org +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Lee Jackson +Date: Fri, 13 May 2022 17:11:35 +0800 +Subject: [PATCH 1009/1015] media: i2c: Add driver of Arducam 64MP camera + +Add a driver for the Arducam 64MP camera sensor. +Whilst the sensor supports 2 or 4 CSI2 data lanes, this driver +currently only supports 2 lanes. + +The following Bayer modes are currently available: + +9152x6944 10-bit @ 2.7fps +4624x3472 10-bit (binned) @ 10fps +3840x2160 10-bit (cropped/binned) @ 20fps +2312x1736 10-bit (binned) @ 30fps +1920x1080 10-bit (cropped/binned) @ 60fps +1280x720 10-bit (cropped/binned) @ 120fps + +Signed-off-by: Lee Jackson +--- + drivers/media/i2c/Kconfig | 11 + + drivers/media/i2c/Makefile | 1 + + drivers/media/i2c/arducam_64mp.c | 2401 ++++++++++++++++++++++++++++++ + 3 files changed, 2413 insertions(+) + create mode 100644 drivers/media/i2c/arducam_64mp.c + +diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig +index 1d874de6d4b7..d14dd06fd26e 100644 +--- a/drivers/media/i2c/Kconfig ++++ b/drivers/media/i2c/Kconfig +@@ -730,6 +730,17 @@ config VIDEO_APTINA_PLL + config VIDEO_CCS_PLL + tristate + ++config VIDEO_ARDUCAM_64MP ++ tristate "Arducam 64MP sensor support" ++ depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API ++ depends on MEDIA_CAMERA_SUPPORT ++ help ++ This is a Video4Linux2 sensor driver for the Arducam ++ 64MP camera. ++ ++ To compile this driver as a module, choose M here: the ++ module will be called arducam_64mp. ++ + config VIDEO_ARDUCAM_PIVARIETY + tristate "Arducam Pivariety sensor support" + depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API +diff --git a/drivers/media/i2c/Makefile b/drivers/media/i2c/Makefile +index 65aa1c94e7a6..253f330610fe 100644 +--- a/drivers/media/i2c/Makefile ++++ b/drivers/media/i2c/Makefile +@@ -7,6 +7,7 @@ obj-$(CONFIG_VIDEO_ET8EK8) += et8ek8/ + obj-$(CONFIG_VIDEO_CX25840) += cx25840/ + obj-$(CONFIG_VIDEO_M5MOLS) += m5mols/ + ++obj-$(CONFIG_VIDEO_ARDUCAM_64MP) += arducam_64mp.o + obj-$(CONFIG_VIDEO_ARDUCAM_PIVARIETY) += arducam-pivariety.o + obj-$(CONFIG_VIDEO_APTINA_PLL) += aptina-pll.o + obj-$(CONFIG_VIDEO_TVAUDIO) += tvaudio.o +diff --git a/drivers/media/i2c/arducam_64mp.c b/drivers/media/i2c/arducam_64mp.c +new file mode 100644 +index 000000000000..58a1bc710819 +--- /dev/null ++++ b/drivers/media/i2c/arducam_64mp.c +@@ -0,0 +1,2401 @@ ++// SPDX-License-Identifier: GPL-2.0 ++/* ++ * A V4L2 driver for Arducam 64MP cameras. ++ * Copyright (C) 2021 Arducam Technology co., Ltd. ++ * ++ * Based on Sony IMX477 camera driver ++ * Copyright (C) 2020 Raspberry Pi (Trading) Ltd ++ */ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define ARDUCAM_64MP_REG_VALUE_08BIT 1 ++#define ARDUCAM_64MP_REG_VALUE_16BIT 2 ++ ++/* Chip ID */ ++#define ARDUCAM_64MP_REG_CHIP_ID 0x005E ++#define ARDUCAM_64MP_CHIP_ID 0x4136 ++ ++#define ARDUCAM_64MP_REG_MODE_SELECT 0x0100 ++#define ARDUCAM_64MP_MODE_STANDBY 0x00 ++#define ARDUCAM_64MP_MODE_STREAMING 0x01 ++ ++#define ARDUCAM_64MP_REG_ORIENTATION 0x101 ++ ++#define ARDUCAM_64MP_XCLK_FREQ 24000000 ++ ++#define ARDUCAM_64MP_DEFAULT_LINK_FREQ 456000000 ++ ++/* Pixel rate is fixed at 900MHz for all the modes */ ++#define ARDUCAM_64MP_PIXEL_RATE 900000000 ++ ++/* V_TIMING internal */ ++#define ARDUCAM_64MP_REG_FRAME_LENGTH 0x0340 ++#define ARDUCAM_64MP_FRAME_LENGTH_MAX 0xffff ++ ++/* Long exposure multiplier */ ++#define ARDUCAM_64MP_LONG_EXP_SHIFT_MAX 7 ++#define ARDUCAM_64MP_LONG_EXP_SHIFT_REG 0x3100 ++ ++/* Exposure control */ ++#define ARDUCAM_64MP_REG_EXPOSURE 0x0202 ++#define ARDUCAM_64MP_EXPOSURE_OFFSET 48 ++#define ARDUCAM_64MP_EXPOSURE_MIN 9 ++#define ARDUCAM_64MP_EXPOSURE_STEP 1 ++#define ARDUCAM_64MP_EXPOSURE_DEFAULT 0x3e8 ++#define ARDUCAM_64MP_EXPOSURE_MAX (ARDUCAM_64MP_FRAME_LENGTH_MAX - \ ++ ARDUCAM_64MP_EXPOSURE_OFFSET) ++ ++/* Analog gain control */ ++#define ARDUCAM_64MP_REG_ANALOG_GAIN 0x0204 ++#define ARDUCAM_64MP_ANA_GAIN_MIN 0 ++#define ARDUCAM_64MP_ANA_GAIN_MAX 1008 ++#define ARDUCAM_64MP_ANA_GAIN_STEP 1 ++#define ARDUCAM_64MP_ANA_GAIN_DEFAULT 0x0 ++ ++/* Digital gain control */ ++#define ARDUCAM_64MP_REG_DIGITAL_GAIN 0x020e ++#define ARDUCAM_64MP_DGTL_GAIN_MIN 0x0100 ++#define ARDUCAM_64MP_DGTL_GAIN_MAX 0x0fff ++#define ARDUCAM_64MP_DGTL_GAIN_DEFAULT 0x0100 ++#define ARDUCAM_64MP_DGTL_GAIN_STEP 1 ++ ++/* Test Pattern Control */ ++#define ARDUCAM_64MP_REG_TEST_PATTERN 0x0600 ++#define ARDUCAM_64MP_TEST_PATTERN_DISABLE 0 ++#define ARDUCAM_64MP_TEST_PATTERN_SOLID_COLOR 1 ++#define ARDUCAM_64MP_TEST_PATTERN_COLOR_BARS 2 ++#define ARDUCAM_64MP_TEST_PATTERN_GREY_COLOR 3 ++#define ARDUCAM_64MP_TEST_PATTERN_PN9 4 ++ ++/* Test pattern colour components */ ++#define ARDUCAM_64MP_REG_TEST_PATTERN_R 0x0602 ++#define ARDUCAM_64MP_REG_TEST_PATTERN_GR 0x0604 ++#define ARDUCAM_64MP_REG_TEST_PATTERN_B 0x0606 ++#define ARDUCAM_64MP_REG_TEST_PATTERN_GB 0x0608 ++#define ARDUCAM_64MP_TEST_PATTERN_COLOUR_MIN 0 ++#define ARDUCAM_64MP_TEST_PATTERN_COLOUR_MAX 0x0fff ++#define ARDUCAM_64MP_TEST_PATTERN_COLOUR_STEP 1 ++#define ARDUCAM_64MP_TEST_PATTERN_R_DEFAULT \ ++ ARDUCAM_64MP_TEST_PATTERN_COLOUR_MAX ++#define ARDUCAM_64MP_TEST_PATTERN_GR_DEFAULT 0 ++#define ARDUCAM_64MP_TEST_PATTERN_B_DEFAULT 0 ++#define ARDUCAM_64MP_TEST_PATTERN_GB_DEFAULT 0 ++ ++/* ARDUCAM_64MP native and active pixel array size. */ ++#define ARDUCAM_64MP_NATIVE_WIDTH 9344U ++#define ARDUCAM_64MP_NATIVE_HEIGHT 7032U ++#define ARDUCAM_64MP_PIXEL_ARRAY_LEFT 48U ++#define ARDUCAM_64MP_PIXEL_ARRAY_TOP 40U ++#define ARDUCAM_64MP_PIXEL_ARRAY_WIDTH 9248U ++#define ARDUCAM_64MP_PIXEL_ARRAY_HEIGHT 6944U ++ ++struct arducam_64mp_reg { ++ u16 address; ++ u8 val; ++}; ++ ++struct arducam_64mp_reg_list { ++ unsigned int num_of_regs; ++ const struct arducam_64mp_reg *regs; ++}; ++ ++/* Mode : resolution and related config&values */ ++struct arducam_64mp_mode { ++ /* Frame width */ ++ unsigned int width; ++ ++ /* Frame height */ ++ unsigned int height; ++ ++ /* H-timing in pixels */ ++ unsigned int line_length_pix; ++ ++ /* Analog crop rectangle. */ ++ struct v4l2_rect crop; ++ ++ /* Default framerate. */ ++ struct v4l2_fract timeperframe_default; ++ ++ /* Default register values */ ++ struct arducam_64mp_reg_list reg_list; ++}; ++ ++static const struct arducam_64mp_reg mode_common_regs[] = { ++ {0x0136, 0x18}, ++ {0x0137, 0x00}, ++ {0x33F0, 0x01}, ++ {0x33F1, 0x03}, ++ {0x0111, 0x02}, ++ {0x3062, 0x00}, ++ {0x3063, 0x30}, ++ {0x3076, 0x00}, ++ {0x3077, 0x30}, ++ {0x1f06, 0x06}, ++ {0x1f07, 0x82}, ++ {0x1f04, 0x71}, ++ {0x1f05, 0x01}, ++ {0x1f08, 0x01}, ++ {0x5bfe, 0x14}, ++ {0x5c0d, 0x2d}, ++ {0x5c1c, 0x30}, ++ {0x5c2b, 0x32}, ++ {0x5c37, 0x2e}, ++ {0x5c40, 0x30}, ++ {0x5c50, 0x14}, ++ {0x5c5f, 0x28}, ++ {0x5c6e, 0x28}, ++ {0x5c7d, 0x32}, ++ {0x5c89, 0x37}, ++ {0x5c92, 0x56}, ++ {0x5bfc, 0x12}, ++ {0x5c0b, 0x2a}, ++ {0x5c1a, 0x2c}, ++ {0x5c29, 0x2f}, ++ {0x5c36, 0x2e}, ++ {0x5c3f, 0x2e}, ++ {0x5c4e, 0x06}, ++ {0x5c5d, 0x1e}, ++ {0x5c6c, 0x20}, ++ {0x5c7b, 0x1e}, ++ {0x5c88, 0x32}, ++ {0x5c91, 0x32}, ++ {0x5c02, 0x14}, ++ {0x5c11, 0x2f}, ++ {0x5c20, 0x32}, ++ {0x5c2f, 0x34}, ++ {0x5c39, 0x31}, ++ {0x5c42, 0x31}, ++ {0x5c8b, 0x28}, ++ {0x5c94, 0x28}, ++ {0x5c00, 0x10}, ++ {0x5c0f, 0x2c}, ++ {0x5c1e, 0x2e}, ++ {0x5c2d, 0x32}, ++ {0x5c38, 0x2e}, ++ {0x5c41, 0x2b}, ++ {0x5c61, 0x0a}, ++ {0x5c70, 0x0a}, ++ {0x5c7f, 0x0a}, ++ {0x5c8a, 0x1e}, ++ {0x5c93, 0x2a}, ++ {0x5bfa, 0x2b}, ++ {0x5c09, 0x2d}, ++ {0x5c18, 0x2e}, ++ {0x5c27, 0x30}, ++ {0x5c5b, 0x28}, ++ {0x5c6a, 0x22}, ++ {0x5c79, 0x42}, ++ {0x5bfb, 0x2c}, ++ {0x5c0a, 0x2f}, ++ {0x5c19, 0x2e}, ++ {0x5c28, 0x2e}, ++ {0x5c4d, 0x20}, ++ {0x5c5c, 0x1e}, ++ {0x5c6b, 0x32}, ++ {0x5c7a, 0x32}, ++ {0x5bfd, 0x30}, ++ {0x5c0c, 0x32}, ++ {0x5c1b, 0x2e}, ++ {0x5c2a, 0x30}, ++ {0x5c4f, 0x28}, ++ {0x5c5e, 0x32}, ++ {0x5c6d, 0x37}, ++ {0x5c7c, 0x56}, ++ {0x5bff, 0x2e}, ++ {0x5c0e, 0x32}, ++ {0x5c1d, 0x2e}, ++ {0x5c2c, 0x2b}, ++ {0x5c51, 0x0a}, ++ {0x5c60, 0x0a}, ++ {0x5c6f, 0x1e}, ++ {0x5c7e, 0x2a}, ++ {0x5c01, 0x32}, ++ {0x5c10, 0x34}, ++ {0x5c1f, 0x31}, ++ {0x5c2e, 0x31}, ++ {0x5c71, 0x28}, ++ {0x5c80, 0x28}, ++ {0x5c4c, 0x2a}, ++ {0x33f2, 0x01}, ++ {0x1f04, 0x73}, ++ {0x1f05, 0x01}, ++ {0x5bfa, 0x35}, ++ {0x5c09, 0x38}, ++ {0x5c18, 0x3a}, ++ {0x5c27, 0x38}, ++ {0x5c5b, 0x25}, ++ {0x5c6a, 0x24}, ++ {0x5c79, 0x47}, ++ {0x5bfc, 0x15}, ++ {0x5c0b, 0x2e}, ++ {0x5c1a, 0x36}, ++ {0x5c29, 0x38}, ++ {0x5c36, 0x36}, ++ {0x5c3f, 0x36}, ++ {0x5c4e, 0x0b}, ++ {0x5c5d, 0x20}, ++ {0x5c6c, 0x2a}, ++ {0x5c7b, 0x25}, ++ {0x5c88, 0x25}, ++ {0x5c91, 0x22}, ++ {0x5bfe, 0x15}, ++ {0x5c0d, 0x32}, ++ {0x5c1c, 0x36}, ++ {0x5c2b, 0x36}, ++ {0x5c37, 0x3a}, ++ {0x5c40, 0x39}, ++ {0x5c50, 0x06}, ++ {0x5c5f, 0x22}, ++ {0x5c6e, 0x23}, ++ {0x5c7d, 0x2e}, ++ {0x5c89, 0x44}, ++ {0x5c92, 0x51}, ++ {0x5d7f, 0x0a}, ++ {0x5c00, 0x17}, ++ {0x5c0f, 0x36}, ++ {0x5c1e, 0x38}, ++ {0x5c2d, 0x3c}, ++ {0x5c38, 0x38}, ++ {0x5c41, 0x36}, ++ {0x5c52, 0x0a}, ++ {0x5c61, 0x21}, ++ {0x5c70, 0x23}, ++ {0x5c7f, 0x1b}, ++ {0x5c8a, 0x22}, ++ {0x5c93, 0x20}, ++ {0x5c02, 0x1a}, ++ {0x5c11, 0x3e}, ++ {0x5c20, 0x3f}, ++ {0x5c2f, 0x3d}, ++ {0x5c39, 0x3e}, ++ {0x5c42, 0x3c}, ++ {0x5c54, 0x02}, ++ {0x5c63, 0x12}, ++ {0x5c72, 0x14}, ++ {0x5c81, 0x24}, ++ {0x5c8b, 0x1c}, ++ {0x5c94, 0x4e}, ++ {0x5d8a, 0x09}, ++ {0x5bfb, 0x36}, ++ {0x5c0a, 0x38}, ++ {0x5c19, 0x36}, ++ {0x5c28, 0x36}, ++ {0x5c4d, 0x2a}, ++ {0x5c5c, 0x25}, ++ {0x5c6b, 0x25}, ++ {0x5c7a, 0x22}, ++ {0x5bfd, 0x36}, ++ {0x5c0c, 0x36}, ++ {0x5c1b, 0x3a}, ++ {0x5c2a, 0x39}, ++ {0x5c4f, 0x23}, ++ {0x5c5e, 0x2e}, ++ {0x5c6d, 0x44}, ++ {0x5c7c, 0x51}, ++ {0x5d63, 0x0a}, ++ {0x5bff, 0x38}, ++ {0x5c0e, 0x3c}, ++ {0x5c1d, 0x38}, ++ {0x5c2c, 0x36}, ++ {0x5c51, 0x23}, ++ {0x5c60, 0x1b}, ++ {0x5c6f, 0x22}, ++ {0x5c7e, 0x20}, ++ {0x5c01, 0x3f}, ++ {0x5c10, 0x3d}, ++ {0x5c1f, 0x3e}, ++ {0x5c2e, 0x3c}, ++ {0x5c53, 0x14}, ++ {0x5c62, 0x24}, ++ {0x5c71, 0x1c}, ++ {0x5c80, 0x4e}, ++ {0x5d76, 0x09}, ++ {0x5c4c, 0x2a}, ++ {0x33f2, 0x02}, ++ {0x1f04, 0x78}, ++ {0x1f05, 0x01}, ++ {0x5bfa, 0x37}, ++ {0x5c09, 0x36}, ++ {0x5c18, 0x39}, ++ {0x5c27, 0x38}, ++ {0x5c5b, 0x27}, ++ {0x5c6a, 0x2b}, ++ {0x5c79, 0x48}, ++ {0x5bfc, 0x16}, ++ {0x5c0b, 0x32}, ++ {0x5c1a, 0x33}, ++ {0x5c29, 0x37}, ++ {0x5c36, 0x36}, ++ {0x5c3f, 0x35}, ++ {0x5c4e, 0x0d}, ++ {0x5c5d, 0x2d}, ++ {0x5c6c, 0x23}, ++ {0x5c7b, 0x25}, ++ {0x5c88, 0x31}, ++ {0x5c91, 0x2e}, ++ {0x5bfe, 0x15}, ++ {0x5c0d, 0x31}, ++ {0x5c1c, 0x35}, ++ {0x5c2b, 0x36}, ++ {0x5c37, 0x35}, ++ {0x5c40, 0x37}, ++ {0x5c50, 0x0f}, ++ {0x5c5f, 0x31}, ++ {0x5c6e, 0x30}, ++ {0x5c7d, 0x33}, ++ {0x5c89, 0x36}, ++ {0x5c92, 0x5b}, ++ {0x5c00, 0x13}, ++ {0x5c0f, 0x2f}, ++ {0x5c1e, 0x2e}, ++ {0x5c2d, 0x34}, ++ {0x5c38, 0x33}, ++ {0x5c41, 0x32}, ++ {0x5c52, 0x0d}, ++ {0x5c61, 0x27}, ++ {0x5c70, 0x28}, ++ {0x5c7f, 0x1f}, ++ {0x5c8a, 0x25}, ++ {0x5c93, 0x2c}, ++ {0x5c02, 0x15}, ++ {0x5c11, 0x36}, ++ {0x5c20, 0x39}, ++ {0x5c2f, 0x3a}, ++ {0x5c39, 0x37}, ++ {0x5c42, 0x37}, ++ {0x5c54, 0x04}, ++ {0x5c63, 0x1c}, ++ {0x5c72, 0x1c}, ++ {0x5c81, 0x1c}, ++ {0x5c8b, 0x28}, ++ {0x5c94, 0x24}, ++ {0x5bfb, 0x33}, ++ {0x5c0a, 0x37}, ++ {0x5c19, 0x36}, ++ {0x5c28, 0x35}, ++ {0x5c4d, 0x23}, ++ {0x5c5c, 0x25}, ++ {0x5c6b, 0x31}, ++ {0x5c7a, 0x2e}, ++ {0x5bfd, 0x35}, ++ {0x5c0c, 0x36}, ++ {0x5c1b, 0x35}, ++ {0x5c2a, 0x37}, ++ {0x5c4f, 0x30}, ++ {0x5c5e, 0x33}, ++ {0x5c6d, 0x36}, ++ {0x5c7c, 0x5b}, ++ {0x5bff, 0x2e}, ++ {0x5c0e, 0x34}, ++ {0x5c1d, 0x33}, ++ {0x5c2c, 0x32}, ++ {0x5c51, 0x28}, ++ {0x5c60, 0x1f}, ++ {0x5c6f, 0x25}, ++ {0x5c7e, 0x2c}, ++ {0x5c01, 0x39}, ++ {0x5c10, 0x3a}, ++ {0x5c1f, 0x37}, ++ {0x5c2e, 0x37}, ++ {0x5c53, 0x1c}, ++ {0x5c62, 0x1c}, ++ {0x5c71, 0x28}, ++ {0x5c80, 0x24}, ++ {0x5c4c, 0x2c}, ++ {0x33f2, 0x03}, ++ {0x1f08, 0x00}, ++ {0x32c8, 0x00}, ++ {0x4017, 0x40}, ++ {0x40a2, 0x01}, ++ {0x40ac, 0x01}, ++ {0x4328, 0x00}, ++ {0x4329, 0xb3}, ++ {0x4e15, 0x10}, ++ {0x4e19, 0x2f}, ++ {0x4e21, 0x0f}, ++ {0x4e2f, 0x10}, ++ {0x4e3d, 0x10}, ++ {0x4e41, 0x2f}, ++ {0x4e57, 0x29}, ++ {0x4ffb, 0x2f}, ++ {0x5011, 0x24}, ++ {0x501d, 0x03}, ++ {0x505f, 0x41}, ++ {0x5060, 0xdf}, ++ {0x5065, 0xdf}, ++ {0x5066, 0x37}, ++ {0x506e, 0x57}, ++ {0x5070, 0xc5}, ++ {0x5072, 0x57}, ++ {0x5075, 0x53}, ++ {0x5076, 0x55}, ++ {0x5077, 0xc1}, ++ {0x5078, 0xc3}, ++ {0x5079, 0x53}, ++ {0x507a, 0x55}, ++ {0x507d, 0x57}, ++ {0x507e, 0xdf}, ++ {0x507f, 0xc5}, ++ {0x5081, 0x57}, ++ {0x53c8, 0x01}, ++ {0x53c9, 0xe2}, ++ {0x53ca, 0x03}, ++ {0x5422, 0x7a}, ++ {0x548e, 0x40}, ++ {0x5497, 0x5e}, ++ {0x54a1, 0x40}, ++ {0x54a9, 0x40}, ++ {0x54b2, 0x5e}, ++ {0x54bc, 0x40}, ++ {0x57c6, 0x00}, ++ {0x583d, 0x0e}, ++ {0x583e, 0x0e}, ++ {0x583f, 0x0e}, ++ {0x5840, 0x0e}, ++ {0x5841, 0x0e}, ++ {0x5842, 0x0e}, ++ {0x5900, 0x12}, ++ {0x5901, 0x12}, ++ {0x5902, 0x14}, ++ {0x5903, 0x12}, ++ {0x5904, 0x14}, ++ {0x5905, 0x12}, ++ {0x5906, 0x14}, ++ {0x5907, 0x12}, ++ {0x590f, 0x12}, ++ {0x5911, 0x12}, ++ {0x5913, 0x12}, ++ {0x591c, 0x12}, ++ {0x591e, 0x12}, ++ {0x5920, 0x12}, ++ {0x5948, 0x08}, ++ {0x5949, 0x08}, ++ {0x594a, 0x08}, ++ {0x594b, 0x08}, ++ {0x594c, 0x08}, ++ {0x594d, 0x08}, ++ {0x594e, 0x08}, ++ {0x594f, 0x08}, ++ {0x595c, 0x08}, ++ {0x595e, 0x08}, ++ {0x5960, 0x08}, ++ {0x596e, 0x08}, ++ {0x5970, 0x08}, ++ {0x5972, 0x08}, ++ {0x597e, 0x0f}, ++ {0x597f, 0x0f}, ++ {0x599a, 0x0f}, ++ {0x59de, 0x08}, ++ {0x59df, 0x08}, ++ {0x59fa, 0x08}, ++ {0x5a59, 0x22}, ++ {0x5a5b, 0x22}, ++ {0x5a5d, 0x1a}, ++ {0x5a5f, 0x22}, ++ {0x5a61, 0x1a}, ++ {0x5a63, 0x22}, ++ {0x5a65, 0x1a}, ++ {0x5a67, 0x22}, ++ {0x5a77, 0x22}, ++ {0x5a7b, 0x22}, ++ {0x5a7f, 0x22}, ++ {0x5a91, 0x22}, ++ {0x5a95, 0x22}, ++ {0x5a99, 0x22}, ++ {0x5ae9, 0x66}, ++ {0x5aeb, 0x66}, ++ {0x5aed, 0x5e}, ++ {0x5aef, 0x66}, ++ {0x5af1, 0x5e}, ++ {0x5af3, 0x66}, ++ {0x5af5, 0x5e}, ++ {0x5af7, 0x66}, ++ {0x5b07, 0x66}, ++ {0x5b0b, 0x66}, ++ {0x5b0f, 0x66}, ++ {0x5b21, 0x66}, ++ {0x5b25, 0x66}, ++ {0x5b29, 0x66}, ++ {0x5b79, 0x46}, ++ {0x5b7b, 0x3e}, ++ {0x5b7d, 0x3e}, ++ {0x5b89, 0x46}, ++ {0x5b8b, 0x46}, ++ {0x5b97, 0x46}, ++ {0x5b99, 0x46}, ++ {0x5c9e, 0x0a}, ++ {0x5c9f, 0x08}, ++ {0x5ca0, 0x0a}, ++ {0x5ca1, 0x0a}, ++ {0x5ca2, 0x0b}, ++ {0x5ca3, 0x06}, ++ {0x5ca4, 0x04}, ++ {0x5ca5, 0x06}, ++ {0x5ca6, 0x04}, ++ {0x5cad, 0x0b}, ++ {0x5cae, 0x0a}, ++ {0x5caf, 0x0c}, ++ {0x5cb0, 0x0a}, ++ {0x5cb1, 0x0b}, ++ {0x5cb2, 0x08}, ++ {0x5cb3, 0x06}, ++ {0x5cb4, 0x08}, ++ {0x5cb5, 0x04}, ++ {0x5cbc, 0x0b}, ++ {0x5cbd, 0x09}, ++ {0x5cbe, 0x08}, ++ {0x5cbf, 0x09}, ++ {0x5cc0, 0x0a}, ++ {0x5cc1, 0x08}, ++ {0x5cc2, 0x06}, ++ {0x5cc3, 0x08}, ++ {0x5cc4, 0x06}, ++ {0x5ccb, 0x0a}, ++ {0x5ccc, 0x09}, ++ {0x5ccd, 0x0a}, ++ {0x5cce, 0x08}, ++ {0x5ccf, 0x0a}, ++ {0x5cd0, 0x08}, ++ {0x5cd1, 0x08}, ++ {0x5cd2, 0x08}, ++ {0x5cd3, 0x08}, ++ {0x5cda, 0x09}, ++ {0x5cdb, 0x09}, ++ {0x5cdc, 0x08}, ++ {0x5cdd, 0x08}, ++ {0x5ce3, 0x09}, ++ {0x5ce4, 0x08}, ++ {0x5ce5, 0x08}, ++ {0x5ce6, 0x08}, ++ {0x5cf4, 0x04}, ++ {0x5d04, 0x04}, ++ {0x5d13, 0x06}, ++ {0x5d22, 0x06}, ++ {0x5d23, 0x04}, ++ {0x5d2e, 0x06}, ++ {0x5d37, 0x06}, ++ {0x5d6f, 0x09}, ++ {0x5d72, 0x0f}, ++ {0x5d88, 0x0f}, ++ {0x5de6, 0x01}, ++ {0x5de7, 0x01}, ++ {0x5de8, 0x01}, ++ {0x5de9, 0x01}, ++ {0x5dea, 0x01}, ++ {0x5deb, 0x01}, ++ {0x5dec, 0x01}, ++ {0x5df2, 0x01}, ++ {0x5df3, 0x01}, ++ {0x5df4, 0x01}, ++ {0x5df5, 0x01}, ++ {0x5df6, 0x01}, ++ {0x5df7, 0x01}, ++ {0x5df8, 0x01}, ++ {0x5dfe, 0x01}, ++ {0x5dff, 0x01}, ++ {0x5e00, 0x01}, ++ {0x5e01, 0x01}, ++ {0x5e02, 0x01}, ++ {0x5e03, 0x01}, ++ {0x5e04, 0x01}, ++ {0x5e0a, 0x01}, ++ {0x5e0b, 0x01}, ++ {0x5e0c, 0x01}, ++ {0x5e0d, 0x01}, ++ {0x5e0e, 0x01}, ++ {0x5e0f, 0x01}, ++ {0x5e10, 0x01}, ++ {0x5e16, 0x01}, ++ {0x5e17, 0x01}, ++ {0x5e18, 0x01}, ++ {0x5e1e, 0x01}, ++ {0x5e1f, 0x01}, ++ {0x5e20, 0x01}, ++ {0x5e6e, 0x5a}, ++ {0x5e6f, 0x46}, ++ {0x5e70, 0x46}, ++ {0x5e71, 0x3c}, ++ {0x5e72, 0x3c}, ++ {0x5e73, 0x28}, ++ {0x5e74, 0x28}, ++ {0x5e75, 0x6e}, ++ {0x5e76, 0x6e}, ++ {0x5e81, 0x46}, ++ {0x5e83, 0x3c}, ++ {0x5e85, 0x28}, ++ {0x5e87, 0x6e}, ++ {0x5e92, 0x46}, ++ {0x5e94, 0x3c}, ++ {0x5e96, 0x28}, ++ {0x5e98, 0x6e}, ++ {0x5ecb, 0x26}, ++ {0x5ecc, 0x26}, ++ {0x5ecd, 0x26}, ++ {0x5ece, 0x26}, ++ {0x5ed2, 0x26}, ++ {0x5ed3, 0x26}, ++ {0x5ed4, 0x26}, ++ {0x5ed5, 0x26}, ++ {0x5ed9, 0x26}, ++ {0x5eda, 0x26}, ++ {0x5ee5, 0x08}, ++ {0x5ee6, 0x08}, ++ {0x5ee7, 0x08}, ++ {0x6006, 0x14}, ++ {0x6007, 0x14}, ++ {0x6008, 0x14}, ++ {0x6009, 0x14}, ++ {0x600a, 0x14}, ++ {0x600b, 0x14}, ++ {0x600c, 0x14}, ++ {0x600d, 0x22}, ++ {0x600e, 0x22}, ++ {0x600f, 0x14}, ++ {0x601a, 0x14}, ++ {0x601b, 0x14}, ++ {0x601c, 0x14}, ++ {0x601d, 0x14}, ++ {0x601e, 0x14}, ++ {0x601f, 0x14}, ++ {0x6020, 0x14}, ++ {0x6021, 0x22}, ++ {0x6022, 0x22}, ++ {0x6023, 0x14}, ++ {0x602e, 0x14}, ++ {0x602f, 0x14}, ++ {0x6030, 0x14}, ++ {0x6031, 0x22}, ++ {0x6039, 0x14}, ++ {0x603a, 0x14}, ++ {0x603b, 0x14}, ++ {0x603c, 0x22}, ++ {0x6132, 0x0f}, ++ {0x6133, 0x0f}, ++ {0x6134, 0x0f}, ++ {0x6135, 0x0f}, ++ {0x6136, 0x0f}, ++ {0x6137, 0x0f}, ++ {0x6138, 0x0f}, ++ {0x613e, 0x0f}, ++ {0x613f, 0x0f}, ++ {0x6140, 0x0f}, ++ {0x6141, 0x0f}, ++ {0x6142, 0x0f}, ++ {0x6143, 0x0f}, ++ {0x6144, 0x0f}, ++ {0x614a, 0x0f}, ++ {0x614b, 0x0f}, ++ {0x614c, 0x0f}, ++ {0x614d, 0x0f}, ++ {0x614e, 0x0f}, ++ {0x614f, 0x0f}, ++ {0x6150, 0x0f}, ++ {0x6156, 0x0f}, ++ {0x6157, 0x0f}, ++ {0x6158, 0x0f}, ++ {0x6159, 0x0f}, ++ {0x615a, 0x0f}, ++ {0x615b, 0x0f}, ++ {0x615c, 0x0f}, ++ {0x6162, 0x0f}, ++ {0x6163, 0x0f}, ++ {0x6164, 0x0f}, ++ {0x616a, 0x0f}, ++ {0x616b, 0x0f}, ++ {0x616c, 0x0f}, ++ {0x6226, 0x00}, ++ {0x84f8, 0x01}, ++ {0x8501, 0x00}, ++ {0x8502, 0x01}, ++ {0x8505, 0x00}, ++ {0x8744, 0x00}, ++ {0x883c, 0x01}, ++ {0x8845, 0x00}, ++ {0x8846, 0x01}, ++ {0x8849, 0x00}, ++ {0x9004, 0x1f}, ++ {0x9064, 0x4d}, ++ {0x9065, 0x3d}, ++ {0x922e, 0x91}, ++ {0x922f, 0x2a}, ++ {0x9230, 0xe2}, ++ {0x9231, 0xc0}, ++ {0x9232, 0xe2}, ++ {0x9233, 0xc1}, ++ {0x9234, 0xe2}, ++ {0x9235, 0xc2}, ++ {0x9236, 0xe2}, ++ {0x9237, 0xc3}, ++ {0x9238, 0xe2}, ++ {0x9239, 0xd4}, ++ {0x923a, 0xe2}, ++ {0x923b, 0xd5}, ++ {0x923c, 0x90}, ++ {0x923d, 0x64}, ++ {0xb0b9, 0x10}, ++ {0xbc76, 0x00}, ++ {0xbc77, 0x00}, ++ {0xbc78, 0x00}, ++ {0xbc79, 0x00}, ++ {0xbc7b, 0x28}, ++ {0xbc7c, 0x00}, ++ {0xbc7d, 0x00}, ++ {0xbc7f, 0xc0}, ++ {0xc6b9, 0x01}, ++ {0xecb5, 0x04}, ++ {0xecbf, 0x04}, ++ {0x0112, 0x0a}, ++ {0x0113, 0x0a}, ++ {0x0114, 0x01}, ++ {0x0301, 0x08}, ++ {0x0303, 0x02}, ++ {0x0305, 0x04}, ++ {0x0306, 0x01}, ++ {0x0307, 0x2c}, ++ {0x030b, 0x02}, ++ {0x030d, 0x04}, ++ {0x030e, 0x01}, ++ {0x030f, 0x30}, ++ {0x0310, 0x01}, ++ {0x4018, 0x00}, ++ {0x4019, 0x00}, ++ {0x401a, 0x00}, ++ {0x401b, 0x00}, ++ {0x3400, 0x01}, ++ {0x3092, 0x01}, ++ {0x3093, 0x00}, ++ {0x0350, 0x00}, ++}; ++ ++/* 64 mpix 2.7fps */ ++static const struct arducam_64mp_reg mode_9152x6944_regs[] = { ++ {0x0342, 0xb6}, ++ {0x0343, 0xb2}, ++ {0x0340, 0x1b}, ++ {0x0341, 0x76}, ++ {0x0344, 0x00}, ++ {0x0345, 0x00}, ++ {0x0346, 0x00}, ++ {0x0347, 0x00}, ++ {0x0348, 0x24}, ++ {0x0349, 0x1f}, ++ {0x034a, 0x1b}, ++ {0x034b, 0x1f}, ++ {0x0900, 0x00}, ++ {0x0901, 0x11}, ++ {0x0902, 0x0a}, ++ {0x30d8, 0x00}, ++ {0x3200, 0x01}, ++ {0x3201, 0x01}, ++ {0x0408, 0x00}, ++ {0x0409, 0x00}, ++ {0x040a, 0x00}, ++ {0x040b, 0x00}, ++ {0x040c, 0x23}, ++ {0x040d, 0xc0}, ++ {0x040e, 0x1b}, ++ {0x040f, 0x20}, ++ {0x034c, 0x23}, ++ {0x034d, 0xc0}, ++ {0x034e, 0x1b}, ++ {0x034f, 0x20}, ++ {0x30d9, 0x01}, ++ {0x32d5, 0x01}, ++ {0x32d6, 0x00}, ++ {0x401e, 0x00}, ++ {0x40b8, 0x04}, ++ {0x40b9, 0x20}, ++ {0x40bc, 0x02}, ++ {0x40bd, 0x58}, ++ {0x40be, 0x02}, ++ {0x40bf, 0x58}, ++ {0x41a4, 0x00}, ++ {0x5a09, 0x01}, ++ {0x5a17, 0x01}, ++ {0x5a25, 0x01}, ++ {0x5a33, 0x01}, ++ {0x98d7, 0x14}, ++ {0x98d8, 0x14}, ++ {0x98d9, 0x00}, ++ {0x99c4, 0x00}, ++ {0x0202, 0x03}, ++ {0x0203, 0xe8}, ++ {0x0204, 0x00}, ++ {0x0205, 0x00}, ++ {0x020e, 0x01}, ++ {0x020f, 0x00}, ++}; ++ ++/* 16 mpix 10fps */ ++static const struct arducam_64mp_reg mode_4624x3472_regs[] = { ++ {0x0342, 0x63}, ++ {0x0343, 0x97}, ++ {0x0340, 0x0d}, ++ {0x0341, 0xca}, ++ {0x0344, 0x00}, ++ {0x0345, 0x00}, ++ {0x0346, 0x00}, ++ {0x0347, 0x00}, ++ {0x0348, 0x24}, ++ {0x0349, 0x1f}, ++ {0x034a, 0x1b}, ++ {0x034b, 0x1f}, ++ {0x0900, 0x01}, ++ {0x0901, 0x22}, ++ {0x0902, 0x08}, ++ {0x30d8, 0x04}, ++ {0x3200, 0x41}, ++ {0x3201, 0x41}, ++ {0x0408, 0x00}, ++ {0x0409, 0x00}, ++ {0x040a, 0x00}, ++ {0x040b, 0x00}, ++ {0x040c, 0x12}, ++ {0x040d, 0x10}, ++ {0x040e, 0x0d}, ++ {0x040f, 0x90}, ++ {0x034c, 0x12}, ++ {0x034d, 0x10}, ++ {0x034e, 0x0d}, ++ {0x034f, 0x90}, ++ {0x30d9, 0x00}, ++ {0x32d5, 0x00}, ++ {0x32d6, 0x00}, ++ {0x401e, 0x00}, ++ {0x40b8, 0x01}, ++ {0x40b9, 0x2c}, ++ {0x40bc, 0x01}, ++ {0x40bd, 0x18}, ++ {0x40be, 0x00}, ++ {0x40bf, 0x00}, ++ {0x41a4, 0x00}, ++ {0x5a09, 0x01}, ++ {0x5a17, 0x01}, ++ {0x5a25, 0x01}, ++ {0x5a33, 0x01}, ++ {0x98d7, 0xb4}, ++ {0x98d8, 0x8c}, ++ {0x98d9, 0x0a}, ++ {0x99c4, 0x16}, ++}; ++ ++/* 4k 20fps mode */ ++static const struct arducam_64mp_reg mode_3840x2160_regs[] = { ++ {0x0342, 0x4e}, ++ {0x0343, 0xb7}, ++ {0x0340, 0x08}, ++ {0x0341, 0xb9}, ++ {0x0344, 0x03}, ++ {0x0345, 0x10}, ++ {0x0346, 0x05}, ++ {0x0347, 0x20}, ++ {0x0348, 0x21}, ++ {0x0349, 0x0f}, ++ {0x034a, 0x15}, ++ {0x034b, 0xff}, ++ {0x0900, 0x01}, ++ {0x0901, 0x22}, ++ {0x0902, 0x08}, ++ {0x30d8, 0x04}, ++ {0x3200, 0x41}, ++ {0x3201, 0x41}, ++ {0x0408, 0x00}, ++ {0x0409, 0x00}, ++ {0x040a, 0x00}, ++ {0x040b, 0x00}, ++ {0x040c, 0x0f}, ++ {0x040d, 0x00}, ++ {0x040e, 0x08}, ++ {0x040f, 0x70}, ++ {0x034c, 0x0f}, ++ {0x034d, 0x00}, ++ {0x034e, 0x08}, ++ {0x034f, 0x70}, ++ {0x30d9, 0x00}, ++ {0x32d5, 0x00}, ++ {0x32d6, 0x00}, ++ {0x401e, 0x00}, ++ {0x40b8, 0x01}, ++ {0x40b9, 0x2c}, ++ {0x40bc, 0x01}, ++ {0x40bd, 0x18}, ++ {0x40be, 0x00}, ++ {0x40bf, 0x00}, ++ {0x41a4, 0x00}, ++ {0x5a09, 0x01}, ++ {0x5a17, 0x01}, ++ {0x5a25, 0x01}, ++ {0x5a33, 0x01}, ++ {0x98d7, 0xb4}, ++ {0x98d8, 0x8c}, ++ {0x98d9, 0x0a}, ++ {0x99c4, 0x16}, ++}; ++ ++/* 4x4 binned 30fps mode */ ++static const struct arducam_64mp_reg mode_2312x1736_regs[] = { ++ {0x0342, 0x33}, ++ {0x0343, 0x60}, ++ {0x0340, 0x08}, ++ {0x0341, 0xe9}, ++ {0x0344, 0x00}, ++ {0x0345, 0x00}, ++ {0x0346, 0x00}, ++ {0x0347, 0x00}, ++ {0x0348, 0x24}, ++ {0x0349, 0x1f}, ++ {0x034a, 0x1b}, ++ {0x034b, 0x1f}, ++ {0x0900, 0x01}, ++ {0x0901, 0x44}, ++ {0x0902, 0x08}, ++ {0x30d8, 0x00}, ++ {0x3200, 0x43}, ++ {0x3201, 0x43}, ++ {0x0408, 0x00}, ++ {0x0409, 0x00}, ++ {0x040a, 0x00}, ++ {0x040b, 0x00}, ++ {0x040c, 0x09}, ++ {0x040d, 0x08}, ++ {0x040e, 0x06}, ++ {0x040f, 0xc8}, ++ {0x034c, 0x09}, ++ {0x034d, 0x08}, ++ {0x034e, 0x06}, ++ {0x034f, 0xc8}, ++ {0x30d9, 0x01}, ++ {0x32d5, 0x00}, ++ {0x32d6, 0x00}, ++ {0x401e, 0x00}, ++ {0x40b8, 0x01}, ++ {0x40b9, 0x2c}, ++ {0x40bc, 0x01}, ++ {0x40bd, 0x18}, ++ {0x40be, 0x00}, ++ {0x40bf, 0x00}, ++ {0x41a4, 0x00}, ++ {0x5a09, 0x01}, ++ {0x5a17, 0x01}, ++ {0x5a25, 0x01}, ++ {0x5a33, 0x01}, ++ {0x98d7, 0xb4}, ++ {0x98d8, 0x8c}, ++ {0x98d9, 0x0a}, ++ {0x99c4, 0x16}, ++}; ++ ++/* 1080p 60fps mode */ ++static const struct arducam_64mp_reg mode_1920x1080_regs[] = { ++ {0x0342, 0x29}, ++ {0x0343, 0xe3}, ++ {0x0340, 0x05}, ++ {0x0341, 0x76}, ++ {0x0344, 0x03}, ++ {0x0345, 0x10}, ++ {0x0346, 0x05}, ++ {0x0347, 0x20}, ++ {0x0348, 0x21}, ++ {0x0349, 0x0f}, ++ {0x034a, 0x16}, ++ {0x034b, 0x0f}, ++ {0x0900, 0x01}, ++ {0x0901, 0x44}, ++ {0x0902, 0x08}, ++ {0x30d8, 0x04}, ++ {0x3200, 0x43}, ++ {0x3201, 0x43}, ++ {0x0408, 0x00}, ++ {0x0409, 0x00}, ++ {0x040a, 0x00}, ++ {0x040b, 0x00}, ++ {0x040c, 0x07}, ++ {0x040d, 0x80}, ++ {0x040e, 0x04}, ++ {0x040f, 0x38}, ++ {0x034c, 0x07}, ++ {0x034d, 0x80}, ++ {0x034e, 0x04}, ++ {0x034f, 0x38}, ++ {0x30d9, 0x00}, ++ {0x32d5, 0x00}, ++ {0x32d6, 0x00}, ++ {0x401e, 0x00}, ++ {0x40b8, 0x01}, ++ {0x40b9, 0x2c}, ++ {0x40bc, 0x01}, ++ {0x40bd, 0x18}, ++ {0x40be, 0x00}, ++ {0x40bf, 0x00}, ++ {0x41a4, 0x00}, ++ {0x5a09, 0x01}, ++ {0x5a17, 0x01}, ++ {0x5a25, 0x01}, ++ {0x5a33, 0x01}, ++ {0x98d7, 0xb4}, ++ {0x98d8, 0x8c}, ++ {0x98d9, 0x0a}, ++ {0x99c4, 0x16}, ++}; ++ ++/* 720p 120fps mode */ ++static const struct arducam_64mp_reg mode_1280x720_regs[] = { ++ {0x0342, 0x1d}, ++ {0x0343, 0xc4}, ++ {0x0340, 0x03}, ++ {0x0341, 0xd8}, ++ {0x0344, 0x08}, ++ {0x0345, 0x10}, ++ {0x0346, 0x07}, ++ {0x0347, 0xf0}, ++ {0x0348, 0x1c}, ++ {0x0349, 0x0f}, ++ {0x034a, 0x13}, ++ {0x034b, 0x3f}, ++ {0x0900, 0x01}, ++ {0x0901, 0x44}, ++ {0x0902, 0x08}, ++ {0x30d8, 0x04}, ++ {0x3200, 0x43}, ++ {0x3201, 0x43}, ++ {0x0408, 0x00}, ++ {0x0409, 0x00}, ++ {0x040a, 0x00}, ++ {0x040b, 0x00}, ++ {0x040c, 0x05}, ++ {0x040d, 0x00}, ++ {0x040e, 0x02}, ++ {0x040f, 0xd0}, ++ {0x034c, 0x05}, ++ {0x034d, 0x00}, ++ {0x034e, 0x02}, ++ {0x034f, 0xd0}, ++ {0x30d9, 0x00}, ++ {0x32d5, 0x00}, ++ {0x32d6, 0x00}, ++ {0x401e, 0x00}, ++ {0x40b8, 0x01}, ++ {0x40b9, 0x2c}, ++ {0x40bc, 0x01}, ++ {0x40bd, 0x18}, ++ {0x40be, 0x00}, ++ {0x40bf, 0x00}, ++ {0x41a4, 0x00}, ++ {0x5a09, 0x01}, ++ {0x5a17, 0x01}, ++ {0x5a25, 0x01}, ++ {0x5a33, 0x01}, ++ {0x98d7, 0xb4}, ++ {0x98d8, 0x8c}, ++ {0x98d9, 0x0a}, ++ {0x99c4, 0x16}, ++}; ++ ++/* Mode configs */ ++static const struct arducam_64mp_mode supported_modes[] = { ++ { ++ .width = 9152, ++ .height = 6944, ++ .line_length_pix = 0xb6b2, ++ .crop = { ++ .left = ARDUCAM_64MP_PIXEL_ARRAY_LEFT, ++ .top = ARDUCAM_64MP_PIXEL_ARRAY_TOP, ++ .width = 9248, ++ .height = 6944, ++ }, ++ .timeperframe_default = { ++ .numerator = 100, ++ .denominator = 270 ++ }, ++ .reg_list = { ++ .num_of_regs = ARRAY_SIZE(mode_9152x6944_regs), ++ .regs = mode_9152x6944_regs, ++ } ++ }, { ++ .width = 4624, ++ .height = 3472, ++ .line_length_pix = 0x6397, ++ .crop = { ++ .left = ARDUCAM_64MP_PIXEL_ARRAY_LEFT, ++ .top = ARDUCAM_64MP_PIXEL_ARRAY_TOP, ++ .width = 9248, ++ .height = 6944, ++ }, ++ .timeperframe_default = { ++ .numerator = 100, ++ .denominator = 1000 ++ }, ++ .reg_list = { ++ .num_of_regs = ARRAY_SIZE(mode_4624x3472_regs), ++ .regs = mode_4624x3472_regs, ++ } ++ }, { ++ .width = 3840, ++ .height = 2160, ++ .line_length_pix = 0x4eb7, ++ .crop = { ++ .left = ARDUCAM_64MP_PIXEL_ARRAY_LEFT + 784, ++ .top = ARDUCAM_64MP_PIXEL_ARRAY_TOP + 1312, ++ .width = 7680, ++ .height = 4320, ++ }, ++ .timeperframe_default = { ++ .numerator = 100, ++ .denominator = 2000 ++ }, ++ .reg_list = { ++ .num_of_regs = ARRAY_SIZE(mode_3840x2160_regs), ++ .regs = mode_3840x2160_regs, ++ } ++ }, { ++ .width = 2312, ++ .height = 1736, ++ .line_length_pix = 0x3360, ++ .crop = { ++ .left = ARDUCAM_64MP_PIXEL_ARRAY_LEFT, ++ .top = ARDUCAM_64MP_PIXEL_ARRAY_TOP, ++ .width = 9248, ++ .height = 6944, ++ }, ++ .timeperframe_default = { ++ .numerator = 100, ++ .denominator = 3000 ++ }, ++ .reg_list = { ++ .num_of_regs = ARRAY_SIZE(mode_2312x1736_regs), ++ .regs = mode_2312x1736_regs, ++ } ++ }, { ++ .width = 1920, ++ .height = 1080, ++ .line_length_pix = 0x29e3, ++ .crop = { ++ .left = ARDUCAM_64MP_PIXEL_ARRAY_LEFT + 784, ++ .top = ARDUCAM_64MP_PIXEL_ARRAY_TOP + 1312, ++ .width = 7680, ++ .height = 4320, ++ }, ++ .timeperframe_default = { ++ .numerator = 100, ++ .denominator = 6000 ++ }, ++ .reg_list = { ++ .num_of_regs = ARRAY_SIZE(mode_1920x1080_regs), ++ .regs = mode_1920x1080_regs, ++ } ++ }, { ++ .width = 1280, ++ .height = 720, ++ .line_length_pix = 0x1dc4, ++ .crop = { ++ .left = ARDUCAM_64MP_PIXEL_ARRAY_LEFT + 2064, ++ .top = ARDUCAM_64MP_PIXEL_ARRAY_TOP + 2032, ++ .width = 5120, ++ .height = 2880, ++ }, ++ .timeperframe_default = { ++ .numerator = 100, ++ .denominator = 12000 ++ }, ++ .reg_list = { ++ .num_of_regs = ARRAY_SIZE(mode_1280x720_regs), ++ .regs = mode_1280x720_regs, ++ } ++ }, ++}; ++ ++/* ++ * The supported formats. ++ * This table MUST contain 4 entries per format, to cover the various flip ++ * combinations in the order ++ * - no flip ++ * - h flip ++ * - v flip ++ * - h&v flips ++ */ ++static const u32 codes[] = { ++ /* 10-bit modes. */ ++ MEDIA_BUS_FMT_SRGGB10_1X10, ++ MEDIA_BUS_FMT_SGRBG10_1X10, ++ MEDIA_BUS_FMT_SGBRG10_1X10, ++ MEDIA_BUS_FMT_SBGGR10_1X10, ++}; ++ ++static const char * const arducam_64mp_test_pattern_menu[] = { ++ "Disabled", ++ "Color Bars", ++ "Solid Color", ++ "Grey Color Bars", ++ "PN9" ++}; ++ ++static const int arducam_64mp_test_pattern_val[] = { ++ ARDUCAM_64MP_TEST_PATTERN_DISABLE, ++ ARDUCAM_64MP_TEST_PATTERN_COLOR_BARS, ++ ARDUCAM_64MP_TEST_PATTERN_SOLID_COLOR, ++ ARDUCAM_64MP_TEST_PATTERN_GREY_COLOR, ++ ARDUCAM_64MP_TEST_PATTERN_PN9, ++}; ++ ++/* regulator supplies */ ++static const char * const arducam_64mp_supply_name[] = { ++ /* Supplies can be enabled in any order */ ++ "VANA", /* Analog (2.8V) supply */ ++ "VDIG", /* Digital Core (1.05V) supply */ ++ "VDDL", /* IF (1.8V) supply */ ++}; ++ ++#define ARDUCAM_64MP_NUM_SUPPLIES ARRAY_SIZE(arducam_64mp_supply_name) ++ ++/* ++ * Initialisation delay between XCLR low->high and the moment when the sensor ++ * can start capture (i.e. can leave software standby), given by T7 in the ++ * datasheet is 7.7ms. This does include I2C setup time as well. ++ * ++ * Note, that delay between XCLR low->high and reading the CCI ID register (T6 ++ * in the datasheet) is much smaller - 1ms. ++ */ ++#define ARDUCAM_64MP_XCLR_MIN_DELAY_US 8000 ++#define ARDUCAM_64MP_XCLR_DELAY_RANGE_US 1000 ++ ++struct arducam_64mp { ++ struct v4l2_subdev sd; ++ struct media_pad pad; ++ ++ unsigned int fmt_code; ++ ++ struct clk *xclk; ++ ++ struct gpio_desc *reset_gpio; ++ struct regulator_bulk_data supplies[ARDUCAM_64MP_NUM_SUPPLIES]; ++ ++ struct v4l2_ctrl_handler ctrl_handler; ++ /* V4L2 Controls */ ++ struct v4l2_ctrl *pixel_rate; ++ struct v4l2_ctrl *exposure; ++ struct v4l2_ctrl *vflip; ++ struct v4l2_ctrl *hflip; ++ struct v4l2_ctrl *vblank; ++ struct v4l2_ctrl *hblank; ++ ++ /* Current mode */ ++ const struct arducam_64mp_mode *mode; ++ ++ /* ++ * Mutex for serialized access: ++ * Protect sensor module set pad format and start/stop streaming safely. ++ */ ++ struct mutex mutex; ++ ++ /* Streaming on/off */ ++ bool streaming; ++ ++ /* Rewrite common registers on stream on? */ ++ bool common_regs_written; ++ ++ /* Current long exposure factor in use. Set through V4L2_CID_VBLANK */ ++ unsigned int long_exp_shift; ++}; ++ ++static inline struct arducam_64mp *to_arducam_64mp(struct v4l2_subdev *_sd) ++{ ++ return container_of(_sd, struct arducam_64mp, sd); ++} ++ ++/* Read registers up to 2 at a time */ ++static int arducam_64mp_read_reg(struct i2c_client *client, ++ u16 reg, u32 len, u32 *val) ++{ ++ struct i2c_msg msgs[2]; ++ u8 addr_buf[2] = { reg >> 8, reg & 0xff }; ++ u8 data_buf[4] = { 0, }; ++ int ret; ++ ++ if (len > 4) ++ return -EINVAL; ++ ++ /* Write register address */ ++ msgs[0].addr = client->addr; ++ msgs[0].flags = 0; ++ msgs[0].len = ARRAY_SIZE(addr_buf); ++ msgs[0].buf = addr_buf; ++ ++ /* Read data from register */ ++ msgs[1].addr = client->addr; ++ msgs[1].flags = I2C_M_RD; ++ msgs[1].len = len; ++ msgs[1].buf = &data_buf[4 - len]; ++ ++ ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs)); ++ if (ret != ARRAY_SIZE(msgs)) ++ return -EIO; ++ ++ *val = get_unaligned_be32(data_buf); ++ ++ return 0; ++} ++ ++/* Write registers up to 2 at a time */ ++static int arducam_64mp_write_reg(struct arducam_64mp *arducam_64mp, ++ u16 reg, u32 len, u32 val) ++{ ++ struct i2c_client *client = v4l2_get_subdevdata(&arducam_64mp->sd); ++ u8 buf[6]; ++ ++ if (len > 4) ++ return -EINVAL; ++ ++ put_unaligned_be16(reg, buf); ++ put_unaligned_be32(val << (8 * (4 - len)), buf + 2); ++ if (i2c_master_send(client, buf, len + 2) != len + 2) ++ return -EIO; ++ ++ return 0; ++} ++ ++/* Write a list of registers */ ++static int arducam_64mp_write_regs(struct arducam_64mp *arducam_64mp, ++ const struct arducam_64mp_reg *regs, u32 len) ++{ ++ struct i2c_client *client = v4l2_get_subdevdata(&arducam_64mp->sd); ++ unsigned int i; ++ int ret; ++ ++ for (i = 0; i < len; i++) { ++ ret = arducam_64mp_write_reg(arducam_64mp, regs[i].address, 1, ++ regs[i].val); ++ if (ret) { ++ dev_err_ratelimited(&client->dev, ++ "Failed to write reg 0x%4.4x. error = %d\n", ++ regs[i].address, ret); ++ ++ return ret; ++ } ++ } ++ ++ return 0; ++} ++ ++/* Get bayer order based on flip setting. */ ++static u32 arducam_64mp_get_format_code(struct arducam_64mp *arducam_64mp) ++{ ++ unsigned int i; ++ ++ lockdep_assert_held(&arducam_64mp->mutex); ++ ++ i = (arducam_64mp->vflip->val ? 2 : 0) | ++ (arducam_64mp->hflip->val ? 1 : 0); ++ ++ return codes[i]; ++} ++ ++static int arducam_64mp_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh) ++{ ++ struct arducam_64mp *arducam_64mp = to_arducam_64mp(sd); ++ struct v4l2_mbus_framefmt *try_fmt_img = ++ v4l2_subdev_get_try_format(sd, fh->state, 0); ++ struct v4l2_rect *try_crop; ++ ++ mutex_lock(&arducam_64mp->mutex); ++ ++ /* Initialize try_fmt for the image pad */ ++ try_fmt_img->width = supported_modes[0].width; ++ try_fmt_img->height = supported_modes[0].height; ++ try_fmt_img->code = arducam_64mp_get_format_code(arducam_64mp); ++ try_fmt_img->field = V4L2_FIELD_NONE; ++ ++ /* Initialize try_crop */ ++ try_crop = v4l2_subdev_get_try_crop(sd, fh->state, 0); ++ try_crop->left = ARDUCAM_64MP_PIXEL_ARRAY_LEFT; ++ try_crop->top = ARDUCAM_64MP_PIXEL_ARRAY_TOP; ++ try_crop->width = ARDUCAM_64MP_PIXEL_ARRAY_WIDTH; ++ try_crop->height = ARDUCAM_64MP_PIXEL_ARRAY_HEIGHT; ++ ++ mutex_unlock(&arducam_64mp->mutex); ++ ++ return 0; ++} ++ ++static void ++arducam_64mp_adjust_exposure_range(struct arducam_64mp *arducam_64mp) ++{ ++ int exposure_max, exposure_def; ++ ++ /* Honour the VBLANK limits when setting exposure. */ ++ exposure_max = arducam_64mp->mode->height + arducam_64mp->vblank->val - ++ ARDUCAM_64MP_EXPOSURE_OFFSET; ++ exposure_def = min(exposure_max, arducam_64mp->exposure->val); ++ __v4l2_ctrl_modify_range(arducam_64mp->exposure, ++ arducam_64mp->exposure->minimum, ++ exposure_max, arducam_64mp->exposure->step, ++ exposure_def); ++} ++ ++static int arducam_64mp_set_frame_length(struct arducam_64mp *arducam_64mp, ++ unsigned int vblank) ++{ ++ unsigned int val = vblank + arducam_64mp->mode->height; ++ int ret = 0; ++ ++ arducam_64mp->long_exp_shift = 0; ++ ++ while (val > ARDUCAM_64MP_FRAME_LENGTH_MAX) { ++ arducam_64mp->long_exp_shift++; ++ val >>= 1; ++ } ++ ++ ret = arducam_64mp_write_reg(arducam_64mp, ++ ARDUCAM_64MP_REG_FRAME_LENGTH, ++ ARDUCAM_64MP_REG_VALUE_16BIT, val); ++ if (ret) ++ return ret; ++ ++ return arducam_64mp_write_reg(arducam_64mp, ++ ARDUCAM_64MP_LONG_EXP_SHIFT_REG, ++ ARDUCAM_64MP_REG_VALUE_08BIT, ++ arducam_64mp->long_exp_shift); ++} ++ ++static int arducam_64mp_set_ctrl(struct v4l2_ctrl *ctrl) ++{ ++ struct arducam_64mp *arducam_64mp = ++ container_of(ctrl->handler, struct arducam_64mp, ctrl_handler); ++ struct i2c_client *client = v4l2_get_subdevdata(&arducam_64mp->sd); ++ int ret; ++ u32 val; ++ /* ++ * The VBLANK control may change the limits of usable exposure, so check ++ * and adjust if necessary. ++ */ ++ if (ctrl->id == V4L2_CID_VBLANK) ++ arducam_64mp_adjust_exposure_range(arducam_64mp); ++ ++ /* ++ * Applying V4L2 control value only happens ++ * when power is up for streaming ++ */ ++ if (pm_runtime_get_if_in_use(&client->dev) == 0) ++ return 0; ++ ++ switch (ctrl->id) { ++ case V4L2_CID_ANALOGUE_GAIN: ++ ret = arducam_64mp_write_reg(arducam_64mp, ++ ARDUCAM_64MP_REG_ANALOG_GAIN, ++ ARDUCAM_64MP_REG_VALUE_16BIT, ++ ctrl->val); ++ break; ++ case V4L2_CID_EXPOSURE: ++ val = ctrl->val >> arducam_64mp->long_exp_shift; ++ ret = arducam_64mp_write_reg(arducam_64mp, ++ ARDUCAM_64MP_REG_EXPOSURE, ++ ARDUCAM_64MP_REG_VALUE_16BIT, ++ val); ++ break; ++ case V4L2_CID_DIGITAL_GAIN: ++ ret = arducam_64mp_write_reg(arducam_64mp, ++ ARDUCAM_64MP_REG_DIGITAL_GAIN, ++ ARDUCAM_64MP_REG_VALUE_16BIT, ++ ctrl->val); ++ break; ++ case V4L2_CID_TEST_PATTERN: ++ val = arducam_64mp_test_pattern_val[ctrl->val]; ++ ret = arducam_64mp_write_reg(arducam_64mp, ++ ARDUCAM_64MP_REG_TEST_PATTERN, ++ ARDUCAM_64MP_REG_VALUE_16BIT, ++ val); ++ break; ++ case V4L2_CID_TEST_PATTERN_RED: ++ ret = arducam_64mp_write_reg(arducam_64mp, ++ ARDUCAM_64MP_REG_TEST_PATTERN_R, ++ ARDUCAM_64MP_REG_VALUE_16BIT, ++ ctrl->val); ++ break; ++ case V4L2_CID_TEST_PATTERN_GREENR: ++ ret = arducam_64mp_write_reg(arducam_64mp, ++ ARDUCAM_64MP_REG_TEST_PATTERN_GR, ++ ARDUCAM_64MP_REG_VALUE_16BIT, ++ ctrl->val); ++ break; ++ case V4L2_CID_TEST_PATTERN_BLUE: ++ ret = arducam_64mp_write_reg(arducam_64mp, ++ ARDUCAM_64MP_REG_TEST_PATTERN_B, ++ ARDUCAM_64MP_REG_VALUE_16BIT, ++ ctrl->val); ++ break; ++ case V4L2_CID_TEST_PATTERN_GREENB: ++ ret = arducam_64mp_write_reg(arducam_64mp, ++ ARDUCAM_64MP_REG_TEST_PATTERN_GB, ++ ARDUCAM_64MP_REG_VALUE_16BIT, ++ ctrl->val); ++ break; ++ case V4L2_CID_HFLIP: ++ case V4L2_CID_VFLIP: ++ ret = arducam_64mp_write_reg(arducam_64mp, ++ ARDUCAM_64MP_REG_ORIENTATION, 1, ++ arducam_64mp->hflip->val | ++ arducam_64mp->vflip->val << 1); ++ break; ++ case V4L2_CID_VBLANK: ++ ret = arducam_64mp_set_frame_length(arducam_64mp, ctrl->val); ++ break; ++ default: ++ dev_info(&client->dev, ++ "ctrl(id:0x%x,val:0x%x) is not handled\n", ++ ctrl->id, ctrl->val); ++ ret = -EINVAL; ++ break; ++ } ++ ++ pm_runtime_put(&client->dev); ++ ++ return ret; ++} ++ ++static const struct v4l2_ctrl_ops arducam_64mp_ctrl_ops = { ++ .s_ctrl = arducam_64mp_set_ctrl, ++}; ++ ++static int arducam_64mp_enum_mbus_code(struct v4l2_subdev *sd, ++ struct v4l2_subdev_state *sd_state, ++ struct v4l2_subdev_mbus_code_enum *code) ++{ ++ struct arducam_64mp *arducam_64mp = to_arducam_64mp(sd); ++ ++ if (code->index > 0) ++ return -EINVAL; ++ ++ code->code = arducam_64mp_get_format_code(arducam_64mp); ++ ++ return 0; ++} ++ ++static int arducam_64mp_enum_frame_size(struct v4l2_subdev *sd, ++ struct v4l2_subdev_state *sd_state, ++ struct v4l2_subdev_frame_size_enum *fse) ++{ ++ struct arducam_64mp *arducam_64mp = to_arducam_64mp(sd); ++ ++ if (fse->index >= ARRAY_SIZE(supported_modes)) ++ return -EINVAL; ++ ++ if (fse->code != arducam_64mp_get_format_code(arducam_64mp)) ++ return -EINVAL; ++ ++ fse->min_width = supported_modes[fse->index].width; ++ fse->max_width = fse->min_width; ++ fse->min_height = supported_modes[fse->index].height; ++ fse->max_height = fse->min_height; ++ ++ return 0; ++} ++ ++static void arducam_64mp_reset_colorspace(struct v4l2_mbus_framefmt *fmt) ++{ ++ fmt->colorspace = V4L2_COLORSPACE_RAW; ++ fmt->ycbcr_enc = V4L2_MAP_YCBCR_ENC_DEFAULT(fmt->colorspace); ++ fmt->quantization = V4L2_MAP_QUANTIZATION_DEFAULT(true, ++ fmt->colorspace, ++ fmt->ycbcr_enc); ++ fmt->xfer_func = V4L2_MAP_XFER_FUNC_DEFAULT(fmt->colorspace); ++} ++ ++static void ++arducam_64mp_update_image_pad_format(struct arducam_64mp *arducam_64mp, ++ const struct arducam_64mp_mode *mode, ++ struct v4l2_subdev_format *fmt) ++{ ++ fmt->format.width = mode->width; ++ fmt->format.height = mode->height; ++ fmt->format.field = V4L2_FIELD_NONE; ++ arducam_64mp_reset_colorspace(&fmt->format); ++} ++ ++static int arducam_64mp_get_pad_format(struct v4l2_subdev *sd, ++ struct v4l2_subdev_state *sd_state, ++ struct v4l2_subdev_format *fmt) ++{ ++ struct arducam_64mp *arducam_64mp = to_arducam_64mp(sd); ++ ++ if (fmt->pad != 0) ++ return -EINVAL; ++ ++ mutex_lock(&arducam_64mp->mutex); ++ ++ if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) { ++ struct v4l2_mbus_framefmt *try_fmt = ++ v4l2_subdev_get_try_format(&arducam_64mp->sd, sd_state, ++ fmt->pad); ++ /* update the code which could change due to vflip or hflip: */ ++ try_fmt->code = arducam_64mp_get_format_code(arducam_64mp); ++ fmt->format = *try_fmt; ++ } else { ++ arducam_64mp_update_image_pad_format(arducam_64mp, ++ arducam_64mp->mode, ++ fmt); ++ fmt->format.code = ++ arducam_64mp_get_format_code(arducam_64mp); ++ } ++ ++ mutex_unlock(&arducam_64mp->mutex); ++ return 0; ++} ++ ++static unsigned int ++arducam_64mp_get_frame_length(const struct arducam_64mp_mode *mode, ++ const struct v4l2_fract *timeperframe) ++{ ++ u64 frame_length; ++ ++ frame_length = (u64)timeperframe->numerator * ARDUCAM_64MP_PIXEL_RATE; ++ do_div(frame_length, ++ (u64)timeperframe->denominator * mode->line_length_pix); ++ ++ if (WARN_ON(frame_length > ARDUCAM_64MP_FRAME_LENGTH_MAX)) ++ frame_length = ARDUCAM_64MP_FRAME_LENGTH_MAX; ++ ++ return max_t(unsigned int, frame_length, mode->height); ++} ++ ++static void arducam_64mp_set_framing_limits(struct arducam_64mp *arducam_64mp) ++{ ++ unsigned int frm_length_min, frm_length_default, hblank; ++ const struct arducam_64mp_mode *mode = arducam_64mp->mode; ++ ++ /* The default framerate is highest possible framerate. */ ++ frm_length_min = ++ arducam_64mp_get_frame_length(mode, ++ &mode->timeperframe_default); ++ frm_length_default = ++ arducam_64mp_get_frame_length(mode, ++ &mode->timeperframe_default); ++ ++ /* Default to no long exposure multiplier. */ ++ arducam_64mp->long_exp_shift = 0; ++ ++ /* Update limits and set FPS to default */ ++ __v4l2_ctrl_modify_range(arducam_64mp->vblank, ++ frm_length_min - mode->height, ++ ((1 << ARDUCAM_64MP_LONG_EXP_SHIFT_MAX) * ++ ARDUCAM_64MP_FRAME_LENGTH_MAX) - mode->height, ++ 1, frm_length_default - mode->height); ++ ++ /* Setting this will adjust the exposure limits as well. */ ++ __v4l2_ctrl_s_ctrl(arducam_64mp->vblank, ++ frm_length_default - mode->height); ++ ++ /* ++ * Currently PPL is fixed to the mode specified value, so hblank ++ * depends on mode->width only, and is not changeable in any ++ * way other than changing the mode. ++ */ ++ hblank = mode->line_length_pix - mode->width; ++ __v4l2_ctrl_modify_range(arducam_64mp->hblank, hblank, hblank, 1, ++ hblank); ++} ++ ++static int arducam_64mp_set_pad_format(struct v4l2_subdev *sd, ++ struct v4l2_subdev_state *sd_state, ++ struct v4l2_subdev_format *fmt) ++{ ++ struct v4l2_mbus_framefmt *framefmt; ++ const struct arducam_64mp_mode *mode; ++ struct arducam_64mp *arducam_64mp = to_arducam_64mp(sd); ++ ++ if (fmt->pad != 0) ++ return -EINVAL; ++ ++ mutex_lock(&arducam_64mp->mutex); ++ ++ /* Bayer order varies with flips */ ++ fmt->format.code = arducam_64mp_get_format_code(arducam_64mp); ++ ++ mode = v4l2_find_nearest_size(supported_modes, ++ ARRAY_SIZE(supported_modes), ++ width, height, ++ fmt->format.width, ++ fmt->format.height); ++ arducam_64mp_update_image_pad_format(arducam_64mp, mode, fmt); ++ if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) { ++ framefmt = v4l2_subdev_get_try_format(sd, sd_state, ++ fmt->pad); ++ *framefmt = fmt->format; ++ } else { ++ arducam_64mp->mode = mode; ++ arducam_64mp->fmt_code = fmt->format.code; ++ arducam_64mp_set_framing_limits(arducam_64mp); ++ } ++ ++ mutex_unlock(&arducam_64mp->mutex); ++ ++ return 0; ++} ++ ++static const struct v4l2_rect * ++__arducam_64mp_get_pad_crop(struct arducam_64mp *arducam_64mp, ++ struct v4l2_subdev_state *sd_state, ++ unsigned int pad, ++ enum v4l2_subdev_format_whence which) ++{ ++ switch (which) { ++ case V4L2_SUBDEV_FORMAT_TRY: ++ return v4l2_subdev_get_try_crop(&arducam_64mp->sd, sd_state, ++ pad); ++ case V4L2_SUBDEV_FORMAT_ACTIVE: ++ return &arducam_64mp->mode->crop; ++ } ++ ++ return NULL; ++} ++ ++static int arducam_64mp_get_selection(struct v4l2_subdev *sd, ++ struct v4l2_subdev_state *sd_state, ++ struct v4l2_subdev_selection *sel) ++{ ++ switch (sel->target) { ++ case V4L2_SEL_TGT_CROP: { ++ struct arducam_64mp *arducam_64mp = to_arducam_64mp(sd); ++ ++ mutex_lock(&arducam_64mp->mutex); ++ sel->r = *__arducam_64mp_get_pad_crop(arducam_64mp, sd_state, ++ sel->pad, sel->which); ++ mutex_unlock(&arducam_64mp->mutex); ++ ++ return 0; ++ } ++ ++ case V4L2_SEL_TGT_NATIVE_SIZE: ++ sel->r.left = 0; ++ sel->r.top = 0; ++ sel->r.width = ARDUCAM_64MP_NATIVE_WIDTH; ++ sel->r.height = ARDUCAM_64MP_NATIVE_HEIGHT; ++ ++ return 0; ++ ++ case V4L2_SEL_TGT_CROP_DEFAULT: ++ case V4L2_SEL_TGT_CROP_BOUNDS: ++ sel->r.left = ARDUCAM_64MP_PIXEL_ARRAY_LEFT; ++ sel->r.top = ARDUCAM_64MP_PIXEL_ARRAY_TOP; ++ sel->r.width = ARDUCAM_64MP_PIXEL_ARRAY_WIDTH; ++ sel->r.height = ARDUCAM_64MP_PIXEL_ARRAY_HEIGHT; ++ ++ return 0; ++ } ++ ++ return -EINVAL; ++} ++ ++/* Start streaming */ ++static int arducam_64mp_start_streaming(struct arducam_64mp *arducam_64mp) ++{ ++ struct i2c_client *client = v4l2_get_subdevdata(&arducam_64mp->sd); ++ const struct arducam_64mp_reg_list *reg_list; ++ int ret; ++ ++ if (!arducam_64mp->common_regs_written) { ++ ret = arducam_64mp_write_regs(arducam_64mp, mode_common_regs, ++ ARRAY_SIZE(mode_common_regs)); ++ ++ if (ret) { ++ dev_err(&client->dev, "%s failed to set common settings\n", ++ __func__); ++ return ret; ++ } ++ arducam_64mp->common_regs_written = true; ++ } ++ ++ /* Apply default values of current mode */ ++ reg_list = &arducam_64mp->mode->reg_list; ++ ret = arducam_64mp_write_regs(arducam_64mp, reg_list->regs, ++ reg_list->num_of_regs); ++ if (ret) { ++ dev_err(&client->dev, "%s failed to set mode\n", __func__); ++ return ret; ++ } ++ ++ /* Apply customized values from user */ ++ ret = __v4l2_ctrl_handler_setup(arducam_64mp->sd.ctrl_handler); ++ if (ret) ++ return ret; ++ ++ /* set stream on register */ ++ return arducam_64mp_write_reg(arducam_64mp, ++ ARDUCAM_64MP_REG_MODE_SELECT, ++ ARDUCAM_64MP_REG_VALUE_08BIT, ++ ARDUCAM_64MP_MODE_STREAMING); ++} ++ ++/* Stop streaming */ ++static void arducam_64mp_stop_streaming(struct arducam_64mp *arducam_64mp) ++{ ++ struct i2c_client *client = v4l2_get_subdevdata(&arducam_64mp->sd); ++ int ret; ++ ++ /* set stream off register */ ++ ret = arducam_64mp_write_reg(arducam_64mp, ARDUCAM_64MP_REG_MODE_SELECT, ++ ARDUCAM_64MP_REG_VALUE_08BIT, ++ ARDUCAM_64MP_MODE_STANDBY); ++ if (ret) ++ dev_err(&client->dev, "%s failed to set stream\n", __func__); ++} ++ ++static int arducam_64mp_set_stream(struct v4l2_subdev *sd, int enable) ++{ ++ struct arducam_64mp *arducam_64mp = to_arducam_64mp(sd); ++ struct i2c_client *client = v4l2_get_subdevdata(sd); ++ int ret = 0; ++ ++ mutex_lock(&arducam_64mp->mutex); ++ if (arducam_64mp->streaming == enable) { ++ mutex_unlock(&arducam_64mp->mutex); ++ return 0; ++ } ++ ++ if (enable) { ++ ret = pm_runtime_get_sync(&client->dev); ++ if (ret < 0) { ++ pm_runtime_put_noidle(&client->dev); ++ goto err_unlock; ++ } ++ ++ /* ++ * Apply default & customized values ++ * and then start streaming. ++ */ ++ ret = arducam_64mp_start_streaming(arducam_64mp); ++ if (ret) ++ goto err_rpm_put; ++ } else { ++ arducam_64mp_stop_streaming(arducam_64mp); ++ pm_runtime_put(&client->dev); ++ } ++ ++ arducam_64mp->streaming = enable; ++ ++ /* vflip and hflip cannot change during streaming */ ++ __v4l2_ctrl_grab(arducam_64mp->vflip, enable); ++ __v4l2_ctrl_grab(arducam_64mp->hflip, enable); ++ ++ mutex_unlock(&arducam_64mp->mutex); ++ ++ return ret; ++ ++err_rpm_put: ++ pm_runtime_put(&client->dev); ++err_unlock: ++ mutex_unlock(&arducam_64mp->mutex); ++ ++ return ret; ++} ++ ++/* Power/clock management functions */ ++static int arducam_64mp_power_on(struct device *dev) ++{ ++ struct i2c_client *client = to_i2c_client(dev); ++ struct v4l2_subdev *sd = i2c_get_clientdata(client); ++ struct arducam_64mp *arducam_64mp = to_arducam_64mp(sd); ++ int ret; ++ ++ ret = regulator_bulk_enable(ARDUCAM_64MP_NUM_SUPPLIES, ++ arducam_64mp->supplies); ++ if (ret) { ++ dev_err(&client->dev, "%s: failed to enable regulators\n", ++ __func__); ++ return ret; ++ } ++ ++ ret = clk_prepare_enable(arducam_64mp->xclk); ++ if (ret) { ++ dev_err(&client->dev, "%s: failed to enable clock\n", ++ __func__); ++ goto reg_off; ++ } ++ ++ gpiod_set_value_cansleep(arducam_64mp->reset_gpio, 1); ++ usleep_range(ARDUCAM_64MP_XCLR_MIN_DELAY_US, ++ ARDUCAM_64MP_XCLR_MIN_DELAY_US + ++ ARDUCAM_64MP_XCLR_DELAY_RANGE_US); ++ ++ return 0; ++ ++reg_off: ++ regulator_bulk_disable(ARDUCAM_64MP_NUM_SUPPLIES, ++ arducam_64mp->supplies); ++ return ret; ++} ++ ++static int arducam_64mp_power_off(struct device *dev) ++{ ++ struct i2c_client *client = to_i2c_client(dev); ++ struct v4l2_subdev *sd = i2c_get_clientdata(client); ++ struct arducam_64mp *arducam_64mp = to_arducam_64mp(sd); ++ ++ gpiod_set_value_cansleep(arducam_64mp->reset_gpio, 0); ++ regulator_bulk_disable(ARDUCAM_64MP_NUM_SUPPLIES, ++ arducam_64mp->supplies); ++ clk_disable_unprepare(arducam_64mp->xclk); ++ ++ /* Force reprogramming of the common registers when powered up again. */ ++ arducam_64mp->common_regs_written = false; ++ ++ return 0; ++} ++ ++static int __maybe_unused arducam_64mp_suspend(struct device *dev) ++{ ++ struct i2c_client *client = to_i2c_client(dev); ++ struct v4l2_subdev *sd = i2c_get_clientdata(client); ++ struct arducam_64mp *arducam_64mp = to_arducam_64mp(sd); ++ ++ if (arducam_64mp->streaming) ++ arducam_64mp_stop_streaming(arducam_64mp); ++ ++ return 0; ++} ++ ++static int __maybe_unused arducam_64mp_resume(struct device *dev) ++{ ++ struct i2c_client *client = to_i2c_client(dev); ++ struct v4l2_subdev *sd = i2c_get_clientdata(client); ++ struct arducam_64mp *arducam_64mp = to_arducam_64mp(sd); ++ int ret; ++ ++ if (arducam_64mp->streaming) { ++ ret = arducam_64mp_start_streaming(arducam_64mp); ++ if (ret) ++ goto error; ++ } ++ ++ return 0; ++ ++error: ++ arducam_64mp_stop_streaming(arducam_64mp); ++ arducam_64mp->streaming = 0; ++ return ret; ++} ++ ++static int arducam_64mp_get_regulators(struct arducam_64mp *arducam_64mp) ++{ ++ struct i2c_client *client = v4l2_get_subdevdata(&arducam_64mp->sd); ++ unsigned int i; ++ ++ for (i = 0; i < ARDUCAM_64MP_NUM_SUPPLIES; i++) ++ arducam_64mp->supplies[i].supply = arducam_64mp_supply_name[i]; ++ ++ return devm_regulator_bulk_get(&client->dev, ++ ARDUCAM_64MP_NUM_SUPPLIES, ++ arducam_64mp->supplies); ++} ++ ++/* Verify chip ID */ ++static int arducam_64mp_identify_module(struct arducam_64mp *arducam_64mp) ++{ ++ struct i2c_client *client = v4l2_get_subdevdata(&arducam_64mp->sd); ++ struct i2c_client *arducam_identifier; ++ int ret; ++ u32 val; ++ ++ arducam_identifier = i2c_new_dummy_device(client->adapter, 0x50); ++ if (IS_ERR(arducam_identifier)) { ++ dev_err(&client->dev, "failed to create arducam_identifier\n"); ++ return PTR_ERR(arducam_identifier); ++ } ++ ++ ret = arducam_64mp_read_reg(arducam_identifier, ++ ARDUCAM_64MP_REG_CHIP_ID, ++ ARDUCAM_64MP_REG_VALUE_16BIT, &val); ++ if (ret) { ++ dev_err(&client->dev, "failed to read chip id %x, with error %d\n", ++ ARDUCAM_64MP_CHIP_ID, ret); ++ goto error; ++ } ++ ++ if (val != ARDUCAM_64MP_CHIP_ID) { ++ dev_err(&client->dev, "chip id mismatch: %x!=%x\n", ++ ARDUCAM_64MP_CHIP_ID, val); ++ ret = -EIO; ++ goto error; ++ } ++ ++ dev_info(&client->dev, "Device found Arducam 64MP.\n"); ++ ++error: ++ i2c_unregister_device(arducam_identifier); ++ ++ return ret; ++} ++ ++static const struct v4l2_subdev_core_ops arducam_64mp_core_ops = { ++ .subscribe_event = v4l2_ctrl_subdev_subscribe_event, ++ .unsubscribe_event = v4l2_event_subdev_unsubscribe, ++}; ++ ++static const struct v4l2_subdev_video_ops arducam_64mp_video_ops = { ++ .s_stream = arducam_64mp_set_stream, ++}; ++ ++static const struct v4l2_subdev_pad_ops arducam_64mp_pad_ops = { ++ .enum_mbus_code = arducam_64mp_enum_mbus_code, ++ .get_fmt = arducam_64mp_get_pad_format, ++ .set_fmt = arducam_64mp_set_pad_format, ++ .get_selection = arducam_64mp_get_selection, ++ .enum_frame_size = arducam_64mp_enum_frame_size, ++}; ++ ++static const struct v4l2_subdev_ops arducam_64mp_subdev_ops = { ++ .core = &arducam_64mp_core_ops, ++ .video = &arducam_64mp_video_ops, ++ .pad = &arducam_64mp_pad_ops, ++}; ++ ++static const struct v4l2_subdev_internal_ops arducam_64mp_internal_ops = { ++ .open = arducam_64mp_open, ++}; ++ ++/* Initialize control handlers */ ++static int arducam_64mp_init_controls(struct arducam_64mp *arducam_64mp) ++{ ++ struct v4l2_ctrl_handler *ctrl_hdlr; ++ struct i2c_client *client = v4l2_get_subdevdata(&arducam_64mp->sd); ++ struct v4l2_fwnode_device_properties props; ++ unsigned int i; ++ int ret; ++ u8 test_pattern_max; ++ ++ ctrl_hdlr = &arducam_64mp->ctrl_handler; ++ ret = v4l2_ctrl_handler_init(ctrl_hdlr, 16); ++ if (ret) ++ return ret; ++ ++ mutex_init(&arducam_64mp->mutex); ++ ctrl_hdlr->lock = &arducam_64mp->mutex; ++ ++ /* By default, PIXEL_RATE is read only */ ++ arducam_64mp->pixel_rate = v4l2_ctrl_new_std(ctrl_hdlr, ++ &arducam_64mp_ctrl_ops, ++ V4L2_CID_PIXEL_RATE, ++ ARDUCAM_64MP_PIXEL_RATE, ++ ARDUCAM_64MP_PIXEL_RATE, 1, ++ ARDUCAM_64MP_PIXEL_RATE); ++ ++ /* ++ * Create the controls here, but mode specific limits are setup ++ * in the arducam_64mp_set_framing_limits() call below. ++ */ ++ arducam_64mp->vblank = v4l2_ctrl_new_std(ctrl_hdlr, ++ &arducam_64mp_ctrl_ops, ++ V4L2_CID_VBLANK, ++ 0, 0xffff, 1, 0); ++ arducam_64mp->hblank = v4l2_ctrl_new_std(ctrl_hdlr, ++ &arducam_64mp_ctrl_ops, ++ V4L2_CID_HBLANK, ++ 0, 0xffff, 1, 0); ++ ++ /* HBLANK is read-only, but does change with mode. */ ++ if (arducam_64mp->hblank) ++ arducam_64mp->hblank->flags |= V4L2_CTRL_FLAG_READ_ONLY; ++ ++ arducam_64mp->exposure = ++ v4l2_ctrl_new_std(ctrl_hdlr, ++ &arducam_64mp_ctrl_ops, ++ V4L2_CID_EXPOSURE, ++ ARDUCAM_64MP_EXPOSURE_MIN, ++ ARDUCAM_64MP_EXPOSURE_MAX, ++ ARDUCAM_64MP_EXPOSURE_STEP, ++ ARDUCAM_64MP_EXPOSURE_DEFAULT); ++ ++ v4l2_ctrl_new_std(ctrl_hdlr, &arducam_64mp_ctrl_ops, ++ V4L2_CID_ANALOGUE_GAIN, ARDUCAM_64MP_ANA_GAIN_MIN, ++ ARDUCAM_64MP_ANA_GAIN_MAX, ARDUCAM_64MP_ANA_GAIN_STEP, ++ ARDUCAM_64MP_ANA_GAIN_DEFAULT); ++ ++ v4l2_ctrl_new_std(ctrl_hdlr, &arducam_64mp_ctrl_ops, ++ V4L2_CID_DIGITAL_GAIN, ARDUCAM_64MP_DGTL_GAIN_MIN, ++ ARDUCAM_64MP_DGTL_GAIN_MAX, ++ ARDUCAM_64MP_DGTL_GAIN_STEP, ++ ARDUCAM_64MP_DGTL_GAIN_DEFAULT); ++ ++ arducam_64mp->hflip = v4l2_ctrl_new_std(ctrl_hdlr, ++ &arducam_64mp_ctrl_ops, ++ V4L2_CID_HFLIP, 0, 1, 1, 0); ++ if (arducam_64mp->hflip) ++ arducam_64mp->hflip->flags |= V4L2_CTRL_FLAG_MODIFY_LAYOUT; ++ ++ arducam_64mp->vflip = v4l2_ctrl_new_std(ctrl_hdlr, ++ &arducam_64mp_ctrl_ops, ++ V4L2_CID_VFLIP, 0, 1, 1, 0); ++ if (arducam_64mp->vflip) ++ arducam_64mp->vflip->flags |= V4L2_CTRL_FLAG_MODIFY_LAYOUT; ++ ++ test_pattern_max = ARRAY_SIZE(arducam_64mp_test_pattern_menu) - 1; ++ v4l2_ctrl_new_std_menu_items(ctrl_hdlr, &arducam_64mp_ctrl_ops, ++ V4L2_CID_TEST_PATTERN, ++ test_pattern_max, ++ 0, 0, arducam_64mp_test_pattern_menu); ++ for (i = 0; i < 4; i++) { ++ /* ++ * The assumption is that ++ * V4L2_CID_TEST_PATTERN_GREENR == V4L2_CID_TEST_PATTERN_RED + 1 ++ * V4L2_CID_TEST_PATTERN_BLUE == V4L2_CID_TEST_PATTERN_RED + 2 ++ * V4L2_CID_TEST_PATTERN_GREENB == V4L2_CID_TEST_PATTERN_RED + 3 ++ */ ++ v4l2_ctrl_new_std(ctrl_hdlr, &arducam_64mp_ctrl_ops, ++ V4L2_CID_TEST_PATTERN_RED + i, ++ ARDUCAM_64MP_TEST_PATTERN_COLOUR_MIN, ++ ARDUCAM_64MP_TEST_PATTERN_COLOUR_MAX, ++ ARDUCAM_64MP_TEST_PATTERN_COLOUR_STEP, ++ ARDUCAM_64MP_TEST_PATTERN_COLOUR_MAX); ++ /* The "Solid color" pattern is white by default */ ++ } ++ ++ if (ctrl_hdlr->error) { ++ ret = ctrl_hdlr->error; ++ dev_err(&client->dev, "%s control init failed (%d)\n", ++ __func__, ret); ++ goto error; ++ } ++ ++ ret = v4l2_fwnode_device_parse(&client->dev, &props); ++ if (ret) ++ goto error; ++ ++ ret = v4l2_ctrl_new_fwnode_properties(ctrl_hdlr, &arducam_64mp_ctrl_ops, ++ &props); ++ if (ret) ++ goto error; ++ ++ arducam_64mp->sd.ctrl_handler = ctrl_hdlr; ++ ++ /* Setup exposure and frame/line length limits. */ ++ arducam_64mp_set_framing_limits(arducam_64mp); ++ ++ return 0; ++ ++error: ++ v4l2_ctrl_handler_free(ctrl_hdlr); ++ mutex_destroy(&arducam_64mp->mutex); ++ ++ return ret; ++} ++ ++static void arducam_64mp_free_controls(struct arducam_64mp *arducam_64mp) ++{ ++ v4l2_ctrl_handler_free(arducam_64mp->sd.ctrl_handler); ++ mutex_destroy(&arducam_64mp->mutex); ++} ++ ++static int arducam_64mp_check_hwcfg(struct device *dev) ++{ ++ struct fwnode_handle *endpoint; ++ struct v4l2_fwnode_endpoint ep_cfg = { ++ .bus_type = V4L2_MBUS_CSI2_DPHY ++ }; ++ int ret = -EINVAL; ++ ++ endpoint = fwnode_graph_get_next_endpoint(dev_fwnode(dev), NULL); ++ if (!endpoint) { ++ dev_err(dev, "endpoint node not found\n"); ++ return -EINVAL; ++ } ++ ++ if (v4l2_fwnode_endpoint_alloc_parse(endpoint, &ep_cfg)) { ++ dev_err(dev, "could not parse endpoint\n"); ++ goto error_out; ++ } ++ ++ /* Check the number of MIPI CSI2 data lanes */ ++ if (ep_cfg.bus.mipi_csi2.num_data_lanes != 2) { ++ dev_err(dev, "only 2 data lanes are currently supported\n"); ++ goto error_out; ++ } ++ ++ /* Check the link frequency set in device tree */ ++ if (!ep_cfg.nr_of_link_frequencies) { ++ dev_err(dev, "link-frequency property not found in DT\n"); ++ goto error_out; ++ } ++ ++ if (ep_cfg.nr_of_link_frequencies != 1 || ++ ep_cfg.link_frequencies[0] != ARDUCAM_64MP_DEFAULT_LINK_FREQ) { ++ dev_err(dev, "Link frequency not supported: %lld\n", ++ ep_cfg.link_frequencies[0]); ++ goto error_out; ++ } ++ ++ ret = 0; ++ ++error_out: ++ v4l2_fwnode_endpoint_free(&ep_cfg); ++ fwnode_handle_put(endpoint); ++ ++ return ret; ++} ++ ++static const struct of_device_id arducam_64mp_dt_ids[] = { ++ { .compatible = "arducam,64mp"}, ++ { /* sentinel */ } ++}; ++ ++static int arducam_64mp_probe(struct i2c_client *client) ++{ ++ struct device *dev = &client->dev; ++ struct arducam_64mp *arducam_64mp; ++ const struct of_device_id *match; ++ u32 xclk_freq; ++ int ret; ++ ++ arducam_64mp = devm_kzalloc(&client->dev, sizeof(*arducam_64mp), ++ GFP_KERNEL); ++ if (!arducam_64mp) ++ return -ENOMEM; ++ ++ v4l2_i2c_subdev_init(&arducam_64mp->sd, client, ++ &arducam_64mp_subdev_ops); ++ ++ match = of_match_device(arducam_64mp_dt_ids, dev); ++ if (!match) ++ return -ENODEV; ++ ++ /* Check the hardware configuration in device tree */ ++ if (arducam_64mp_check_hwcfg(dev)) ++ return -EINVAL; ++ ++ /* Get system clock (xclk) */ ++ arducam_64mp->xclk = devm_clk_get(dev, NULL); ++ if (IS_ERR(arducam_64mp->xclk)) { ++ dev_err(dev, "failed to get xclk\n"); ++ return PTR_ERR(arducam_64mp->xclk); ++ } ++ ++ xclk_freq = clk_get_rate(arducam_64mp->xclk); ++ if (xclk_freq != ARDUCAM_64MP_XCLK_FREQ) { ++ dev_err(dev, "xclk frequency not supported: %d Hz\n", ++ xclk_freq); ++ return -EINVAL; ++ } ++ ++ ret = arducam_64mp_get_regulators(arducam_64mp); ++ if (ret) { ++ dev_err(dev, "failed to get regulators\n"); ++ return ret; ++ } ++ ++ /* Request optional enable pin */ ++ arducam_64mp->reset_gpio = devm_gpiod_get_optional(dev, "reset", ++ GPIOD_OUT_HIGH); ++ ++ /* ++ * The sensor must be powered for arducam_64mp_identify_module() ++ * to be able to read the CHIP_ID from arducam_identifier. ++ */ ++ ret = arducam_64mp_power_on(dev); ++ if (ret) ++ return ret; ++ ++ ret = arducam_64mp_identify_module(arducam_64mp); ++ if (ret) ++ goto error_power_off; ++ ++ /* Set default mode to max resolution */ ++ arducam_64mp->mode = &supported_modes[0]; ++ arducam_64mp->fmt_code = MEDIA_BUS_FMT_SRGGB10_1X10; ++ ++ /* Enable runtime PM and turn off the device */ ++ pm_runtime_set_active(dev); ++ pm_runtime_enable(dev); ++ pm_runtime_idle(dev); ++ ++ /* This needs the pm runtime to be registered. */ ++ ret = arducam_64mp_init_controls(arducam_64mp); ++ if (ret) ++ goto error_power_off; ++ ++ /* Initialize subdev */ ++ arducam_64mp->sd.internal_ops = &arducam_64mp_internal_ops; ++ arducam_64mp->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE | ++ V4L2_SUBDEV_FL_HAS_EVENTS; ++ arducam_64mp->sd.entity.function = MEDIA_ENT_F_CAM_SENSOR; ++ ++ /* Initialize source pads */ ++ arducam_64mp->pad.flags = MEDIA_PAD_FL_SOURCE; ++ ++ ret = media_entity_pads_init(&arducam_64mp->sd.entity, 1, ++ &arducam_64mp->pad); ++ if (ret) { ++ dev_err(dev, "failed to init entity pads: %d\n", ret); ++ goto error_handler_free; ++ } ++ ++ ret = v4l2_async_register_subdev_sensor(&arducam_64mp->sd); ++ if (ret < 0) { ++ dev_err(dev, "failed to register sensor sub-device: %d\n", ret); ++ goto error_media_entity; ++ } ++ ++ return 0; ++ ++error_media_entity: ++ media_entity_cleanup(&arducam_64mp->sd.entity); ++ ++error_handler_free: ++ arducam_64mp_free_controls(arducam_64mp); ++ ++error_power_off: ++ pm_runtime_disable(&client->dev); ++ pm_runtime_set_suspended(&client->dev); ++ arducam_64mp_power_off(&client->dev); ++ ++ return ret; ++} ++ ++static int arducam_64mp_remove(struct i2c_client *client) ++{ ++ struct v4l2_subdev *sd = i2c_get_clientdata(client); ++ struct arducam_64mp *arducam_64mp = to_arducam_64mp(sd); ++ ++ v4l2_async_unregister_subdev(sd); ++ media_entity_cleanup(&sd->entity); ++ arducam_64mp_free_controls(arducam_64mp); ++ ++ pm_runtime_disable(&client->dev); ++ if (!pm_runtime_status_suspended(&client->dev)) ++ arducam_64mp_power_off(&client->dev); ++ pm_runtime_set_suspended(&client->dev); ++ ++ return 0; ++} ++ ++MODULE_DEVICE_TABLE(of, arducam_64mp_dt_ids); ++ ++static const struct dev_pm_ops arducam_64mp_pm_ops = { ++ SET_SYSTEM_SLEEP_PM_OPS(arducam_64mp_suspend, arducam_64mp_resume) ++ SET_RUNTIME_PM_OPS(arducam_64mp_power_off, arducam_64mp_power_on, NULL) ++}; ++ ++static struct i2c_driver arducam_64mp_i2c_driver = { ++ .driver = { ++ .name = "arducam_64mp", ++ .of_match_table = arducam_64mp_dt_ids, ++ .pm = &arducam_64mp_pm_ops, ++ }, ++ .probe_new = arducam_64mp_probe, ++ .remove = arducam_64mp_remove, ++}; ++ ++module_i2c_driver(arducam_64mp_i2c_driver); ++ ++MODULE_AUTHOR("Lee Jackson "); ++MODULE_DESCRIPTION("Arducam 64MP sensor driver"); ++MODULE_LICENSE("GPL v2"); +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Lee Jackson +Date: Wed, 18 May 2022 15:18:59 +0800 +Subject: [PATCH 1010/1015] media: i2c: arducam_64mp: Advertise embedded data + node on media pad 1 + +This commit updates the arducam_64mp driver to adverise support for +embedded data streams. + +The arducam_64mp sensor subdevice overloads the media pad to differentiate +between image stream (pad 0) and embedded data stream (pad 1) when +performing the v4l2_subdev_pad_ops functions. + +Signed-off-by: Lee Jackson +--- + drivers/media/i2c/arducam_64mp.c | 146 ++++++++++++++++++++++--------- + 1 file changed, 107 insertions(+), 39 deletions(-) + +diff --git a/drivers/media/i2c/arducam_64mp.c b/drivers/media/i2c/arducam_64mp.c +index 58a1bc710819..42b777b96496 100644 +--- a/drivers/media/i2c/arducam_64mp.c ++++ b/drivers/media/i2c/arducam_64mp.c +@@ -94,6 +94,16 @@ + #define ARDUCAM_64MP_TEST_PATTERN_B_DEFAULT 0 + #define ARDUCAM_64MP_TEST_PATTERN_GB_DEFAULT 0 + ++/* Embedded metadata stream structure */ ++#define ARDUCAM_64MP_EMBEDDED_LINE_WIDTH 16384 ++#define ARDUCAM_64MP_NUM_EMBEDDED_LINES 1 ++ ++enum pad_types { ++ IMAGE_PAD, ++ METADATA_PAD, ++ NUM_PADS ++}; ++ + /* ARDUCAM_64MP native and active pixel array size. */ + #define ARDUCAM_64MP_NATIVE_WIDTH 9344U + #define ARDUCAM_64MP_NATIVE_HEIGHT 7032U +@@ -1273,7 +1283,7 @@ static const char * const arducam_64mp_supply_name[] = { + + struct arducam_64mp { + struct v4l2_subdev sd; +- struct media_pad pad; ++ struct media_pad pad[NUM_PADS]; + + unsigned int fmt_code; + +@@ -1406,7 +1416,9 @@ static int arducam_64mp_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh) + { + struct arducam_64mp *arducam_64mp = to_arducam_64mp(sd); + struct v4l2_mbus_framefmt *try_fmt_img = +- v4l2_subdev_get_try_format(sd, fh->state, 0); ++ v4l2_subdev_get_try_format(sd, fh->state, IMAGE_PAD); ++ struct v4l2_mbus_framefmt *try_fmt_meta = ++ v4l2_subdev_get_try_format(sd, fh->state, METADATA_PAD); + struct v4l2_rect *try_crop; + + mutex_lock(&arducam_64mp->mutex); +@@ -1417,8 +1429,14 @@ static int arducam_64mp_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh) + try_fmt_img->code = arducam_64mp_get_format_code(arducam_64mp); + try_fmt_img->field = V4L2_FIELD_NONE; + ++ /* Initialize try_fmt for the embedded metadata pad */ ++ try_fmt_meta->width = ARDUCAM_64MP_EMBEDDED_LINE_WIDTH; ++ try_fmt_meta->height = ARDUCAM_64MP_NUM_EMBEDDED_LINES; ++ try_fmt_meta->code = MEDIA_BUS_FMT_SENSOR_DATA; ++ try_fmt_meta->field = V4L2_FIELD_NONE; ++ + /* Initialize try_crop */ +- try_crop = v4l2_subdev_get_try_crop(sd, fh->state, 0); ++ try_crop = v4l2_subdev_get_try_crop(sd, fh->state, IMAGE_PAD); + try_crop->left = ARDUCAM_64MP_PIXEL_ARRAY_LEFT; + try_crop->top = ARDUCAM_64MP_PIXEL_ARRAY_TOP; + try_crop->width = ARDUCAM_64MP_PIXEL_ARRAY_WIDTH; +@@ -1574,10 +1592,20 @@ static int arducam_64mp_enum_mbus_code(struct v4l2_subdev *sd, + { + struct arducam_64mp *arducam_64mp = to_arducam_64mp(sd); + +- if (code->index > 0) ++ if (code->pad >= NUM_PADS) + return -EINVAL; + +- code->code = arducam_64mp_get_format_code(arducam_64mp); ++ if (code->pad == IMAGE_PAD) { ++ if (code->index > 0) ++ return -EINVAL; ++ ++ code->code = arducam_64mp_get_format_code(arducam_64mp); ++ } else { ++ if (code->index > 0) ++ return -EINVAL; ++ ++ code->code = MEDIA_BUS_FMT_SENSOR_DATA; ++ } + + return 0; + } +@@ -1588,16 +1616,29 @@ static int arducam_64mp_enum_frame_size(struct v4l2_subdev *sd, + { + struct arducam_64mp *arducam_64mp = to_arducam_64mp(sd); + +- if (fse->index >= ARRAY_SIZE(supported_modes)) ++ if (fse->pad >= NUM_PADS) + return -EINVAL; + +- if (fse->code != arducam_64mp_get_format_code(arducam_64mp)) +- return -EINVAL; ++ if (fse->pad == IMAGE_PAD) { ++ if (fse->index >= ARRAY_SIZE(supported_modes)) ++ return -EINVAL; ++ ++ if (fse->code != arducam_64mp_get_format_code(arducam_64mp)) ++ return -EINVAL; ++ ++ fse->min_width = supported_modes[fse->index].width; ++ fse->max_width = fse->min_width; ++ fse->min_height = supported_modes[fse->index].height; ++ fse->max_height = fse->min_height; ++ } else { ++ if (fse->code != MEDIA_BUS_FMT_SENSOR_DATA || fse->index > 0) ++ return -EINVAL; + +- fse->min_width = supported_modes[fse->index].width; +- fse->max_width = fse->min_width; +- fse->min_height = supported_modes[fse->index].height; +- fse->max_height = fse->min_height; ++ fse->min_width = ARDUCAM_64MP_EMBEDDED_LINE_WIDTH; ++ fse->max_width = fse->min_width; ++ fse->min_height = ARDUCAM_64MP_NUM_EMBEDDED_LINES; ++ fse->max_height = fse->min_height; ++ } + + return 0; + } +@@ -1623,13 +1664,22 @@ arducam_64mp_update_image_pad_format(struct arducam_64mp *arducam_64mp, + arducam_64mp_reset_colorspace(&fmt->format); + } + ++static void ++arducam_64mp_update_metadata_pad_format(struct v4l2_subdev_format *fmt) ++{ ++ fmt->format.width = ARDUCAM_64MP_EMBEDDED_LINE_WIDTH; ++ fmt->format.height = ARDUCAM_64MP_NUM_EMBEDDED_LINES; ++ fmt->format.code = MEDIA_BUS_FMT_SENSOR_DATA; ++ fmt->format.field = V4L2_FIELD_NONE; ++} ++ + static int arducam_64mp_get_pad_format(struct v4l2_subdev *sd, + struct v4l2_subdev_state *sd_state, + struct v4l2_subdev_format *fmt) + { + struct arducam_64mp *arducam_64mp = to_arducam_64mp(sd); + +- if (fmt->pad != 0) ++ if (fmt->pad >= NUM_PADS) + return -EINVAL; + + mutex_lock(&arducam_64mp->mutex); +@@ -1639,14 +1689,20 @@ static int arducam_64mp_get_pad_format(struct v4l2_subdev *sd, + v4l2_subdev_get_try_format(&arducam_64mp->sd, sd_state, + fmt->pad); + /* update the code which could change due to vflip or hflip: */ +- try_fmt->code = arducam_64mp_get_format_code(arducam_64mp); ++ try_fmt->code = fmt->pad == IMAGE_PAD ? ++ arducam_64mp_get_format_code(arducam_64mp) : ++ MEDIA_BUS_FMT_SENSOR_DATA; + fmt->format = *try_fmt; + } else { +- arducam_64mp_update_image_pad_format(arducam_64mp, +- arducam_64mp->mode, +- fmt); +- fmt->format.code = +- arducam_64mp_get_format_code(arducam_64mp); ++ if (fmt->pad == IMAGE_PAD) { ++ arducam_64mp_update_image_pad_format(arducam_64mp, ++ arducam_64mp->mode, ++ fmt); ++ fmt->format.code = ++ arducam_64mp_get_format_code(arducam_64mp); ++ } else { ++ arducam_64mp_update_metadata_pad_format(fmt); ++ } + } + + mutex_unlock(&arducam_64mp->mutex); +@@ -1714,28 +1770,39 @@ static int arducam_64mp_set_pad_format(struct v4l2_subdev *sd, + const struct arducam_64mp_mode *mode; + struct arducam_64mp *arducam_64mp = to_arducam_64mp(sd); + +- if (fmt->pad != 0) ++ if (fmt->pad >= NUM_PADS) + return -EINVAL; + + mutex_lock(&arducam_64mp->mutex); + +- /* Bayer order varies with flips */ +- fmt->format.code = arducam_64mp_get_format_code(arducam_64mp); +- +- mode = v4l2_find_nearest_size(supported_modes, +- ARRAY_SIZE(supported_modes), +- width, height, +- fmt->format.width, +- fmt->format.height); +- arducam_64mp_update_image_pad_format(arducam_64mp, mode, fmt); +- if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) { +- framefmt = v4l2_subdev_get_try_format(sd, sd_state, +- fmt->pad); +- *framefmt = fmt->format; ++ if (fmt->pad == IMAGE_PAD) { ++ /* Bayer order varies with flips */ ++ fmt->format.code = arducam_64mp_get_format_code(arducam_64mp); ++ ++ mode = v4l2_find_nearest_size(supported_modes, ++ ARRAY_SIZE(supported_modes), ++ width, height, ++ fmt->format.width, ++ fmt->format.height); ++ arducam_64mp_update_image_pad_format(arducam_64mp, mode, fmt); ++ if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) { ++ framefmt = v4l2_subdev_get_try_format(sd, sd_state, ++ fmt->pad); ++ *framefmt = fmt->format; ++ } else { ++ arducam_64mp->mode = mode; ++ arducam_64mp->fmt_code = fmt->format.code; ++ arducam_64mp_set_framing_limits(arducam_64mp); ++ } + } else { +- arducam_64mp->mode = mode; +- arducam_64mp->fmt_code = fmt->format.code; +- arducam_64mp_set_framing_limits(arducam_64mp); ++ if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) { ++ framefmt = v4l2_subdev_get_try_format(sd, sd_state, ++ fmt->pad); ++ *framefmt = fmt->format; ++ } else { ++ /* Only one embedded data mode is supported */ ++ arducam_64mp_update_metadata_pad_format(fmt); ++ } + } + + mutex_unlock(&arducam_64mp->mutex); +@@ -2329,10 +2396,11 @@ static int arducam_64mp_probe(struct i2c_client *client) + arducam_64mp->sd.entity.function = MEDIA_ENT_F_CAM_SENSOR; + + /* Initialize source pads */ +- arducam_64mp->pad.flags = MEDIA_PAD_FL_SOURCE; ++ arducam_64mp->pad[IMAGE_PAD].flags = MEDIA_PAD_FL_SOURCE; ++ arducam_64mp->pad[METADATA_PAD].flags = MEDIA_PAD_FL_SOURCE; + +- ret = media_entity_pads_init(&arducam_64mp->sd.entity, 1, +- &arducam_64mp->pad); ++ ret = media_entity_pads_init(&arducam_64mp->sd.entity, NUM_PADS, ++ arducam_64mp->pad); + if (ret) { + dev_err(dev, "failed to init entity pads: %d\n", ret); + goto error_handler_free; +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Lee Jackson +Date: Mon, 16 May 2022 10:03:23 +0800 +Subject: [PATCH 1011/1015] configs: Add CONFIG_VIDEO_ARDUCAM_64MP=m + +Include the driver module for the Arducam 64MP. + +Signed-off-by: Lee Jackson +--- + arch/arm/configs/bcm2709_defconfig | 1 + + arch/arm/configs/bcm2711_defconfig | 1 + + arch/arm/configs/bcmrpi_defconfig | 1 + + arch/arm64/configs/bcm2711_defconfig | 1 + + arch/arm64/configs/bcmrpi3_defconfig | 1 + + 5 files changed, 5 insertions(+) + +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index 8f01cc9a9ac6..40a9471136cc 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -924,6 +924,7 @@ CONFIG_VIDEO_TVP5150=m + CONFIG_VIDEO_TW2804=m + CONFIG_VIDEO_TW9903=m + CONFIG_VIDEO_TW9906=m ++CONFIG_VIDEO_ARDUCAM_64MP=m + CONFIG_VIDEO_ARDUCAM_PIVARIETY=m + CONFIG_VIDEO_IMX219=m + CONFIG_VIDEO_IMX258=m +diff --git a/arch/arm/configs/bcm2711_defconfig b/arch/arm/configs/bcm2711_defconfig +index 4905fbccd259..fdad8d7e62d2 100644 +--- a/arch/arm/configs/bcm2711_defconfig ++++ b/arch/arm/configs/bcm2711_defconfig +@@ -940,6 +940,7 @@ CONFIG_VIDEO_TVP5150=m + CONFIG_VIDEO_TW2804=m + CONFIG_VIDEO_TW9903=m + CONFIG_VIDEO_TW9906=m ++CONFIG_VIDEO_ARDUCAM_64MP=m + CONFIG_VIDEO_ARDUCAM_PIVARIETY=m + CONFIG_VIDEO_IMX219=m + CONFIG_VIDEO_IMX258=m +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index b3c7df2bcc00..42773075f20d 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -917,6 +917,7 @@ CONFIG_VIDEO_TVP5150=m + CONFIG_VIDEO_TW2804=m + CONFIG_VIDEO_TW9903=m + CONFIG_VIDEO_TW9906=m ++CONFIG_VIDEO_ARDUCAM_64MP=m + CONFIG_VIDEO_ARDUCAM_PIVARIETY=m + CONFIG_VIDEO_IMX219=m + CONFIG_VIDEO_IMX258=m +diff --git a/arch/arm64/configs/bcm2711_defconfig b/arch/arm64/configs/bcm2711_defconfig +index c02f0b7f5602..4d463f9c86e6 100644 +--- a/arch/arm64/configs/bcm2711_defconfig ++++ b/arch/arm64/configs/bcm2711_defconfig +@@ -946,6 +946,7 @@ CONFIG_VIDEO_TVP5150=m + CONFIG_VIDEO_TW2804=m + CONFIG_VIDEO_TW9903=m + CONFIG_VIDEO_TW9906=m ++CONFIG_VIDEO_ARDUCAM_64MP=m + CONFIG_VIDEO_ARDUCAM_PIVARIETY=m + CONFIG_VIDEO_IMX219=m + CONFIG_VIDEO_IMX258=m +diff --git a/arch/arm64/configs/bcmrpi3_defconfig b/arch/arm64/configs/bcmrpi3_defconfig +index 092e7b6b100b..7fffb6eaabb2 100644 +--- a/arch/arm64/configs/bcmrpi3_defconfig ++++ b/arch/arm64/configs/bcmrpi3_defconfig +@@ -888,6 +888,7 @@ CONFIG_VIDEO_TVP5150=m + CONFIG_VIDEO_TW2804=m + CONFIG_VIDEO_TW9903=m + CONFIG_VIDEO_TW9906=m ++CONFIG_VIDEO_ARDUCAM_64MP=m + CONFIG_VIDEO_ARDUCAM_PIVARIETY=m + CONFIG_VIDEO_IMX219=m + CONFIG_VIDEO_IMX258=m +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Lee Jackson +Date: Mon, 16 May 2022 10:20:19 +0800 +Subject: [PATCH 1012/1015] overlays: Add arducam-64mp-overlay.dts + +Added overlays for enabling Arducam 64MP and add the +relevant information to the README. + +Signed-off-by: Lee Jackson +--- + arch/arm/boot/dts/overlays/Makefile | 1 + + arch/arm/boot/dts/overlays/README | 15 +++ + .../dts/overlays/arducam-64mp-overlay.dts | 94 +++++++++++++++++++ + 3 files changed, 110 insertions(+) + create mode 100644 arch/arm/boot/dts/overlays/arducam-64mp-overlay.dts + +diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile +index 625117bc4d1d..f6bc9a84af5e 100644 +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -23,6 +23,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ + anyspi.dtbo \ + apds9960.dtbo \ + applepi-dac.dtbo \ ++ arducam-64mp.dtbo \ + arducam-pivariety.dtbo \ + at86rf233.dtbo \ + audioinjector-addons.dtbo \ +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index e423abbd535c..8ccace1511d8 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -582,6 +582,21 @@ Load: dtoverlay=applepi-dac + Params: + + ++Name: arducam-64mp ++Info: Arducam 64MP camera module. ++ Uses Unicam 1, which is the standard camera connector on most Pi ++ variants. ++Load: dtoverlay=arducam-64mp,= ++Params: rotation Mounting rotation of the camera sensor (0 or ++ 180, default 0) ++ orientation Sensor orientation (0 = front, 1 = rear, ++ 2 = external, default external) ++ media-controller Configure use of Media Controller API for ++ configuring the sensor (default on) ++ cam0 Adopt the default configuration for CAM0 on a ++ Compute Module (CSI0, i2c_vc, and cam0_reg). ++ ++ + Name: arducam-pivariety + Info: Arducam Pivariety camera module. + Uses Unicam 1, which is the standard camera connector on most Pi +diff --git a/arch/arm/boot/dts/overlays/arducam-64mp-overlay.dts b/arch/arm/boot/dts/overlays/arducam-64mp-overlay.dts +new file mode 100644 +index 000000000000..19c8cb6e451c +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/arducam-64mp-overlay.dts +@@ -0,0 +1,94 @@ ++// SPDX-License-Identifier: GPL-2.0-only ++// Definitions for Arducam 64MP camera module on VC I2C bus ++/dts-v1/; ++/plugin/; ++ ++/{ ++ compatible = "brcm,bcm2835"; ++ ++ i2c_frag: fragment@0 { ++ target = <&i2c_csi_dsi>; ++ __overlay__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ status = "okay"; ++ ++ arducam_64mp: arducam_64mp@1a { ++ compatible = "arducam,64mp"; ++ reg = <0x1a>; ++ status = "okay"; ++ ++ clocks = <&cam1_clk>; ++ clock-names = "xclk"; ++ ++ VANA-supply = <&cam1_reg>; /* 2.8v */ ++ VDIG-supply = <&cam_dummy_reg>; /* 1.8v */ ++ VDDL-supply = <&cam_dummy_reg>; /* 1.2v */ ++ ++ rotation = <0>; ++ orientation = <2>; ++ ++ port { ++ arducam_64mp_0: endpoint { ++ remote-endpoint = <&csi1_ep>; ++ clock-lanes = <0>; ++ data-lanes = <1 2>; ++ clock-noncontinuous; ++ link-frequencies = ++ /bits/ 64 <456000000>; ++ }; ++ }; ++ }; ++ }; ++ }; ++ ++ csi_frag: fragment@1 { ++ target = <&csi1>; ++ csi: __overlay__ { ++ status = "okay"; ++ brcm,media-controller; ++ ++ port{ ++ csi1_ep: endpoint{ ++ remote-endpoint = <&arducam_64mp_0>; ++ clock-lanes = <0>; ++ data-lanes = <1 2>; ++ clock-noncontinuous; ++ }; ++ }; ++ }; ++ }; ++ ++ fragment@2 { ++ target = <&i2c0if>; ++ __overlay__ { ++ status = "okay"; ++ }; ++ }; ++ ++ clk_frag: fragment@3 { ++ target = <&cam1_clk>; ++ __overlay__ { ++ clock-frequency = <24000000>; ++ status = "okay"; ++ }; ++ }; ++ ++ fragment@4 { ++ target = <&i2c0mux>; ++ __overlay__ { ++ status = "okay"; ++ }; ++ }; ++ ++ __overrides__ { ++ rotation = <&arducam_64mp>,"rotation:0"; ++ orientation = <&arducam_64mp>,"orientation:0"; ++ media-controller = <&csi>,"brcm,media-controller?"; ++ cam0 = <&i2c_frag>, "target:0=",<&i2c_vc>, ++ <&csi_frag>, "target:0=",<&csi0>, ++ <&clk_frag>, "target:0=",<&cam0_clk>, ++ <&arducam_64mp>, "clocks:0=",<&cam0_clk>, ++ <&arducam_64mp>, "VANA-supply:0=",<&cam0_reg>; ++ }; ++}; +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Mon, 13 Jun 2022 11:57:30 +0100 +Subject: [PATCH 1013/1015] ARM: dts: bcm2711: Use the rpi-vid-decoder driver + +The rpi-vid-decoder driver has been the preferred option for a while, +so make it the default. + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/bcm2711-rpi-ds.dtsi | 29 ++++++++------------------- + 1 file changed, 8 insertions(+), 21 deletions(-) + +diff --git a/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi b/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi +index cd5c43adc56b..5b18e8f92145 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi ++++ b/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi +@@ -75,29 +75,16 @@ + power-domains = <&power RPI_POWER_DOMAIN_USB>; + }; + +- hevc-decoder@7eb00000 { +- compatible = "raspberrypi,rpivid-hevc-decoder"; +- reg = <0x0 0x7eb00000 0x0 0x10000>; +- status = "okay"; +- }; +- +- rpivid-local-intc@7eb10000 { +- compatible = "raspberrypi,rpivid-local-intc"; +- reg = <0x0 0x7eb10000 0x0 0x1000>; +- status = "okay"; ++ codec@7eb10000 { ++ compatible = "raspberrypi,rpivid-vid-decoder"; ++ reg = <0x0 0x7eb10000 0x0 0x1000>, /* INTC */ ++ <0x0 0x7eb00000 0x0 0x10000>; /* HEVC */ ++ reg-names = "intc", ++ "hevc"; + interrupts = ; +- }; +- +- h264-decoder@7eb20000 { +- compatible = "raspberrypi,rpivid-h264-decoder"; +- reg = <0x0 0x7eb20000 0x0 0x10000>; +- status = "okay"; +- }; + +- vp9-decoder@7eb30000 { +- compatible = "raspberrypi,rpivid-vp9-decoder"; +- reg = <0x0 0x7eb30000 0x0 0x10000>; +- status = "okay"; ++ clocks = <&firmware_clocks 11>; ++ clock-names = "hevc"; + }; + }; + +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Mon, 13 Jun 2022 12:00:32 +0100 +Subject: [PATCH 1014/1015] overlays: Delete+deprecate the rpivid-v4l2 overlay + +Now that the rpivid-vid-decoder driver is the default, this overlay +is no longer needed. + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/overlays/Makefile | 1 - + arch/arm/boot/dts/overlays/README | 7 ++- + arch/arm/boot/dts/overlays/overlay_map.dts | 2 +- + .../boot/dts/overlays/rpivid-v4l2-overlay.dts | 50 ------------------- + 4 files changed, 4 insertions(+), 56 deletions(-) + delete mode 100644 arch/arm/boot/dts/overlays/rpivid-v4l2-overlay.dts + +diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile +index f6bc9a84af5e..14b855f648ed 100644 +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -185,7 +185,6 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ + rpi-proto.dtbo \ + rpi-sense.dtbo \ + rpi-tv.dtbo \ +- rpivid-v4l2.dtbo \ + rra-digidac1-wm8741-audio.dtbo \ + sainsmart18.dtbo \ + sc16is750-i2c.dtbo \ +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index 8ccace1511d8..365005982d80 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -3141,10 +3141,9 @@ Params: + + + Name: rpivid-v4l2 +-Info: Load the V4L2 stateless video decoder driver for the HEVC block, +- disabling the memory mapped devices in the process. +-Load: dtoverlay=rpivid-v4l2 +-Params: ++Info: This overlay has been deprecated and deleted as the V4L2 stateless ++ video decoder driver is enabled by default. ++Load: + + + Name: rra-digidac1-wm8741-audio +diff --git a/arch/arm/boot/dts/overlays/overlay_map.dts b/arch/arm/boot/dts/overlays/overlay_map.dts +index 0e01f46d8db0..ade9f488bdfd 100644 +--- a/arch/arm/boot/dts/overlays/overlay_map.dts ++++ b/arch/arm/boot/dts/overlays/overlay_map.dts +@@ -62,7 +62,7 @@ + }; + + rpivid-v4l2 { +- bcm2711; ++ deprecated = "no longer necessary"; + }; + + sdio-1bit { +diff --git a/arch/arm/boot/dts/overlays/rpivid-v4l2-overlay.dts b/arch/arm/boot/dts/overlays/rpivid-v4l2-overlay.dts +deleted file mode 100644 +index bdd1c0e5a915..000000000000 +--- a/arch/arm/boot/dts/overlays/rpivid-v4l2-overlay.dts ++++ /dev/null +@@ -1,50 +0,0 @@ +-// SPDX-License-Identifier: GPL-2.0-only +-// Definitions for Raspberry Pi video decode engine +-/dts-v1/; +-/plugin/; +- +-#include +- +-/{ +- compatible = "brcm,bcm2711"; +- +- fragment@0 { +- target = <&scb>; +- __overlay__ { +- /* needed to avoid dtc warning */ +- #address-cells = <2>; +- #size-cells = <2>; +- +- codec@7eb10000 { +- compatible = "raspberrypi,rpivid-vid-decoder"; +- reg = <0x0 0x7eb10000 0x0 0x1000>, /* INTC */ +- <0x0 0x7eb00000 0x0 0x10000>; /* HEVC */ +- reg-names = "intc", +- "hevc"; +- +- interrupts = ; +- +- clocks = <&firmware_clocks 11>; +- clock-names = "hevc"; +- }; +- }; +- }; +- +- fragment@1 { +- target = <&scb>; +- __overlay__ { +- hevc-decoder@7eb00000 { +- status = "disabled"; +- }; +- rpivid-local-intc@7eb10000 { +- status = "disabled"; +- }; +- h264-decoder@7eb20000 { +- status = "disabled"; +- }; +- vp9-decoder@7eb30000 { +- status = "disabled"; +- }; +- }; +- }; +-}; +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Mon, 13 Jun 2022 13:47:22 +0100 +Subject: [PATCH 1015/1015] ARM64: dts: Add Zero 2 W and CM4S + +Zero 2 W and CM4S are 64-bit-capable, so their DTBs should be buildable +in the arm64 tree. + +See (misplaced) comment in https://github.com/raspberrypi/linux/issues/4857 + +Signed-off-by: Phil Elwell +--- + arch/arm64/boot/dts/broadcom/Makefile | 2 ++ + arch/arm64/boot/dts/broadcom/bcm2710-rpi-zero-2-w.dts | 1 + + arch/arm64/boot/dts/broadcom/bcm2710-rpi-zero-2.dts | 2 +- + arch/arm64/boot/dts/broadcom/bcm2711-rpi-cm4s.dts | 1 + + 4 files changed, 5 insertions(+), 1 deletion(-) + create mode 100644 arch/arm64/boot/dts/broadcom/bcm2710-rpi-zero-2-w.dts + create mode 100644 arch/arm64/boot/dts/broadcom/bcm2711-rpi-cm4s.dts + +diff --git a/arch/arm64/boot/dts/broadcom/Makefile b/arch/arm64/boot/dts/broadcom/Makefile +index 8eadc747ae1f..9873335d0ed2 100644 +--- a/arch/arm64/boot/dts/broadcom/Makefile ++++ b/arch/arm64/boot/dts/broadcom/Makefile +@@ -6,6 +6,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += bcm2711-rpi-400.dtb \ + bcm2837-rpi-3-b-plus.dtb \ + bcm2837-rpi-cm3-io3.dtb + dtb-$(CONFIG_ARCH_BCM2835) += bcm2710-rpi-zero-2.dtb ++dtb-$(CONFIG_ARCH_BCM2835) += bcm2710-rpi-zero-2-w.dtb + dtb-$(CONFIG_ARCH_BCM2835) += bcm2710-rpi-2-b.dtb + dtb-$(CONFIG_ARCH_BCM2835) += bcm2710-rpi-3-b.dtb + dtb-$(CONFIG_ARCH_BCM2835) += bcm2710-rpi-3-b-plus.dtb +@@ -13,6 +14,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += bcm2711-rpi-4-b.dtb + dtb-$(CONFIG_ARCH_BCM2835) += bcm2711-rpi-400.dtb + dtb-$(CONFIG_ARCH_BCM2835) += bcm2710-rpi-cm3.dtb + dtb-$(CONFIG_ARCH_BCM2835) += bcm2711-rpi-cm4.dtb ++dtb-$(CONFIG_ARCH_BCM2835) += bcm2711-rpi-cm4s.dtb + + subdir-y += bcm4908 + subdir-y += northstar2 +diff --git a/arch/arm64/boot/dts/broadcom/bcm2710-rpi-zero-2-w.dts b/arch/arm64/boot/dts/broadcom/bcm2710-rpi-zero-2-w.dts +new file mode 100644 +index 000000000000..4d34e0afd4cd +--- /dev/null ++++ b/arch/arm64/boot/dts/broadcom/bcm2710-rpi-zero-2-w.dts +@@ -0,0 +1 @@ ++#include "../../../../arm/boot/dts/bcm2710-rpi-zero-2-w.dts" +diff --git a/arch/arm64/boot/dts/broadcom/bcm2710-rpi-zero-2.dts b/arch/arm64/boot/dts/broadcom/bcm2710-rpi-zero-2.dts +index f76f553599ef..4d34e0afd4cd 100644 +--- a/arch/arm64/boot/dts/broadcom/bcm2710-rpi-zero-2.dts ++++ b/arch/arm64/boot/dts/broadcom/bcm2710-rpi-zero-2.dts +@@ -1 +1 @@ +-#include "../../../../arm/boot/dts/bcm2710-rpi-zero-2.dts" ++#include "../../../../arm/boot/dts/bcm2710-rpi-zero-2-w.dts" +diff --git a/arch/arm64/boot/dts/broadcom/bcm2711-rpi-cm4s.dts b/arch/arm64/boot/dts/broadcom/bcm2711-rpi-cm4s.dts +new file mode 100644 +index 000000000000..28e0980a374b +--- /dev/null ++++ b/arch/arm64/boot/dts/broadcom/bcm2711-rpi-cm4s.dts +@@ -0,0 +1 @@ ++#include "../../../../arm/boot/dts/bcm2711-rpi-cm4s.dts" +-- +2.18.4 + diff --git a/SPECS/raspberrypi2.spec b/SPECS/raspberrypi2.spec index 609a4cd..c4aadde 100644 --- a/SPECS/raspberrypi2.spec +++ b/SPECS/raspberrypi2.spec @@ -1,5 +1,5 @@ -%global commit_firmware_long b22546ac06cf2e88f10873d2158069fa65ed86a3 -%global commit_linux_long 0fffce9692be7e18d9aefa3273b8b1f70f11fbbc +%global commit_firmware_long a4040b2554f459347480f17358ce76990b2d0a41 +%global commit_linux_long b34bf3273cfe492daa04fc57eb88782df1714a66 ExclusiveArch: aarch64 armv7hl @@ -32,7 +32,7 @@ ExclusiveArch: aarch64 armv7hl %define extra_version 1 %define kversion 5.15 -%define kfullversion %{kversion}.41 +%define kfullversion %{kversion}.48 Name: raspberrypi2 Version: %{kfullversion} @@ -292,6 +292,9 @@ cp $(ls -1 /boot/config-kernel-*-*|sort -V|tail -1) /boot/config-kernel.inc %doc /boot/LICENCE.broadcom %changelog +* Sun Jun 19 2022 Pablo Greco - 5.15.48 +- Update to version v5.15.48 + * Sat May 21 2022 Pablo Greco - 5.15.41 - Update to version v5.15.41