From 9489637f7f741f28b1e0846ad1940bfba7974620 Mon Sep 17 00:00:00 2001 From: Pablo Greco Date: Mar 18 2022 00:49:48 +0000 Subject: Update to 5.15.29 --- diff --git a/.raspberrypi2.metadata b/.raspberrypi2.metadata index d598ac8..2ac0879 100644 --- a/.raspberrypi2.metadata +++ b/.raspberrypi2.metadata @@ -1,3 +1,3 @@ ac61f2459040c09af1d5abd4ed100c3d316b443e SOURCES/linux-5.15.tar.xz -08955f0df96b494f6ce7aec0fa7d2c3e803a0189 SOURCES/a6496ae5cd5e9b4cd5b38f7274fa94dce315fa7a.tar.gz -e1a7031d75bd4e3e48d363469ab0ce2a55d635cd SOURCES/patch-5.15.25.xz +4e4aff48c2376460b3c25d083c59081757e1c16e SOURCES/7cb1aa0ff575959163e1cea042e5e3ab5a7a90d2.tar.gz +20c654934c1104e8c9f908bb7fd0bfaa59e26cdc SOURCES/patch-5.15.29.xz diff --git a/SOURCES/rpi-5.15.x.patch b/SOURCES/rpi-5.15.x.patch index fe7c4ef..61abb98 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/810] drm/vc4: hdmi: Split the CEC disable / enable +Subject: [PATCH 001/847] 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 9170d948b448..65d09b2f3f4c 100644 +index 07887cbfd9cb..37b7f57f2e29 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1732,7 +1732,7 @@ static irqreturn_t vc4_cec_irq_handler(int irq, void *priv) +@@ -1739,7 +1739,7 @@ static irqreturn_t vc4_cec_irq_handler(int irq, void *priv) return ret; } @@ -28,7 +28,7 @@ index 9170d948b448..65d09b2f3f4c 100644 { struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap); /* clock period in microseconds */ -@@ -1745,38 +1745,53 @@ static int vc4_hdmi_cec_adap_enable(struct cec_adapter *adap, bool enable) +@@ -1752,38 +1752,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 9170d948b448..65d09b2f3f4c 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/810] drm/vc4: hdmi: Make sure the device is powered with +Subject: [PATCH 002/847] 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 65d09b2f3f4c..d835e9edb0d5 100644 +index 37b7f57f2e29..c0023fb54bcf 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1737,8 +1737,14 @@ static int vc4_hdmi_cec_enable(struct cec_adapter *adap) +@@ -1744,8 +1744,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 65d09b2f3f4c..d835e9edb0d5 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); -@@ -1781,6 +1787,8 @@ static int vc4_hdmi_cec_disable(struct cec_adapter *adap) +@@ -1788,6 +1794,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,7 +175,7 @@ index 65d09b2f3f4c..d835e9edb0d5 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/810] drm/vc4: hdmi: Warn if we access the controller while +Subject: [PATCH 003/847] 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 @@ -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/810] drm/vc4: hdmi: Remove the DDC probing for status +Subject: [PATCH 004/847] drm/vc4: hdmi: Remove the DDC probing for status detection Commit 9d44abbbb8d5 ("drm/vc4: Fall back to using an EDID probe in the @@ -264,7 +264,7 @@ 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 d835e9edb0d5..492e8bb9deaf 100644 +index c0023fb54bcf..5027a73e94b3 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) @@ -283,7 +283,7 @@ index d835e9edb0d5..492e8bb9deaf 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/810] drm/vc4: hdmi: Raise the maximum clock rate +Subject: [PATCH 005/847] 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 492e8bb9deaf..e19ac40ba275 100644 +index 5027a73e94b3..66a00450b9d1 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -2369,7 +2369,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { +@@ -2377,7 +2377,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 492e8bb9deaf..e19ac40ba275 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/810] drm/vc4: hdmi: Fix HPD GPIO detection +Subject: [PATCH 006/847] 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,7 +343,7 @@ 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 e19ac40ba275..9c3c0cb31ff7 100644 +index 66a00450b9d1..a3d43ed62df2 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) @@ -366,7 +366,7 @@ index e19ac40ba275..9c3c0cb31ff7 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/810] drm/vc4: hdmi: Add a spinlock to protect register +Subject: [PATCH 007/847] drm/vc4: hdmi: Add a spinlock to protect register access The vc4 HDMI driver has multiple path shared between the CEC, ALSA and @@ -389,7 +389,7 @@ 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 9c3c0cb31ff7..dbd74ae0064e 100644 +index a3d43ed62df2..d243a30a37a9 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) @@ -920,7 +920,7 @@ index 9c3c0cb31ff7..dbd74ae0064e 100644 memcpy(&vc4_hdmi->audio.infoframe, ¶ms->cea, sizeof(params->cea)); vc4_hdmi_set_audio_infoframe(encoder); -@@ -1661,6 +1786,8 @@ static void vc4_cec_read_msg(struct vc4_hdmi *vc4_hdmi, u32 cntrl1) +@@ -1668,6 +1793,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 9c3c0cb31ff7..dbd74ae0064e 100644 msg->len = 1 + ((cntrl1 & VC4_HDMI_CEC_REC_WRD_CNT_MASK) >> VC4_HDMI_CEC_REC_WRD_CNT_SHIFT); -@@ -1679,11 +1806,12 @@ static void vc4_cec_read_msg(struct vc4_hdmi *vc4_hdmi, u32 cntrl1) +@@ -1686,11 +1813,12 @@ static void vc4_cec_read_msg(struct vc4_hdmi *vc4_hdmi, u32 cntrl1) } } @@ -944,7 +944,7 @@ index 9c3c0cb31ff7..dbd74ae0064e 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; -@@ -1692,11 +1820,24 @@ static irqreturn_t vc4_cec_irq_handler_tx_bare(int irq, void *priv) +@@ -1699,11 +1827,24 @@ static irqreturn_t vc4_cec_irq_handler_tx_bare(int irq, void *priv) return IRQ_WAKE_THREAD; } @@ -970,7 +970,7 @@ index 9c3c0cb31ff7..dbd74ae0064e 100644 vc4_hdmi->cec_rx_msg.len = 0; cntrl1 = HDMI_READ(HDMI_CEC_CNTRL_1); vc4_cec_read_msg(vc4_hdmi, cntrl1); -@@ -1709,6 +1850,18 @@ static irqreturn_t vc4_cec_irq_handler_rx_bare(int irq, void *priv) +@@ -1716,6 +1857,18 @@ static irqreturn_t vc4_cec_irq_handler_rx_bare(int irq, void *priv) return IRQ_WAKE_THREAD; } @@ -989,7 +989,7 @@ index 9c3c0cb31ff7..dbd74ae0064e 100644 static irqreturn_t vc4_cec_irq_handler(int irq, void *priv) { struct vc4_hdmi *vc4_hdmi = priv; -@@ -1719,14 +1872,17 @@ static irqreturn_t vc4_cec_irq_handler(int irq, void *priv) +@@ -1726,14 +1879,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 9c3c0cb31ff7..dbd74ae0064e 100644 return ret; } -@@ -1735,6 +1891,7 @@ static int vc4_hdmi_cec_enable(struct cec_adapter *adap) +@@ -1742,6 +1898,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 9c3c0cb31ff7..dbd74ae0064e 100644 u32 val; int ret; -@@ -1742,6 +1899,8 @@ static int vc4_hdmi_cec_enable(struct cec_adapter *adap) +@@ -1749,6 +1906,8 @@ static int vc4_hdmi_cec_enable(struct cec_adapter *adap) if (ret) return ret; @@ -1026,7 +1026,7 @@ index 9c3c0cb31ff7..dbd74ae0064e 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 | -@@ -1772,12 +1931,17 @@ static int vc4_hdmi_cec_enable(struct cec_adapter *adap) +@@ -1779,12 +1938,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 9c3c0cb31ff7..dbd74ae0064e 100644 if (!vc4_hdmi->variant->external_irq_controller) HDMI_WRITE(HDMI_CEC_CPU_MASK_SET, VC4_HDMI_CPU_CEC); -@@ -1785,6 +1949,8 @@ static int vc4_hdmi_cec_disable(struct cec_adapter *adap) +@@ -1792,6 +1956,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 9c3c0cb31ff7..dbd74ae0064e 100644 pm_runtime_put(&vc4_hdmi->pdev->dev); return 0; -@@ -1801,10 +1967,14 @@ static int vc4_hdmi_cec_adap_enable(struct cec_adapter *adap, bool enable) +@@ -1808,10 +1974,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 9c3c0cb31ff7..dbd74ae0064e 100644 return 0; } -@@ -1813,6 +1983,7 @@ static int vc4_hdmi_cec_adap_transmit(struct cec_adapter *adap, u8 attempts, +@@ -1820,6 +1990,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 9c3c0cb31ff7..dbd74ae0064e 100644 u32 val; unsigned int i; -@@ -1821,6 +1992,8 @@ static int vc4_hdmi_cec_adap_transmit(struct cec_adapter *adap, u8 attempts, +@@ -1828,6 +1999,8 @@ static int vc4_hdmi_cec_adap_transmit(struct cec_adapter *adap, u8 attempts, return -ENOMEM; } @@ -1085,7 +1085,7 @@ index 9c3c0cb31ff7..dbd74ae0064e 100644 for (i = 0; i < msg->len; i += 4) HDMI_WRITE(HDMI_CEC_TX_DATA_1 + (i >> 2), (msg->msg[i]) | -@@ -1836,6 +2009,9 @@ static int vc4_hdmi_cec_adap_transmit(struct cec_adapter *adap, u8 attempts, +@@ -1843,6 +2016,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 9c3c0cb31ff7..dbd74ae0064e 100644 return 0; } -@@ -1850,6 +2026,7 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) +@@ -1857,6 +2033,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 9c3c0cb31ff7..dbd74ae0064e 100644 u32 value; int ret; -@@ -1869,10 +2046,12 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) +@@ -1876,10 +2053,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 9c3c0cb31ff7..dbd74ae0064e 100644 vc4_hdmi_cec_update_clk_div(vc4_hdmi); -@@ -1891,7 +2070,9 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) +@@ -1898,7 +2077,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 9c3c0cb31ff7..dbd74ae0064e 100644 ret = request_threaded_irq(platform_get_irq(pdev, 0), vc4_cec_irq_handler, -@@ -2161,6 +2342,7 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) +@@ -2168,6 +2349,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; @@ -1135,10 +1135,10 @@ index 9c3c0cb31ff7..dbd74ae0064e 100644 dev_set_drvdata(dev, vc4_hdmi); diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.h b/drivers/gpu/drm/vc4/vc4_hdmi.h -index 33e9f665ab8e..006142fe8d4e 100644 +index c0492da73683..a84a074b5157 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.h +++ b/drivers/gpu/drm/vc4/vc4_hdmi.h -@@ -178,6 +178,11 @@ struct vc4_hdmi { +@@ -179,6 +179,11 @@ struct vc4_hdmi { struct debugfs_regset32 hdmi_regset; struct debugfs_regset32 hd_regset; @@ -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/810] drm/vc4: hdmi: Use a mutex to prevent concurrent +Subject: [PATCH 008/847] drm/vc4: hdmi: Use a mutex to prevent concurrent framework access The vc4 HDMI controller registers into the KMS, CEC and ALSA @@ -1321,7 +1321,7 @@ 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 dbd74ae0064e..be8f0d2b1676 100644 +index d243a30a37a9..41084e05ecce 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) @@ -1625,7 +1625,7 @@ index dbd74ae0064e..be8f0d2b1676 100644 return 0; } -@@ -1895,6 +1956,17 @@ static int vc4_hdmi_cec_enable(struct cec_adapter *adap) +@@ -1902,6 +1963,17 @@ static int vc4_hdmi_cec_enable(struct cec_adapter *adap) u32 val; int ret; @@ -1643,7 +1643,7 @@ index dbd74ae0064e..be8f0d2b1676 100644 ret = pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev); if (ret) return ret; -@@ -1941,6 +2013,17 @@ static int vc4_hdmi_cec_disable(struct cec_adapter *adap) +@@ -1948,6 +2020,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 dbd74ae0064e..be8f0d2b1676 100644 spin_lock_irqsave(&vc4_hdmi->hw_lock, flags); if (!vc4_hdmi->variant->external_irq_controller) -@@ -1969,6 +2052,17 @@ static int vc4_hdmi_cec_adap_log_addr(struct cec_adapter *adap, u8 log_addr) +@@ -1976,6 +2059,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 dbd74ae0064e..be8f0d2b1676 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) | -@@ -1987,6 +2081,17 @@ static int vc4_hdmi_cec_adap_transmit(struct cec_adapter *adap, u8 attempts, +@@ -1994,6 +2088,17 @@ static int vc4_hdmi_cec_adap_transmit(struct cec_adapter *adap, u8 attempts, u32 val; unsigned int i; @@ -1697,7 +1697,7 @@ index dbd74ae0064e..be8f0d2b1676 100644 if (msg->len > 16) { drm_err(dev, "Attempting to transmit too much data (%d)\n", msg->len); return -ENOMEM; -@@ -2342,6 +2447,7 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) +@@ -2349,6 +2454,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; @@ -1706,10 +1706,10 @@ index dbd74ae0064e..be8f0d2b1676 100644 INIT_DELAYED_WORK(&vc4_hdmi->scrambling_work, vc4_hdmi_scrambling_wq); diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.h b/drivers/gpu/drm/vc4/vc4_hdmi.h -index 006142fe8d4e..cf9bb21a8ef7 100644 +index a84a074b5157..44e11ef6f425 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.h +++ b/drivers/gpu/drm/vc4/vc4_hdmi.h -@@ -183,6 +183,20 @@ struct vc4_hdmi { +@@ -184,6 +184,20 @@ struct vc4_hdmi { * @hw_lock: Spinlock protecting device register access. */ spinlock_t hw_lock; @@ -1737,7 +1737,7 @@ index 006142fe8d4e..cf9bb21a8ef7 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/810] drm/vc4: hdmi: Prevent access to crtc->state outside +Subject: [PATCH 009/847] drm/vc4: hdmi: Prevent access to crtc->state outside of KMS Accessing the crtc->state pointer from outside the modesetting context @@ -1764,7 +1764,7 @@ 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 be8f0d2b1676..4d1a5d31a9dc 100644 +index 41084e05ecce..010d381cc201 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) @@ -1883,10 +1883,10 @@ index be8f0d2b1676..4d1a5d31a9dc 100644 u64 tmp; diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.h b/drivers/gpu/drm/vc4/vc4_hdmi.h -index cf9bb21a8ef7..a43cc5614d19 100644 +index 44e11ef6f425..f0cfcb75b2ae 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.h +++ b/drivers/gpu/drm/vc4/vc4_hdmi.h -@@ -197,6 +197,12 @@ struct vc4_hdmi { +@@ -198,6 +198,12 @@ struct vc4_hdmi { * be resilient to that. */ struct mutex mutex; @@ -1906,7 +1906,7 @@ index cf9bb21a8ef7..a43cc5614d19 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/810] drm/vc4: hdmi: Check the device state in prepare() +Subject: [PATCH 010/847] 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,7 +1923,7 @@ 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 4d1a5d31a9dc..df72134029ad 100644 +index 010d381cc201..a676d00d39a4 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) @@ -1989,7 +1989,7 @@ index 4d1a5d31a9dc..df72134029ad 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/810] drm/vc4: hdmi: Introduce an output_enabled flag +Subject: [PATCH 011/847] 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,7 +2007,7 @@ 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 df72134029ad..cf5b4d035678 100644 +index a676d00d39a4..2ae5346d7a14 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, @@ -2052,10 +2052,10 @@ index df72134029ad..cf5b4d035678 100644 /* diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.h b/drivers/gpu/drm/vc4/vc4_hdmi.h -index a43cc5614d19..5d3e97703e8d 100644 +index f0cfcb75b2ae..f41c6353cded 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.h +++ b/drivers/gpu/drm/vc4/vc4_hdmi.h -@@ -203,6 +203,12 @@ struct vc4_hdmi { +@@ -204,6 +204,12 @@ struct vc4_hdmi { * for use by ALSA hooks and interrupt handlers. Protected by @mutex. */ struct drm_display_mode saved_adjusted_mode; @@ -2075,7 +2075,7 @@ index a43cc5614d19..5d3e97703e8d 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/810] drm/vc4: hdmi: Introduce a scdc_enabled flag +Subject: [PATCH 012/847] 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,7 +2108,7 @@ 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 cf5b4d035678..4c13d6ff0a65 100644 +index 2ae5346d7a14..885c732757c9 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) @@ -2145,7 +2145,7 @@ index cf5b4d035678..4c13d6ff0a65 100644 if (delayed_work_pending(&vc4_hdmi->scrambling_work)) cancel_delayed_work_sync(&vc4_hdmi->scrambling_work); -@@ -2505,6 +2499,14 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) +@@ -2512,6 +2506,14 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) vc4_hdmi->pdev = pdev; vc4_hdmi->variant = variant; @@ -2161,10 +2161,10 @@ index cf5b4d035678..4c13d6ff0a65 100644 if (ret) return ret; diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.h b/drivers/gpu/drm/vc4/vc4_hdmi.h -index 5d3e97703e8d..36c0b082a43b 100644 +index f41c6353cded..0c51c91f9d5c 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.h +++ b/drivers/gpu/drm/vc4/vc4_hdmi.h -@@ -209,6 +209,12 @@ struct vc4_hdmi { +@@ -210,6 +210,12 @@ struct vc4_hdmi { * Protected by @mutex. */ bool output_enabled; @@ -2184,7 +2184,7 @@ index 5d3e97703e8d..36c0b082a43b 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/810] drm/vc4: Make vc4_crtc_get_encoder public +Subject: [PATCH 013/847] 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 e3ed52d96f42..7cfd4a097847 100644 +index 3e61184e194c..52c988fb4a3f 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, @@ -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/810] drm/vc4: crtc: Add encoder to vc4_crtc_config_pv +Subject: [PATCH 014/847] 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 7cfd4a097847..e5c2e29a6f01 100644 +index 52c988fb4a3f..e97771b16b7a 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) @@ -2270,7 +2270,7 @@ index 7cfd4a097847..e5c2e29a6f01 100644 struct vc4_encoder *vc4_encoder = to_vc4_encoder(encoder); struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); const struct vc4_pv_data *pv_data = vc4_crtc_to_vc4_pv_data(vc4_crtc); -@@ -597,7 +596,7 @@ static void vc4_crtc_atomic_enable(struct drm_crtc *crtc, +@@ -599,7 +598,7 @@ static void vc4_crtc_atomic_enable(struct drm_crtc *crtc, if (vc4_encoder->pre_crtc_configure) vc4_encoder->pre_crtc_configure(encoder, state); @@ -2286,7 +2286,7 @@ index 7cfd4a097847..e5c2e29a6f01 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/810] drm/vc4: crtc: Rework the encoder retrieval code +Subject: [PATCH 015/847] 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 e5c2e29a6f01..fbc1d4638650 100644 +index e97771b16b7a..853b2f594ca5 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, @@ -2343,7 +2343,7 @@ index e5c2e29a6f01..fbc1d4638650 100644 return NULL; } -@@ -550,8 +538,7 @@ static void vc4_crtc_atomic_disable(struct drm_crtc *crtc, +@@ -552,8 +540,7 @@ static void vc4_crtc_atomic_disable(struct drm_crtc *crtc, struct drm_crtc_state *old_state = drm_atomic_get_old_crtc_state(state, crtc); struct vc4_crtc_state *old_vc4_state = to_vc4_crtc_state(old_state); @@ -2353,7 +2353,7 @@ index e5c2e29a6f01..fbc1d4638650 100644 struct drm_device *dev = crtc->dev; require_hvs_enabled(dev); -@@ -578,10 +565,11 @@ static void vc4_crtc_atomic_disable(struct drm_crtc *crtc, +@@ -580,10 +567,11 @@ static void vc4_crtc_atomic_disable(struct drm_crtc *crtc, static void vc4_crtc_atomic_enable(struct drm_crtc *crtc, struct drm_atomic_state *state) { @@ -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/810] drm/vc4: crtc: Add some logging +Subject: [PATCH 016/847] 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,10 +2403,10 @@ 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 fbc1d4638650..6decaa12a078 100644 +index 853b2f594ca5..6649814cdcf5 100644 --- a/drivers/gpu/drm/vc4/vc4_crtc.c +++ b/drivers/gpu/drm/vc4/vc4_crtc.c -@@ -541,6 +541,9 @@ static void vc4_crtc_atomic_disable(struct drm_crtc *crtc, +@@ -543,6 +543,9 @@ static void vc4_crtc_atomic_disable(struct drm_crtc *crtc, struct drm_encoder *encoder = vc4_get_crtc_encoder(crtc, old_state); struct drm_device *dev = crtc->dev; @@ -2416,7 +2416,7 @@ index fbc1d4638650..6decaa12a078 100644 require_hvs_enabled(dev); /* Disable vblank irq handling before crtc is disabled. */ -@@ -572,6 +575,9 @@ static void vc4_crtc_atomic_enable(struct drm_crtc *crtc, +@@ -574,6 +577,9 @@ static void vc4_crtc_atomic_enable(struct drm_crtc *crtc, struct drm_encoder *encoder = vc4_get_crtc_encoder(crtc, new_state); struct vc4_encoder *vc4_encoder = to_vc4_encoder(encoder); @@ -2433,7 +2433,7 @@ index fbc1d4638650..6decaa12a078 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/810] drm/vc4: Leverage the load tracker on the BCM2711 +Subject: [PATCH 017/847] 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 @@ -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/810] drm/vc4: Increase the core clock based on HVS load +Subject: [PATCH 018/847] 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,10 +2585,10 @@ 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 6decaa12a078..287dbc89ad64 100644 +index 6649814cdcf5..799aaf8c1abf 100644 --- a/drivers/gpu/drm/vc4/vc4_crtc.c +++ b/drivers/gpu/drm/vc4/vc4_crtc.c -@@ -659,12 +659,27 @@ static int vc4_crtc_atomic_check(struct drm_crtc *crtc, +@@ -661,12 +661,27 @@ static int vc4_crtc_atomic_check(struct drm_crtc *crtc, struct vc4_crtc_state *vc4_state = to_vc4_crtc_state(crtc_state); struct drm_connector *conn; struct drm_connector_state *conn_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/810] drm/vc4: select PM +Subject: [PATCH 019/847] 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,7 +2850,7 @@ 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/810] drm/probe-helper: Create a HPD IRQ event helper for a +Subject: [PATCH 020/847] 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 @@ -3059,7 +3059,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/810] drm/vc4: hdmi: Actually check for the connector +Subject: [PATCH 021/847] drm/vc4: hdmi: Actually check for the connector status in hotplug The drm_helper_hpd_irq_event() documentation states that this function @@ -3101,10 +3101,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 4c13d6ff0a65..6998547c72c3 100644 +index 885c732757c9..df291945489d 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1785,10 +1785,11 @@ static int vc4_hdmi_audio_init(struct vc4_hdmi *vc4_hdmi) +@@ -1792,10 +1792,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; @@ -3125,7 +3125,7 @@ index 4c13d6ff0a65..6998547c72c3 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/810] firmware: raspberrypi: Add +Subject: [PATCH 022/847] firmware: raspberrypi: Add RPI_FIRMWARE_NOTIFY_DISPLAY_DONE The RPI_FIRMWARE_NOTIFY_DISPLAY_DONE firmware call allows to tell the @@ -3158,7 +3158,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/810] drm/vc4: Remove conflicting framebuffers before +Subject: [PATCH 023/847] drm/vc4: Remove conflicting framebuffers before callind bind_all The bind hooks will modify their controller registers, so simplefb is @@ -3203,7 +3203,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/810] drm/vc4: Notify the firmware when DRM is in charge +Subject: [PATCH 024/847] 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 @@ -3278,7 +3278,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/810] arm: partially revert +Subject: [PATCH 025/847] arm: partially revert 702b94bff3c50542a6e4ab9a4f4cef093262fe65 * Re-expose some dmi APIs for use in VCSM @@ -3389,7 +3389,7 @@ 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/810] Revert "rtc: pcf8523: properly handle oscillator stop +Subject: [PATCH 026/847] Revert "rtc: pcf8523: properly handle oscillator stop bit" This reverts commit ede44c908d44b166a5b6bd7caacd105c2ff5a70f. @@ -3443,7 +3443,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/810] Revert "staging: bcm2835-audio: Drop DT dependency" +Subject: [PATCH 027/847] Revert "staging: bcm2835-audio: Drop DT dependency" This reverts commit b7491a9fca2dc2535b9dc922550a37c5baae9d3d. --- @@ -3545,7 +3545,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/810] Revert "spi: spidev: Fix CS polarity if GPIO +Subject: [PATCH 028/847] Revert "spi: spidev: Fix CS polarity if GPIO descriptors are used" This reverts commit 83b2a8fe43bda0c11981ad6afa5dd0104d78be28. @@ -3583,7 +3583,7 @@ 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/810] Revert "mailbox: avoid timer start from callback" +Subject: [PATCH 029/847] Revert "mailbox: avoid timer start from callback" This reverts commit c7dacf5b0f32957b24ef29df1207dc2cd8307743. @@ -3647,7 +3647,7 @@ index 3e7d4b20ab34..0b821a5b2db8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 1 Mar 2021 09:12:44 +0000 -Subject: [PATCH 030/810] Revert "Bluetooth: Always request for user +Subject: [PATCH 030/847] Revert "Bluetooth: Always request for user confirmation for Just Works (LE SC)" This reverts commit ffee202a78c2980688bc5d2f7d56480e69a5e0c9. @@ -3698,7 +3698,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/810] Revert "Bluetooth: Always request for user +Subject: [PATCH 031/847] Revert "Bluetooth: Always request for user confirmation for Just Works" This reverts commit 92516cd97fd4d8ad5b1421a0d51771044f453a5f. @@ -3747,7 +3747,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/810] smsx95xx: fix crimes against truesize +Subject: [PATCH 032/847] 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. @@ -3759,7 +3759,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 026e7487c45b..f647e9c38a7d 100644 +index eb0d325e92b7..1fe4ec4ae685 100644 --- a/drivers/net/usb/smsc95xx.c +++ b/drivers/net/usb/smsc95xx.c @@ -67,6 +67,10 @@ static bool turbo_mode = true; @@ -3773,7 +3773,7 @@ index 026e7487c45b..f647e9c38a7d 100644 static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index, u32 *data, int in_pm) { -@@ -1827,7 +1831,8 @@ static int smsc95xx_rx_fixup(struct usbnet *dev, struct sk_buff *skb) +@@ -1839,7 +1843,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 */ @@ -3783,7 +3783,7 @@ index 026e7487c45b..f647e9c38a7d 100644 return 1; } -@@ -1845,7 +1850,8 @@ static int smsc95xx_rx_fixup(struct usbnet *dev, struct sk_buff *skb) +@@ -1857,7 +1862,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 */ @@ -3800,7 +3800,7 @@ index 026e7487c45b..f647e9c38a7d 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/810] smsc95xx: Experimental: Enable turbo_mode and +Subject: [PATCH 033/847] smsc95xx: Experimental: Enable turbo_mode and packetsize=2560 by default See: http://forum.kodi.tv/showthread.php?tid=285288 @@ -3809,7 +3809,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 f647e9c38a7d..f7baf00325a2 100644 +index 1fe4ec4ae685..de1d93ecda1a 100644 --- a/drivers/net/usb/smsc95xx.c +++ b/drivers/net/usb/smsc95xx.c @@ -71,6 +71,10 @@ static bool truesize_mode = false; @@ -3823,7 +3823,7 @@ index f647e9c38a7d..f7baf00325a2 100644 static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index, u32 *data, int in_pm) { -@@ -905,13 +909,13 @@ static int smsc95xx_reset(struct usbnet *dev) +@@ -917,13 +921,13 @@ static int smsc95xx_reset(struct usbnet *dev) if (!turbo_mode) { burst_cap = 0; @@ -3849,7 +3849,7 @@ index f647e9c38a7d..f7baf00325a2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Mar 2013 17:26:38 +0000 -Subject: [PATCH 034/810] Allow mac address to be set in smsc95xx +Subject: [PATCH 034/847] Allow mac address to be set in smsc95xx Signed-off-by: popcornmix --- @@ -3857,7 +3857,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 f7baf00325a2..692e17defa03 100644 +index de1d93ecda1a..dbf9ea8a3da6 100644 --- a/drivers/net/usb/smsc95xx.c +++ b/drivers/net/usb/smsc95xx.c @@ -50,6 +50,7 @@ @@ -3879,7 +3879,7 @@ index f7baf00325a2..692e17defa03 100644 static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index, u32 *data, int in_pm) { -@@ -761,6 +766,53 @@ static int smsc95xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd) +@@ -773,6 +778,53 @@ static int smsc95xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd) return phy_mii_ioctl(netdev->phydev, rq, cmd); } @@ -3933,7 +3933,7 @@ index f7baf00325a2..692e17defa03 100644 static void smsc95xx_init_mac_address(struct usbnet *dev) { /* maybe the boot loader passed the MAC address in devicetree */ -@@ -783,6 +835,10 @@ static void smsc95xx_init_mac_address(struct usbnet *dev) +@@ -795,6 +847,10 @@ static void smsc95xx_init_mac_address(struct usbnet *dev) } } @@ -3951,7 +3951,7 @@ index f7baf00325a2..692e17defa03 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/810] cgroup: Disable cgroup "memory" by default +Subject: [PATCH 035/847] 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: @@ -4042,7 +4042,7 @@ 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/810] Protect __release_resource against resources without +Subject: [PATCH 036/847] Protect __release_resource against resources without parents Without this patch, removing a device tree overlay can crash here. @@ -4076,7 +4076,7 @@ index ca9f5198a01f..dd5ac10ff847 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/810] irq-bcm2836: Avoid "Invalid trigger warning" +Subject: [PATCH 037/847] irq-bcm2836: Avoid "Invalid trigger warning" Initialise the level for each IRQ to avoid a warning from the arm arch timer code. @@ -4106,7 +4106,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/810] irqchip: bcm2835: Add FIQ support +Subject: [PATCH 038/847] irqchip: bcm2835: Add FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -4241,7 +4241,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/810] irqchip: irq-bcm2835: Add 2836 FIQ support +Subject: [PATCH 039/847] irqchip: irq-bcm2835: Add 2836 FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -4346,7 +4346,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/810] spi: spidev: Completely disable the spidev warning +Subject: [PATCH 040/847] 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. @@ -4376,7 +4376,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/810] dmaengine: bcm2835: Load driver early and support +Subject: [PATCH 041/847] dmaengine: bcm2835: Load driver early and support legacy API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -4485,7 +4485,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/810] rtc: Add SPI alias for pcf2123 driver +Subject: [PATCH 042/847] rtc: Add SPI alias for pcf2123 driver Without this alias, Device Tree won't cause the driver to be loaded. @@ -4511,7 +4511,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/810] watchdog: bcm2835: Support setting reboot partition +Subject: [PATCH 043/847] watchdog: bcm2835: Support setting reboot partition MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -4619,7 +4619,7 @@ 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/810] reboot: Use power off rather than busy spinning when +Subject: [PATCH 044/847] reboot: Use power off rather than busy spinning when halt is requested --- @@ -4648,7 +4648,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/810] bcm: Make RASPBERRYPI_POWER depend on PM +Subject: [PATCH 045/847] bcm: Make RASPBERRYPI_POWER depend on PM --- drivers/soc/bcm/Kconfig | 1 + @@ -4673,7 +4673,7 @@ 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/810] Register the clocks early during the boot process, so +Subject: [PATCH 046/847] 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. @@ -4724,7 +4724,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/810] bcm2835-rng: Avoid initialising if already enabled +Subject: [PATCH 047/847] bcm2835-rng: Avoid initialising if already enabled Avoids the 0x40000 cycles of warmup again if firmware has already used it --- @@ -4755,7 +4755,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/810] clk-bcm2835: Mark used PLLs and dividers CRITICAL +Subject: [PATCH 048/847] 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 @@ -4789,7 +4789,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/810] clk-bcm2835: Add claim-clocks property +Subject: [PATCH 049/847] 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, @@ -4915,7 +4915,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/810] clk-bcm2835: Read max core clock from firmware +Subject: [PATCH 050/847] 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 @@ -5036,7 +5036,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/810] sound: Demote deferral errors to INFO level +Subject: [PATCH 051/847] 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. @@ -5077,7 +5077,7 @@ index 80ca260595fd..633b02b43c9f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Claggy3 Date: Sat, 11 Feb 2017 14:00:30 +0000 -Subject: [PATCH 052/810] Update vfpmodule.c +Subject: [PATCH 052/847] 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 @@ -5220,7 +5220,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/810] i2c: bcm2835: Add debug support +Subject: [PATCH 053/847] i2c: bcm2835: Add debug support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -5255,10 +5255,10 @@ Signed-off-by: Noralf Trønnes 1 file changed, 98 insertions(+), 1 deletion(-) diff --git a/drivers/i2c/busses/i2c-bcm2835.c b/drivers/i2c/busses/i2c-bcm2835.c -index 37443edbf754..18b2e9e3d752 100644 +index ad3b124a2e37..f66da1e25c3d 100644 --- a/drivers/i2c/busses/i2c-bcm2835.c +++ b/drivers/i2c/busses/i2c-bcm2835.c -@@ -51,6 +51,18 @@ +@@ -56,6 +56,18 @@ #define BCM2835_I2C_CDIV_MIN 0x0002 #define BCM2835_I2C_CDIV_MAX 0xFFFE @@ -5277,7 +5277,7 @@ index 37443edbf754..18b2e9e3d752 100644 struct bcm2835_i2c_dev { struct device *dev; void __iomem *regs; -@@ -63,8 +75,78 @@ struct bcm2835_i2c_dev { +@@ -68,8 +80,78 @@ struct bcm2835_i2c_dev { u32 msg_err; u8 *msg_buf; size_t msg_buf_remaining; @@ -5356,7 +5356,7 @@ index 37443edbf754..18b2e9e3d752 100644 static inline void bcm2835_i2c_writel(struct bcm2835_i2c_dev *i2c_dev, u32 reg, u32 val) { -@@ -252,6 +334,7 @@ static void bcm2835_i2c_start_transfer(struct bcm2835_i2c_dev *i2c_dev) +@@ -257,6 +339,7 @@ static void bcm2835_i2c_start_transfer(struct bcm2835_i2c_dev *i2c_dev) bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_A, msg->addr); bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_DLEN, msg->len); bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_C, c); @@ -5364,7 +5364,7 @@ index 37443edbf754..18b2e9e3d752 100644 } static void bcm2835_i2c_finish_transfer(struct bcm2835_i2c_dev *i2c_dev) -@@ -278,6 +361,7 @@ static irqreturn_t bcm2835_i2c_isr(int this_irq, void *data) +@@ -283,6 +366,7 @@ static irqreturn_t bcm2835_i2c_isr(int this_irq, void *data) u32 val, err; val = bcm2835_i2c_readl(i2c_dev, BCM2835_I2C_S); @@ -5372,7 +5372,7 @@ index 37443edbf754..18b2e9e3d752 100644 err = val & (BCM2835_I2C_S_CLKT | BCM2835_I2C_S_ERR); if (err) { -@@ -344,6 +428,13 @@ static int bcm2835_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], +@@ -349,6 +433,13 @@ static int bcm2835_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], unsigned long time_left; int i; @@ -5386,7 +5386,7 @@ index 37443edbf754..18b2e9e3d752 100644 for (i = 0; i < (num - 1); i++) if (msgs[i].flags & I2C_M_RD) { dev_warn_once(i2c_dev->dev, -@@ -362,6 +453,10 @@ static int bcm2835_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], +@@ -367,6 +458,10 @@ static int bcm2835_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], bcm2835_i2c_finish_transfer(i2c_dev); @@ -5397,7 +5397,7 @@ index 37443edbf754..18b2e9e3d752 100644 if (!time_left) { bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_C, BCM2835_I2C_C_CLEAR); -@@ -372,7 +467,9 @@ static int bcm2835_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], +@@ -377,7 +472,9 @@ static int bcm2835_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], if (!i2c_dev->msg_err) return num; @@ -5415,7 +5415,7 @@ index 37443edbf754..18b2e9e3d752 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/810] irqchip: irq-bcm2836: Remove regmap and syscon use +Subject: [PATCH 054/847] 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 @@ -5535,7 +5535,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/810] lan78xx: Enable LEDs and auto-negotiation +Subject: [PATCH 055/847] 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 @@ -5590,7 +5590,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/810] amba_pl011: Don't use DT aliases for numbering +Subject: [PATCH 056/847] 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 @@ -5625,7 +5625,7 @@ index da54f827c5ef..6f2293924002 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/810] amba_pl011: Round input clock up +Subject: [PATCH 057/847] 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 @@ -5717,7 +5717,7 @@ index 6f2293924002..0b84ee7397e7 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/810] amba_pl011: Insert mb() for correct FIFO handling +Subject: [PATCH 058/847] 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 @@ -5750,7 +5750,7 @@ index 0b84ee7397e7..a8193f6c042e 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/810] amba_pl011: Add cts-event-workaround DT property +Subject: [PATCH 059/847] 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 @@ -5808,7 +5808,7 @@ index a8193f6c042e..2304975ecdca 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/810] tty: amba-pl011: Add un/throttle support +Subject: [PATCH 060/847] 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 @@ -5875,7 +5875,7 @@ index 2304975ecdca..6c122d279484 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/810] tty: amba-pl011: Avoid rare write-when-full error +Subject: [PATCH 061/847] 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 @@ -5923,7 +5923,7 @@ index 6c122d279484..11b31ae19a2e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: notro Date: Thu, 10 Jul 2014 13:59:47 +0200 -Subject: [PATCH 062/810] pinctrl-bcm2835: Set base to 0 give expected gpio +Subject: [PATCH 062/847] pinctrl-bcm2835: Set base to 0 give expected gpio numbering Signed-off-by: Noralf Tronnes @@ -5969,7 +5969,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/810] Main bcm2708/bcm2709 linux port +Subject: [PATCH 063/847] Main bcm2708/bcm2709 linux port MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -6131,7 +6131,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/810] Add dwc_otg driver +Subject: [PATCH 064/847] Add dwc_otg driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -67954,7 +67954,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/810] bcm2708 framebuffer driver +Subject: [PATCH 065/847] bcm2708 framebuffer driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -71528,7 +71528,7 @@ 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/810] Pulled in the multi frame buffer support from the Pi3 +Subject: [PATCH 066/847] Pulled in the multi frame buffer support from the Pi3 repo --- @@ -72363,7 +72363,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/810] fbdev: add FBIOCOPYAREA ioctl +Subject: [PATCH 067/847] fbdev: add FBIOCOPYAREA ioctl Based on the patch authored by Ali Gholami Rudi at https://lkml.org/lkml/2009/7/13/153 @@ -72710,7 +72710,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/810] Speed up console framebuffer imageblit function +Subject: [PATCH 068/847] 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 @@ -72925,7 +72925,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/810] dmaengine: Add support for BCM2708 +Subject: [PATCH 069/847] dmaengine: Add support for BCM2708 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -73579,7 +73579,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/810] MMC: added alternative MMC driver +Subject: [PATCH 070/847] MMC: added alternative MMC driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -75617,7 +75617,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/810] Adding bcm2835-sdhost driver, and an overlay to +Subject: [PATCH 071/847] Adding bcm2835-sdhost driver, and an overlay to enable it BCM2835 has two SD card interfaces. This driver uses the other one. @@ -78129,7 +78129,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/810] vc_mem: Add vc_mem driver for querying firmware +Subject: [PATCH 072/847] vc_mem: Add vc_mem driver for querying firmware memory addresses MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -78638,7 +78638,7 @@ 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/810] Add /dev/gpiomem device for rootless user GPIO access +Subject: [PATCH 073/847] Add /dev/gpiomem device for rootless user GPIO access Signed-off-by: Luke Wren @@ -78948,7 +78948,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/810] Add SMI driver +Subject: [PATCH 074/847] Add SMI driver Signed-off-by: Luke Wren @@ -80885,7 +80885,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/810] Add Chris Boot's i2c driver +Subject: [PATCH 075/847] Add Chris Boot's i2c driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -80989,7 +80989,7 @@ both bcm2708_bsc_fifo_fill and ~drain are changed as well. create mode 100644 drivers/i2c/busses/i2c-bcm2708.c diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig -index e17790fe35a7..55597652bbb1 100644 +index fea403431f22..9bebb320efce 100644 --- a/drivers/i2c/busses/Kconfig +++ b/drivers/i2c/busses/Kconfig @@ -9,6 +9,25 @@ menu "I2C Hardware Bus support" @@ -81556,7 +81556,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/810] char: broadcom: Add vcio module +Subject: [PATCH 076/847] char: broadcom: Add vcio module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -81821,7 +81821,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/810] firmware: bcm2835: Support ARCH_BCM270x +Subject: [PATCH 077/847] firmware: bcm2835: Support ARCH_BCM270x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -81901,7 +81901,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/810] BCM2708: Add core Device Tree support +Subject: [PATCH 078/847] BCM2708: Add core Device Tree support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -86821,10 +86821,10 @@ index 000000000000..ebf73b789b4a + status = "disabled"; +}; diff --git a/arch/arm/boot/dts/bcm2711.dtsi b/arch/arm/boot/dts/bcm2711.dtsi -index dff18fc9a906..8f5fd95f9970 100644 +index 21294f775a20..9ef2696b71e9 100644 --- a/arch/arm/boot/dts/bcm2711.dtsi +++ b/arch/arm/boot/dts/bcm2711.dtsi -@@ -322,6 +322,7 @@ +@@ -323,6 +323,7 @@ interrupts = ; interrupt-controller; #interrupt-cells = <1>; @@ -86832,7 +86832,7 @@ index dff18fc9a906..8f5fd95f9970 100644 }; hdmi0: hdmi@7ef00700 { -@@ -334,7 +335,8 @@ +@@ -335,7 +336,8 @@ <0x7ef01f00 0x400>, <0x7ef00200 0x80>, <0x7ef04300 0x100>, @@ -86842,7 +86842,7 @@ index dff18fc9a906..8f5fd95f9970 100644 reg-names = "hdmi", "dvp", "phy", -@@ -343,7 +345,12 @@ +@@ -344,7 +346,12 @@ "metadata", "csc", "cec", @@ -86856,7 +86856,7 @@ index dff18fc9a906..8f5fd95f9970 100644 clock-names = "hdmi", "bvb", "audio", "cec"; resets = <&dvp 0>; interrupt-parent = <&aon_intr>; -@@ -352,7 +359,7 @@ +@@ -353,7 +360,7 @@ interrupt-names = "cec-tx", "cec-rx", "cec-low", "wakeup", "hpd-connected", "hpd-removed"; ddc = <&ddc0>; @@ -86865,7 +86865,7 @@ index dff18fc9a906..8f5fd95f9970 100644 dma-names = "audio-rx"; status = "disabled"; }; -@@ -375,7 +382,8 @@ +@@ -376,7 +383,8 @@ <0x7ef06f00 0x400>, <0x7ef00280 0x80>, <0x7ef09300 0x100>, @@ -86875,7 +86875,7 @@ index dff18fc9a906..8f5fd95f9970 100644 reg-names = "hdmi", "dvp", "phy", -@@ -384,16 +392,21 @@ +@@ -385,16 +393,21 @@ "metadata", "csc", "cec", @@ -86899,7 +86899,7 @@ index dff18fc9a906..8f5fd95f9970 100644 dma-names = "audio-rx"; status = "disabled"; }; -@@ -494,14 +507,14 @@ +@@ -495,14 +508,14 @@ scb { compatible = "simple-bus"; #address-cells = <2>; @@ -86918,7 +86918,7 @@ index dff18fc9a906..8f5fd95f9970 100644 device_type = "pci"; #address-cells = <3>; #interrupt-cells = <1>; -@@ -521,8 +534,8 @@ +@@ -522,8 +535,8 @@ msi-controller; msi-parent = <&pcie0>; @@ -86929,7 +86929,7 @@ index dff18fc9a906..8f5fd95f9970 100644 /* * The wrapper around the PCIe block has a bug * preventing it from accessing beyond the first 3GB of -@@ -535,7 +548,7 @@ +@@ -536,7 +549,7 @@ genet: ethernet@7d580000 { compatible = "brcm,bcm2711-genet-v5"; @@ -86938,7 +86938,7 @@ index dff18fc9a906..8f5fd95f9970 100644 #address-cells = <0x1>; #size-cells = <0x1>; interrupts = , -@@ -1045,7 +1058,7 @@ +@@ -1046,7 +1059,7 @@ alloc-ranges = <0x0 0x00000000 0x40000000>; }; @@ -86947,7 +86947,7 @@ index dff18fc9a906..8f5fd95f9970 100644 compatible = "brcm,bcm2711-i2c", "brcm,bcm2835-i2c"; interrupts = ; }; -@@ -1101,8 +1114,3 @@ +@@ -1102,8 +1115,3 @@ &usb { interrupts = ; }; @@ -112080,7 +112080,7 @@ index 54582673fc1a..d1550a5b57bd 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/810] leds: Add the "input" trigger, for pwr_led +Subject: [PATCH 079/847] 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. @@ -112263,7 +112263,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/810] Added Device IDs for August DVB-T 205 +Subject: [PATCH 080/847] Added Device IDs for August DVB-T 205 --- drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 4 ++++ @@ -112291,7 +112291,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/810] Improve __copy_to_user and __copy_from_user +Subject: [PATCH 081/847] Improve __copy_to_user and __copy_from_user performance Provide a __copy_from_user that uses memcpy. On BCM2708, use @@ -113914,7 +113914,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/810] gpio-poweroff: Allow it to work on Raspberry Pi +Subject: [PATCH 082/847] 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 @@ -113955,7 +113955,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/810] mfd: Add Raspberry Pi Sense HAT core driver +Subject: [PATCH 083/847] mfd: Add Raspberry Pi Sense HAT core driver mfd: Add rpi_sense_core of compatible string --- @@ -114840,7 +114840,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/810] Add support for all the downstream rpi sound card +Subject: [PATCH 084/847] Add support for all the downstream rpi sound card drivers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -131835,7 +131835,7 @@ index 633b02b43c9f..b84f46116057 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: P33M Date: Wed, 21 Oct 2015 14:55:21 +0100 -Subject: [PATCH 085/810] rpi_display: add backlight driver and overlay +Subject: [PATCH 085/847] 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 @@ -132018,7 +132018,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/810] bcm2835-virtgpio: Virtual GPIO driver +Subject: [PATCH 086/847] bcm2835-virtgpio: Virtual GPIO driver Add a virtual GPIO driver that uses the firmware mailbox interface to request that the VPU toggles LEDs. @@ -132285,7 +132285,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/810] OF: DT-Overlay configfs interface +Subject: [PATCH 087/847] 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. @@ -132376,10 +132376,10 @@ index 000000000000..5fa43e064307 +intended to be used by hardware managers in the kernel, while the copy interface +make sense for developers (since it avoids problems with namespaces). diff --git a/drivers/of/Kconfig b/drivers/of/Kconfig -index 3dfeae8912df..654a25f96897 100644 +index 80b5fd44ab1c..14c2ce96e4c5 100644 --- a/drivers/of/Kconfig +++ b/drivers/of/Kconfig -@@ -98,4 +98,11 @@ config OF_DMA_DEFAULT_COHERENT +@@ -94,4 +94,11 @@ config OF_DMA_DEFAULT_COHERENT # arches should select this if DMA is coherent by default for OF devices bool @@ -132392,7 +132392,7 @@ index 3dfeae8912df..654a25f96897 100644 + endif # OF diff --git a/drivers/of/Makefile b/drivers/of/Makefile -index c13b982084a3..957a5b60c167 100644 +index e0360a44306e..90c92ced24e6 100644 --- a/drivers/of/Makefile +++ b/drivers/of/Makefile @@ -1,6 +1,7 @@ @@ -132726,7 +132726,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/810] brcm: adds support for BCM43341 wifi +Subject: [PATCH 088/847] brcm: adds support for BCM43341 wifi brcmfmac: Disable power management @@ -132838,7 +132838,7 @@ index 8effeb7a7269..14b2cdafe378 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/810] hci_h5: Don't send conf_req when ACTIVE +Subject: [PATCH 089/847] 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. @@ -132867,7 +132867,7 @@ index d49a39d17d7d..6091727c8b78 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 13 Apr 2015 17:16:29 +0100 -Subject: [PATCH 090/810] config: Add default configs +Subject: [PATCH 090/847] config: Add default configs --- arch/arm/configs/bcm2709_defconfig | 1445 +++++++++++++++++++++++++ @@ -140137,7 +140137,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/810] ARM64: Round-Robin dispatch IRQs between CPUs. +Subject: [PATCH 091/847] 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 @@ -140217,7 +140217,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/810] ARM64: Force hardware emulation of deprecated +Subject: [PATCH 092/847] ARM64: Force hardware emulation of deprecated instructions. --- @@ -140251,7 +140251,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/810] cache: export clean and invalidate +Subject: [PATCH 093/847] cache: export clean and invalidate hack: cache: Fix linker error --- @@ -140312,7 +140312,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/810] AXI performance monitor driver (#2222) +Subject: [PATCH 094/847] AXI performance monitor driver (#2222) Uses the debugfs I/F to provide access to the AXI bus performance monitors. @@ -141014,7 +141014,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/810] ARM: bcm2835: Set Serial number and Revision +Subject: [PATCH 095/847] ARM: bcm2835: Set Serial number and Revision MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -141083,7 +141083,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/810] dwc-otg: FIQ: Fix "bad mode in data abort handler" +Subject: [PATCH 096/847] 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 @@ -141205,7 +141205,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/810] ARM: Activate FIQs to avoid __irq_startup warnings +Subject: [PATCH 097/847] 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. @@ -141247,7 +141247,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/810] i2c-gpio: Also set bus numbers from reg property +Subject: [PATCH 098/847] 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 @@ -141288,7 +141288,7 @@ 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/810] added capture_clear option to pps-gpio via dtoverlay +Subject: [PATCH 099/847] added capture_clear option to pps-gpio via dtoverlay (#2433) --- @@ -141316,7 +141316,7 @@ index 35799e6401c9..36b127e24661 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/810] lan78xx: Read initial EEE status from DT +Subject: [PATCH 100/847] lan78xx: Read initial EEE status from DT Add two new DT properties: * microchip,eee-enabled - a boolean to enable EEE @@ -141362,7 +141362,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/810] hid: Reduce default mouse polling interval to 60Hz +Subject: [PATCH 101/847] hid: Reduce default mouse polling interval to 60Hz Reduces overhead when using X --- @@ -141400,7 +141400,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/810] Add ability to export gpio used by gpio-poweroff +Subject: [PATCH 102/847] Add ability to export gpio used by gpio-poweroff Signed-off-by: Nick Bulleid @@ -141465,7 +141465,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/810] firmware/raspberrypi: Notify firmware of a reboot +Subject: [PATCH 103/847] firmware/raspberrypi: Notify firmware of a reboot Register for reboot notifications, sending RPI_FIRMWARE_NOTIFY_REBOOT over the mailbox interface on reception. @@ -141555,7 +141555,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/810] irqchip: irq-bcm2835: Calc. FIQ_START at boot-time +Subject: [PATCH 104/847] 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 @@ -141627,7 +141627,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/810] of: configfs: Use of_overlay_fdt_apply API call +Subject: [PATCH 105/847] 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 @@ -141747,7 +141747,7 @@ 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/810] net: lan78xx: Disable TCP Segmentation Offload (TSO) +Subject: [PATCH 106/847] 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 @@ -141809,7 +141809,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/810] brcmfmac: Re-enable firmware roaming support +Subject: [PATCH 107/847] 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 @@ -141844,7 +141844,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/810] lan78xx: Move enabling of EEE into PHY init code +Subject: [PATCH 108/847] 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 @@ -141914,7 +141914,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/810] cxd2880: CXD2880_SPI_DRV should select DVB_CXD2880 +Subject: [PATCH 109/847] cxd2880: CXD2880_SPI_DRV should select DVB_CXD2880 with MEDIA_SUBDRV_AUTOSELECT --- @@ -141940,7 +141940,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/810] firmware: raspberrypi: Add backward compatible +Subject: [PATCH 110/847] firmware: raspberrypi: Add backward compatible get_throttled Avoid a hard userspace ABI change by adding a compatible get_throttled @@ -142025,7 +142025,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/810] sc16is7xx: Don't spin if no data received +Subject: [PATCH 111/847] sc16is7xx: Don't spin if no data received See: https://github.com/raspberrypi/linux/issues/2676 @@ -142035,7 +142035,7 @@ Signed-off-by: Phil Elwell 1 file changed, 2 insertions(+) diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c -index acbb615dd28f..f8adcb68c409 100644 +index 0ab788058fa2..a7b40ee6b94d 100644 --- a/drivers/tty/serial/sc16is7xx.c +++ b/drivers/tty/serial/sc16is7xx.c @@ -696,6 +696,8 @@ static bool sc16is7xx_port_irq(struct sc16is7xx_port *s, int portno) @@ -142054,7 +142054,7 @@ index acbb615dd28f..f8adcb68c409 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/810] drivers: thermal: step_wise: add support for +Subject: [PATCH 112/847] drivers: thermal: step_wise: add support for hysteresis Step wise governor increases the mitigation level when the temperature @@ -142149,7 +142149,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/810] drivers: thermal: step_wise: avoid throttling at +Subject: [PATCH 113/847] drivers: thermal: step_wise: avoid throttling at hysteresis temperature after dropping below it Signed-off-by: Serge Schneider @@ -142177,7 +142177,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/810] Update issue templates (#2736) +Subject: [PATCH 114/847] Update issue templates (#2736) --- .github/ISSUE_TEMPLATE/bug_report.md | 34 ++++++++++++++++++++++++++++ @@ -142231,7 +142231,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/810] net: lan78xx: Support auto-downshift to 100Mb/s +Subject: [PATCH 115/847] 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 @@ -142332,7 +142332,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/810] firmware: raspberrypi: Report the fw variant during +Subject: [PATCH 116/847] firmware: raspberrypi: Report the fw variant during probe The driver already reported the firmware build date during probe. @@ -142441,7 +142441,7 @@ 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/810] lan78xx: Debounce link events to minimize poll storm +Subject: [PATCH 117/847] 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 @@ -142492,7 +142492,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/810] lan78xx: EEE support is now a PHY property +Subject: [PATCH 118/847] 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. @@ -142524,7 +142524,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/810] bcm2835-dma: Add support for per-channel flags +Subject: [PATCH 119/847] 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 @@ -142578,7 +142578,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/810] rtc: rv3028: Add backup switchover mode support +Subject: [PATCH 120/847] rtc: rv3028: Add backup switchover mode support Signed-off-by: Phil Howard --- @@ -142634,7 +142634,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/810] lan78xx: use default alignment for rx buffers +Subject: [PATCH 121/847] 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 @@ -142663,7 +142663,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/810] media: tc358743: Increase FIFO level to 374. +Subject: [PATCH 122/847] 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 @@ -142700,7 +142700,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/810] media: tc358743: fix connected/active CSI-2 lane +Subject: [PATCH 123/847] media: tc358743: fix connected/active CSI-2 lane reporting g_mbus_config was supposed to indicate all supported lane numbers, not @@ -142782,7 +142782,7 @@ 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/810] media: tc358743: Add support for 972Mbit/s link freq. +Subject: [PATCH 124/847] 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. @@ -142867,7 +142867,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/810] media: tc358743: Check I2C succeeded during probe. +Subject: [PATCH 125/847] 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. @@ -142971,7 +142971,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/810] media: adv7180: Default to the first valid input +Subject: [PATCH 126/847] media: adv7180: Default to the first valid input The hardware default is differential CVBS on AIN1 & 2, which isn't very useful. @@ -143022,7 +143022,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/810] media: adv7180: Add YPrPb support for ADV7282M +Subject: [PATCH 127/847] 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 @@ -143052,7 +143052,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/810] media: videodev2: Add helper defines for printing +Subject: [PATCH 128/847] media: videodev2: Add helper defines for printing FOURCCs New helper defines that allow printing of a FOURCC using @@ -143086,7 +143086,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/810] dt-bindings: Document BCM283x CSI2/CCP2 receiver +Subject: [PATCH 129/847] dt-bindings: Document BCM283x CSI2/CCP2 receiver Document the DT bindings for the CSI2/CCP2 receiver peripheral (known as Unicam) on BCM283x SoCs. @@ -143196,7 +143196,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/810] MAINTAINERS: Add entry for BCM2835 Unicam driver +Subject: [PATCH 130/847] MAINTAINERS: Add entry for BCM2835 Unicam driver Adds entry for the new BCM2835 Unicam (CSI-2 receiver) driver @@ -143206,7 +143206,7 @@ Signed-off-by: Dave Stevenson 1 file changed, 7 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS -index 3b79fd441dde..d2cdcab16854 100644 +index c8103e57a70b..d550dbd836f2 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3551,6 +3551,13 @@ N: bcm113* @@ -143230,7 +143230,7 @@ index 3b79fd441dde..d2cdcab16854 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/810] media: tc358743: Return an appropriate colorspace +Subject: [PATCH 131/847] media: tc358743: Return an appropriate colorspace from tc358743_set_fmt When calling tc358743_set_fmt, the code was calling tc358743_get_fmt @@ -143334,7 +143334,7 @@ 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/810] staging: mmal-vchiq: Avoid use of bool in structures +Subject: [PATCH 132/847] staging: mmal-vchiq: Avoid use of bool in structures Fixes up a checkpatch error "Avoid using bool structure members because of possible alignment issues". @@ -143364,7 +143364,7 @@ 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/810] staging: mmal-vchiq: Add support for event callbacks. +Subject: [PATCH 133/847] staging: mmal-vchiq: Add support for event callbacks. (Preparation for the codec driver). The codec uses the event mechanism to report things such as @@ -143732,7 +143732,7 @@ 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/810] staging: vc04_services: Support sending data to MMAL +Subject: [PATCH 134/847] staging: vc04_services: Support sending data to MMAL ports Add the ability to send data to ports. This only supports @@ -143780,7 +143780,7 @@ 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/810] media: videobuf2: Allow exporting of a struct dmabuf +Subject: [PATCH 135/847] 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 @@ -143871,7 +143871,7 @@ 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/810] staging: mmal-vchiq: Fix client_component for 64 bit +Subject: [PATCH 136/847] staging: mmal-vchiq: Fix client_component for 64 bit kernel The MMAL client_component field is used with the event @@ -143912,7 +143912,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/810] clk: clk-bcm2835: Use %zd when printing size_t +Subject: [PATCH 137/847] 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". @@ -143942,7 +143942,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/810] staging: mmal_vchiq: Add in the Bayer encoding +Subject: [PATCH 138/847] staging: mmal_vchiq: Add in the Bayer encoding formats The list of formats was copied before Bayer support was added. @@ -143999,7 +143999,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/810] staging: mmal-vchiq: Update mmal_parameters.h with +Subject: [PATCH 139/847] staging: mmal-vchiq: Update mmal_parameters.h with recently defined params mmal_parameters.h hasn't been updated to reflect additions made @@ -144061,7 +144061,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/810] staging: mmal-vchiq: Free the event context for +Subject: [PATCH 140/847] staging: mmal-vchiq: Free the event context for control ports vchiq_mmal_component_init calls init_event_context for the @@ -144095,7 +144095,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/810] staging: mmal-vchiq: Fix memory leak in error path +Subject: [PATCH 141/847] staging: mmal-vchiq: Fix memory leak in error path On error, vchiq_mmal_component_init could leave the event context allocated for ports. @@ -144177,7 +144177,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/810] w1: w1-gpio: Make GPIO an output for strong pullup +Subject: [PATCH 142/847] 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 @@ -144210,7 +144210,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/810] arm: bcm2835: Fix FIQ early ioremap +Subject: [PATCH 143/847] arm: bcm2835: Fix FIQ early ioremap The ioremapping creates mappings within the vmalloc area. The equivalent early function, create_mapping, now checks that the @@ -144289,7 +144289,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/810] arm: bcm2835: DMA can only address 1GB +Subject: [PATCH 144/847] 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. @@ -144320,7 +144320,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/810] hwrng: iproc-rng200: Add BCM2838 support +Subject: [PATCH 145/847] 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. @@ -144481,7 +144481,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/810] bcmgenet: constrain max DMA burst length +Subject: [PATCH 146/847] bcmgenet: constrain max DMA burst length --- drivers/net/ethernet/broadcom/genet/bcmgenet.h | 2 +- @@ -144507,7 +144507,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/810] bcmgenet: Better coalescing parameter defaults +Subject: [PATCH 147/847] bcmgenet: Better coalescing parameter defaults Set defaults for TX and RX packet coalescing to be equivalent to: @@ -144556,7 +144556,7 @@ index 9a67e24f46b2..9e35b94ef0ab 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/810] net: genet: enable link energy detect powerdown for +Subject: [PATCH 148/847] net: genet: enable link energy detect powerdown for external PHYs There are several warts surrounding bcmgenet_mii_probe() as this @@ -144593,7 +144593,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/810] spi: bcm2835: enable shared interrupt support +Subject: [PATCH 149/847] spi: bcm2835: enable shared interrupt support Add shared interrupt support for this driver. @@ -144634,7 +144634,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/810] clk-bcm2835: Don't wait for pllh lock +Subject: [PATCH 150/847] clk-bcm2835: Don't wait for pllh lock Signed-off-by: Phil Elwell --- @@ -144678,7 +144678,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/810] soc: bcm: bcm2835-pm: Add support for 2711. +Subject: [PATCH 151/847] 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 @@ -144790,7 +144790,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/810] clk: bcm2835: Add support for setting leaf clock +Subject: [PATCH 152/847] 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 @@ -144849,7 +144849,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/810] clk: bcm2835: Allow reparenting leaf clocks while +Subject: [PATCH 153/847] clk: bcm2835: Allow reparenting leaf clocks while they're running. This falls under the same "we can reprogram glitch-free as long as we @@ -144926,7 +144926,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/810] usb: add plumbing for updating interrupt endpoint +Subject: [PATCH 154/847] usb: add plumbing for updating interrupt endpoint interval state xHCI caches device and endpoint data after the interface is configured, @@ -145042,7 +145042,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/810] xhci: implement xhci_fixup_endpoint for interval +Subject: [PATCH 155/847] xhci: implement xhci_fixup_endpoint for interval adjustments Must be called in a non-atomic context, after the endpoint @@ -145055,10 +145055,10 @@ Signed-off-by: Jonathan Bell 1 file changed, 104 insertions(+) diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index f5b1bcc875de..1cb319a41541 100644 +index d7c0bf494d93..2e482d48eb11 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -1590,6 +1590,109 @@ static int xhci_check_maxpacket(struct xhci_hcd *xhci, unsigned int slot_id, +@@ -1597,6 +1597,109 @@ static int xhci_check_maxpacket(struct xhci_hcd *xhci, unsigned int slot_id, return ret; } @@ -145168,7 +145168,7 @@ index f5b1bcc875de..1cb319a41541 100644 /* * non-error returns are a promise to giveback() the urb later * we drop ownership so next owner (or urb unlink) can get it -@@ -5413,6 +5516,7 @@ static const struct hc_driver xhci_hc_driver = { +@@ -5423,6 +5526,7 @@ static const struct hc_driver xhci_hc_driver = { .endpoint_reset = xhci_endpoint_reset, .check_bandwidth = xhci_check_bandwidth, .reset_bandwidth = xhci_reset_bandwidth, @@ -145183,7 +145183,7 @@ index f5b1bcc875de..1cb319a41541 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/810] usbhid: call usb_fixup_endpoint after mangling +Subject: [PATCH 156/847] usbhid: call usb_fixup_endpoint after mangling intervals Lets the mousepoll override mechanism work with xhci. @@ -145212,7 +145212,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/810] arm: bcm2835: Add bcm2838 compatible string. +Subject: [PATCH 157/847] arm: bcm2835: Add bcm2838 compatible string. Signed-off-by: Phil Elwell --- @@ -145238,7 +145238,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/810] drm/v3d: Add support for 2711. +Subject: [PATCH 158/847] drm/v3d: Add support for 2711. Signed-off-by: Eric Anholt --- @@ -145264,7 +145264,7 @@ index 9403c3b36aca..02c6f4d67837 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/810] drm/v3d: Skip MMU flush if the device is currently +Subject: [PATCH 159/847] 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 @@ -145322,7 +145322,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/810] drm/v3d: Hook up the runtime PM ops. +Subject: [PATCH 160/847] 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 @@ -145396,7 +145396,7 @@ index 02c6f4d67837..441ee13d7b65 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/810] i2c: bcm2835: Set clock-stretch timeout to 35ms +Subject: [PATCH 161/847] 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 @@ -145413,10 +145413,10 @@ Signed-off-by: Phil Elwell 1 file changed, 12 insertions(+) diff --git a/drivers/i2c/busses/i2c-bcm2835.c b/drivers/i2c/busses/i2c-bcm2835.c -index 18b2e9e3d752..5b2589b6b9cc 100644 +index f66da1e25c3d..f98033ca56bb 100644 --- a/drivers/i2c/busses/i2c-bcm2835.c +++ b/drivers/i2c/busses/i2c-bcm2835.c -@@ -188,6 +188,7 @@ static int clk_bcm2835_i2c_set_rate(struct clk_hw *hw, unsigned long rate, +@@ -193,6 +193,7 @@ static int clk_bcm2835_i2c_set_rate(struct clk_hw *hw, unsigned long rate, { struct clk_bcm2835_i2c *div = to_clk_bcm2835_i2c(hw); u32 redl, fedl; @@ -145424,7 +145424,7 @@ index 18b2e9e3d752..5b2589b6b9cc 100644 u32 divider = clk_bcm2835_i2c_calc_divider(rate, parent_rate); if (divider == -EINVAL) -@@ -211,6 +212,17 @@ static int clk_bcm2835_i2c_set_rate(struct clk_hw *hw, unsigned long rate, +@@ -216,6 +217,17 @@ static int clk_bcm2835_i2c_set_rate(struct clk_hw *hw, unsigned long rate, bcm2835_i2c_writel(div->i2c_dev, BCM2835_I2C_DEL, (fedl << BCM2835_I2C_FEDL_SHIFT) | (redl << BCM2835_I2C_REDL_SHIFT)); @@ -145449,7 +145449,7 @@ index 18b2e9e3d752..5b2589b6b9cc 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 6 Aug 2019 15:23:14 +0100 -Subject: [PATCH 162/810] clk-bcm2835: Avoid null pointer exception +Subject: [PATCH 162/847] clk-bcm2835: Avoid null pointer exception clk_desc_array[BCM2835_PLLB] doesn't exist so we dereference null when iterating @@ -145484,7 +145484,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/810] drm/v3d: HACK: gut runtime pm for now. +Subject: [PATCH 163/847] 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 @@ -145601,7 +145601,7 @@ index 441ee13d7b65..3969b64127e0 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/810] drm/v3d: Clock V3D down when not in use. +Subject: [PATCH 164/847] 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. @@ -145772,7 +145772,7 @@ index 772b5831bcc6..d369221642c5 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/810] drivers: char: add chardev for mmap'ing the RPiVid +Subject: [PATCH 165/847] drivers: char: add chardev for mmap'ing the RPiVid control registers Based on the gpiomem driver, allow mapping of the decoder register @@ -146230,7 +146230,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/810] hid: usb: Add device quirks for Freeway Airmouse T3 +Subject: [PATCH 166/847] hid: usb: Add device quirks for Freeway Airmouse T3 and MX3 These wireless mouse/keyboard combo remote control devices specify @@ -146301,7 +146301,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/810] Add HDMI1 facility to the driver. +Subject: [PATCH 167/847] 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 @@ -146394,7 +146394,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/810] net: bcmgenet: Workaround #2 for Pi4 Ethernet fail +Subject: [PATCH 168/847] 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 @@ -146451,7 +146451,7 @@ index 9e35b94ef0ab..75399448063e 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/810] xhci: Use more event ring segment table entries +Subject: [PATCH 169/847] 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 @@ -146519,7 +146519,7 @@ index 5a75fe563123..20b1819ac8d5 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/810] configs: arm64/bcm2711: Enable V3D +Subject: [PATCH 170/847] configs: arm64/bcm2711: Enable V3D Enable the V3D driver, which depends on BCM2835_POWER. @@ -146553,7 +146553,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/810] arch/arm: Add model string to cpuinfo +Subject: [PATCH 171/847] arch/arm: Add model string to cpuinfo Signed-off-by: Phil Elwell --- @@ -146595,7 +146595,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/810] arch/arm64: Add Revision, Serial, Model to cpuinfo +Subject: [PATCH 172/847] arch/arm64: Add Revision, Serial, Model to cpuinfo Signed-off-by: Phil Elwell --- @@ -146603,7 +146603,7 @@ Signed-off-by: Phil Elwell 1 file changed, 25 insertions(+) diff --git a/arch/arm64/kernel/cpuinfo.c b/arch/arm64/kernel/cpuinfo.c -index 87731fea5e41..619ad8e3db71 100644 +index 591c18a889a5..ae90c11f9623 100644 --- a/arch/arm64/kernel/cpuinfo.c +++ b/arch/arm64/kernel/cpuinfo.c @@ -17,6 +17,7 @@ @@ -146614,7 +146614,7 @@ index 87731fea5e41..619ad8e3db71 100644 #include #include #include -@@ -137,6 +138,10 @@ static int c_show(struct seq_file *m, void *v) +@@ -140,6 +141,10 @@ static int c_show(struct seq_file *m, void *v) { int i, j; bool compat = personality(current->personality) == PER_LINUX32; @@ -146625,7 +146625,7 @@ index 87731fea5e41..619ad8e3db71 100644 for_each_online_cpu(i) { struct cpuinfo_arm64 *cpuinfo = &per_cpu(cpu_data, i); -@@ -197,6 +202,26 @@ static int c_show(struct seq_file *m, void *v) +@@ -200,6 +205,26 @@ static int c_show(struct seq_file *m, void *v) seq_printf(m, "CPU revision\t: %d\n\n", MIDR_REVISION(midr)); } @@ -146659,7 +146659,7 @@ index 87731fea5e41..619ad8e3db71 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/810] media: dt-bindings: Add binding for the Sony IMX219 +Subject: [PATCH 173/847] media: dt-bindings: Add binding for the Sony IMX219 sensor The IMX219 is an 8MPix CSI2 sensor, supporting 2 or 4 data lanes. @@ -146743,7 +146743,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/810] v4l2: Add a Greyworld AWB mode. +Subject: [PATCH 174/847] 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) @@ -151816,7 +151816,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/810] staging: bcm2835-camera: Add greyworld AWB mode +Subject: [PATCH 175/847] 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. @@ -151861,7 +151861,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/810] drm/v3d: Delete pm_runtime support +Subject: [PATCH 176/847] drm/v3d: Delete pm_runtime support The pm_runtime was blocking changelist submission, so delete it as a temporary workaround. @@ -151931,7 +151931,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/810] ARM: bcm: Switch board, clk and pinctrl to bcm2711 +Subject: [PATCH 177/847] ARM: bcm: Switch board, clk and pinctrl to bcm2711 compatible After the decision to use bcm2711 compatible for upstream, we should @@ -151963,7 +151963,7 @@ 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/810] Rename HDMI ALSA device names, check for enable state +Subject: [PATCH 178/847] 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 @@ -152108,7 +152108,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/810] dt-bindings: Add binding for the Infineon IRS1125 +Subject: [PATCH 179/847] dt-bindings: Add binding for the Infineon IRS1125 sensor Adds a binding for the Infineon IRS1125 time-of-flight depth @@ -152181,7 +152181,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/810] media: i2c: Add a driver for the Infineon IRS1125 +Subject: [PATCH 180/847] media: i2c: Add a driver for the Infineon IRS1125 depth sensor The Infineon IRS1125 is a time of flight depth sensor that @@ -153426,7 +153426,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/810] drm/v3d: Suppress all but the first MMU error +Subject: [PATCH 181/847] 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. @@ -153471,7 +153471,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/810] drm/v3d: Plug dma_fence leak +Subject: [PATCH 182/847] 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 @@ -153505,7 +153505,7 @@ index 7ca97c3d7975..a378a0cc67c2 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/810] staging: vchiq_arm: Register vcsm-cma as a platform +Subject: [PATCH 183/847] staging: vchiq_arm: Register vcsm-cma as a platform driver Following the same pattern as bcm2835-camera and bcm2835-audio, @@ -153551,7 +153551,7 @@ index ea9a53bdb417..baad5e08f8cc 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/810] staging: vchiq_arm: Register bcm2835-codec as a +Subject: [PATCH 184/847] staging: vchiq_arm: Register bcm2835-codec as a platform driver Following the same pattern as bcm2835-camera and bcm2835-audio, @@ -153597,7 +153597,7 @@ index baad5e08f8cc..b89d35d34459 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/810] net:phy:2711 Allow ethernet LED mode to be set via +Subject: [PATCH 185/847] net:phy:2711 Allow ethernet LED mode to be set via device tree Add device tree entries and code to allow the specification of @@ -153658,7 +153658,7 @@ index db26ff8ce7db..9c35a9bb1943 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 23 Aug 2019 16:34:38 +0100 -Subject: [PATCH 186/810] v3d_drv: Handle missing clock more gracefully +Subject: [PATCH 186/847] v3d_drv: Handle missing clock more gracefully Signed-off-by: popcornmix --- @@ -153691,7 +153691,7 @@ index e202870873a4..6112a8f72adc 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 5 Sep 2019 17:59:14 +0100 -Subject: [PATCH 187/810] v3d_gem: Kick the clock so firmware knows we are +Subject: [PATCH 187/847] 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 @@ -153724,7 +153724,7 @@ index a378a0cc67c2..0cfc30daa6a6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 9 Sep 2019 15:49:56 +0100 -Subject: [PATCH 188/810] clk-raspberrypi: Allow cpufreq driver to also adjust +Subject: [PATCH 188/847] clk-raspberrypi: Allow cpufreq driver to also adjust gpu clocks For performance/power it is beneficial to adjust gpu clocks with arm clock. @@ -153755,7 +153755,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/810] clk-bcm2835: Disable v3d clock +Subject: [PATCH 189/847] clk-bcm2835: Disable v3d clock This is controlled by firmware, see clk-raspberrypi.c @@ -153819,7 +153819,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/810] staging: vchiq_arm: Set up dma ranges on child +Subject: [PATCH 190/847] staging: vchiq_arm: Set up dma ranges on child devices The VCHIQ driver now loads the audio, camera, codec, and vc-sm @@ -153858,7 +153858,7 @@ index b89d35d34459..9a167fe4c33e 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/810] staging: vchiq: Use the old dma controller for OF +Subject: [PATCH 191/847] 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 @@ -153915,7 +153915,7 @@ index 9a167fe4c33e..1d730654c3cf 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/810] ARM: bcm: Backport BCM2711 support from upstream +Subject: [PATCH 192/847] ARM: bcm: Backport BCM2711 support from upstream Make the BCM2711 a different machine, but keep it in board_bcm2835. @@ -153968,7 +153968,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/810] Initialise rpi-firmware before clk-bcm2835 +Subject: [PATCH 193/847] 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 @@ -154023,7 +154023,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/810] staging: vchiq_arm: Give vchiq children DT nodes +Subject: [PATCH 194/847] 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 @@ -154068,7 +154068,7 @@ index 1d730654c3cf..ada8c448a472 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/810] pinctrl: bcm2835: Remove gpiochip on error +Subject: [PATCH 195/847] 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. @@ -154099,7 +154099,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/810] drivers: char: vcio: Use common compat header +Subject: [PATCH 196/847] drivers: char: vcio: Use common compat header The definition of compat_ptr is now common for most platforms, but requires the inclusion of . @@ -154128,7 +154128,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/810] video: fbdev: bcm2708_fb: Use common compat header +Subject: [PATCH 197/847] video: fbdev: bcm2708_fb: Use common compat header The definition of compat_ptr is now common for most platforms, but requires the inclusion of . @@ -154157,7 +154157,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/810] of: overlay: Correct symbol path fixups +Subject: [PATCH 198/847] 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 @@ -154200,7 +154200,7 @@ 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/810] dt-bindings: pci: Add DT docs for Brcmstb PCIe device +Subject: [PATCH 199/847] 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 @@ -154284,7 +154284,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/810] bcmgenet: Disable skip_umac_reset by default +Subject: [PATCH 200/847] bcmgenet: Disable skip_umac_reset by default Possible fixed upstream by 'net: bcmgenet: keep MAC in reset until PHY is up' @@ -154313,7 +154313,7 @@ index 75399448063e..73b3db0fa2ba 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/810] drm/fourcc: Add packed 10bit YUV 4:2:0 format +Subject: [PATCH 201/847] 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). @@ -154376,7 +154376,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/810] media: uapi: hevc: Add scaling matrix control +Subject: [PATCH 202/847] media: uapi: hevc: Add scaling matrix control Taken from https://patchwork.linuxtv.org/patch/60728/ Changes (mainly documentation) have been requested. @@ -154542,7 +154542,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/810] media: uapi: hevc: Add segment address field +Subject: [PATCH 203/847] media: uapi: hevc: Add segment address field From https://patchwork.linuxtv.org/patch/60725/ Changes requested, but mainly docs. @@ -154609,7 +154609,7 @@ 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/810] media: videodev2.h: Add a format for column YUV4:2:0 +Subject: [PATCH 204/847] 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 @@ -154932,7 +154932,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/810] media: dt-bindings: media: Add binding for the +Subject: [PATCH 205/847] 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. @@ -155023,7 +155023,7 @@ index 000000000000..ce6b81a10303 + +... diff --git a/MAINTAINERS b/MAINTAINERS -index d2cdcab16854..512a5a5d7b71 100644 +index d550dbd836f2..56fa510c63c8 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3551,6 +3551,13 @@ N: bcm113* @@ -155047,7 +155047,7 @@ index d2cdcab16854..512a5a5d7b71 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/810] staging: media: Add Raspberry Pi V4L2 H265 decoder +Subject: [PATCH 206/847] 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. @@ -159429,7 +159429,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/810] dt-bindings: clock: Add a binding for the RPi +Subject: [PATCH 207/847] dt-bindings: clock: Add a binding for the RPi Firmware clocks The firmare running on the RPi VideoCore can be used to discover and @@ -159499,7 +159499,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/810] dt-bindings: display: vc4: hdmi: Add BCM2711 HDMI +Subject: [PATCH 208/847] dt-bindings: display: vc4: hdmi: Add BCM2711 HDMI controllers bindings The HDMI controllers found in the BCM2711 SoC need some adjustments to the @@ -159679,7 +159679,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/810] drm: Checking of the pitch is only valid for linear +Subject: [PATCH 209/847] drm: Checking of the pitch is only valid for linear formats framebuffer_check was computing a minimum pitch value and ensuring @@ -159725,7 +159725,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/810] driver: char: rpivid: Remove legacy name support +Subject: [PATCH 210/847] driver: char: rpivid: Remove legacy name support Signed-off-by: Phil Elwell --- @@ -159784,7 +159784,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/810] spi: Force CS_HIGH if GPIO descriptors are used +Subject: [PATCH 211/847] 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 @@ -159847,7 +159847,7 @@ index a42b9e8521ce..047b382dc30b 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/810] driver: char: rpivid: Don't map more than wanted +Subject: [PATCH 212/847] 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. @@ -159904,7 +159904,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/810] media: bcm2835-unicam: Driver for CCP2/CSI2 camera +Subject: [PATCH 213/847] media: bcm2835-unicam: Driver for CCP2/CSI2 camera interface Add driver for the Unicam camera receiver block on @@ -159930,7 +159930,7 @@ Signed-off-by: Naushir Patuck create mode 100644 drivers/media/platform/bcm2835/vc4-regs-unicam.h diff --git a/MAINTAINERS b/MAINTAINERS -index 512a5a5d7b71..8688aaded569 100644 +index 56fa510c63c8..5b713ab37e82 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3559,7 +3559,7 @@ F: Documentation/devicetree/bindings/media/rpivid_hevc.jaml @@ -162637,7 +162637,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/810] media: uapi: v4l2-core: Add sensor ancillary data +Subject: [PATCH 214/847] media: uapi: v4l2-core: Add sensor ancillary data V4L2 foucc type. Add V4L2_META_FMT_SENSOR_DATA format 4CC. @@ -162735,7 +162735,7 @@ 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/810] media: uapi: Add MEDIA_BUS_FMT_SENSOR_DATA media bus +Subject: [PATCH 215/847] media: uapi: Add MEDIA_BUS_FMT_SENSOR_DATA media bus format This patch adds MEDIA_BUS_FMT_SENSOR_DATA used by the bcm2835-unicam @@ -162806,7 +162806,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/810] media: bcm2835-unicam: Add support for mulitple +Subject: [PATCH 216/847] media: bcm2835-unicam: Add support for mulitple device nodes. Move device node specific state out of the device state structure and @@ -163895,7 +163895,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/810] media: bcm2835-unicam: Add embedded data node. +Subject: [PATCH 217/847] 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 @@ -165069,7 +165069,7 @@ 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/810] media: bcm2835-unicam: Use dummy buffer if none have +Subject: [PATCH 218/847] media: bcm2835-unicam: Use dummy buffer if none have been queued If no buffer has been queued by a userland application, we use an @@ -165383,7 +165383,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/810] media: bcm2835-unicam: Disable event-related ioctls +Subject: [PATCH 219/847] media: bcm2835-unicam: Disable event-related ioctls on metadata node The unicam driver supports both the SOURCE_CHANGE and CTRL events. Both @@ -165420,7 +165420,7 @@ 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/810] media: bcm2835-unicam: Add support for the FRAME_SYNC +Subject: [PATCH 220/847] media: bcm2835-unicam: Add support for the FRAME_SYNC event The FRAME_SYNC event is useful for userspace image processing algorithms @@ -165481,7 +165481,7 @@ 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/810] media: bcm2835-unicam: Re-fetch mbus code from subdev +Subject: [PATCH 221/847] 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 @@ -165536,7 +165536,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/810] media: uapi: v4l2-core: Add ISP statistics output +Subject: [PATCH 222/847] media: uapi: v4l2-core: Add ISP statistics output V4L2 fourcc type Add V4L2_META_FMT_BCM2835_ISP_STATS V4L2 format type. @@ -165643,7 +165643,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/810] media: uapi: v4l-ctrls: Add CID base for the +Subject: [PATCH 223/847] media: uapi: v4l-ctrls: Add CID base for the bcm2835-isp driver We are reserving controls for the new bcm2835-isp driver. @@ -165823,7 +165823,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/810] staging: vchiq: Load bcm2835_isp driver from vchiq +Subject: [PATCH 224/847] 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. @@ -165868,7 +165868,7 @@ index ada8c448a472..d8f67a2100d3 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/810] bcm2835-dma: Add proper 40-bit DMA support +Subject: [PATCH 225/847] 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. @@ -166674,7 +166674,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/810] media: bcm2835-unicam: Add support for +Subject: [PATCH 226/847] media: bcm2835-unicam: Add support for VIDIOC_[S|G]_SELECTION Sensors are now reflecting cropping and scaling parameters through @@ -166762,7 +166762,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/810] media: bcm2835-unicam: Do not stop streaming in +Subject: [PATCH 227/847] media: bcm2835-unicam: Do not stop streaming in unicam_release unicam_release calls _vb2_fop_release, which will call stop_streaming @@ -166796,7 +166796,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/810] media: bcm2835-unicam: Fix reference counting in +Subject: [PATCH 228/847] media: bcm2835-unicam: Fix reference counting in unicam_open The reference counting of node->open was only incremented after @@ -166840,7 +166840,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/810] media: i2c: tc358743: Fix fallthrough warning +Subject: [PATCH 229/847] media: i2c: tc358743: Fix fallthrough warning Signed-off-by: Jacko Dirks --- @@ -166866,7 +166866,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/810] media: bcm2835: unicam: Fix uninitialized warning +Subject: [PATCH 230/847] media: bcm2835: unicam: Fix uninitialized warning Signed-off-by: Jacko Dirks --- @@ -166893,7 +166893,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/810] video: bcm2708_fb: Disable FB if no displays found +Subject: [PATCH 231/847] 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 @@ -166933,7 +166933,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/810] dt-bindings: media: i2c: Add IMX477 CMOS sensor +Subject: [PATCH 232/847] dt-bindings: media: i2c: Add IMX477 CMOS sensor binding Add YAML device tree binding for IMX477 CMOS image sensor. @@ -167070,7 +167070,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/810] media: bcm2835-unicam: Always service interrupts +Subject: [PATCH 233/847] 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 @@ -167127,7 +167127,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/810] sc16is7xx: Fix for hardware flow control +Subject: [PATCH 234/847] sc16is7xx: Fix for hardware flow control The SC16IS7XX hardware flow control is mishandled by the driver in a number of ways: @@ -167151,7 +167151,7 @@ Signed-off-by: Phil Elwell 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c -index f8adcb68c409..2836fc22b1d4 100644 +index a7b40ee6b94d..e30d7d371221 100644 --- a/drivers/tty/serial/sc16is7xx.c +++ b/drivers/tty/serial/sc16is7xx.c @@ -523,8 +523,9 @@ static int sc16is7xx_set_baud(struct uart_port *port, int baud) @@ -167166,7 +167166,7 @@ index f8adcb68c409..2836fc22b1d4 100644 regcache_cache_bypass(s->regmap, false); /* Put LCR back to the normal mode */ -@@ -839,7 +840,7 @@ static unsigned int sc16is7xx_get_mctrl(struct uart_port *port) +@@ -842,7 +843,7 @@ static unsigned int sc16is7xx_get_mctrl(struct uart_port *port) /* DCD and DSR are not wired and CTS/RTS is handled automatically * so just indicate DSR and CAR asserted */ @@ -167175,7 +167175,7 @@ index f8adcb68c409..2836fc22b1d4 100644 } static void sc16is7xx_set_mctrl(struct uart_port *port, unsigned int mctrl) -@@ -926,14 +927,19 @@ static void sc16is7xx_set_termios(struct uart_port *port, +@@ -929,14 +930,19 @@ static void sc16is7xx_set_termios(struct uart_port *port, regcache_cache_bypass(s->regmap, true); sc16is7xx_port_write(port, SC16IS7XX_XON1_REG, termios->c_cc[VSTART]); sc16is7xx_port_write(port, SC16IS7XX_XOFF1_REG, termios->c_cc[VSTOP]); @@ -167203,7 +167203,7 @@ index f8adcb68c409..2836fc22b1d4 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/810] staging: vc04_services: mmal-vchiq: Update parameters +Subject: [PATCH 235/847] staging: vc04_services: mmal-vchiq: Update parameters list Adds in a couple of new MMAL parameter defines. @@ -167237,7 +167237,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/810] staging:vc04_services: bcm2835-camera: Request +Subject: [PATCH 236/847] staging:vc04_services: bcm2835-camera: Request headers with I-frame V4L2 wishes to have the codec header bytes in the same buffer as the @@ -167273,7 +167273,7 @@ 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/810] media: bcm2835-unicam: Retain packing information on +Subject: [PATCH 237/847] media: bcm2835-unicam: Retain packing information on G_FMT The change to retrieve the pixel format always on g_fmt didn't @@ -167327,7 +167327,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/810] zswap: Defer zswap initialisation +Subject: [PATCH 238/847] 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 @@ -167458,7 +167458,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/810] media: bcm2835-unicam: change minimum number of +Subject: [PATCH 239/847] 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 @@ -167492,7 +167492,7 @@ index b32b2d33a4e2..e76323af0952 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 19 May 2020 09:46:12 +0100 -Subject: [PATCH 240/810] brcmfmac: BCM43436 needs dedicated firmware +Subject: [PATCH 240/847] brcmfmac: BCM43436 needs dedicated firmware Signed-off-by: Phil Elwell --- @@ -167527,7 +167527,7 @@ index 14b2cdafe378..60f4e689ef14 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Hristo Venev Date: Fri, 5 Jun 2020 09:22:49 +0000 -Subject: [PATCH 241/810] snd_bcm2835: disable HDMI audio when vc4 is used +Subject: [PATCH 241/847] snd_bcm2835: disable HDMI audio when vc4 is used (#3640) Things don't work too well when both the vc4 driver and the firmware @@ -167566,7 +167566,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 242/810] gpiolib: Don't prevent IRQ usage of output GPIOs +Subject: [PATCH 242/847] 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 @@ -167581,7 +167581,7 @@ Signed-off-by: Phil Elwell 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c -index d1b9b721218f..34bac9a763ef 100644 +index 358f0ad9d0f8..723aba302f04 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -52,6 +52,8 @@ @@ -167593,7 +167593,7 @@ index d1b9b721218f..34bac9a763ef 100644 /* Device and char device-related information */ static DEFINE_IDA(gpio_ida); static dev_t gpio_devt; -@@ -2332,8 +2334,8 @@ int gpiod_direction_output(struct gpio_desc *desc, int value) +@@ -2342,8 +2344,8 @@ int gpiod_direction_output(struct gpio_desc *desc, int value) value = !!value; /* GPIOs used for enabled IRQs shall not be set as output */ @@ -167604,7 +167604,7 @@ index d1b9b721218f..34bac9a763ef 100644 gpiod_err(desc, "%s: tried to set a GPIO tied to an IRQ as output\n", __func__); -@@ -3141,8 +3143,8 @@ int gpiochip_lock_as_irq(struct gpio_chip *gc, unsigned int offset) +@@ -3161,8 +3163,8 @@ int gpiochip_lock_as_irq(struct gpio_chip *gc, unsigned int offset) } /* To be valid for IRQ the line needs to be input or open drain */ @@ -167622,7 +167622,7 @@ index d1b9b721218f..34bac9a763ef 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 11 Jun 2020 09:57:03 +0100 -Subject: [PATCH 243/810] PCI: brcmstb: Add DT property to control L1SS +Subject: [PATCH 243/847] 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. @@ -167707,7 +167707,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 244/810] media: irs1125: Using i2c_transfer for ic2 reads +Subject: [PATCH 244/847] 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. @@ -167778,7 +167778,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 245/810] media: irs1125: Refactoring and debug messages +Subject: [PATCH 245/847] media: irs1125: Refactoring and debug messages Changed some variable names to comply with checkpatch --strict mode. Debug messages added. @@ -167907,7 +167907,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 246/810] media: irs1125: Atomic access to imager +Subject: [PATCH 246/847] media: irs1125: Atomic access to imager reconfiguration Instead of changing the exposure and framerate settings for all sequences, @@ -168296,7 +168296,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 247/810] media: irs1125: Keep HW in sync after imager reset +Subject: [PATCH 247/847] 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 @@ -168483,7 +168483,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 248/810] staging: bcm2835-audio: Add missing MODULE_ALIAS +Subject: [PATCH 248/847] 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 @@ -168519,7 +168519,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 249/810] brcmfmac: Prefer a ccode from OTP over nvram file +Subject: [PATCH 249/847] 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. @@ -168656,7 +168656,7 @@ index d99140960a82..193181c914ab 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 23 Jun 2020 10:05:57 +0100 -Subject: [PATCH 250/810] drivers: media: Remove the downstream version of +Subject: [PATCH 250/847] drivers: media: Remove the downstream version of bcm2835-unicam About to be replaced by the upstream version. @@ -171847,7 +171847,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 251/810] media: bcm2835-unicam: Driver for CCP2/CSI2 camera +Subject: [PATCH 251/847] media: bcm2835-unicam: Driver for CCP2/CSI2 camera interface Add a driver for the Unicam camera receiver block on BCM283x processors. @@ -171876,7 +171876,7 @@ Reported-by: kbuild test robot create mode 100644 drivers/media/platform/bcm2835/vc4-regs-unicam.h diff --git a/MAINTAINERS b/MAINTAINERS -index 8688aaded569..77181bae6abe 100644 +index 5b713ab37e82..bab0aaeab8e3 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3563,7 +3563,7 @@ M: Raspberry Pi Kernel Maintenance @@ -175015,7 +175015,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 252/810] media: bcm2835-unicam: Add support for +Subject: [PATCH 252/847] 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 @@ -175077,7 +175077,7 @@ 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 253/810] media: bcm2835-unicam: Avoid gcc warning over {0} on +Subject: [PATCH 253/847] media: bcm2835-unicam: Avoid gcc warning over {0} on endpoint Older gcc versions object to = { 0 } initialisation if the first @@ -175110,7 +175110,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 254/810] media: i2c: imx290: set the format before +Subject: [PATCH 254/847] media: i2c: imx290: set the format before VIDIOC_SUBDEV_G_FMT is called Commit d46cfdc86c30d5ec768924f0b1e2683c8d20b671 upstream. @@ -175156,7 +175156,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 255/810] media: i2c: imx290: Add support for 74.25MHz clock +Subject: [PATCH 255/847] 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. @@ -175426,7 +175426,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 256/810] media: i2c: imx290: Correct range for V4L2_CID_GAIN +Subject: [PATCH 256/847] 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 @@ -175458,7 +175458,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 257/810] media: i2c: imx290: Convert HMAX setting into +Subject: [PATCH 257/847] media: i2c: imx290: Convert HMAX setting into V4L2_CID_HBLANK Userspace needs to know HBLANK if it is to work out exposure times @@ -175623,7 +175623,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 258/810] media: i2c: imx290: Add support for V4L2_CID_VBLANK +Subject: [PATCH 258/847] 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, @@ -175770,7 +175770,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 259/810] media: i2c: imx290: Add exposure control to the +Subject: [PATCH 259/847] media: i2c: imx290: Add exposure control to the driver. Adds support for V4L2_CID_EXPOSURE so that userspace can control @@ -175869,7 +175869,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 260/810] media: i2c: imx290: Add H and V flip controls +Subject: [PATCH 260/847] 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. @@ -175958,7 +175958,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 261/810] media: dt-bindings: media: i2c: Add mono version to +Subject: [PATCH 261/847] media: dt-bindings: media: i2c: Add mono version to IMX290 bindings The IMX290 module is available as either monochrome or colour and @@ -176000,7 +176000,7 @@ 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 262/810] media : i2c: imx290: Add support for the mono sensor +Subject: [PATCH 262/847] media : i2c: imx290: Add support for the mono sensor variant. The IMX290 module is available as either mono or colour (Bayer). @@ -176191,7 +176191,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 263/810] media: i2c: imx290: Switch set_hmax to use +Subject: [PATCH 263/847] media: i2c: imx290: Switch set_hmax to use imx290_write_buffered_reg imx290_set_hmax was using two independent writes to set up hmax, @@ -176240,7 +176240,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 264/810] serial: 8250: bcm2835aux - defer if clock is zero +Subject: [PATCH 264/847] serial: 8250: bcm2835aux - defer if clock is zero See: https://github.com/raspberrypi/linux/issues/3700 @@ -176274,7 +176274,7 @@ 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 265/810] media: Add a pixel format for MIPI packed 12bit luma +Subject: [PATCH 265/847] media: Add a pixel format for MIPI packed 12bit luma only. This is the format used by monochrome 12bit image sensors. @@ -176382,7 +176382,7 @@ 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 266/810] media: Add a pixel format for MIPI packed 14bit luma +Subject: [PATCH 266/847] media: Add a pixel format for MIPI packed 14bit luma only. This is the format used by monochrome 14bit image sensors. @@ -176499,7 +176499,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 267/810] media: bcm2835-unicam: Add support for 12bit mono +Subject: [PATCH 267/847] media: bcm2835-unicam: Add support for 12bit mono packed format Now that V4L2_PIX_FMT_Y12P is defined, allow passing raw 12bit @@ -176530,7 +176530,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 268/810] media: bcm2835-unicam: Add support for 14bit mono +Subject: [PATCH 268/847] media: bcm2835-unicam: Add support for 14bit mono sources Now that V4L2_PIX_FMT_Y14 and V4L2_PIX_FMT_Y14P are defined, @@ -176565,7 +176565,7 @@ 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 269/810] media: bcm2835-unicam: Add support for unpacked 14bit +Subject: [PATCH 269/847] media: bcm2835-unicam: Add support for unpacked 14bit Bayer formats Now that the 14bit non-packed Bayer formats are defined, add them @@ -176613,7 +176613,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 270/810] bcm2835-dma: Add NO_WAIT_RESP flag +Subject: [PATCH 270/847] 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. @@ -176673,7 +176673,7 @@ 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 271/810] media: i2c: imx290: Explicitly set v&h blank on mode +Subject: [PATCH 271/847] media: i2c: imx290: Explicitly set v&h blank on mode change __v4l2_ctrl_modify_range only updates the current value should @@ -176725,7 +176725,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 272/810] media: i2c: imx290: Add support for g_selection to +Subject: [PATCH 272/847] media: i2c: imx290: Add support for g_selection to report cropping Userspace needs to know the cropping arrangements for each mode, @@ -176887,7 +176887,7 @@ 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 273/810] media: i2c: imx290: Set the colorspace fields in the +Subject: [PATCH 273/847] media: i2c: imx290: Set the colorspace fields in the format The colorspace fields were left untouched in imx290_set_fmt @@ -176924,7 +176924,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 274/810] media: bcm2835-unicam: Reinstate V4L2_CAP_READWRITE +Subject: [PATCH 274/847] media: bcm2835-unicam: Reinstate V4L2_CAP_READWRITE in the caps v4l2-compliance throws a failure if the device doesn't advertise @@ -176958,7 +176958,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 275/810] media: bcm2835-unicam: Ensure type is VIDEO_CAPTURE +Subject: [PATCH 275/847] 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 @@ -177000,7 +177000,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 276/810] media: bcm2835: unicam: Set VPU min clock freq to +Subject: [PATCH 276/847] media: bcm2835: unicam: Set VPU min clock freq to 250Mhz. When streaming with Unicam, the VPU must have a clock frequency of at @@ -177133,7 +177133,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 277/810] dt-bindings: bcm2835-unicam: Update documentation +Subject: [PATCH 277/847] dt-bindings: bcm2835-unicam: Update documentation with new clock params Update the documentation to reflect the new "VPU" clock needed @@ -177177,7 +177177,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 278/810] leds: Add the actpwr trigger +Subject: [PATCH 278/847] 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 @@ -177423,7 +177423,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 279/810] bcm2835-dma: Advertise the full DMA range +Subject: [PATCH 279/847] bcm2835-dma: Advertise the full DMA range Unless the DMA mask is set wider than 32 bits, DMA mapping will use a bounce buffer. @@ -177506,7 +177506,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 280/810] media: bcm2835: unicam: Select MEDIA_CONTROLLER and +Subject: [PATCH 280/847] media: bcm2835: unicam: Select MEDIA_CONTROLLER and VIDEO_V4L2_SUBDEV_API That is what almost all other drivers appear to be doing. @@ -177539,7 +177539,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 281/810] staging: media: rpivid: Select MEDIA_CONTROLLER and +Subject: [PATCH 281/847] staging: media: rpivid: Select MEDIA_CONTROLLER and MEDIA_CONTROLLER_REQUEST_API MEDIA_CONTROLLER_REQUEST_API is a hidden option. If rpivid depends on it, @@ -177577,7 +177577,7 @@ 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 282/810] media: bcm2835-unicam: Drop WARN on uing direct cache +Subject: [PATCH 282/847] media: bcm2835-unicam: Drop WARN on uing direct cache alias Pi 0&1 pass all ARM accesses through the VPU L2 cache, therefore @@ -177617,7 +177617,7 @@ 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 283/810] media: i2c: tc358743: Only allow supported pixel fmts +Subject: [PATCH 283/847] media: i2c: tc358743: Only allow supported pixel fmts in set_fmt Fix commit "media: tc358743: Return an appropriate colorspace from @@ -177653,7 +177653,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 284/810] dwc_otg: whitelist_table is now productlist_table +Subject: [PATCH 284/847] dwc_otg: whitelist_table is now productlist_table --- drivers/usb/core/otg_productlist.h | 2 +- @@ -177679,7 +177679,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 285/810] include/firmware: Add enum for +Subject: [PATCH 285/847] include/firmware: Add enum for RPI_FIRMWARE_FRAMEBUFFER_GET_DISPLAY_ID Used by audio and FKMS. @@ -177708,7 +177708,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 286/810] media: i2c: Add driver for Sony IMX477 sensor +Subject: [PATCH 286/847] 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 @@ -177731,7 +177731,7 @@ Signed-off-by: Naushir Patuck create mode 100644 drivers/media/i2c/imx477.c diff --git a/MAINTAINERS b/MAINTAINERS -index 77181bae6abe..4682efb95b40 100644 +index bab0aaeab8e3..f78a5a658706 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -17513,6 +17513,14 @@ T: git git://linuxtv.org/media_tree.git @@ -179987,7 +179987,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 287/810] media: i2c: imx477: Add support for adaptive frame +Subject: [PATCH 287/847] media: i2c: imx477: Add support for adaptive frame control Use V4L2_CID_EXPOSURE_AUTO_PRIORITY to control if the driver should @@ -180175,7 +180175,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 288/810] media: i2c: imx477: Return correct result on sensor +Subject: [PATCH 288/847] media: i2c: imx477: Return correct result on sensor id verification The test should return -EIO if the register read id does not match @@ -180206,7 +180206,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 289/810] media: i2c: imx477: Parse and register properties +Subject: [PATCH 289/847] media: i2c: imx477: Parse and register properties Parse device properties and register controls for them using the V4L2 fwnode properties helpers. @@ -180257,7 +180257,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 290/810] media: bcm2835-unicam: Always service interrupts +Subject: [PATCH 290/847] 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 @@ -180314,7 +180314,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 291/810] media: bcm2835: unicam: Fix uninitialized warning +Subject: [PATCH 291/847] media: bcm2835: unicam: Fix uninitialized warning Signed-off-by: Jacko Dirks --- @@ -180341,7 +180341,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 292/810] media: bcm2835-unicam: Fixup review comments from +Subject: [PATCH 292/847] media: bcm2835-unicam: Fixup review comments from Hans. Updates the driver based on the upstream review comments from @@ -180593,7 +180593,7 @@ 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 293/810] media: bcm2835-unicam: Retain packing information on +Subject: [PATCH 293/847] media: bcm2835-unicam: Retain packing information on G_FMT The change to retrieve the pixel format always on g_fmt didn't @@ -180647,7 +180647,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 294/810] media: bcm2835-unicam: change minimum number of +Subject: [PATCH 294/847] 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 @@ -180681,7 +180681,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 295/810] staging/fbtft: Add support for display variants +Subject: [PATCH 295/847] 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 @@ -180896,7 +180896,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 296/810] brcmfmac: Increase power saving delay to 2s +Subject: [PATCH 296/847] 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, @@ -180935,7 +180935,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 297/810] rpivid_h265: Fix width/height typo +Subject: [PATCH 297/847] rpivid_h265: Fix width/height typo Signed-off-by: popcornmix --- @@ -180962,7 +180962,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 298/810] net: bcmgenet: Reset RBUF on first open +Subject: [PATCH 298/847] 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 @@ -181038,7 +181038,7 @@ index 73b3db0fa2ba..bc4aab5c73dc 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 28 Sep 2020 20:23:30 +0100 -Subject: [PATCH 299/810] char: Add broadcom char drivers back to build files +Subject: [PATCH 299/847] char: Add broadcom char drivers back to build files See: https://github.com/raspberrypi/linux/issues/3875 Signed-off-by: popcornmix @@ -181076,7 +181076,7 @@ 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 300/810] dwc_otg: initialise sched_frame for periodic QHs that +Subject: [PATCH 300/847] 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 @@ -181115,7 +181115,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 301/810] staging: bcm2835-camera: Replace deprecated +Subject: [PATCH 301/847] staging: bcm2835-camera: Replace deprecated V4L2_PIX_FMT_BGR32 V4L2_PIX_FMT_BGR32 is deprecated as it is ambiguous over where @@ -181151,7 +181151,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 302/810] staging: vc04_services: Add new vc-sm-cma driver +Subject: [PATCH 302/847] staging: vc04_services: Add new vc-sm-cma driver Add Broadcom VideoCore Shared Memory support. @@ -184115,7 +184115,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 303/810] staging: vchiq-mmal: Add support for 14bit Bayer +Subject: [PATCH 303/847] staging: vchiq-mmal: Add support for 14bit Bayer Add in the missing defines. @@ -184148,7 +184148,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 304/810] staging: mmal-vchiq: Add monochrome image formats +Subject: [PATCH 304/847] staging: mmal-vchiq: Add monochrome image formats Adds support for monochrome image formats in the various MIPI packings. @@ -184183,7 +184183,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 305/810] staging: mmal-vchiq: Use vc-sm-cma to support zero +Subject: [PATCH 305/847] 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 @@ -184357,7 +184357,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 306/810] staging: vc04_services: Add a V4L2 M2M codec driver +Subject: [PATCH 306/847] staging: vc04_services: Add a V4L2 M2M codec driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -187532,7 +187532,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 307/810] bcm2835-dma: only reserve channel 0 if legacy dma +Subject: [PATCH 307/847] 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 @@ -187570,7 +187570,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 308/810] uapi: bcm2835-isp: Add bcm2835-isp uapi header file +Subject: [PATCH 308/847] 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. @@ -187915,7 +187915,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 309/810] staging: vc04_services: ISP: Add a more complex ISP +Subject: [PATCH 309/847] staging: vc04_services: ISP: Add a more complex ISP processing component Driver for the BCM2835 ISP hardware block. This driver uses the MMAL @@ -187948,7 +187948,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 4682efb95b40..e237578c96b6 100644 +index f78a5a658706..bdb7032bff54 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3565,6 +3565,15 @@ S: Maintained @@ -190350,7 +190350,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 310/810] gpio: Add gpio-fsm driver +Subject: [PATCH 310/847] 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 @@ -191694,7 +191694,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 311/810] staging: bcm2835-audio: Add disable-headphones flag +Subject: [PATCH 311/847] 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. @@ -191734,7 +191734,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 312/810] rpisense-fb: Set pseudo_pallete to prevent crash on +Subject: [PATCH 312/847] rpisense-fb: Set pseudo_pallete to prevent crash on fbcon takeover Signed-off-by: Serge Schneider @@ -191770,7 +191770,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 313/810] dwc_otg: Minimise header and fix build warnings +Subject: [PATCH 313/847] 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. @@ -192675,7 +192675,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 314/810] rpivid_h625: Fix build warnings +Subject: [PATCH 314/847] rpivid_h625: Fix build warnings Signed-off-by: Phil Elwell --- @@ -192749,7 +192749,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 315/810] bcm2708_fb: Fix a build warning +Subject: [PATCH 315/847] bcm2708_fb: Fix a build warning Signed-off-by: Phil Elwell --- @@ -192777,7 +192777,7 @@ 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 316/810] watchdog: bcm2835: Ignore params after the partition +Subject: [PATCH 316/847] watchdog: bcm2835: Ignore params after the partition number Use sscanf to extract the partition number and ignore extra parameters @@ -192812,7 +192812,7 @@ 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 317/810] firmware: raspberrypi: Add support for tryonce reboot +Subject: [PATCH 317/847] firmware: raspberrypi: Add support for tryonce reboot flag Define a new mailbox (SET_REBOOT_FLAGS) which may be used to @@ -192892,7 +192892,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 318/810] phy: broadcom: split out the BCM54213PE from the +Subject: [PATCH 318/847] phy: broadcom: split out the BCM54213PE from the BCM54210E IDs The last nibble is a revision ID, and the 54213pe is a later rev @@ -192971,7 +192971,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 319/810] phy: broadcom: Add bcm54213pe configuration +Subject: [PATCH 319/847] phy: broadcom: Add bcm54213pe configuration Signed-off-by: Phil Elwell --- @@ -193011,7 +193011,7 @@ index a37cbce1c958..e8787d476fd0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 11 Nov 2020 17:08:33 +0000 -Subject: [PATCH 320/810] PCI: brcmstb: Restore initial fundamental reset +Subject: [PATCH 320/847] 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 @@ -193052,7 +193052,7 @@ 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 321/810] Input: edt-ft5x06: Poll the device if no interrupt is +Subject: [PATCH 321/847] Input: edt-ft5x06: Poll the device if no interrupt is configured. Not all systems have the interrupt line wired up, so switch to @@ -193155,7 +193155,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 322/810] drm/panel/raspberrypi-touchscreen: Use independent +Subject: [PATCH 322/847] drm/panel/raspberrypi-touchscreen: Use independent I2C actions with delay. We now have the hardware I2C controller pinmuxed to the drive the @@ -193219,7 +193219,7 @@ index 46029c5610c8..c5621f07158e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 10 Nov 2020 11:21:56 +0000 -Subject: [PATCH 323/810] drm/panel/raspberrypi-ts: Insert delay before polling +Subject: [PATCH 323/847] drm/panel/raspberrypi-ts: Insert delay before polling for startup state In switching to the hardware I2C controller there is an issue @@ -193251,7 +193251,7 @@ index c5621f07158e..07013bfddf42 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 12 Nov 2020 17:01:52 +0000 -Subject: [PATCH 324/810] dt-bindings: Add compatible for BCM2711 DSI1 +Subject: [PATCH 324/847] 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. @@ -193280,7 +193280,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 325/810] media: bcm2835-unicam: Correctly handle error +Subject: [PATCH 325/847] media: bcm2835-unicam: Correctly handle error propagation for stream on On a failure in start_streaming(), the error code would not propagate to @@ -193313,7 +193313,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 326/810] media: bcm2835-unicam: Return early from +Subject: [PATCH 326/847] media: bcm2835-unicam: Return early from stop_streaming() if stopped clk_disable_unprepare() is called unconditionally in stop_streaming(). @@ -193383,7 +193383,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 327/810] media: bcm2835-unicam: Clear clock state when +Subject: [PATCH 327/847] media: bcm2835-unicam: Clear clock state when stopping streaming Commit 65e08c465020d4c5b51afb452efc2246d80fd66f failed to clear the @@ -193414,7 +193414,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 328/810] PCI: brcmstb: Advertise MSI-X support +Subject: [PATCH 328/847] 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 @@ -193447,7 +193447,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 329/810] net: lan78xx: Ack pending PHY ints when resetting +Subject: [PATCH 329/847] 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 @@ -193485,7 +193485,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 330/810] media: i2c: imx477: Selection compliance fixes +Subject: [PATCH 330/847] 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 @@ -193571,7 +193571,7 @@ index d0848f3f3c09..07a1e023ade8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 8 Oct 2020 14:44:08 +0200 -Subject: [PATCH 331/810] drm/atomic: Pass the full state to CRTC atomic +Subject: [PATCH 331/847] drm/atomic: Pass the full state to CRTC atomic enable/disable Commit 351f950db4ab28c321a1bd4b92e4bb03e34c4703 upstream. @@ -193755,7 +193755,7 @@ index 768012243b44..eff9dc6029c2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: gesangtome Date: Fri, 1 Jan 2021 18:03:17 +0800 -Subject: [PATCH 332/810] vc-sm-cma: fixed kbuild problem +Subject: [PATCH 332/847] vc-sm-cma: fixed kbuild problem error logs: drivers/staging/vc04_services/vc-sm-cma/Kconfig:1:error: recursive dependency detected! @@ -193791,7 +193791,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 333/810] staging/vc04_services: Add additional unpacked raw +Subject: [PATCH 333/847] staging/vc04_services: Add additional unpacked raw formats Support has been added for the unpacked (16bpp) versions of @@ -193848,7 +193848,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 334/810] staging/bcm2835-codec: Add the unpacked (16bpp) raw +Subject: [PATCH 334/847] staging/bcm2835-codec: Add the unpacked (16bpp) raw formats Now that the firmware supports the unpacked (16bpp) variants @@ -194021,7 +194021,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 335/810] staging/bcm2835-codec: Log the number of excess +Subject: [PATCH 335/847] staging/bcm2835-codec: Log the number of excess supported formats When logging that the firmware has provided more supported formats @@ -194070,7 +194070,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 336/810] staging/bcm2835-isp: Add the unpacked (16bpp) raw +Subject: [PATCH 336/847] staging/bcm2835-isp: Add the unpacked (16bpp) raw formats Now that the firmware supports the unpacked (16bpp) variants @@ -194252,7 +194252,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 337/810] staging/bcm2835-isp: Log the number of excess +Subject: [PATCH 337/847] staging/bcm2835-isp: Log the number of excess supported formats When logging that the firmware has provided more supported formats @@ -194287,7 +194287,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 338/810] bcm2835-dma: Avoid losing CS flags after interrupt +Subject: [PATCH 338/847] bcm2835-dma: Avoid losing CS flags after interrupt Signed-off-by: Dom Cobley --- @@ -194314,7 +194314,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 339/810] arch/arm: Add __memset alias to memset_rpi.S +Subject: [PATCH 339/847] 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 @@ -194353,7 +194353,7 @@ 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 340/810] bcm2835-dma: Add bcm2835-dma: Add DMA_WIDE_SOURCE and +Subject: [PATCH 340/847] bcm2835-dma: Add bcm2835-dma: Add DMA_WIDE_SOURCE and DMA_WIDE_DEST flags Use (reserved) bits 24 and 25 of the dreq value @@ -194423,7 +194423,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 341/810] uapi: bcm2835-isp: Add colour denoise configuration +Subject: [PATCH 341/847] uapi: bcm2835-isp: Add colour denoise configuration Add a configuration structure for colour denoise to the bcm2835_isp driver. @@ -194485,7 +194485,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 342/810] staging: vc04_services: ISP: Add colour denoise +Subject: [PATCH 342/847] staging: vc04_services: ISP: Add colour denoise control Add colour denoise control to the bcm2835 driver through a new v4l2 @@ -194570,7 +194570,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 343/810] spi: bcm2835: Workaround/fix for zero-length +Subject: [PATCH 343/847] spi: bcm2835: Workaround/fix for zero-length transfers A relatively recent commit ([1]) contained optimisation for the PIO @@ -194626,7 +194626,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 344/810] kbuild: Silence unavoidable dtc overlay warnings +Subject: [PATCH 344/847] 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 @@ -194663,7 +194663,7 @@ index d1550a5b57bd..7e3f156ac5a1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 4 Feb 2021 17:29:32 +0000 -Subject: [PATCH 345/810] media: i2c: imx290: Replace V4L2_CID_GAIN with +Subject: [PATCH 345/847] media: i2c: imx290: Replace V4L2_CID_GAIN with V4L2_CID_ANALOGUE_GAIN Most software (including libcamera) requires V4L2_CID_ANALOGUE_GAIN, @@ -194707,7 +194707,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 346/810] media: i2c: imx290: Fix number of controls in +Subject: [PATCH 346/847] media: i2c: imx290: Fix number of controls in v4l2_ctrl_handler_init The number is only a hint, but may as well be correct. @@ -194741,7 +194741,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 347/810] dt-binding: display: bcm2711-hdmi: Add CEC and +Subject: [PATCH 347/847] dt-binding: display: bcm2711-hdmi: Add CEC and hotplug interrupts The CEC and hotplug interrupts were missing when that binding was @@ -194773,7 +194773,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 348/810] staging:bcm2835-camera: Fix the cherry-pick of AWB +Subject: [PATCH 348/847] staging:bcm2835-camera: Fix the cherry-pick of AWB Greyworld The cherry-pick of the patch that added the greyworld AWB mode @@ -194807,7 +194807,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 349/810] bcm2835-isp: Allow formats with different colour +Subject: [PATCH 349/847] bcm2835-isp: Allow formats with different colour spaces. Each supported format now includes a mask showing the allowed colour @@ -195527,7 +195527,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 350/810] staging: rpivid: Fix crash when CMA alloc fails +Subject: [PATCH 350/847] 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 @@ -195653,7 +195653,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 351/810] media: i2c: imx477: Remove auto frame length +Subject: [PATCH 351/847] media: i2c: imx477: Remove auto frame length adjusting The V4L2_CID_EXPOSURE_AUTO_PRIORITY was used to let the sensor control @@ -195801,7 +195801,7 @@ 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 352/810] media: i2c: imx477: Add very long exposure control to +Subject: [PATCH 352/847] media: i2c: imx477: Add very long exposure control to the driver Add support for very long exposures by using the exposure multiplier @@ -195933,7 +195933,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 353/810] media: i2c: imx290: Fix up exposure calcuations and +Subject: [PATCH 353/847] media: i2c: imx290: Fix up exposure calcuations and ranges Should now correspond exactly to the datasheet. @@ -195998,7 +195998,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 354/810] media: i2c: imx290: Handle exposure correctly when +Subject: [PATCH 354/847] media: i2c: imx290: Handle exposure correctly when vblank changes When vblank changes we must modify the exposure range. Also, with this @@ -196046,7 +196046,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 355/810] media: i2c: imx477: Fix crop height for 2028x1080 +Subject: [PATCH 355/847] media: i2c: imx477: Fix crop height for 2028x1080 mode The crop height for this mode was set at 2600 lines, it should be 2160 @@ -196077,7 +196077,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 356/810] media: i2c: imx477: Replace existing 1012x760 mode +Subject: [PATCH 356/847] 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 @@ -196280,7 +196280,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 357/810] media: i2c: imx477: Remove internal +Subject: [PATCH 357/847] 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 @@ -196356,7 +196356,7 @@ 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 358/810] media: i2c: imx477: Remove unused function parameter +Subject: [PATCH 358/847] 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. @@ -196396,7 +196396,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 359/810] media: bcm2835-unicam: Fix bug in buffer swapping +Subject: [PATCH 359/847] media: bcm2835-unicam: Fix bug in buffer swapping logic If multiple sets of interrupts occur simultaneously, it may be unsafe @@ -196478,7 +196478,7 @@ 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 360/810] Assign crypto aliases to different AES implementation +Subject: [PATCH 360/847] Assign crypto aliases to different AES implementation modules The kernel modules aes-neon-blk and aes-neon-bs perform poorly, at least on @@ -196593,7 +196593,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 361/810] media/v4l2_m2m: In buffered mode run jobs if either +Subject: [PATCH 361/847] media/v4l2_m2m: In buffered mode run jobs if either port is streaming In order to get the intended behaviour of the stateful video @@ -196632,7 +196632,7 @@ index e7f4bf5bc8dd..ebd2a952f24b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 1 Feb 2021 18:55:37 +0000 -Subject: [PATCH 362/810] staging/bcm2835-codec: Correct logging of size_t to +Subject: [PATCH 362/847] staging/bcm2835-codec: Correct logging of size_t to %zu Fixes: "staging/bcm2835-codec: Log the number of excess supported formats" @@ -196672,7 +196672,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 363/810] staging/bcm2835-codec: Add support for pixel aspect +Subject: [PATCH 363/847] staging/bcm2835-codec: Add support for pixel aspect ratio If the format is detected by the driver and a V4L2_EVENT_SOURCE_CHANGE @@ -196760,7 +196760,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 364/810] staging/bcm2835-codec: Implement additional +Subject: [PATCH 364/847] staging/bcm2835-codec: Implement additional g_selection calls for decode v4l_cropcap calls our vidioc_g_pixelaspect function to get the pixel @@ -196801,7 +196801,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 365/810] staging/bcm2835-codec: Add VC-1 support. +Subject: [PATCH 365/847] staging/bcm2835-codec: Add VC-1 support. Providing the relevant licence has been purchased, then Pi0-3 can decode VC-1. @@ -196836,7 +196836,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 366/810] hack: fixup bcm2835-unicam +Subject: [PATCH 366/847] hack: fixup bcm2835-unicam --- drivers/media/platform/bcm2835/bcm2835-unicam.c | 3 +++ @@ -196863,7 +196863,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 367/810] media: i2c: add ov9281 driver. +Subject: [PATCH 367/847] media: i2c: add ov9281 driver. Change-Id: I7b77250bbc56d2f861450cf77271ad15f9b88ab1 Signed-off-by: Zefa Chen @@ -198092,7 +198092,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 368/810] media: i2c: ov9281: fix mclk issue when probe +Subject: [PATCH 368/847] media: i2c: ov9281: fix mclk issue when probe multiple camera. Takes the ov9281 part only from the Rockchip's patch. @@ -198158,7 +198158,7 @@ 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 369/810] media: i2c: ov9281: add enum_frame_interval function +Subject: [PATCH 369/847] 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 @@ -198261,7 +198261,7 @@ 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 370/810] media: i2c: ov9281: Fixup for recent kernel releases, +Subject: [PATCH 370/847] 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 @@ -198944,7 +198944,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 371/810] media: i2c: ov9281: Read chip ID via 2 reads +Subject: [PATCH 371/847] 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 @@ -198992,7 +198992,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 372/810] media: i2c: ov9281: Add support for 8 bit readout +Subject: [PATCH 372/847] 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. @@ -199186,7 +199186,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 373/810] media: ov9281: Add 1280x720 and 640x480 modes +Subject: [PATCH 373/847] media: ov9281: Add 1280x720 and 640x480 modes Breaks out common register set and adds the different registers for 1280x720 (cropped) and 640x480 (skipped) modes @@ -199401,7 +199401,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 374/810] Fixed picture line bug in all ov9281 modes +Subject: [PATCH 374/847] Fixed picture line bug in all ov9281 modes Signed-off-by: Mathias Anhalt --- @@ -199445,7 +199445,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 375/810] Added hflip and vflip controls to ov9281 +Subject: [PATCH 375/847] Added hflip and vflip controls to ov9281 Signed-off-by: Mathias Anhalt --- @@ -199563,7 +199563,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 376/810] media: ov5647: Fix return codes from +Subject: [PATCH 376/847] media: ov5647: Fix return codes from ov5647_write/ov5647_read functions. Previously they were returning positive non-zero codes for success, @@ -199658,7 +199658,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 377/810] media: i2c: ov5647: Parse and register properties +Subject: [PATCH 377/847] media: i2c: ov5647: Parse and register properties Parse device properties and register controls for them using the V4L2 fwnode properties helpers. @@ -199713,7 +199713,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 378/810] clk-raspberrypi: Also support HEVC clock +Subject: [PATCH 378/847] clk-raspberrypi: Also support HEVC clock Signed-off-by: Dom Cobley --- @@ -199739,7 +199739,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 379/810] rpivid: Request maximum hevc clock +Subject: [PATCH 379/847] rpivid: Request maximum hevc clock Query maximum and minimum clock from driver and use those @@ -199796,7 +199796,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 380/810] staging/bcm2835-camera: Add support for DMABUFs +Subject: [PATCH 380/847] staging/bcm2835-camera: Add support for DMABUFs DMABUFs are all handled by videobuf2, so there is no reason not to enable support for them. @@ -199839,7 +199839,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 381/810] staging: fbtft: Add minipitft13 variant +Subject: [PATCH 381/847] 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 @@ -199853,7 +199853,7 @@ Signed-off-by: Phil Elwell 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/drivers/staging/fbtft/fb_st7789v.c b/drivers/staging/fbtft/fb_st7789v.c -index abe9395a0aef..b707c94d6a49 100644 +index 861a154144e6..3bcd9ee17b6c 100644 --- a/drivers/staging/fbtft/fb_st7789v.c +++ b/drivers/staging/fbtft/fb_st7789v.c @@ -75,6 +75,11 @@ enum st7789v_command { @@ -199868,7 +199868,7 @@ index abe9395a0aef..b707c94d6a49 100644 static irqreturn_t panel_te_handler(int irq, void *data) { -@@ -259,6 +264,22 @@ static int write_vmem(struct fbtft_par *par, size_t offset, size_t len) +@@ -261,6 +266,22 @@ static int write_vmem(struct fbtft_par *par, size_t offset, size_t len) return ret; } @@ -199891,7 +199891,7 @@ index abe9395a0aef..b707c94d6a49 100644 /** * set_var() - apply LCD properties like rotation and BGR mode * -@@ -269,20 +290,32 @@ static int write_vmem(struct fbtft_par *par, size_t offset, size_t len) +@@ -271,20 +292,32 @@ static int write_vmem(struct fbtft_par *par, size_t offset, size_t len) static int set_var(struct fbtft_par *par) { u8 madctl_par = 0; @@ -199924,7 +199924,7 @@ index abe9395a0aef..b707c94d6a49 100644 break; default: return -EINVAL; -@@ -380,7 +413,16 @@ static struct fbtft_display display = { +@@ -382,7 +415,16 @@ static struct fbtft_display display = { }, }; @@ -199949,7 +199949,7 @@ index abe9395a0aef..b707c94d6a49 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 382/810] dwc-otg: fix clang -Wignored-attributes warning +Subject: [PATCH 382/847] dwc-otg: fix clang -Wignored-attributes warning warning: attribute declaration must precede definition --- @@ -199991,7 +199991,7 @@ 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 383/810] dwc-otg: fix clang -Wsometimes-uninitialized warning +Subject: [PATCH 383/847] dwc-otg: fix clang -Wsometimes-uninitialized warning warning: variable 'retval' is used uninitialized whenever 'if' condition is false --- @@ -200018,7 +200018,7 @@ 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 384/810] dwc-otg: fix clang -Wpointer-bool-conversion warning +Subject: [PATCH 384/847] dwc-otg: fix clang -Wpointer-bool-conversion warning warning: address of array 'desc->wMaxPacketSize' will always evaluate to 'true' @@ -200048,7 +200048,7 @@ 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 385/810] staging: vcsm-cma: Fix memory leak from not detaching +Subject: [PATCH 385/847] staging: vcsm-cma: Fix memory leak from not detaching dmabuf When importing there was a missing call to detach the buffer, @@ -200131,7 +200131,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 386/810] clk: Introduce a clock request API +Subject: [PATCH 386/847] 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 @@ -200423,7 +200423,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 387/810] bcm2835-unicam: Switch to new clock api +Subject: [PATCH 387/847] bcm2835-unicam: Switch to new clock api Signed-off-by: Dom Cobley --- @@ -200482,7 +200482,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 388/810] rpivid: Switch to new clock api +Subject: [PATCH 388/847] rpivid: Switch to new clock api Signed-off-by: Dom Cobley --- @@ -200544,7 +200544,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 389/810] rpivid: Only clk_request_done once +Subject: [PATCH 389/847] rpivid: Only clk_request_done once Fixes: 25486f49bfe2e3ae13b90478d1eebd91413136ad Signed-off-by: Dom Cobley @@ -200576,7 +200576,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 390/810] dwc_otg: fix an undeclared variable Replace an +Subject: [PATCH 390/847] 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 @@ -200606,7 +200606,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 391/810] drm/panel: jdi-lt070me05000: Use +Subject: [PATCH 391/847] drm/panel: jdi-lt070me05000: Use gpiod_set_value_cansleep There is no reason why the control GPIOs for the panel can not @@ -200679,7 +200679,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 392/810] clk: requests: Ignore if the pointer is null +Subject: [PATCH 392/847] clk: requests: Ignore if the pointer is null Signed-off-by: Maxime Ripard --- @@ -200707,7 +200707,7 @@ index 6829e425159e..cdb6c375f6a7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 22 Apr 2021 10:45:37 +0200 -Subject: [PATCH 393/810] clk: requests: Dereference the request pointer after +Subject: [PATCH 393/847] clk: requests: Dereference the request pointer after the check The current code will first dereference the req pointer and then test if @@ -200743,7 +200743,7 @@ index cdb6c375f6a7..33de2b7876db 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Mar 2021 18:28:40 +0000 -Subject: [PATCH 394/810] staging/bcm2835-codec: Fix support for levels 4.1 and +Subject: [PATCH 394/847] 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 @@ -200785,7 +200785,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 395/810] staging/bcm2835-codec: Set the colourspace +Subject: [PATCH 395/847] staging/bcm2835-codec: Set the colourspace appropriately for RGB formats Video decode supports YUV and RGB formats. YUV needs to report SMPTE170M @@ -200875,7 +200875,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 396/810] staging/bcm2835-codec: Pass corrupt frame flag. +Subject: [PATCH 396/847] 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. @@ -200923,7 +200923,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 397/810] staging/bcm2835-camera: Add support for H264 levels +Subject: [PATCH 397/847] 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 @@ -200987,7 +200987,7 @@ 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 398/810] staging/bcm2835-codec: Do not update crop from S_FMT +Subject: [PATCH 398/847] staging/bcm2835-codec: Do not update crop from S_FMT after res change During decode, setting the CAPTURE queue format was setting the crop @@ -201029,7 +201029,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 399/810] staging/bcm2835-isp: Fix compiler warning +Subject: [PATCH 399/847] 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 @@ -201060,7 +201060,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 400/810] gpio-poweroff: Remember the old poweroff handler +Subject: [PATCH 400/847] 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 @@ -201119,7 +201119,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 401/810] media: i2c: ov5647: Correct pixel array offset +Subject: [PATCH 401/847] 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). @@ -201150,7 +201150,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 402/810] media: i2c: ov5647: Correct minimum VBLANK value +Subject: [PATCH 402/847] 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 @@ -201182,7 +201182,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 403/810] media: i2c: ov5647: Fix v4l2-compliance failure +Subject: [PATCH 403/847] media: i2c: ov5647: Fix v4l2-compliance failure subscribing to events Fixes the following v4l2-compliance failure: @@ -201214,7 +201214,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 404/810] media: rpivid: Remove the need to have +Subject: [PATCH 404/847] media: rpivid: Remove the need to have num_entry_points set VAAPI H265 has num entry points but never sets it. Allow a VAAPI @@ -202197,7 +202197,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 405/810] media: rpivid: Convert to MPLANE +Subject: [PATCH 405/847] media: rpivid: Convert to MPLANE Use multi-planar interface rather than single plane interface. This allows dmabufs holding compressed data to be resized. @@ -202540,7 +202540,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 406/810] media: rpivid: Add an enable count to irq claim Qs +Subject: [PATCH 406/847] 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 @@ -202784,7 +202784,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 407/810] RFC: media: Add media_request_{pin,unpin} API +Subject: [PATCH 407/847] 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. @@ -202886,7 +202886,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 408/810] media: rpivid: Add a Pass0 to accumulate slices and +Subject: [PATCH 408/847] media: rpivid: Add a Pass0 to accumulate slices and rework job finish Due to overheads in assembling controls and requests it is worth having @@ -203952,7 +203952,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 409/810] media: rpivid: Map cmd buffer directly +Subject: [PATCH 409/847] 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. @@ -204122,7 +204122,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 410/810] media: rpivid: Improve values returned when setting +Subject: [PATCH 410/847] media: rpivid: Improve values returned when setting output format Guess a better value for the compressed bitstream buffer size @@ -204348,7 +204348,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 411/810] media: rpivid: Improve stream_on/off conformance & +Subject: [PATCH 411/847] media: rpivid: Improve stream_on/off conformance & clock setup Fix stream on & off such that failures leave the driver in the correct @@ -204620,7 +204620,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 412/810] media: rpivid: Improve SPS/PPS error +Subject: [PATCH 412/847] media: rpivid: Improve SPS/PPS error handling/validation Move size and width checking from bitstream processing to control @@ -204886,7 +204886,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 413/810] bcm2835: Allow compressed frames to set sizeimage +Subject: [PATCH 413/847] bcm2835: Allow compressed frames to set sizeimage (#4386) Allow the user to set sizeimage in TRY_FMT and S_FMT if the format @@ -204939,7 +204939,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 414/810] media: i2c: imx477: Fix for long exposure limit +Subject: [PATCH 414/847] media: i2c: imx477: Fix for long exposure limit calculations Do not scale IMX477_EXPOSURE_OFFSET with the long exposure factor during @@ -204971,7 +204971,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 415/810] clk: bcm2835: Pass DT node to rpi_firmware_get +Subject: [PATCH 415/847] 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. @@ -205001,7 +205001,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 416/810] bcm2835-pcm.c: Support multichannel audio +Subject: [PATCH 416/847] bcm2835-pcm.c: Support multichannel audio --- .../vc04_services/bcm2835-audio/bcm2835-pcm.c | 13 +++++++------ @@ -205041,7 +205041,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 417/810] bcm2835-pcm: Fix up multichannel pcm audio +Subject: [PATCH 417/847] bcm2835-pcm: Fix up multichannel pcm audio Fixes: a9c1660ff5f02d048c5f31abf1fd1108ccf9ef87 Signed-off-by: Dom Cobley @@ -205083,7 +205083,7 @@ 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 418/810] media: i2c: imx290: Support 60fps in 2 lane operation +Subject: [PATCH 418/847] 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 @@ -205398,7 +205398,7 @@ 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 419/810] media: i2c: imx290: Fix the pixel rate at 148.5Mpix/s +Subject: [PATCH 419/847] 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 @@ -205453,7 +205453,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 420/810] media: i2c: imx290: Fix clock setup register +Subject: [PATCH 420/847] media: i2c: imx290: Fix clock setup register assignments When the clock setups were added for the alternate external clocks, @@ -205508,7 +205508,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 421/810] media: rpivid: Fix H265 aux ent reuse of the same +Subject: [PATCH 421/847] media: rpivid: Fix H265 aux ent reuse of the same slot It is legitimate, though unusual, for an aux ent associated with a slot @@ -205665,7 +205665,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 422/810] media: i2c: ov9281: Remove override of subdev name +Subject: [PATCH 422/847] 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 @@ -205699,7 +205699,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 423/810] staging: vc04_services: isp: Set the YUV420/YVU420 +Subject: [PATCH 423/847] 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 @@ -205744,7 +205744,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 424/810] Documentation: devicetree: Add documentation for +Subject: [PATCH 424/847] Documentation: devicetree: Add documentation for imx378 sensor The imx378 sensor is compatible with the imx477 and shares common @@ -205877,7 +205877,7 @@ index 000000000000..f832b4bfab93 + +... diff --git a/MAINTAINERS b/MAINTAINERS -index e237578c96b6..b1510287b546 100644 +index bdb7032bff54..1777d31b7bb1 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -17527,6 +17527,7 @@ M: Raspberry Pi Kernel Maintenance @@ -205895,7 +205895,7 @@ index e237578c96b6..b1510287b546 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Tue, 29 Jun 2021 14:43:01 +0100 -Subject: [PATCH 425/810] media: i2c: imx477: Extend driver to support imx378 +Subject: [PATCH 425/847] media: i2c: imx477: Extend driver to support imx378 sensor The imx378 sensor is almost identical to the imx477 and can be @@ -206093,7 +206093,7 @@ 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 426/810] dt-bindings: clk: raspberrypi: Remove unused property +Subject: [PATCH 426/847] 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. @@ -206139,7 +206139,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 427/810] dt-bindings: display: vc4: Add phandle to the +Subject: [PATCH 427/847] dt-bindings: display: vc4: Add phandle to the firmware The vc4 driver will need to tell the firmware that it takes over the @@ -206176,7 +206176,7 @@ 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 428/810] bcm2711_thermal: Don't clamp temperature at zero +Subject: [PATCH 428/847] bcm2711_thermal: Don't clamp temperature at zero The temperature sensor is valid below zero and the linux framework is happy with it. @@ -206206,7 +206206,7 @@ index 1ec57d9ecf53..011b2789e2df 100644 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 429/810] media: bcm2835-unicam: Forward input status from +Subject: [PATCH 429/847] media: bcm2835-unicam: Forward input status from subdevice MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -206265,7 +206265,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 430/810] media: v4l2-subdev: add subdev-wide state struct +Subject: [PATCH 430/847] media: v4l2-subdev: add subdev-wide state struct Signed-off-by: Dom Cobley --- @@ -206762,7 +206762,7 @@ 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 431/810] drm/vc4: Adopt the dma configuration from the HVS or +Subject: [PATCH 431/847] 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 @@ -206822,7 +206822,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 432/810] Support RPi DPI interface in mode6 for 18-bit color +Subject: [PATCH 432/847] 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. @@ -207050,7 +207050,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 433/810] drm/vc4: plane: Add support for DRM_FORMAT_P030 +Subject: [PATCH 433/847] 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. @@ -207272,7 +207272,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 434/810] drm/vc4: plane: Add support for YUV color encodings +Subject: [PATCH 434/847] drm/vc4: plane: Add support for YUV color encodings and ranges The BT601/BT709 color encoding and limited vs full @@ -207438,7 +207438,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 435/810] drm/vc4: Add FKMS as an acceptable node for dma +Subject: [PATCH 435/847] drm/vc4: Add FKMS as an acceptable node for dma ranges. Under FKMS, the firmware (via FKMS) also requires the VideoCore cache @@ -207471,7 +207471,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 436/810] drm/vc4: A present but empty dmas disables audio +Subject: [PATCH 436/847] 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 @@ -207485,7 +207485,7 @@ 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 6998547c72c3..7bc66029e0c9 100644 +index df291945489d..9a8efd2edec7 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) @@ -207510,7 +207510,7 @@ index 6998547c72c3..7bc66029e0c9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 6 Oct 2020 18:44:42 +0100 -Subject: [PATCH 437/810] drm/vc4: Add debugfs node that dumps the current +Subject: [PATCH 437/847] drm/vc4: Add debugfs node that dumps the current display lists This allows easy analysis of display lists when debugging. @@ -207586,7 +207586,7 @@ 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 438/810] drm/vc4: Add all the HDMI registers into the debugfs +Subject: [PATCH 438/847] drm/vc4: Add all the HDMI registers into the debugfs dumps The vc5 HDMI registers hadn't been added into the debugfs @@ -207600,7 +207600,7 @@ 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 7bc66029e0c9..c4fb56ea2a24 100644 +index 9a8efd2edec7..ec7a3798f5c3 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) @@ -207616,7 +207616,7 @@ index 7bc66029e0c9..c4fb56ea2a24 100644 return 0; } -@@ -2354,6 +2360,7 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) +@@ -2361,6 +2367,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; @@ -207624,7 +207624,7 @@ index 7bc66029e0c9..c4fb56ea2a24 100644 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "hdmi"); if (!res) -@@ -2450,6 +2457,38 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) +@@ -2457,6 +2464,38 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) return PTR_ERR(vc4_hdmi->reset); } @@ -207664,10 +207664,10 @@ index 7bc66029e0c9..c4fb56ea2a24 100644 } diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.h b/drivers/gpu/drm/vc4/vc4_hdmi.h -index 36c0b082a43b..db53500a8435 100644 +index 0c51c91f9d5c..275c4674d50f 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.h +++ b/drivers/gpu/drm/vc4/vc4_hdmi.h -@@ -215,6 +215,14 @@ struct vc4_hdmi { +@@ -216,6 +216,14 @@ struct vc4_hdmi { * the scrambler on? Protected by @mutex. */ bool scdc_enabled; @@ -207689,7 +207689,7 @@ index 36c0b082a43b..db53500a8435 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 26 Oct 2020 12:38:27 +0000 -Subject: [PATCH 439/810] drm/vc4: Add the 2711 HVS as a suitable DMA node +Subject: [PATCH 439/847] 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. @@ -207719,7 +207719,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 440/810] vc4_hdmi: Report that 3d/stereo is allowed +Subject: [PATCH 440/847] vc4_hdmi: Report that 3d/stereo is allowed Signed-off-by: Dom Cobley --- @@ -207727,7 +207727,7 @@ 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 c4fb56ea2a24..a123a7b50e6f 100644 +index ec7a3798f5c3..d7a2ce653d03 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, @@ -207745,7 +207745,7 @@ index c4fb56ea2a24..a123a7b50e6f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 10 Nov 2020 20:04:08 +0000 -Subject: [PATCH 441/810] vc4: Clear unused infoframe packet RAM registers +Subject: [PATCH 441/847] vc4: Clear unused infoframe packet RAM registers Using a hdmi analyser the bytes in packet ram registers beyond the length were visible in the @@ -207759,7 +207759,7 @@ 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 a123a7b50e6f..ff9eb87d8d1d 100644 +index d7a2ce653d03..9d911fc4a7e3 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, @@ -207796,7 +207796,7 @@ index a123a7b50e6f..ff9eb87d8d1d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 12 Feb 2021 17:31:37 +0000 -Subject: [PATCH 442/810] drm/vc4: Change the default DPI format to being +Subject: [PATCH 442/847] 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 @@ -207836,7 +207836,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 443/810] vc4/drm: Avoid full hdmi audio fifo writes +Subject: [PATCH 443/847] 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. @@ -207849,7 +207849,7 @@ 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 ff9eb87d8d1d..2c83252819e9 100644 +index 9d911fc4a7e3..ccaced0b4836 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, @@ -207874,7 +207874,7 @@ index ff9eb87d8d1d..2c83252819e9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 15 Mar 2021 13:28:06 +0000 -Subject: [PATCH 444/810] vc4/drm: vc4_plane: Remove subpixel positioning check +Subject: [PATCH 444/847] vc4/drm: vc4_plane: Remove subpixel positioning check There is little harm in ignoring fractional coordinates (they just get truncated). @@ -207942,7 +207942,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 445/810] drm/vc4: hdmi: Convert to the new clock request API +Subject: [PATCH 445/847] 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 @@ -207990,7 +207990,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 446/810] drm/vc4: Correct pixel order for DSI0 +Subject: [PATCH 446/847] 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. @@ -208003,7 +208003,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 287dbc89ad64..5653476e8dcb 100644 +index 799aaf8c1abf..402059f81b84 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 @@ -208023,7 +208023,7 @@ index 287dbc89ad64..5653476e8dcb 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 8 Feb 2021 11:22:01 +0000 -Subject: [PATCH 447/810] drm/vc4: Register dsi0 as the correct vc4 encoder +Subject: [PATCH 447/847] drm/vc4: Register dsi0 as the correct vc4 encoder type vc4_dsi was registering both dsi0 and dsi1 as VC4_ENCODER_TYPE_DSI1 @@ -208058,7 +208058,7 @@ index d09c1ea60c04..66ea2b516326 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 10 Feb 2021 18:46:22 +0000 -Subject: [PATCH 448/810] drm/vc4: Fix dsi0 interrupt support. +Subject: [PATCH 448/847] 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 @@ -208252,7 +208252,7 @@ index 66ea2b516326..064149a47ecb 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 15 Apr 2021 16:18:16 +0100 -Subject: [PATCH 449/810] drm/vc4: Add correct stop condition to +Subject: [PATCH 449/847] drm/vc4: Add correct stop condition to vc4_dsi_encoder_disable iteration vc4_dsi_encoder_disable is partially an open coded version of @@ -208288,7 +208288,7 @@ index 064149a47ecb..96816a090e1b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 Jan 2021 16:30:55 +0000 -Subject: [PATCH 450/810] drm/atomic: Don't fixup modes that haven't been reset +Subject: [PATCH 450/847] drm/atomic: Don't fixup modes that haven't been reset Signed-off-by: Dave Stevenson --- @@ -208296,7 +208296,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 2c0c6ec92820..92d98f7029a3 100644 +index ff2bc9a11801..d616fdaa0879 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) @@ -208318,7 +208318,7 @@ index 2c0c6ec92820..92d98f7029a3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 5 May 2021 15:35:34 +0200 -Subject: [PATCH 451/810] clk: Always clamp the rounded rate +Subject: [PATCH 451/847] 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 @@ -208352,7 +208352,7 @@ index 33de2b7876db..d8959f7112e0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 26 May 2021 16:13:02 +0200 -Subject: [PATCH 452/810] drm/vc4: Increase the core clock based on HVS load +Subject: [PATCH 452/847] 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 @@ -208417,7 +208417,7 @@ 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 453/810] drm/vc4: hdmi: Simplify the connector state retrieval +Subject: [PATCH 453/847] 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 @@ -208430,7 +208430,7 @@ 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 2c83252819e9..efffe21d2e73 100644 +index ccaced0b4836..980a0f354c17 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) @@ -208474,7 +208474,7 @@ index 2c83252819e9..efffe21d2e73 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 454/810] drm/vc4: Fix timings for interlaced modes +Subject: [PATCH 454/847] 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 @@ -208491,7 +208491,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 5653476e8dcb..e21119f32552 100644 +index 402059f81b84..cf9b751fe199 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 @@ -208523,7 +208523,7 @@ index 5653476e8dcb..e21119f32552 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 efffe21d2e73..502d5bea5f61 100644 +index 980a0f354c17..395a9e9c1e5a 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, @@ -208565,7 +208565,7 @@ index efffe21d2e73..502d5bea5f61 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 5 Jul 2021 19:38:21 +0100 -Subject: [PATCH 455/810] dwc_otg: Update NetBSD usb.h header licence +Subject: [PATCH 455/847] 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 @@ -208604,7 +208604,7 @@ 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 456/810] drm/vc4: Fix margin calculations for the right/bottom +Subject: [PATCH 456/847] drm/vc4: Fix margin calculations for the right/bottom edges The calculations clipped the right/bottom edge of the clipped @@ -208648,7 +208648,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 457/810] drm/vc4: Fix timings for VEC modes +Subject: [PATCH 457/847] 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 @@ -208670,7 +208670,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 e21119f32552..23be68a8ecec 100644 +index cf9b751fe199..3a612cb347b9 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 @@ -208804,7 +208804,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 458/810] drm/vc4: Refactor VEC TV mode setting +Subject: [PATCH 458/847] 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 @@ -208977,7 +208977,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 459/810] drm/vc4: Fix definition of PAL-M mode +Subject: [PATCH 459/847] 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. @@ -209060,7 +209060,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 460/810] drm/vc4: Add support for more analog TV standards +Subject: [PATCH 460/847] 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): @@ -209214,7 +209214,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 461/810] drm/vc4: Allow setting the TV norm via module +Subject: [PATCH 461/847] drm/vc4: Allow setting the TV norm via module parameter Similar to the ch7006 and nouveau drivers, introduce a "tv_mode" module @@ -209364,7 +209364,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 462/810] drm/vc4: Refactor mode checking logic +Subject: [PATCH 462/847] 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 @@ -209455,7 +209455,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 463/810] drm/vc4: Add firmware-kms mode +Subject: [PATCH 463/847] drm/vc4: Add firmware-kms mode This is a squash of all firmware-kms related patches from previous branches, up to and including @@ -211975,7 +211975,7 @@ 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 464/810] media: i2c: imx477: Fix framerates for 1332x990 mode +Subject: [PATCH 464/847] 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 @@ -212006,7 +212006,7 @@ index f550ff0d8b72..ba03c68e64a0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 27 Jul 2021 09:24:20 +0100 -Subject: [PATCH 465/810] SQUASH: fbmem: Use fallthrough keyword +Subject: [PATCH 465/847] SQUASH: fbmem: Use fallthrough keyword Avoid a compiler warning by using the "fallthrough" pseudo-keyword in place of the old "/* fall through */" comment convention. @@ -212036,7 +212036,7 @@ index 118ba41d7fec..de114b5d75cc 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 27 Jul 2021 09:27:49 +0100 -Subject: [PATCH 466/810] ASoC: bcm: Compiler warnings in audioinjector-octo +Subject: [PATCH 466/847] 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. @@ -212104,7 +212104,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 467/810] media: i2c: tc358743: Fix compiler warning +Subject: [PATCH 467/847] 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. @@ -212134,7 +212134,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 468/810] ASoC: bcm: Add chipdip-dac driver +Subject: [PATCH 468/847] 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. @@ -212468,73 +212468,9 @@ index 000000000000..6cb53692b3c5 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Maxime Ripard -Date: Fri, 23 Jul 2021 15:45:54 +0200 -Subject: [PATCH 469/810] drm/vc4: hdmi: Unregister codec device on unbind - -On bind we will register the HDMI codec device but we don't unregister -it on unbind, leading to a device leakage. Unregister our device at -unbind. - -Signed-off-by: Maxime Ripard ---- - drivers/gpu/drm/vc4/vc4_hdmi.c | 8 ++++++++ - drivers/gpu/drm/vc4/vc4_hdmi.h | 1 + - 2 files changed, 9 insertions(+) - -diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 502d5bea5f61..395a9e9c1e5a 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi.c -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1746,6 +1746,7 @@ static int vc4_hdmi_audio_init(struct vc4_hdmi *vc4_hdmi) - dev_err(dev, "Couldn't register the HDMI codec: %ld\n", PTR_ERR(codec_pdev)); - return PTR_ERR(codec_pdev); - } -+ vc4_hdmi->audio.codec_pdev = codec_pdev; - - dai_link->cpus = &vc4_hdmi->audio.cpu; - dai_link->codecs = &vc4_hdmi->audio.codec; -@@ -1785,6 +1786,12 @@ static int vc4_hdmi_audio_init(struct vc4_hdmi *vc4_hdmi) - - } - -+static void vc4_hdmi_audio_exit(struct vc4_hdmi *vc4_hdmi) -+{ -+ platform_device_unregister(vc4_hdmi->audio.codec_pdev); -+ vc4_hdmi->audio.codec_pdev = NULL; -+} -+ - static irqreturn_t vc4_hdmi_hpd_irq_thread(int irq, void *priv) - { - struct vc4_hdmi *vc4_hdmi = priv; -@@ -2689,6 +2696,7 @@ static void vc4_hdmi_unbind(struct device *dev, struct device *master, - kfree(vc4_hdmi->hdmi_regset.regs); - kfree(vc4_hdmi->hd_regset.regs); - -+ vc4_hdmi_audio_exit(vc4_hdmi); - vc4_hdmi_cec_exit(vc4_hdmi); - vc4_hdmi_hotplug_exit(vc4_hdmi); - vc4_hdmi_connector_destroy(&vc4_hdmi->connector); -diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.h b/drivers/gpu/drm/vc4/vc4_hdmi.h -index db53500a8435..275c4674d50f 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi.h -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.h -@@ -113,6 +113,7 @@ struct vc4_hdmi_audio { - struct snd_soc_dai_link_component platform; - struct snd_dmaengine_dai_dma_data dma_data; - struct hdmi_audio_infoframe infoframe; -+ struct platform_device *codec_pdev; - bool streaming; - }; - --- -2.18.4 - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 3 Aug 2021 11:25:59 +0100 -Subject: [PATCH 470/810] media: i2c: imx290: Add fwnode properties controls +Subject: [PATCH 469/847] media: i2c: imx290: Add fwnode properties controls Add call to v4l2_ctrl_new_fwnode_properties to read and create the fwnode based controls. @@ -212588,7 +212524,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 471/810] media: i2c: ov9281: Add fwnode properties controls +Subject: [PATCH 470/847] media: i2c: ov9281: Add fwnode properties controls Add call to v4l2_ctrl_new_fwnode_properties to read and create the fwnode based controls. @@ -212650,7 +212586,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 472/810] media: i2c: ov7251: Add fwnode properties controls +Subject: [PATCH 471/847] media: i2c: ov7251: Add fwnode properties controls Add call to v4l2_ctrl_new_fwnode_properties to read and create the fwnode based controls. @@ -212704,7 +212640,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 473/810] media: v4l2: Remove v4l2-ctrls.c +Subject: [PATCH 472/847] 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 @@ -217775,7 +217711,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 474/810] media: v4l2: Add HEVC_SCALING_MATRIX attribute to +Subject: [PATCH 473/847] media: v4l2: Add HEVC_SCALING_MATRIX attribute to v4l2-ctrl-* Add code to support V4L2_CID_MPEG_VIDEO_HEVC_SCALING_MATRIX to @@ -217841,7 +217777,7 @@ 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 475/810] media: rpivid: Update to compile with new hevc decode +Subject: [PATCH 474/847] media: rpivid: Update to compile with new hevc decode params DPB entries have moved from slice params to the new decode params @@ -218050,7 +217986,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 476/810] media: v4l2: Add Greyworld AWB control name +Subject: [PATCH 475/847] 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 @@ -218080,7 +218016,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 477/810] videodev2.h: add V4L2_CTRL_FLAG_DYNAMIC_ARRAY +Subject: [PATCH 476/847] 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. @@ -218140,7 +218076,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 478/810] v4l2-ctrls: add support for dynamically allocated +Subject: [PATCH 477/847] v4l2-ctrls: add support for dynamically allocated arrays. Implement support for dynamically allocated arrays. @@ -218842,7 +218778,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 479/810] media: rpivid: Make slice ctrl dynamic +Subject: [PATCH 478/847] 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. @@ -219187,7 +219123,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 480/810] media: rpivid: Only create aux entries for H265 if +Subject: [PATCH 479/847] media: rpivid: Only create aux entries for H265 if needed Only create aux entries of mv info for frames where that info might @@ -219304,7 +219240,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 481/810] usb: xhci: workaround for bogus SET_DEQ_PENDING +Subject: [PATCH 480/847] usb: xhci: workaround for bogus SET_DEQ_PENDING endpoint state See https://github.com/raspberrypi/linux/issues/3981 @@ -219351,7 +219287,7 @@ index d0b6806275e0..45b8404e6355 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Wed, 8 Sep 2021 14:15:17 +0100 -Subject: [PATCH 482/810] media: i2c: imx477: Allow control of on-sensor DPC +Subject: [PATCH 481/847] 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. @@ -219397,7 +219333,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 483/810] sound/usb: add device quirks for A4Tech FHD 1080p +Subject: [PATCH 482/847] sound/usb: add device quirks for A4Tech FHD 1080p webcams These devices use a type of Sonix chipset that produces broken microphone @@ -219430,7 +219366,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 484/810] sound/usb: call usb_autopm_get_interface() for +Subject: [PATCH 483/847] sound/usb: call usb_autopm_get_interface() for devices that should not be suspended Webcams with microphones are composite devices, and autosuspend is set @@ -219473,7 +219409,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 485/810] brcmfmac: Try product-specific clm_blob names first +Subject: [PATCH 484/847] brcmfmac: Try product-specific clm_blob names first Signed-off-by: Phil Elwell --- @@ -219644,7 +219580,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 486/810] staging: vchiq_arm: Add 36-bit address support +Subject: [PATCH 485/847] 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 @@ -219914,7 +219850,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 487/810] staging: vchiq_arm: children inherit DMA config +Subject: [PATCH 486/847] 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 @@ -219956,7 +219892,7 @@ index 2e1c1bac3a16..61a53f590062 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: detule Date: Tue, 2 Oct 2018 04:10:08 -0400 -Subject: [PATCH 488/810] staging: vchiq_arm: Usa a DMA pool for small bulks +Subject: [PATCH 487/847] 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 @@ -220083,7 +220019,7 @@ index 61a53f590062..f6d7627f5f13 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 13 Sep 2021 17:30:18 +0100 -Subject: [PATCH 489/810] drm/vc4: Reset HDMI MISC_CONTROL register. +Subject: [PATCH 488/847] 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 @@ -220160,7 +220096,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 490/810] drm/vc4: Release workaround buffer and DMA in error +Subject: [PATCH 489/847] 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 @@ -220311,7 +220247,7 @@ index 96816a090e1b..c8ae4615775f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 18 Jun 2021 21:52:28 +0100 -Subject: [PATCH 491/810] drm/vc4: Correct DSI divider calculations +Subject: [PATCH 490/847] drm/vc4: Correct DSI divider calculations The divider calculations tried to find the divider just faster than the clock requested. However if @@ -220352,7 +220288,7 @@ index c8ae4615775f..9e349ba8be4d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 3 Sep 2021 17:47:37 +0100 -Subject: [PATCH 492/810] drm/panel/raspberrypi-touchscreen: Avoid NULL deref +Subject: [PATCH 491/847] drm/panel/raspberrypi-touchscreen: Avoid NULL deref if not initialised If a call to rpi_touchscreen_i2c_write from rpi_touchscreen_probe @@ -220387,7 +220323,7 @@ index 07013bfddf42..f361cedac6ea 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 3 Sep 2021 17:52:59 +0100 -Subject: [PATCH 493/810] drm/panel/raspberrypi-touchscreen: Initialise the +Subject: [PATCH 492/847] drm/panel/raspberrypi-touchscreen: Initialise the bridge in prepare The panel has a prepare call which is before video starts, and an @@ -220443,7 +220379,7 @@ index f361cedac6ea..bd15c2f2e247 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 8 Sep 2021 14:21:38 +0100 -Subject: [PATCH 494/810] drm/panel/raspberrypi-touchscreen: Handle I2C errors. +Subject: [PATCH 493/847] drm/panel/raspberrypi-touchscreen: Handle I2C errors. rpi_touchscreen_i2c_read returns any errors from i2c_transfer, or the 8 bit received value. @@ -220483,7 +220419,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 495/810] drm/panel-simple: Add a timing for the Raspberry Pi +Subject: [PATCH 494/847] drm/panel-simple: Add a timing for the Raspberry Pi 7" panel The Raspberry Pi 7" 800x480 panel uses a Toshiba TC358762 DSI @@ -220548,7 +220484,7 @@ index e4e479ed1fdc..706735946fdc 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 8 Sep 2021 14:46:17 +0100 -Subject: [PATCH 496/810] Input: edt-ft54x6: Clean up timer and workqueue on +Subject: [PATCH 495/847] Input: edt-ft54x6: Clean up timer and workqueue on remove If no interrupt is defined then a timer and workqueue are used @@ -220585,7 +220521,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 497/810] regulator: rpi-panel: Register with a unique +Subject: [PATCH 496/847] regulator: rpi-panel: Register with a unique backlight name There's no reason why 2 Raspberry Pi DSI displays can't be @@ -220620,7 +220556,7 @@ index ee46bfbf5eee..370b9ae363dd 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 8 Sep 2021 14:56:03 +0100 -Subject: [PATCH 498/810] regulator: rpi-panel: Handle I2C errors/timing to the +Subject: [PATCH 497/847] regulator: rpi-panel: Handle I2C errors/timing to the Atmel The Atmel is doing some things in the I2C ISR, during which @@ -220757,7 +220693,7 @@ index 370b9ae363dd..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 499/810] regulator: rpi-panel: Serialise operations. +Subject: [PATCH 498/847] regulator: rpi-panel: Serialise operations. The driver was using the regmap lock to serialise the individual accesses, but we really need to protect the @@ -221017,7 +220953,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 500/810] regulator: rpi-panel: Ensure the backlight is off +Subject: [PATCH 499/847] regulator: rpi-panel: Ensure the backlight is off during probe. The initial state of the Atmel is not defined, so ensure the @@ -221047,7 +220983,7 @@ 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 501/810] regulator: rpi-panel: Convert to drive lines directly +Subject: [PATCH 500/847] 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 @@ -221252,7 +221188,7 @@ 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 502/810] regulator: rpi-panel: Add GPIO control for panel and +Subject: [PATCH 501/847] regulator: rpi-panel: Add GPIO control for panel and touch resets We need independent control of the resets for the panel&bridge, @@ -221460,7 +221396,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 503/810] staging/bcm2835-codec: Change the default codec res +Subject: [PATCH 502/847] staging/bcm2835-codec: Change the default codec res to 32x32 In order to effectively guarantee that a V4L2_EVENT_SOURCE_CHANGE @@ -221506,7 +221442,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 504/810] staging/vchiq-mmal: Add buffer flags for interlaced +Subject: [PATCH 503/847] staging/vchiq-mmal: Add buffer flags for interlaced video Add the buffer flags that the firmware uses to identify fields @@ -221554,7 +221490,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 505/810] staging/vchiq-mmal: Add parameters for interlaced +Subject: [PATCH 504/847] staging/vchiq-mmal: Add parameters for interlaced video support Adds enum mmal_interlace_type and struct @@ -221621,7 +221557,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 506/810] staging/bcm2835-codec: Add support for decoding +Subject: [PATCH 505/847] staging/bcm2835-codec: Add support for decoding interlaced streams The video decoder can support decoding interlaced streams, so add @@ -221800,7 +221736,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 507/810] staging/bcm2835-codec: Correct ENUM_FRAMESIZES +Subject: [PATCH 506/847] staging/bcm2835-codec: Correct ENUM_FRAMESIZES stepsize to 2 Being YUV420 formats, the step size is always 2 to avoid part @@ -221835,7 +221771,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 508/810] staging/bcm2835-codec: Return buffers to QUEUED not +Subject: [PATCH 507/847] staging/bcm2835-codec: Return buffers to QUEUED not ERROR state Should start_streaming fail, or buffers be queued during @@ -221876,7 +221812,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 509/810] staging/bcm2835_codec: Log MMAL flags in hex +Subject: [PATCH 508/847] 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. @@ -221906,7 +221842,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 510/810] staging: bcm2835-codec: Allow custom specified +Subject: [PATCH 509/847] staging: bcm2835-codec: Allow custom specified strides/bytesperline. If the client provides a bytesperline value in try_fmt/s_fmt then @@ -221951,7 +221887,7 @@ 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 511/810] staging/vchiq-mmal: Add the deinterlace image effects +Subject: [PATCH 510/847] staging/vchiq-mmal: Add the deinterlace image effects enums As we're wanting to wrap the image_fx component for deinterlacing, @@ -221983,7 +221919,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 512/810] staging/bcm2835_codec: Add support for image_fx to +Subject: [PATCH 511/847] staging/bcm2835_codec: Add support for image_fx to deinterlace Adds another /dev/video node wrapping image_fx doing deinterlace. @@ -222256,7 +222192,7 @@ 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 513/810] staging/bcm2835-v4l2_codec: Fix for encode selection +Subject: [PATCH 512/847] staging/bcm2835-v4l2_codec: Fix for encode selection API Matches correct behaviour from DECODE and DEINTERLACE @@ -222286,7 +222222,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 514/810] Add Raspberry Pi PoE+ HAT support +Subject: [PATCH 513/847] Add Raspberry Pi PoE+ HAT support Signed-off-by: Serge Schneider --- @@ -222580,7 +222516,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 515/810] configs: Add CAN_PEAK_USB=m +Subject: [PATCH 514/847] configs: Add CAN_PEAK_USB=m Add the driver for the PEAK Systems USB CAN interface. @@ -222662,7 +222598,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 516/810] ARM: dts: Restore downstream dtbs to Makefile +Subject: [PATCH 515/847] ARM: dts: Restore downstream dtbs to Makefile Signed-off-by: Phil Elwell --- @@ -222699,7 +222635,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 517/810] media: rpivid: Avoid returning EINVAL to a G_FMT +Subject: [PATCH 516/847] media: rpivid: Avoid returning EINVAL to a G_FMT ioctl V4L2 spec says that G/S/TRY_FMT IOCTLs should never return errors for @@ -222988,7 +222924,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 518/810] net: phy: lan87xx: Allow more time for link detect +Subject: [PATCH 517/847] 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. @@ -223032,7 +222968,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 519/810] media: rpivid: Remove unused ctx state variable and +Subject: [PATCH 518/847] media: rpivid: Remove unused ctx state variable and defines Remove unused ctx state tracking variable and associated defines. @@ -223075,7 +223011,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 520/810] media: rpivid: Ensure IRQs have completed before +Subject: [PATCH 519/847] media: rpivid: Ensure IRQs have completed before uniniting context Before uniniting the decode context sync with the IRQ queues to ensure @@ -223181,7 +223117,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 521/810] staging: bcm2835-codec: Allow decode res changed +Subject: [PATCH 520/847] staging: bcm2835-codec: Allow decode res changed before STREAMON(CAPTURE) The V4L2 stateful video decoder API requires that you can STREAMON @@ -223425,7 +223361,7 @@ 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 522/810] staging/bcm2835-codec: Do not send buffers to the VPU +Subject: [PATCH 521/847] staging/bcm2835-codec: Do not send buffers to the VPU unless streaming With video decode we now enable both input and output ports on @@ -223524,7 +223460,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 523/810] staging/mmal-vchiq: Rationalise included headers +Subject: [PATCH 522/847] staging/mmal-vchiq: Rationalise included headers The list of includes was slightly over generic, and wasn't in alphabetical order. Clean it up. @@ -223566,7 +223502,7 @@ 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 524/810] staging: bcm2835-codec: Format changed should trigger +Subject: [PATCH 523/847] staging: bcm2835-codec: Format changed should trigger drain When a format changed event occurs, the spec says that it @@ -223615,7 +223551,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 525/810] staging: bcm2835-codec: Signal the firmware to stop +Subject: [PATCH 524/847] staging: bcm2835-codec: Signal the firmware to stop on all changes The firmware defaults to not stopping video decode if only the @@ -223671,7 +223607,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 526/810] staging/mmal-vchiq: Add module parameter to enable +Subject: [PATCH 525/847] staging/mmal-vchiq: Add module parameter to enable logging. Adds a module parameter "debug" to enable various logging levels. @@ -223998,7 +223934,7 @@ 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 527/810] staging: bcm2835-codec: Queue flushed buffers instead +Subject: [PATCH 526/847] staging: bcm2835-codec: Queue flushed buffers instead of completing When a buffer is returned on a port that is disabled, return it @@ -224032,7 +223968,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 528/810] staging: mmal-vchiq: Reset buffers_with_vpu on +Subject: [PATCH 527/847] staging: mmal-vchiq: Reset buffers_with_vpu on port_enable Should we go through the timeout failure case with port_disable @@ -224069,7 +224005,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 529/810] staging: bcm2835_codec: Correct flushing code for +Subject: [PATCH 528/847] staging: bcm2835_codec: Correct flushing code for refcounting Completions don't reference count, so setting the completion @@ -224167,7 +224103,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 530/810] staging: bcm2835-codec: Ensure all ctrls are set on +Subject: [PATCH 529/847] staging: bcm2835-codec: Ensure all ctrls are set on streamon Currently the code was only setting some controls from @@ -224284,7 +224220,7 @@ 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 531/810] staging: bcm2835-codec: Add support for H&V Flips to +Subject: [PATCH 530/847] staging: bcm2835-codec: Add support for H&V Flips to ISP The ISP can do H & V flips whilst resizing or converting @@ -224375,7 +224311,7 @@ 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 532/810] overlays: add support for the MLX90640 thermal camera +Subject: [PATCH 531/847] 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 @@ -224453,7 +224389,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 533/810] overlays: Add generic mcp2515 overlay +Subject: [PATCH 532/847] overlays: Add generic mcp2515 overlay Can configure mcp2515 on spi0/1/2 without the need for multiple overlays. --- @@ -224670,7 +224606,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 534/810] regulator: rpi-panel: Remove get_brightness hook +Subject: [PATCH 533/847] 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 @@ -224730,7 +224666,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 535/810] bcm2835_smi_dev: Fix handling of word-odd lengths +Subject: [PATCH 534/847] 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, @@ -224827,7 +224763,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 536/810] Revert "mmc: sdhci-iproc: Fix vmmc regulators on +Subject: [PATCH 535/847] Revert "mmc: sdhci-iproc: Fix vmmc regulators on iProc" This reverts commit aed19399a01733dbad9be8bf026a4f7dd823b04f. @@ -224878,7 +224814,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 537/810] mmc: sdhci-iproc: Fix vmmc regulators (pre-bcm2711) +Subject: [PATCH 536/847] 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 @@ -224912,7 +224848,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 538/810] dt-bindings: media: i2c: Add IMX519 CMOS sensor +Subject: [PATCH 537/847] dt-bindings: media: i2c: Add IMX519 CMOS sensor binding Add YAML device tree binding for IMX519 CMOS image sensor, and @@ -225045,7 +224981,7 @@ index 000000000000..717230a21764 + +... diff --git a/MAINTAINERS b/MAINTAINERS -index b1510287b546..55cce0c59093 100644 +index 1777d31b7bb1..b85a51d5abf2 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -17531,6 +17531,14 @@ F: Documentation/devicetree/bindings/media/i2c/imx378.yaml @@ -225070,7 +225006,7 @@ index b1510287b546..55cce0c59093 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Lee Jackson Date: Fri, 27 Aug 2021 13:48:52 +0800 -Subject: [PATCH 539/810] media: i2c: Add driver for IMX519 sensor +Subject: [PATCH 538/847] 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 @@ -227163,7 +227099,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 540/810] media: i2c: imx519: Advertise embedded data node on +Subject: [PATCH 539/847] media: i2c: imx519: Advertise embedded data node on media pad 1 This commit updates the imx519 driver to adverise support for embedded @@ -227418,7 +227354,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 541/810] configs: Add CONFIG_VIDEO_IMX519=m +Subject: [PATCH 540/847] configs: Add CONFIG_VIDEO_IMX519=m Include the driver module for the IMX519. @@ -227498,7 +227434,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 542/810] overlays: Add imx519-overlay.dts +Subject: [PATCH 541/847] overlays: Add imx519-overlay.dts Added overlays for enabling IMX519 and add the relevant information to the README. @@ -227673,7 +227609,7 @@ 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 543/810] dtoverlays: Add overlay for ST7735R (160x128) TinyDRM +Subject: [PATCH 542/847] dtoverlays: Add overlay for ST7735R (160x128) TinyDRM driver Adds an overlay to configure the TinyDRM driver for ST7735R @@ -227824,7 +227760,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 544/810] dwc_otg: pay attention to qh->interval when +Subject: [PATCH 543/847] dwc_otg: pay attention to qh->interval when rescheduling periodic queues A regression introduced in https://github.com/raspberrypi/linux/pull/3887 @@ -227859,7 +227795,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 545/810] Hifiberry DAC+ADCPro DT overlay: add optional +Subject: [PATCH 544/847] Hifiberry DAC+ADCPro DT overlay: add optional headphone amp This is a copy of the approach from our DAC+ driver. @@ -227894,7 +227830,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 546/810] Hifiberry DAC+ADCPro: adding optional headphone amp +Subject: [PATCH 545/847] Hifiberry DAC+ADCPro: adding optional headphone amp control This is a copy of the code and approach from our DAC+ driver. @@ -228045,7 +227981,7 @@ 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 547/810] Add module for 8111h chip used in various CM4 boards +Subject: [PATCH 546/847] Add module for 8111h chip used in various CM4 boards --- arch/arm/configs/bcm2711_defconfig | 1 + @@ -228083,7 +228019,7 @@ 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 548/810] drivers/gpio: Add a driver that wraps the PWM API as +Subject: [PATCH 547/847] 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 @@ -228286,7 +228222,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 549/810] rtc: pcf85063: Always clear EXT_TEST from set_time +Subject: [PATCH 548/847] 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 @@ -228328,7 +228264,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 550/810] char: vcio: Rewrite as a firmware node child +Subject: [PATCH 549/847] 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 @@ -228571,7 +228507,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 551/810] ARM: dts: Make vcio a child of the firmware node +Subject: [PATCH 550/847] 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 @@ -228607,7 +228543,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 552/810] ARM: dts: bcm2835_audio missing firmware reference +Subject: [PATCH 551/847] 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 @@ -228642,7 +228578,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 553/810] ARM: dts: Delete vestigial vcsm node +Subject: [PATCH 552/847] ARM: dts: Delete vestigial vcsm node Signed-off-by: Phil Elwell --- @@ -228673,7 +228609,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 554/810] config: Enable FSFS_FS_SECURITY +Subject: [PATCH 553/847] config: Enable FSFS_FS_SECURITY Add a negligible amount of core kernel code for capability-based access control on F2FS. @@ -228756,7 +228692,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 555/810] gpio: bcm-virt: Fix the get() method +Subject: [PATCH 554/847] 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 @@ -228791,7 +228727,7 @@ index 49e28ad9760e..55c40190e88a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 20 Oct 2021 16:47:09 +0100 -Subject: [PATCH 556/810] Revert "drm/atomic: Pass the full state to CRTC +Subject: [PATCH 555/847] Revert "drm/atomic: Pass the full state to CRTC atomic enable/disable" This reverts commit a40d37ed7f14b152d098532802d2a676b76d145c. @@ -228819,7 +228755,7 @@ index eff9dc6029c2..768012243b44 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Erik Tagirov Date: Wed, 20 Oct 2021 09:51:26 +0200 -Subject: [PATCH 557/810] configs: Add CONFIG_FB_SIMPLE to bcmrpi3_defconfig +Subject: [PATCH 556/847] configs: Add CONFIG_FB_SIMPLE to bcmrpi3_defconfig See: https://github.com/raspberrypi/linux/pull/4640 @@ -228847,7 +228783,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 558/810] media: i2c: imx219: Sensor should report RAW color +Subject: [PATCH 557/847] media: i2c: imx219: Sensor should report RAW color space Tested on Raspberry Pi running libcamera. @@ -228886,7 +228822,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 559/810] media: i2c: imx290: Sensor should report RAW color +Subject: [PATCH 558/847] media: i2c: imx290: Sensor should report RAW color space Tested on Raspberry Pi running libcamera. @@ -228916,7 +228852,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 560/810] media: i2c: imx477: Sensor should report RAW color +Subject: [PATCH 559/847] media: i2c: imx477: Sensor should report RAW color space Tested on Raspberry Pi running libcamera. @@ -228946,7 +228882,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 561/810] media: i2c: imx519: Sensor should report RAW color +Subject: [PATCH 560/847] media: i2c: imx519: Sensor should report RAW color space Tested on Raspberry Pi running libcamera. @@ -228976,7 +228912,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 562/810] media: i2c: ov5647: Sensor should report RAW color +Subject: [PATCH 561/847] media: i2c: ov5647: Sensor should report RAW color space Tested on Raspberry Pi running libcamera. @@ -229033,7 +228969,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 563/810] media: i2c: ov9281: Sensor should report RAW color +Subject: [PATCH 562/847] media: i2c: ov9281: Sensor should report RAW color space Tested on Raspberry Pi running libcamera. @@ -229081,7 +229017,7 @@ 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 564/810] vc04_services: isp: Report input node as wanting full +Subject: [PATCH 563/847] vc04_services: isp: Report input node as wanting full range RAW color space RAW color spaces are more usually reported as having full range @@ -229116,7 +229052,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 565/810] media/bcm2835-unicam: Parse pad numbers correctly +Subject: [PATCH 564/847] 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 @@ -229353,7 +229289,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 566/810] media/bcm2835-unicam: Add support for configuration +Subject: [PATCH 565/847] media/bcm2835-unicam: Add support for configuration via MC API Adds Media Controller API support for more complex pipelines. @@ -232072,7 +232008,7 @@ index 642764ebf4b8..80196cd1a54c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: John Cox Date: Fri, 22 Oct 2021 13:11:38 +0100 -Subject: [PATCH 567/810] media: bcm2835-codec: Limit video callbacks +Subject: [PATCH 566/847] media: bcm2835-codec: Limit video callbacks Limit the number of allowed video callbacks. This helps with limiting the size of the coded input FIFO which in turn helps to control latency. @@ -232114,7 +232050,7 @@ index 6078d6e2ace0..e8452c82d088 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 25 Oct 2021 11:48:18 +0100 -Subject: [PATCH 568/810] ARM: dts: vc4-kms-v3d: Always disable firmware HDMI +Subject: [PATCH 567/847] 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. @@ -232169,7 +232105,7 @@ 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 569/810] staging/bcm2835-camera: Add support for H264_MIN_QP, +Subject: [PATCH 568/847] staging/bcm2835-camera: Add support for H264_MIN_QP, H264_MAX_QP Signed-off-by: Gergo Koteles @@ -232231,7 +232167,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 570/810] staging/bcm2835-camera: Add support for +Subject: [PATCH 569/847] staging/bcm2835-camera: Add support for MPEG_VIDEO_FORCE_KEY_FRAME Signed-off-by: Gergo Koteles @@ -232282,7 +232218,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 571/810] ARM: dts: Add Pi Zero 2 support +Subject: [PATCH 570/847] ARM: dts: Add Pi Zero 2 support Signed-off-by: Phil Elwell --- @@ -232515,7 +232451,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 572/810] clk-raspberrypi: Support VEC clock +Subject: [PATCH 571/847] clk-raspberrypi: Support VEC clock Signed-off-by: Dom Cobley --- @@ -232557,7 +232493,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 573/810] dt: Move VEC clock to clk-raspberrypi +Subject: [PATCH 572/847] 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. @@ -232569,10 +232505,10 @@ Signed-off-by: Dom Cobley 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/bcm2711.dtsi b/arch/arm/boot/dts/bcm2711.dtsi -index 8f5fd95f9970..544633a84433 100644 +index 9ef2696b71e9..9d3b009cd7c9 100644 --- a/arch/arm/boot/dts/bcm2711.dtsi +++ b/arch/arm/boot/dts/bcm2711.dtsi -@@ -303,7 +303,7 @@ +@@ -304,7 +304,7 @@ vec: vec@7ec13000 { compatible = "brcm,bcm2711-vec"; reg = <0x7ec13000 0x1000>; @@ -232601,7 +232537,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 574/810] clk-bcm2835: Remove VEC clock support +Subject: [PATCH 573/847] clk-bcm2835: Remove VEC clock support Signed-off-by: Dom Cobley --- @@ -232641,7 +232577,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 575/810] drm/vc4: Add support for gamma on BCM2711 +Subject: [PATCH 574/847] 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 @@ -232663,10 +232599,10 @@ 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 23be68a8ecec..e06801557cec 100644 +index 3a612cb347b9..e63e08d7932d 100644 --- a/drivers/gpu/drm/vc4/vc4_crtc.c +++ b/drivers/gpu/drm/vc4/vc4_crtc.c -@@ -1162,19 +1162,42 @@ int vc4_crtc_init(struct drm_device *drm, struct vc4_crtc *vc4_crtc, +@@ -1164,19 +1164,42 @@ int vc4_crtc_init(struct drm_device *drm, struct vc4_crtc *vc4_crtc, if (!vc4->hvs->hvs5) { drm_mode_crtc_set_gamma_size(crtc, ARRAY_SIZE(vc4_crtc->lut_r)); @@ -232925,7 +232861,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 576/810] drm/vc4: Add debugfs node that dumps the vc5 gamma +Subject: [PATCH 575/847] 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 @@ -233045,7 +232981,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 577/810] drm/vc4: hvs: Force modeset on gamma lut change +Subject: [PATCH 576/847] 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. @@ -233062,7 +232998,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 e06801557cec..8a081fa0c366 100644 +index e63e08d7932d..29165868cc66 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, @@ -233160,7 +233096,7 @@ 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 578/810] media: i2c: imx477: Add vsync trigger_mode parameter +Subject: [PATCH 577/847] media: i2c: imx477: Add vsync trigger_mode parameter trigger_mode == 0 (default) => no effect / no registers written trigger_mode == 1 => source @@ -233230,7 +233166,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 579/810] drm/vc4: Relax VEC modeline requirements and add +Subject: [PATCH 578/847] drm/vc4: Relax VEC modeline requirements and add progressive mode support Make vc4_vec_encoder_atomic_check() accept arbitrary modelines, as long @@ -233245,7 +233181,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 8a081fa0c366..65c53a10ed6d 100644 +index 29165868cc66..5813b4ab619e 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 @@ -233394,7 +233330,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 580/810] drm/vc4: Make VEC progressive modes readily +Subject: [PATCH 579/847] drm/vc4: Make VEC progressive modes readily accessible Add predefined modelines for the 240p (NTSC) and 288p (PAL) progressive @@ -233566,7 +233502,7 @@ 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 581/810] bcm2835-v4l2-codec: Remove advertised support of VP8 +Subject: [PATCH 580/847] 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. @@ -233599,7 +233535,7 @@ index e8452c82d088..351d693873ed 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 1 Nov 2021 15:44:31 +0000 -Subject: [PATCH 582/810] ARM: dts: Rename Zero 2 W DT files +Subject: [PATCH 581/847] 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. @@ -233997,7 +233933,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 583/810] brcmfmac: Don't promote INFO logging to ERR +Subject: [PATCH 582/847] 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 @@ -234035,7 +233971,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 584/810] dtoverlays: Update all image sensor overlays for +Subject: [PATCH 583/847] dtoverlays: Update all image sensor overlays for Media Controller option Add an option to enable configuration via the Media Controller API @@ -234398,7 +234334,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 585/810] ARM: dt: Add DT nodes for the WLAN interfaces +Subject: [PATCH 584/847] ARM: dt: Add DT nodes for the WLAN interfaces Mirror upstream changes into the downstream dts files. @@ -234489,7 +234425,7 @@ index 6d0f0c9aae0f..2bd223a405a7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 2 Nov 2021 16:53:20 +0000 -Subject: [PATCH 586/810] Revert "brcmfmac: BCM43436 needs dedicated firmware" +Subject: [PATCH 585/847] Revert "brcmfmac: BCM43436 needs dedicated firmware" This reverts commit 0a2690fa8c3a0b356a0cf5fc63c2428264ead0e7. --- @@ -234524,7 +234460,7 @@ index fd1a09228f9a..6bcaa402a356 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 28 Oct 2021 15:03:16 +0100 -Subject: [PATCH 587/810] brcmfmac: Read alternative firmware names from DT +Subject: [PATCH 586/847] 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 @@ -234730,7 +234666,7 @@ index 6bcaa402a356..5b7118da6ed1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 28 Oct 2021 15:09:25 +0100 -Subject: [PATCH 588/810] ARM: dts: Provide WLAN firmware names for Zero 2 W +Subject: [PATCH 587/847] 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 @@ -234776,7 +234712,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 589/810] drm: Check whether the gamma lut has changed before +Subject: [PATCH 588/847] drm: Check whether the gamma lut has changed before updating drm_crtc_legacy_gamma_set updates the gamma_lut blob unconditionally, @@ -234815,7 +234751,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 590/810] brcmfmac: Protect against reprobing +Subject: [PATCH 589/847] 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 @@ -234860,7 +234796,7 @@ index 5b7118da6ed1..41a6509b5dc1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 20 Oct 2021 13:31:22 +0200 -Subject: [PATCH 591/810] drm/vc4: kms: Fix return code check +Subject: [PATCH 590/847] 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 @@ -234908,7 +234844,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 592/810] drm/vc4: kms: Move clock request to our HVS state +Subject: [PATCH 591/847] 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 @@ -234975,7 +234911,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 593/810] overlays: Add fbtft overlay +Subject: [PATCH 592/847] overlays: Add fbtft overlay MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -235761,7 +235697,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 594/810] configs: Regenerate defconfigs +Subject: [PATCH 593/847] configs: Regenerate defconfigs Signed-off-by: Phil Elwell --- @@ -235879,7 +235815,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 595/810] configs: Add NTFS3 support +Subject: [PATCH 594/847] configs: Add NTFS3 support ntfs3 provides improved support for NTFS filesystems without the performance hit of a userspace FUSE filesystem. @@ -235960,7 +235896,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 596/810] configs: Add kernel SMB3 server support +Subject: [PATCH 595/847] configs: Add kernel SMB3 server support Enable the in-kernel (module) SMB3 server. @@ -236040,7 +235976,7 @@ index 38fff49a5951..82c996f54a8d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 9 Nov 2021 00:14:16 +0000 -Subject: [PATCH 597/810] Revert "media: bcm2835-codec: Limit video callbacks" +Subject: [PATCH 596/847] Revert "media: bcm2835-codec: Limit video callbacks" This reverts commit f7abe646a35b6f873abc88c47be2651472793823. --- @@ -236073,7 +236009,7 @@ index 351d693873ed..97c8afa0861e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: arturo182 Date: Tue, 9 Nov 2021 16:21:56 +0100 -Subject: [PATCH 598/810] config: Set TCA8418 to module +Subject: [PATCH 597/847] config: Set TCA8418 to module This chip is a popular way to add a matrix keyboard using I2C. --- @@ -236151,7 +236087,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 599/810] overlays: Additional parameters for gpio-poweroff +Subject: [PATCH 598/847] 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 @@ -236209,7 +236145,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 600/810] configs: Add TCA6416 driver module +Subject: [PATCH 599/847] configs: Add TCA6416 driver module Add a matrix keyboard on I2C @@ -236289,7 +236225,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 601/810] drm: Fix double free from checking if gamma lut has +Subject: [PATCH 600/847] 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 @@ -236321,7 +236257,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 602/810] drm/vc4: Enable gamma block only when required. +Subject: [PATCH 601/847] 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 @@ -236393,7 +236329,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 603/810] drm/vc4: Only add gamma properties once. +Subject: [PATCH 602/847] 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, @@ -236406,10 +236342,10 @@ 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 65c53a10ed6d..cf4dcf8ef433 100644 +index 5813b4ab619e..69a70af0b933 100644 --- a/drivers/gpu/drm/vc4/vc4_crtc.c +++ b/drivers/gpu/drm/vc4/vc4_crtc.c -@@ -1194,7 +1194,7 @@ int vc4_crtc_init(struct drm_device *drm, struct vc4_crtc *vc4_crtc, +@@ -1196,7 +1196,7 @@ int vc4_crtc_init(struct drm_device *drm, struct vc4_crtc *vc4_crtc, /* We support CTM, but only for one CRTC at a time. It's therefore * implemented as private driver state in vc4_kms, not here. */ @@ -236425,7 +236361,7 @@ index 65c53a10ed6d..cf4dcf8ef433 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 10 Nov 2021 15:55:32 +0000 -Subject: [PATCH 604/810] dtoverlays: Remove i2c0mux and i20if status from +Subject: [PATCH 603/847] dtoverlays: Remove i2c0mux and i20if status from edt-ft5406.dtsi edt-ft5406.dtsi is included from vc4-kms-dsi-7inch which was @@ -236512,7 +236448,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 605/810] drm/vc4: Validate the size of the gamma_lut +Subject: [PATCH 604/847] 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. @@ -236550,7 +236486,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 606/810] drm/vc4: Don't try disabling SCDC on Pi0-3. +Subject: [PATCH 605/847] 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 @@ -236588,7 +236524,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 607/810] enable several virtual devices for hosting virtual +Subject: [PATCH 606/847] enable several virtual devices for hosting virtual machines --- @@ -236659,7 +236595,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 608/810] configs: add CONFIG_HID_PLAYSTATION=m and +Subject: [PATCH 607/847] configs: add CONFIG_HID_PLAYSTATION=m and CONFIG_PLAYSTATION_FF=y Enables support for the PlayStation 5 'DualSense' controller and its @@ -236755,7 +236691,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 609/810] configs: add LEDS_PWM=y +Subject: [PATCH 608/847] configs: add LEDS_PWM=y Enable support for PWM driven LEDs. @@ -236835,7 +236771,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 610/810] configs: Add USB gadget support (for Zero 2 W) +Subject: [PATCH 609/847] 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. @@ -236883,7 +236819,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 611/810] media: i2c: ov5647: Support HFLIP and VFLIP +Subject: [PATCH 610/847] 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. @@ -237078,7 +237014,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 612/810] drivers: bcm2835_isp: Allow multiple users for the +Subject: [PATCH 611/847] 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 @@ -237257,7 +237193,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 613/810] drivers: bcm2835_isp: Fix div by 0 bug. +Subject: [PATCH 612/847] 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. @@ -237286,7 +237222,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 614/810] Pass V4L2_CID_MPEG_VIDEO_H264_MIN_QP/MAX_QP to +Subject: [PATCH 613/847] Pass V4L2_CID_MPEG_VIDEO_H264_MIN_QP/MAX_QP to bcm2835-v4l2-codec Following raspberrypi/linux#4704. This is necessary to set up @@ -237359,7 +237295,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 615/810] ARM: dts: Update rpi-400 and cm4 dts to match 4-b +Subject: [PATCH 614/847] 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 @@ -237698,7 +237634,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 616/810] spi: spidev: Restore loading from Device Tree +Subject: [PATCH 615/847] 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 @@ -237729,7 +237665,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 617/810] drm/vc4: Add support for composite syncs to vc4_dpi +Subject: [PATCH 616/847] 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. @@ -237790,7 +237726,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 618/810] drm/vc4: Ensure vc4_hdmi doesn't use 2711 HPD +Subject: [PATCH 617/847] 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 @@ -237883,7 +237819,7 @@ 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 619/810] input: edt-ft5x06: Handle unreliable TOUCH_UP events +Subject: [PATCH 618/847] 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. @@ -237952,7 +237888,7 @@ 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 620/810] dtoverlays: Use edt-ft5506 for 10 points, instead of +Subject: [PATCH 619/847] dtoverlays: Use edt-ft5506 for 10 points, instead of edt-ft5x06 Whilst all the datasheets describe FT5x06 as supporting "up to @@ -237988,7 +237924,7 @@ index 6f9b4d02460b..2d0ff0e8b24e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 29 Nov 2021 13:11:56 +0000 -Subject: [PATCH 621/810] dtoverlays: Drop i2c baudrate for Pi 7inch DSI screen +Subject: [PATCH 620/847] dtoverlays: Drop i2c baudrate for Pi 7inch DSI screen to 50kHz Whilst investigations continue as to why the 7" DSI screen doesn't @@ -238022,7 +237958,7 @@ index 5e1700d0367a..5b6f82aaa6fb 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 26 Nov 2021 16:46:22 +0000 -Subject: [PATCH 622/810] staging/bcm2835-codec: bytesperline for YUV420/YVU420 +Subject: [PATCH 621/847] staging/bcm2835-codec: bytesperline for YUV420/YVU420 needs to be 64 Matching https://github.com/raspberrypi/linux/pull/4419, the ISP @@ -238070,7 +238006,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 623/810] media: rpivid: remove min_buffers_needed from src +Subject: [PATCH 622/847] media: rpivid: remove min_buffers_needed from src queue Remove min_buffers_needed=1 from src queue init. Src buffers are bound @@ -238101,7 +238037,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 624/810] staging/bcm2835-codec: Allow a different stride +Subject: [PATCH 623/847] staging/bcm2835-codec: Allow a different stride alignment per role Deinterlace and decode aren't affected in the same way as encode @@ -238697,7 +238633,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 625/810] drivers: bcm2835_unicam: Add logging message when a +Subject: [PATCH 624/847] 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 @@ -238729,7 +238665,7 @@ 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 626/810] regulator/rpi-panel-attiny: Don't read the LCD power +Subject: [PATCH 625/847] regulator/rpi-panel-attiny: Don't read the LCD power status The I2C to the Atmel is very fussy, and locks up easily on @@ -238781,7 +238717,7 @@ 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 627/810] regulator/rpi-panel-attiny: Use two transactions for +Subject: [PATCH 626/847] regulator/rpi-panel-attiny: Use two transactions for I2C read The I2C to the Atmel is very fussy, and locks up easily on @@ -238855,7 +238791,7 @@ index 8b80c0de1022..e3decc419814 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 30 Nov 2021 17:39:17 +0000 -Subject: [PATCH 628/810] Revert "dtoverlays: Drop i2c baudrate for Pi 7inch +Subject: [PATCH 627/847] Revert "dtoverlays: Drop i2c baudrate for Pi 7inch DSI screen to 50kHz" This reverts commit 0c41710df564f76275c2868beaa0c316553e8247. @@ -238887,7 +238823,7 @@ index 5b6f82aaa6fb..5e1700d0367a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 30 Nov 2021 17:28:50 +0000 -Subject: [PATCH 629/810] input: edt-ft5x06: Only look at the number of points +Subject: [PATCH 628/847] input: edt-ft5x06: Only look at the number of points reported Register 0x02 in the FT5x06 is TD_STATUS containing the number @@ -238937,7 +238873,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 630/810] drm/vc4: Move HDMI reset to pm_resume +Subject: [PATCH 629/847] 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 @@ -239094,7 +239030,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 631/810] clk: bcm: rpi: Add the BCM283x pixel clock. +Subject: [PATCH 630/847] 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. @@ -239126,7 +239062,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 632/810] dt: bcm283x: Change BCM283x HDMI to use firmware +Subject: [PATCH 631/847] dt: bcm283x: Change BCM283x HDMI to use firmware clock driver The clk-bcm2835 handling of the pixel clock does not function @@ -239161,7 +239097,7 @@ index 15f3975f1ca1..7f46a6ec512c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 26 Nov 2021 17:59:07 +0000 -Subject: [PATCH 633/810] Revert "Revert "overlays: vc4-kms-v3d: Change +Subject: [PATCH 632/847] Revert "Revert "overlays: vc4-kms-v3d: Change composite handling"" Reinstates the new handling. @@ -239228,7 +239164,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 634/810] drm/panel-simple: Populate bpc when using panel-dpi +Subject: [PATCH 633/847] 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. @@ -239258,7 +239194,7 @@ index 706735946fdc..9eef6cf5ba1f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 2 Dec 2021 18:16:21 +0000 -Subject: [PATCH 635/810] drm/panel-simple: Allow the bus format to be read +Subject: [PATCH 634/847] 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, @@ -239292,7 +239228,7 @@ index 9eef6cf5ba1f..c9344fe92a36 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 2 Dec 2021 18:21:46 +0000 -Subject: [PATCH 636/810] drm/vc4: dpi: Add option for inverting pixel clock +Subject: [PATCH 635/847] drm/vc4: dpi: Add option for inverting pixel clock and output enable DRM provides flags for inverting pixel clock and output enable @@ -239413,7 +239349,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 637/810] drm/vc4: dpi: Ensure a default format is selected +Subject: [PATCH 636/847] 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. @@ -239464,7 +239400,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 638/810] dt: bcm270x: Add GPIO defines for RGB565 DPI output +Subject: [PATCH 637/847] dt: bcm270x: Add GPIO defines for RGB565 DPI output modes Adds the pinctrl defines for the RGB565 DPI output modes. @@ -239514,7 +239450,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 639/810] dtoverlays: Add a generic DPI panel overlay for KMS +Subject: [PATCH 638/847] dtoverlays: Add a generic DPI panel overlay for KMS Uses the "panel-dpi" compatible to set panel timings from DT. @@ -239683,7 +239619,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 640/810] xhci: quirks: add link TRB quirk for VL805 +Subject: [PATCH 639/847] 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 @@ -239753,7 +239689,7 @@ index 20b1819ac8d5..19c2e6a03087 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Fri, 3 Dec 2021 14:32:05 +0000 -Subject: [PATCH 641/810] xhci: correct room_on_ring() for cases where there is +Subject: [PATCH 640/847] 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, @@ -239788,7 +239724,7 @@ index 541ec66f4abf..96e1a18228fd 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Fri, 3 Dec 2021 14:33:51 +0000 -Subject: [PATCH 642/810] xhci: add a quirk to work around a suspected cache +Subject: [PATCH 641/847] xhci: add a quirk to work around a suspected cache bug on VLI controllers Certain transfer ring access patterns can cause the controller to hang @@ -239881,7 +239817,7 @@ index 19c2e6a03087..c98fdcb69406 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 8 Dec 2021 13:22:48 +0100 -Subject: [PATCH 643/810] media: imx219: Advertise embedded data node on media +Subject: [PATCH 642/847] media: imx219: Advertise embedded data node on media pad 1 This commit updates the imx219 driver to adverise support for embedded @@ -240303,7 +240239,7 @@ 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 644/810] vc4/drm: Ignore vc4_hdmi->output_enabled for allowing +Subject: [PATCH 643/847] vc4/drm: Ignore vc4_hdmi->output_enabled for allowing audio (#4759) Otherwise we reject audio playback when switching hdmi modes @@ -240410,7 +240346,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 645/810] ARM: dts: Create bcm2711-rpi-cm4s.dts (#4761) +Subject: [PATCH 644/847] ARM: dts: Create bcm2711-rpi-cm4s.dts (#4761) Signed-off-by: Peter Harper --- @@ -240844,7 +240780,7 @@ index 000000000000..226e71198f6a From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Fri, 10 Dec 2021 16:29:49 +0000 -Subject: [PATCH 646/810] Revert "xhci: add a quirk to work around a suspected +Subject: [PATCH 645/847] Revert "xhci: add a quirk to work around a suspected cache bug on VLI controllers" This reverts commit a1d0f808d4a0b7f7053095cd4ab97a4276bed9ff. @@ -240917,7 +240853,7 @@ index c98fdcb69406..19c2e6a03087 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Mon, 13 Dec 2021 15:05:56 +0000 -Subject: [PATCH 647/810] xhci: refactor out TRBS_PER_SEGMENT define in runtime +Subject: [PATCH 646/847] xhci: refactor out TRBS_PER_SEGMENT define in runtime code In anticipation of adjusting the number of utilised TRBs in a ring @@ -241145,7 +241081,7 @@ index 96e1a18228fd..ee756ed5091c 100644 return -EINVAL; } diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index 1cb319a41541..7efe64591621 100644 +index 2e482d48eb11..45dfdcdc9f30 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c @@ -857,8 +857,8 @@ static void xhci_clear_command_ring(struct xhci_hcd *xhci) @@ -241187,7 +241123,7 @@ index 19c2e6a03087..41ddff3cd746 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Mon, 13 Dec 2021 16:04:03 +0000 -Subject: [PATCH 648/810] usb: xhci: add VLI_TRB_CACHE_BUG quirk +Subject: [PATCH 647/847] 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, @@ -241270,7 +241206,7 @@ index 41ddff3cd746..ea787da2441e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Dec 2021 21:53:18 +0000 -Subject: [PATCH 649/810] drm/vc4: Fix build without DRM_VC4_HDMI_CEC +Subject: [PATCH 648/847] drm/vc4: Fix build without DRM_VC4_HDMI_CEC As reported by @asavah. @@ -241301,7 +241237,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 650/810] dt: Create static regulators and clocks for camera +Subject: [PATCH 649/847] dt: Create static regulators and clocks for camera nodes Unloading regulators through dynamic device tree doesn't work @@ -241721,7 +241657,7 @@ 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 651/810] dtoverlays: Convert the camera sensor overlays to use +Subject: [PATCH 650/847] 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 @@ -242213,7 +242149,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 652/810] media: i2c: ov5647: Add support for regulator +Subject: [PATCH 651/847] media: i2c: ov5647: Add support for regulator control. The driver supported using GPIOs to control the shutdown line, @@ -242330,7 +242266,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 653/810] dtoverlays: Convert ov5647 to use the regulator +Subject: [PATCH 652/847] dtoverlays: Convert ov5647 to use the regulator framework Fixing up shutdown GPIOs via overrides is ugly, and doesn't work @@ -242384,7 +242320,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 654/810] media: i2c: ov7251: Make the enable GPIO optional. +Subject: [PATCH 653/847] 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. @@ -242416,7 +242352,7 @@ 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 655/810] ARM: dts: bcm2711-cm4s Correct i2c0mux to use 0/1 and +Subject: [PATCH 654/847] 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 @@ -242471,7 +242407,7 @@ 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 656/810] dtoverlays: Add option to select camera as on CAM0 of +Subject: [PATCH 655/847] dtoverlays: Add option to select camera as on CAM0 of CM Parameterise the overlays so that they can have an optional @@ -243447,7 +243383,7 @@ 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 657/810] ASoC:ma120x0p: Increase maximum sample rate to 192KHz +Subject: [PATCH 656/847] ASoC:ma120x0p: Increase maximum sample rate to 192KHz Change the maximum sample rate for the amplifier to 192KHz as given in the Infineon specification. @@ -243477,7 +243413,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 658/810] staging/bcm2835-isp: Fix cleanup after init fail +Subject: [PATCH 657/847] 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 @@ -243521,7 +243457,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 659/810] drm/vc4: kms: Take old state core clock rate into +Subject: [PATCH 658/847] 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 @@ -243565,7 +243501,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 660/810] drm/vc4: hvs: Store channel in variable +Subject: [PATCH 659/847] 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 @@ -243624,7 +243560,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 661/810] drm/vc4: hvs: Remove dlist setup duplication +Subject: [PATCH 660/847] 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 @@ -243665,7 +243601,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 662/810] drm/vc4: hvs: Move the dlist setup to its own +Subject: [PATCH 661/847] drm/vc4: hvs: Move the dlist setup to its own function The vc4_hvs_update_dlist function mostly deals with setting up the @@ -243742,7 +243678,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 663/810] drm/vc4: hvs: Ignore atomic_flush if we're disabled +Subject: [PATCH 662/847] drm/vc4: hvs: Ignore atomic_flush if we're disabled atomic_flush will be called for each CRTC even if they aren't enabled. @@ -243775,7 +243711,7 @@ index 44651229bf1d..c979d3c41353 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 6 Dec 2021 16:49:09 +0100 -Subject: [PATCH 664/810] drm/vc4: plane: Use dlist offset instead of pointer +Subject: [PATCH 663/847] drm/vc4: plane: Use dlist offset instead of pointer The current code passes the dlist pointer to vc4_plane_write_dlist to tell where in the dlist RAM to store the plane dlist content. @@ -243895,7 +243831,7 @@ index c737fff3cf8d..e91b6e224d1e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 16 Dec 2021 14:54:54 +0100 -Subject: [PATCH 665/810] drm/vc4: hvs: Create a shadow dlist +Subject: [PATCH 664/847] drm/vc4: hvs: Create a shadow dlist During normal operations, the cursor position update is done through an asynchronous plane update, which on the vc4 driver basically just @@ -244202,7 +244138,7 @@ index e91b6e224d1e..e481c568d4cd 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Fri, 10 Dec 2021 18:03:18 +0000 -Subject: [PATCH 666/810] drm/vc4: Skip writes to disabled packet RAM +Subject: [PATCH 665/847] 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 @@ -244268,7 +244204,7 @@ index be3f93a86e62..ea5c3e2a2a27 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 13 Dec 2021 13:47:51 +0100 -Subject: [PATCH 667/810] drm/edid: Don't clear YUV422 if using deep color +Subject: [PATCH 666/847] drm/edid: Don't clear YUV422 if using deep color The current code, when parsing the EDID Deep Color depths, that the YUV422 cannot be used, referring to the HDMI 1.3 Specification. @@ -244302,7 +244238,7 @@ Signed-off-by: Maxime Ripard 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c -index ea9a79bc9583..0ae58f622a98 100644 +index 6ad4361a5cbc..1d1e85efe23f 100644 --- a/drivers/gpu/drm/drm_edid.c +++ b/drivers/gpu/drm/drm_edid.c @@ -5034,10 +5034,9 @@ static void drm_parse_hdmi_deep_color_info(struct drm_connector *connector, @@ -244325,7 +244261,7 @@ index ea9a79bc9583..0ae58f622a98 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 14 Apr 2021 16:21:08 +0200 -Subject: [PATCH 668/810] drm/edid: Rename drm_hdmi_avi_infoframe_colorspace to +Subject: [PATCH 667/847] drm/edid: Rename drm_hdmi_avi_infoframe_colorspace to _colorimetry The drm_hdmi_avi_infoframe_colorspace() function actually sets the @@ -244349,7 +244285,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 0ae58f622a98..514698ee22ab 100644 +index 1d1e85efe23f..86fb52a2d0b6 100644 --- a/drivers/gpu/drm/drm_edid.c +++ b/drivers/gpu/drm/drm_edid.c @@ -5747,13 +5747,13 @@ static const u32 hdmi_colorimetry_val[] = { @@ -244439,7 +244375,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 669/810] drm/vc4: hdmi: Add full range RGB helper +Subject: [PATCH 668/847] 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 @@ -244488,7 +244424,7 @@ 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 670/810] drm/vc4: hdmi: Use full range helper in csc functions +Subject: [PATCH 669/847] 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. @@ -244622,7 +244558,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 671/810] drm/vc4: hdmi: Move XBAR setup to csc_setup +Subject: [PATCH 670/847] 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 @@ -244662,7 +244598,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 672/810] drm/vc4: hdmi: Replace CSC_CTL hardcoded value by +Subject: [PATCH 671/847] drm/vc4: hdmi: Replace CSC_CTL hardcoded value by defines On BCM2711, the HDMI_CSC_CTL register value has been hardcoded to an @@ -244712,7 +244648,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 673/810] drm/vc4: hdmi: Define colorspace matrices +Subject: [PATCH 672/847] 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 @@ -244833,7 +244769,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 674/810] drm/vc4: hdmi: Change CSC callback prototype +Subject: [PATCH 673/847] 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. @@ -244904,7 +244840,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 675/810] drm/vc4: hdmi: Move clock validation to its own +Subject: [PATCH 674/847] drm/vc4: hdmi: Move clock validation to its own function Our code is doing the same clock rate validation in multiple instances. @@ -244973,7 +244909,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 676/810] drm/vc4: hdmi: Move clock calculation into its own +Subject: [PATCH 675/847] 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 @@ -245066,7 +245002,7 @@ 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 677/810] drm/vc4: hdmi: Take the sink maximum TMDS clock into +Subject: [PATCH 676/847] 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 @@ -245112,7 +245048,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 678/810] drm/vc4: hdmi: Take bpp into account for the +Subject: [PATCH 677/847] drm/vc4: hdmi: Take bpp into account for the scrambler The current code only base its decision for whether the scrambler must be @@ -245201,7 +245137,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 679/810] drm/vc4: hdmi: Always try to have the highest bpc +Subject: [PATCH 678/847] 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. @@ -245340,7 +245276,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 680/810] drm/vc4: hdmi: Support HDMI YUV output +Subject: [PATCH 679/847] drm/vc4: hdmi: Support HDMI YUV output In addition to the RGB444 output, the BCM2711 HDMI controller supports the YUV444 and YUV422 output formats. @@ -245931,7 +245867,7 @@ 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 681/810] media: v4l2-ctrls: Add V4L2_CID_NOTIFY_GAINS control +Subject: [PATCH 680/847] media: v4l2-ctrls: Add V4L2_CID_NOTIFY_GAINS control commit a9c80593ff80ddb7c6496624e5384e1ea3460a72 upstream. @@ -245990,7 +245926,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 682/810] media: v4l2-ctrls: Document V4L2_CID_NOTIFY_GAINS +Subject: [PATCH 681/847] media: v4l2-ctrls: Document V4L2_CID_NOTIFY_GAINS control commit 311a839a1ad255ebcb7291fb4e0d2ec2f32312a7 upstream. @@ -246044,7 +245980,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 683/810] Extending ili9881c driver support for nwe080 panel +Subject: [PATCH 682/847] Extending ili9881c driver support for nwe080 panel Signed-off-by: Penk Chen --- @@ -246368,7 +246304,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 684/810] Enable ili9881 panel and pwm backlight driver by +Subject: [PATCH 683/847] Enable ili9881 panel and pwm backlight driver by default Signed-off-by: Penk Chen @@ -246424,7 +246360,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 685/810] Add panel overlay for CutiePi +Subject: [PATCH 684/847] Add panel overlay for CutiePi Signed-off-by: Penk Chen --- @@ -246609,7 +246545,7 @@ 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 686/810] dtoverlays: Enable cam1_clock when using tc358743 or +Subject: [PATCH 685/847] dtoverlays: Enable cam1_clock when using tc358743 or irs1125 This fixes a regression introduced in 131f1322039284932ccb601a5cffdd9ca5d36d96 @@ -246659,7 +246595,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 687/810] uapi/v4l2-controls: Reset +Subject: [PATCH 686/847] uapi/v4l2-controls: Reset V4L2_CID_USER_BCM2835_ISP_BASE to same as 5.10 https://github.com/raspberrypi/linux/issues/4440 @@ -246698,7 +246634,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 688/810] drm/vc4: hdmi: Fix HDMI monitor detection in polled +Subject: [PATCH 687/847] drm/vc4: hdmi: Fix HDMI monitor detection in polled mode When vc4_hdmi_connector_detect() was called in @@ -246750,7 +246686,7 @@ index 8971d3e3f4ec..d82c6b132fe2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Thu, 30 Dec 2021 15:12:19 +0100 -Subject: [PATCH 689/810] drm/vc4: hdmi: Fix no video output on DVI monitors +Subject: [PATCH 688/847] 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 @@ -246785,7 +246721,7 @@ index d82c6b132fe2..79b8985f9efd 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 4 Jan 2022 19:47:13 +0000 -Subject: [PATCH 690/810] drm/vc4: Correct interrupt enable bits on hvs4 +Subject: [PATCH 689/847] drm/vc4: Correct interrupt enable bits on hvs4 The interrupt enable bits are numbered differently on hv4 (pi0-3) and hvs5 (pi4) @@ -246825,7 +246761,7 @@ index 02f2fad25ee7..f743a5ad6b61 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Andriy Gelman Date: Sun, 2 Jan 2022 12:22:52 -0500 -Subject: [PATCH 691/810] staging/bcm2835-codec: Fix typo +Subject: [PATCH 690/847] staging/bcm2835-codec: Fix typo Signed-off-by: Andriy Gelman --- @@ -246852,7 +246788,7 @@ 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 692/810] media: i2c: ov9281: Increase diff between VTS and max +Subject: [PATCH 691/847] media: i2c: ov9281: Increase diff between VTS and max exposure The driver did allow the exposure to go up to VTS - 4 lines, @@ -246918,7 +246854,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 693/810] Use GitHubs issue form for bug reports +Subject: [PATCH 692/847] Use GitHubs issue form for bug reports Use GitHubs issue form for bug reports. @@ -247094,7 +247030,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 694/810] bcm2835-v4l2-isp: Add missing lock initialization +Subject: [PATCH 693/847] 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. @@ -247151,7 +247087,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 695/810] configs: Enable Azoteq IQS550/572/525 +Subject: [PATCH 694/847] configs: Enable Azoteq IQS550/572/525 This patch enables the Azoteq IQS550/572/525 trackpad/touchscreen controller as a module. @@ -247232,7 +247168,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 696/810] overlays: Add overlay for Azoteq IQS550 +Subject: [PATCH 695/847] overlays: Add overlay for Azoteq IQS550 This patch adds a device tree overlay for the Azoteq IQS550 trackpad/touchscreen controller. @@ -247340,7 +247276,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 697/810] dtoverlays: Add backlight-gpio parameter to +Subject: [PATCH 696/847] dtoverlays: Add backlight-gpio parameter to vc4-kms-dpi-generic To allow for the cases where a simple panel does have a GPIO @@ -247408,7 +247344,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 698/810] configs: add CONFIG_LEDS_TRIGGER_PATTERN=m +Subject: [PATCH 697/847] configs: add CONFIG_LEDS_TRIGGER_PATTERN=m Enable the pattern led trigger. @@ -247488,7 +247424,7 @@ index c7d9a50ec713..c741bcbb0c4a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 11 Jan 2022 11:41:12 +0000 -Subject: [PATCH 699/810] drm/vc4: Fix interrupt masking for HVS5. +Subject: [PATCH 698/847] drm/vc4: Fix interrupt masking for HVS5. The bits in both DISPCTRL and DISPSTAT have moved between hvs4 and hvs5, and the driver wasn't taking that into account. @@ -247678,7 +247614,7 @@ index f40dd93f2cdd..0d56a701da0a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Sat, 8 Jan 2022 13:24:10 +0000 -Subject: [PATCH 700/810] drm/vc4: Add alpha_blend_mode property to each plane. +Subject: [PATCH 699/847] 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 @@ -247792,7 +247728,7 @@ index e481c568d4cd..3504ca79407a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 11 Jan 2022 10:48:30 +0000 -Subject: [PATCH 701/810] arm: Fix custom rpi __memset32 and __memset64 +Subject: [PATCH 700/847] arm: Fix custom rpi __memset32 and __memset64 See: https://github.com/raspberrypi/linux/issues/4798 @@ -247855,7 +247791,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 702/810] overlays: Add vl805 overlay +Subject: [PATCH 701/847] 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 @@ -247938,7 +247874,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 703/810] arm: Fix annoying .eh_frame section warnings +Subject: [PATCH 702/847] 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. @@ -248071,7 +248007,7 @@ 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 704/810] drm/vc4: Disable Gamma control on HVS5 due to issues +Subject: [PATCH 703/847] drm/vc4: Disable Gamma control on HVS5 due to issues writing the table Still under investigation, but the conditions under which the HVS @@ -248086,10 +248022,10 @@ 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 cf4dcf8ef433..7e7c5f044685 100644 +index 69a70af0b933..fe15cda3bc53 100644 --- a/drivers/gpu/drm/vc4/vc4_crtc.c +++ b/drivers/gpu/drm/vc4/vc4_crtc.c -@@ -1180,15 +1180,9 @@ int vc4_crtc_init(struct drm_device *drm, struct vc4_crtc *vc4_crtc, +@@ -1182,15 +1182,9 @@ int vc4_crtc_init(struct drm_device *drm, struct vc4_crtc *vc4_crtc, if (!vc4->hvs->hvs5) { drm_mode_crtc_set_gamma_size(crtc, ARRAY_SIZE(vc4_crtc->lut_r)); @@ -248113,7 +248049,7 @@ index cf4dcf8ef433..7e7c5f044685 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Thu, 13 Jan 2022 15:47:23 +0000 -Subject: [PATCH 705/810] drm/vc4: hdmi: Fix clock value used for validating +Subject: [PATCH 704/847] 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() @@ -248148,7 +248084,7 @@ index 79b8985f9efd..4569bef642e0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 12 Jan 2022 14:39:46 +0000 -Subject: [PATCH 706/810] ARM: dts: Remove VL805 USB node from CM4 dts +Subject: [PATCH 705/847] 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 @@ -248186,7 +248122,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 707/810] mfd: simple-mfd-i2c: Add configuration for RPi POE +Subject: [PATCH 706/847] mfd: simple-mfd-i2c: Add configuration for RPi POE HAT The Raspbery Pi PoE+ HAT exposes a fan controller and power @@ -248257,7 +248193,7 @@ 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 708/810] pwm: raspberrypi-poe: Add option of being created by +Subject: [PATCH 707/847] pwm: raspberrypi-poe: Add option of being created by MFD or FW The firmware can only use I2C0 if the kernel isn't, therefore @@ -248434,7 +248370,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 709/810] power: rpi-poe: Drop CURRENT_AVG as it is not +Subject: [PATCH 708/847] power: rpi-poe: Drop CURRENT_AVG as it is not hardware averaged As documented the _AVG parameters are meant to be hardware @@ -248483,7 +248419,7 @@ 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 710/810] power: rpi-poe: Add option of being created by MFD or +Subject: [PATCH 709/847] power: rpi-poe: Add option of being created by MFD or FW The firmware can only use I2C0 if the kernel isn't, therefore @@ -248723,7 +248659,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 711/810] defconfigs: Add MFD_RASPBERRYPI_POE_HAT to Pi +Subject: [PATCH 710/847] defconfigs: Add MFD_RASPBERRYPI_POE_HAT to Pi defconfigs. Required for PoE HAT when driven from Linux over I2C. @@ -248804,7 +248740,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 712/810] dtoverlays: Add option for PoE HAT to use Linux I2C +Subject: [PATCH 711/847] 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 @@ -248972,7 +248908,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 713/810] drivers: bcm2835_unicam: Disable trigger mode +Subject: [PATCH 712/847] drivers: bcm2835_unicam: Disable trigger mode operation On a Pi3 B/B+ platform the imx219 sensor frequently generates a single corrupt @@ -249035,7 +248971,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 714/810] arm: Remove spurious .fnend directive +Subject: [PATCH 713/847] arm: Remove spurious .fnend directive ...a.k.a. Fix annoying build error @@ -249068,7 +249004,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 715/810] drm/vc4: dsi: Correct max divider to 255 (not 7) +Subject: [PATCH 714/847] 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. @@ -249100,7 +249036,7 @@ index 9e349ba8be4d..cf924bf982ce 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 21 Jan 2022 14:11:57 +0000 -Subject: [PATCH 716/810] defconfig: Add BACKLIGHT_PWM to bcm2709 and bcmrpi +Subject: [PATCH 715/847] defconfig: Add BACKLIGHT_PWM to bcm2709 and bcmrpi defconfigs BACKLIGHT_PWM can be used with DPI displays, so add it to the @@ -249156,7 +249092,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 717/810] dtoverlays: Add pwm backlight option to +Subject: [PATCH 716/847] dtoverlays: Add pwm backlight option to vc4-kms-dpi-generic Adds the option of a PWM controlled backlight on a generic @@ -249271,7 +249207,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 718/810] dtoverlays: Correct [h|v]sync_invert config in +Subject: [PATCH 717/847] dtoverlays: Correct [h|v]sync_invert config in vc4-kms-dpi-generic Both the base node and override set these parameters to 0, @@ -249315,7 +249251,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 719/810] ARM: dts: BCM2711 AON_INTR2 generates IRQ edges +Subject: [PATCH 718/847] 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 @@ -249332,10 +249268,10 @@ Signed-off-by: Phil Elwell 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/bcm2711.dtsi b/arch/arm/boot/dts/bcm2711.dtsi -index 544633a84433..2b834efddc06 100644 +index 9d3b009cd7c9..0c63bad0ca6b 100644 --- a/arch/arm/boot/dts/bcm2711.dtsi +++ b/arch/arm/boot/dts/bcm2711.dtsi -@@ -319,7 +319,7 @@ +@@ -320,7 +320,7 @@ aon_intr: interrupt-controller@7ef00100 { compatible = "brcm,bcm2711-l2-intc", "brcm,l2-intc"; reg = <0x7ef00100 0x30>; @@ -249344,7 +249280,7 @@ index 544633a84433..2b834efddc06 100644 interrupt-controller; #interrupt-cells = <1>; status = "disabled"; -@@ -402,7 +402,7 @@ +@@ -403,7 +403,7 @@ <&clk_27MHz>; resets = <&dvp 1>; interrupt-parent = <&aon_intr>; @@ -249360,7 +249296,7 @@ index 544633a84433..2b834efddc06 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 720/810] update rpi-display-overlay.dts pins for 5.10+ +Subject: [PATCH 719/847] update rpi-display-overlay.dts pins for 5.10+ backlight has been turned off --- @@ -249387,7 +249323,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 721/810] media: i2c: imx219: Correct the minimum vblanking +Subject: [PATCH 720/847] media: i2c: imx219: Correct the minimum vblanking value The datasheet for this sensor documents the minimum vblanking as being @@ -249419,7 +249355,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 722/810] drm/vc4_hdmi: Add Broadcast RGB property to allow +Subject: [PATCH 721/847] drm/vc4_hdmi: Add Broadcast RGB property to allow override of RGB range Copy Intel's "Broadcast RGB" property semantics to add manual override @@ -249649,7 +249585,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 723/810] configs: Add CONFIG_MAX30102=m +Subject: [PATCH 722/847] configs: Add CONFIG_MAX30102=m See: https://github.com/raspberrypi/linux/pull/4535 @@ -249729,7 +249665,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 724/810] overlays: Add MAX30102 HR to i2c-sensor overlay +Subject: [PATCH 723/847] overlays: Add MAX30102 HR to i2c-sensor overlay Add support for the MAX30102 heart rate and blood oxygen sensor to the i2c-sensor overlay. @@ -249815,7 +249751,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 725/810] misc: bcm2835_smi: Use proper enum types for +Subject: [PATCH 724/847] misc: bcm2835_smi: Use proper enum types for dma_{,un}map_single() Clang warns: @@ -249906,7 +249842,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 726/810] ASoC: ma120x0p: Remove unnecessary const specifier +Subject: [PATCH 725/847] ASoC: ma120x0p: Remove unnecessary const specifier Clang warns: @@ -249950,7 +249886,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 727/810] ASoC: bcm: allo-piano-dac-plus: Remove unnecessary +Subject: [PATCH 726/847] ASoC: bcm: allo-piano-dac-plus: Remove unnecessary const specifiers Clang warns: @@ -250031,7 +249967,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 728/810] media: bcm2835-unicam: Set ret on error path in +Subject: [PATCH 727/847] media: bcm2835-unicam: Set ret on error path in unicam_async_complete() Clang warns: @@ -250080,7 +250016,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 729/810] media: i2c: ov9281: Initialize id_msb to zero in +Subject: [PATCH 728/847] media: i2c: ov9281: Initialize id_msb to zero in ov9281_check_sensor_id() Clang warns: @@ -250134,7 +250070,7 @@ 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 730/810] i2c: bcm2835: Make clock-stretch timeout configurable +Subject: [PATCH 729/847] 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 @@ -250147,10 +250083,10 @@ Signed-off-by: Alex Crawford 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/i2c/busses/i2c-bcm2835.c b/drivers/i2c/busses/i2c-bcm2835.c -index 5b2589b6b9cc..7d8e183bb533 100644 +index f98033ca56bb..340f29483a61 100644 --- a/drivers/i2c/busses/i2c-bcm2835.c +++ b/drivers/i2c/busses/i2c-bcm2835.c -@@ -55,6 +55,10 @@ static unsigned int debug; +@@ -60,6 +60,10 @@ static unsigned int debug; module_param(debug, uint, 0644); MODULE_PARM_DESC(debug, "1=err, 2=isr, 3=xfer"); @@ -250161,7 +250097,7 @@ index 5b2589b6b9cc..7d8e183bb533 100644 #define BCM2835_DEBUG_MAX 512 struct bcm2835_debug { struct i2c_msg *msg; -@@ -214,12 +218,12 @@ static int clk_bcm2835_i2c_set_rate(struct clk_hw *hw, unsigned long rate, +@@ -219,12 +223,12 @@ static int clk_bcm2835_i2c_set_rate(struct clk_hw *hw, unsigned long rate, (redl << BCM2835_I2C_REDL_SHIFT)); /* @@ -250184,7 +250120,7 @@ index 5b2589b6b9cc..7d8e183bb533 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 731/810] Patching lan78xx for SOF_TIMESTAMPING_TX_SOFTWARE +Subject: [PATCH 730/847] Patching lan78xx for SOF_TIMESTAMPING_TX_SOFTWARE support --- @@ -250210,7 +250146,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 732/810] drm/vc4: Add DRM 210101010 RGB formats for hvs5. +Subject: [PATCH 731/847] 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. @@ -250267,7 +250203,7 @@ index 3504ca79407a..b9248b15ea8b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 31 Jan 2022 21:01:25 +0000 -Subject: [PATCH 733/810] overlays: Add spi0-0cs overlay +Subject: [PATCH 732/847] overlays: Add spi0-0cs overlay An overlay to enable SPI0 without claiming any chip select GPIOs. @@ -250362,7 +250298,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 734/810] dtoverlays: Rework vc4-kms-dpi overlays to remove +Subject: [PATCH 733/847] dtoverlays: Rework vc4-kms-dpi overlays to remove duplication Removes all the common panel, dpi, and backlight configuration @@ -250930,7 +250866,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 735/810] media: uapi: Document format +Subject: [PATCH 734/847] media: uapi: Document format MEDIA_BUS_FMT_RGB565_1X24_CPADHI Add support for MEDIA_BUS_FMT_RGB565_1X24_CPADHI. This format is used @@ -250996,7 +250932,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 736/810] media: uapi: add MEDIA_BUS_FMT_RGB565_1X24_CPADHI +Subject: [PATCH 735/847] 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. @@ -251033,7 +250969,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 737/810] drm/vc4: dpi: Support DPI interface in mode3 for +Subject: [PATCH 736/847] drm/vc4: dpi: Support DPI interface in mode3 for RGB565 Add support for the VC4 DPI driver to utilize DPI mode 3. This is @@ -251070,7 +251006,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 738/810] dt-bindings: vendor-prefixes: Add Geekworm +Subject: [PATCH 737/847] dt-bindings: vendor-prefixes: Add Geekworm Add vendor prefix for Geekworm (https://geekworm.com). @@ -251099,7 +251035,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 739/810] dt-bindings: display: simple: add Geekworm MZP280 +Subject: [PATCH 738/847] dt-bindings: display: simple: add Geekworm MZP280 Panel The Geekworm MZP280 panel is a 480x640 (portrait) panel with a @@ -251139,7 +251075,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 740/810] drm/panel: simple: add Geekworm MZP280 Panel +Subject: [PATCH 739/847] drm/panel: simple: add Geekworm MZP280 Panel Add support for the Geekworm MZP280 Panel @@ -251203,7 +251139,7 @@ index c9344fe92a36..f570eb63c7c1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 2 Feb 2022 09:11:20 +0000 -Subject: [PATCH 741/810] overlays: README: Deprecate vc4-kms-kippah-7inch +Subject: [PATCH 740/847] 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 @@ -251240,7 +251176,7 @@ 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 742/810] drm/panel: Add and initialise an orientation field to +Subject: [PATCH 741/847] drm/panel: Add and initialise an orientation field to drm_panel Current usage of drm_connector_set_panel_orientation is from a panel's @@ -251339,7 +251275,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 743/810] drm/panel: simple: Remove custom handling of +Subject: [PATCH 742/847] drm/panel: simple: Remove custom handling of orientation Panel orientation is now handled by the drm_panel and @@ -251393,7 +251329,7 @@ index f570eb63c7c1..15ecd4d04ae5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Chris Morgan Date: Wed, 2 Feb 2022 10:42:00 -0600 -Subject: [PATCH 744/810] overlays: Add rotate property to vc4-kms-dpi-panel +Subject: [PATCH 743/847] 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. @@ -251450,7 +251386,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 745/810] overlays: Add Geekworm mzp280 to vc4-kms-dpi-panel +Subject: [PATCH 744/847] 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. @@ -251504,7 +251440,7 @@ 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 746/810] drm/panel: Add panel driver for Ilitek ILI9806E panel +Subject: [PATCH 745/847] 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 @@ -251520,10 +251456,10 @@ Signed-off-by: Dave Stevenson create mode 100644 drivers/gpu/drm/panel/panel-ilitek-ili9806e.c diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig -index 418638e6e3b0..9323a599a84c 100644 +index f63fd0f90360..fb57c6237d99 100644 --- a/drivers/gpu/drm/panel/Kconfig +++ b/drivers/gpu/drm/panel/Kconfig -@@ -137,6 +137,17 @@ config DRM_PANEL_ILITEK_ILI9341 +@@ -138,6 +138,17 @@ config DRM_PANEL_ILITEK_ILI9341 QVGA (240x320) RGB panels. support serial & parallel rgb interface. @@ -252052,7 +251988,7 @@ 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 747/810] drm/panel: Add panel driver for TDO Y17B based panels +Subject: [PATCH 746/847] 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 @@ -252069,10 +252005,10 @@ Signed-off-by: Dave Stevenson create mode 100644 drivers/gpu/drm/panel/panel-tdo-y17p.c diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig -index 9323a599a84c..b492c88420db 100644 +index fb57c6237d99..8afe3cf59c93 100644 --- a/drivers/gpu/drm/panel/Kconfig +++ b/drivers/gpu/drm/panel/Kconfig -@@ -558,6 +558,17 @@ config DRM_PANEL_SONY_ACX565AKM +@@ -559,6 +559,17 @@ config DRM_PANEL_SONY_ACX565AKM Say Y here if you want to enable support for the Sony ACX565AKM 800x600 3.5" panel (found on the Nokia N900). @@ -252394,7 +252330,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 748/810] drm/panel/panel-sitronix-st7701: Support SPI config +Subject: [PATCH 747/847] drm/panel/panel-sitronix-st7701: Support SPI config and RGB data The ST7701 supports numerous different interface mechanisms for @@ -252964,7 +252900,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 749/810] defconfig: Enable Pimoroni HyperPixel drivers in Pi +Subject: [PATCH 748/847] defconfig: Enable Pimoroni HyperPixel drivers in Pi defconfigs Drivers for Pimoroni HyperPixel4, HyperPixel 4 Square, and @@ -253068,7 +253004,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 750/810] bindings: Add sck-idle-input to spi-gpio +Subject: [PATCH 749/847] bindings: Add sck-idle-input to spi-gpio Signed-off-by: Phil Elwell --- @@ -253097,7 +253033,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 751/810] spi: gpio: Add sck-idle-input property +Subject: [PATCH 750/847] 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 @@ -253160,7 +253096,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 752/810] dtoverlays: Add overlays for Pimoroni Hyperpixel +Subject: [PATCH 751/847] dtoverlays: Add overlays for Pimoroni Hyperpixel displays Adds an overlays for the Pimoroni HyperPixel4, HyperPixel 4 @@ -253574,7 +253510,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 753/810] dtoverlay: Reduce size of PCIE IB window in +Subject: [PATCH 752/847] 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 @@ -253631,7 +253567,7 @@ 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 754/810] ARM: dts: Permanently disable hdmi1 and ddc1 on CM4S +Subject: [PATCH 753/847] 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 @@ -253678,7 +253614,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 755/810] net: phy: lan87xx: Decrease phy polling rate +Subject: [PATCH 754/847] 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. @@ -253739,7 +253675,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 756/810] drm: panel: Fix compilation warnings +Subject: [PATCH 755/847] drm: panel: Fix compilation warnings See: https://github.com/raspberrypi/linux/pull/4812 @@ -253782,7 +253718,7 @@ 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 757/810] media: bcm2835-unicam: Handle a repeated frame start +Subject: [PATCH 756/847] media: bcm2835-unicam: Handle a repeated frame start with no end In the case of 2 frame starts being received with no frame end @@ -253851,7 +253787,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 758/810] overlays: rpi-poe(-plus): Fix parameters +Subject: [PATCH 757/847] 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 @@ -253979,7 +253915,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 759/810] dtoverlays: fix overrides in vc4-kms-dpi-generic +Subject: [PATCH 758/847] dtoverlays: fix overrides in vc4-kms-dpi-generic Apparently broken by commit 3c033975. Introduce new names to allow for proper addressing of overrides. @@ -254038,7 +253974,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 760/810] dtoverlays: add rgb565-padhi output to +Subject: [PATCH 759/847] dtoverlays: add rgb565-padhi output to vc4-kms-dpi-generic This mode is used by some DPI based display adapters, such as the @@ -254083,7 +254019,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 761/810] media: i2c: imx219: Scale the pixel clock rate for +Subject: [PATCH 760/847] 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 @@ -254216,61 +254152,9 @@ index 6ee046096ef4..4339ddcb5ebc 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Phil Elwell -Date: Tue, 15 Feb 2022 12:27:56 +0000 -Subject: [PATCH 762/810] sc16is7xx: Fix for incorrect data being transmitted - -UART drivers are meant to use the port spinlock within certain -methods, to protect against reentrancy. The sc16is7xx driver does -very little locking, presumably because when added it triggers -"scheduling while atomic" errors. This is due to the use of mutexes -within the regmap abstraction layer, and the mutex implementation's -habit of sleeping the current thread while waiting for access. -Unfortunately this lack of interlocking can lead to corruption of -outbound data, which occurs when the buffer used for I2C transmission -is used simultaneously by two threads - a work queue thread running -sc16is7xx_tx_proc, and an IRQ thread in sc16is7xx_port_irq, both -of which can call sc16is7xx_handle_tx. - -An earlier patch added efr_lock, a mutex that controls access to the -EFR register. This mutex is already claimed in the IRQ handler, and -all that is required is to claim the same mutex in sc16is7xx_tx_proc. - -See: https://github.com/raspberrypi/linux/issues/4885 - -Signed-off-by: Phil Elwell ---- - drivers/tty/serial/sc16is7xx.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c -index 2836fc22b1d4..e30d7d371221 100644 ---- a/drivers/tty/serial/sc16is7xx.c -+++ b/drivers/tty/serial/sc16is7xx.c -@@ -737,12 +737,15 @@ static irqreturn_t sc16is7xx_irq(int irq, void *dev_id) - static void sc16is7xx_tx_proc(struct kthread_work *ws) - { - struct uart_port *port = &(to_sc16is7xx_one(ws, tx_work)->port); -+ struct sc16is7xx_port *s = dev_get_drvdata(port->dev); - - if ((port->rs485.flags & SER_RS485_ENABLED) && - (port->rs485.delay_rts_before_send > 0)) - msleep(port->rs485.delay_rts_before_send); - -+ mutex_lock(&s->efr_lock); - sc16is7xx_handle_tx(port); -+ mutex_unlock(&s->efr_lock); - } - - static void sc16is7xx_reconf_rs485(struct uart_port *port) --- -2.18.4 - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 14 Feb 2022 15:34:51 +0000 -Subject: [PATCH 763/810] drm/vc4: For DPI, MEDIA_BUS_FMT_RGB565_1X16 is mode +Subject: [PATCH 761/847] 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 @@ -254301,7 +254185,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 764/810] dtoverlays: Add additional mappings to +Subject: [PATCH 762/847] dtoverlays: Add additional mappings to vc4-kms-dpi-generic Adds mappings for bgr666, bgr666-padhi, and bgr888. @@ -254354,7 +254238,7 @@ index bf2ac6fe1b0d..85875c266296 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 16 Dec 2021 15:25:35 +0000 -Subject: [PATCH 765/810] drm: Introduce DRM_BRIDGE_OP_UPSTREAM_FIRST to alter +Subject: [PATCH 763/847] drm: Introduce DRM_BRIDGE_OP_UPSTREAM_FIRST to alter bridge init order DSI sink devices typically want the DSI host powered up and configured @@ -254707,7 +254591,7 @@ index 46bdfa48c413..76c4cf8db6e8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 17 Dec 2021 13:36:52 +0000 -Subject: [PATCH 766/810] drm/dsi: Document the meaning and spec references for +Subject: [PATCH 764/847] drm/dsi: Document the meaning and spec references for MIPI_DSI_MODE_* The MIPI_DSI_MODE_* flags have fairly terse descriptions and no reference @@ -254789,7 +254673,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 767/810] drm/bridge: tc358762: Ignore EPROBE_DEFER when +Subject: [PATCH 765/847] drm/bridge: tc358762: Ignore EPROBE_DEFER when logging errors mipi_dsi_attach can fail due to resources not being available @@ -254820,7 +254704,7 @@ index 1bfdfc6affaf..7cda18a12e98 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 16 Dec 2021 15:33:43 +0000 -Subject: [PATCH 768/810] drm/tc358762: Set the DRM_BRIDGE_OP_UPSTREAM_FIRST +Subject: [PATCH 766/847] drm/tc358762: Set the DRM_BRIDGE_OP_UPSTREAM_FIRST flag to configure DSI host TC358762 wants the DSI host to be prepared before it is powered up, so @@ -254851,7 +254735,7 @@ index 7cda18a12e98..1e233acd31d7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 30 Sep 2021 17:51:16 +0100 -Subject: [PATCH 769/810] drm/vc4: Rename bridge to out_bridge +Subject: [PATCH 767/847] 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 @@ -254933,7 +254817,7 @@ index cf924bf982ce..515d195fdc3d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 7 Feb 2022 17:14:51 +0000 -Subject: [PATCH 770/810] drm/vc4: Move DSI initialisation to encoder_mode_set. +Subject: [PATCH 768/847] drm/vc4: Move DSI initialisation to encoder_mode_set. Breaking the bridge chain does not work for atomic bridges/panels and generally causes issues. @@ -255004,7 +254888,7 @@ index 515d195fdc3d..7af401aa5aef 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 15 Dec 2021 17:44:49 +0000 -Subject: [PATCH 771/810] drm/vc4: Remove splitting the bridge chain from the +Subject: [PATCH 769/847] drm/vc4: Remove splitting the bridge chain from the driver. Splitting the bridge chain fails for atomic bridges as the @@ -255120,7 +255004,7 @@ index 7af401aa5aef..59c5989c3671 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 15 Dec 2021 17:47:14 +0000 -Subject: [PATCH 772/810] drm/vc4: Convert vc4_dsi to use atomic +Subject: [PATCH 770/847] drm/vc4: Convert vc4_dsi to use atomic enable/disable/mode_set. The atomic calls are preferred as the non-atomic ones @@ -255211,7 +255095,7 @@ index 59c5989c3671..6eba04c82f63 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 15 Dec 2021 17:57:45 +0000 -Subject: [PATCH 773/810] drm/vc4: Convert vc4_dsi to using a bridge instead of +Subject: [PATCH 771/847] drm/vc4: Convert vc4_dsi to using a bridge instead of encoder. Remove the encoder functions, and create a bridge attached to @@ -255481,7 +255365,7 @@ index 6eba04c82f63..9527a300d68c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 11 Feb 2022 14:15:26 +0000 -Subject: [PATCH 774/810] drm/vc4: Remove entry to ULPS from vc4_dsi +Subject: [PATCH 772/847] drm/vc4: Remove entry to ULPS from vc4_dsi post_disable Post_disable was sending the D-PHY sequence to put any device @@ -255519,7 +255403,7 @@ index 9527a300d68c..8537454aed04 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Wed, 16 Feb 2022 14:31:02 +0000 -Subject: [PATCH 775/810] usb: xhci: add a quirk for Superspeed bulk OUT +Subject: [PATCH 773/847] 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 @@ -255625,7 +255509,7 @@ index ea787da2441e..630f9166d9c8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 17 Feb 2022 15:16:56 +0000 -Subject: [PATCH 776/810] dtoverlays: Correct link frequency for ov7251 +Subject: [PATCH 774/847] dtoverlays: Correct link frequency for ov7251 It was incorrect, so the driver rejected it. @@ -255654,7 +255538,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 777/810] media: i2c: Add acpi support to ov7251 +Subject: [PATCH 775/847] media: i2c: Add acpi support to ov7251 Add support for enumeration through ACPI to the ov7251 driver @@ -255699,7 +255583,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 778/810] media: i2c: Provide ov7251_check_hwcfg() +Subject: [PATCH 776/847] 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 @@ -255826,7 +255710,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 779/810] media: i2c: Add ov7251_pll_configure() +Subject: [PATCH 777/847] 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 @@ -256098,7 +255982,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 780/810] media: i2c: Add support for 19.2MHz clock to ov7251 +Subject: [PATCH 778/847] 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 @@ -256248,7 +256132,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 781/810] media: i2c: Add ov7251_detect_chip() +Subject: [PATCH 779/847] 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. @@ -256352,7 +256236,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 782/810] media: i2c: Add pm_runtime support to ov7251 +Subject: [PATCH 780/847] media: i2c: Add pm_runtime support to ov7251 Add pm_runtime support to the ov7251 driver. @@ -256566,7 +256450,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 783/810] media: i2c: Remove .s_power() from ov7251 +Subject: [PATCH 781/847] 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 @@ -256661,7 +256545,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 784/810] media: i2c: ov7251: Reinstate setting +Subject: [PATCH 782/847] media: i2c: ov7251: Reinstate setting ov7251_global_init_setting "media: i2c: Remove .s_power() from ov7251" removed the call that @@ -256699,7 +256583,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 785/810] media: i2c: ov7251: V4L2_CID_PIXEL_RATE is fixed +Subject: [PATCH 783/847] 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. @@ -256809,7 +256693,7 @@ 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 786/810] media: i2c: ov7251: V4L2_CID_LINK_FREQUENCY is fixed +Subject: [PATCH 784/847] 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. @@ -256922,7 +256806,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 787/810] media: i2c: ov7251: Initialise current_mode during +Subject: [PATCH 785/847] media: i2c: ov7251: Initialise current_mode during probe Initialise ov7251->current_mode during probe to avoid the issue @@ -256954,7 +256838,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 788/810] media: i2c: ov7251: Add V4L2_CID_HBLANK control +Subject: [PATCH 786/847] media: i2c: ov7251: Add V4L2_CID_HBLANK control HBLANK is a fixed value in this driver, so add as a fixed read-only control. @@ -257045,7 +256929,7 @@ 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 789/810] media: i2c: ov7251: Do not reset gain on mode change +Subject: [PATCH 787/847] 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 @@ -257109,7 +256993,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 790/810] media: i2c: ov7251: Fix link_freq validation loop +Subject: [PATCH 788/847] 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. @@ -257148,7 +257032,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 791/810] media: i2c: ov7251: Add get_selection for +Subject: [PATCH 789/847] media: i2c: ov7251: Add get_selection for NATIVE_SIZE, CROP_BOUNDS, CROP_DEFAULT As required by libcamera, add get_selection handling for @@ -257232,7 +257116,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 792/810] media: i2c: ov7251: Set VTS instead of having full +Subject: [PATCH 790/847] 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 @@ -257611,7 +257495,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 793/810] media: i2c: ov7251: Limit exposure based on VTS +Subject: [PATCH 791/847] 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. @@ -257695,7 +257579,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 794/810] media: i2c: ov7251: Separate modes from frame +Subject: [PATCH 792/847] media: i2c: ov7251: Separate modes from frame intervals The modes and frame intervals are independent, therefore @@ -257935,7 +257819,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 795/810] media: i2c: ov7251: Add V4L2_CID_VBLANK +Subject: [PATCH 793/847] 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 @@ -258094,7 +257978,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 796/810] media: i2c: ov7251: Switch from V4L2_CID_GAIN to +Subject: [PATCH 794/847] media: i2c: ov7251: Switch from V4L2_CID_GAIN to V4L2_CID_ANALOGUE_GAIN The control is specifically for analogue gain, therefore switch @@ -258136,7 +258020,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 797/810] dtoverlays: Switch ov7251 to using Media Controller +Subject: [PATCH 795/847] dtoverlays: Switch ov7251 to using Media Controller by default We should have all the functionality required by now, so switch @@ -258166,7 +258050,7 @@ index fcb889f591f7..3cf109ec998f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 14 Feb 2022 11:18:45 +0100 -Subject: [PATCH 798/810] Revert "drm/vc4: Fix interrupt masking for HVS5." +Subject: [PATCH 796/847] Revert "drm/vc4: Fix interrupt masking for HVS5." This reverts commit cc5cc1c63c69c20d2d8d5b83f7b45c83ed6700f4. --- @@ -258351,7 +258235,7 @@ index 0d56a701da0a..f40dd93f2cdd 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 14 Feb 2022 11:18:47 +0100 -Subject: [PATCH 799/810] Revert "drm/vc4: Correct interrupt enable bits on +Subject: [PATCH 797/847] Revert "drm/vc4: Correct interrupt enable bits on hvs4" This reverts commit fae59876545e506bc1f258eb267583b7fb81f007. @@ -258388,7 +258272,7 @@ index f743a5ad6b61..02f2fad25ee7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 14 Feb 2022 11:18:48 +0100 -Subject: [PATCH 800/810] Revert "drm/vc4: hvs: Create a shadow dlist" +Subject: [PATCH 798/847] Revert "drm/vc4: hvs: Create a shadow dlist" This reverts commit f1a8aeff7a5f675ef768833391538f5e42a4c038. --- @@ -258656,7 +258540,7 @@ index b9248b15ea8b..bbcead9807e0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 14 Feb 2022 11:18:49 +0100 -Subject: [PATCH 801/810] Revert "drm/vc4: plane: Use dlist offset instead of +Subject: [PATCH 799/847] Revert "drm/vc4: plane: Use dlist offset instead of pointer" This reverts commit 1d9c54cb1f79d4fb751f1765a89c67fb9cab474e. @@ -258770,43 +258654,8 @@ index bbcead9807e0..7a0f9d55777d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard -Date: Mon, 14 Feb 2022 17:19:28 +0100 -Subject: [PATCH 802/810] ARM: boot: dts: bcm2711: Fix HVS register range - -While the HVS has the same context memory size in the BCM2711 than in -the previous SoCs, the range allocated to the registers doubled and it -now takes 16k + 16k, compared to 8k + 16k before. - -The KMS driver will use the whole context RAM though, eventually -resulting in a pointer dereference error when we access the higher half -of the context memory since it hasn't been mapped. - -Fixes: 4564363351e2 ("ARM: dts: bcm2711: Enable the display pipeline") -Signed-off-by: Maxime Ripard ---- - arch/arm/boot/dts/bcm2711.dtsi | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/arch/arm/boot/dts/bcm2711.dtsi b/arch/arm/boot/dts/bcm2711.dtsi -index 2b834efddc06..0c63bad0ca6b 100644 ---- a/arch/arm/boot/dts/bcm2711.dtsi -+++ b/arch/arm/boot/dts/bcm2711.dtsi -@@ -290,6 +290,7 @@ - - hvs: hvs@7e400000 { - compatible = "brcm,bcm2711-hvs"; -+ reg = <0x7e400000 0x8000>; - interrupts = ; - }; - --- -2.18.4 - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Maxime Ripard Date: Thu, 17 Feb 2022 10:55:26 +0100 -Subject: [PATCH 803/810] drm/vc4: hvs: Fix frame count register readout +Subject: [PATCH 800/847] 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 @@ -258826,7 +258675,7 @@ Signed-off-by: Maxime Ripard 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 7e7c5f044685..b9a77916b9f6 100644 +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, @@ -258932,7 +258781,7 @@ index f40dd93f2cdd..88e9a398758e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 14 Feb 2022 17:21:05 +0100 -Subject: [PATCH 804/810] drm/vc4: hvs: Use pointer to HVS in HVS_READ and +Subject: [PATCH 801/847] 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 @@ -258950,7 +258799,7 @@ Signed-off-by: Maxime Ripard 4 files changed, 77 insertions(+), 67 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c -index b9a77916b9f6..7c8c9665dc8d 100644 +index 160cefd0585e..872e269db22e 100644 --- a/drivers/gpu/drm/vc4/vc4_crtc.c +++ b/drivers/gpu/drm/vc4/vc4_crtc.c @@ -70,6 +70,7 @@ static const struct debugfs_reg32 crtc_regs[] = { @@ -259020,7 +258869,7 @@ index b9a77916b9f6..7c8c9665dc8d 100644 if (channel < 0) return 0; -@@ -752,6 +757,7 @@ static void vc4_crtc_handle_page_flip(struct vc4_crtc *vc4_crtc) +@@ -754,6 +759,7 @@ static void vc4_crtc_handle_page_flip(struct vc4_crtc *vc4_crtc) struct drm_crtc *crtc = &vc4_crtc->base; struct drm_device *dev = crtc->dev; struct vc4_dev *vc4 = to_vc4_dev(dev); @@ -259028,7 +258877,7 @@ index b9a77916b9f6..7c8c9665dc8d 100644 u32 chan = vc4_crtc->current_hvs_channel; unsigned long flags; -@@ -770,7 +776,7 @@ static void vc4_crtc_handle_page_flip(struct vc4_crtc *vc4_crtc) +@@ -772,7 +778,7 @@ static void vc4_crtc_handle_page_flip(struct vc4_crtc *vc4_crtc) * the CRTC and encoder already reconfigured, leading to * underruns. This can be seen when reconfiguring the CRTC. */ @@ -259440,7 +259289,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 805/810] drm/vc4: hvs: Defer dlist slots deallocation +Subject: [PATCH 802/847] 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 @@ -259518,10 +259367,10 @@ Signed-off-by: Maxime Ripard 4 files changed, 184 insertions(+), 23 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c -index 7c8c9665dc8d..f53ea7447fd1 100644 +index 872e269db22e..49016f7e6b9f 100644 --- a/drivers/gpu/drm/vc4/vc4_crtc.c +++ b/drivers/gpu/drm/vc4/vc4_crtc.c -@@ -957,14 +957,8 @@ void vc4_crtc_destroy_state(struct drm_crtc *crtc, +@@ -959,14 +959,8 @@ void vc4_crtc_destroy_state(struct drm_crtc *crtc, struct vc4_dev *vc4 = to_vc4_dev(crtc->dev); struct vc4_crtc_state *vc4_state = to_vc4_crtc_state(state); @@ -259861,7 +259710,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 806/810] ARM: dts: Add GPIO line names for downstream RPis +Subject: [PATCH 803/847] ARM: dts: Add GPIO line names for downstream RPis Largely copied from the upstream dts files, with a few additions and tweaks. @@ -260863,7 +260712,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 807/810] overlays:fixes probing of Hifiberry DAC2 HD +Subject: [PATCH 804/847] overlays:fixes probing of Hifiberry DAC2 HD Removed clocks-declarations in I2C sections of the DT-overlay which kept the devices from probing. @@ -260934,7 +260783,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 808/810] overlays: Overlays for WaveShare 2-Chan CAN FD HAT +Subject: [PATCH 805/847] 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 @@ -261269,7 +261118,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 809/810] overlays: Add "drm" parameter to pitft35-resistive +Subject: [PATCH 806/847] 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. @@ -261315,7 +261164,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 810/810] configs: Add CONFIG_TINYDRM_HX8357D=m +Subject: [PATCH 807/847] configs: Add CONFIG_TINYDRM_HX8357D=m See: https://forums.raspberrypi.com/viewtopic.php?t=330088 @@ -261391,3 +261240,5437 @@ index 98c473412018..01ef1bdc4900 100644 -- 2.18.4 + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jonathan Bell +Date: Tue, 1 Mar 2022 15:12:15 +0000 +Subject: [PATCH 808/847] 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. + +Signed-off-by: Jonathan Bell +--- + drivers/usb/host/xhci-ring.c | 15 +++++---------- + 1 file changed, 5 insertions(+), 10 deletions(-) + +diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c +index 822833a9bcc7..0c4bef262d1f 100644 +--- a/drivers/usb/host/xhci-ring.c ++++ b/drivers/usb/host/xhci-ring.c +@@ -3607,7 +3607,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, + unsigned int num_trbs; + unsigned int start_cycle, num_sgs = 0; + unsigned int enqd_len, block_len, trb_buff_len, full_len; +- int sent_len, ret, vli_quirk = 0; ++ int sent_len, ret, vli_bulk_quirk = 0; + u32 field, length_field, remainder, maxpacket; + u64 addr, send_addr; + +@@ -3653,14 +3653,9 @@ int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, + send_addr = addr; + + if (xhci->quirks & XHCI_VLI_SS_BULK_OUT_BUG && +- !usb_urb_dir_in(urb) && urb->dev->speed >= USB_SPEED_SUPER) { +- /* +- * VL805 - superspeed bulk OUT traffic can cause +- * an internal fifo overflow if the TRB buffer is larger +- * than wMaxPacket and the length is not an integer +- * multiple of wMaxPacket. +- */ +- vli_quirk = 1; ++ usb_endpoint_is_bulk_out(&urb->ep->desc) ++ && urb->dev->speed >= USB_SPEED_SUPER) { ++ vli_bulk_quirk = 1; + } + + /* Queue the TRBs, even if they are zero-length */ +@@ -3675,7 +3670,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, + if (enqd_len + trb_buff_len > full_len) + trb_buff_len = full_len - enqd_len; + +- if (vli_quirk && trb_buff_len > maxpacket) { ++ if (vli_bulk_quirk && trb_buff_len > maxpacket) { + /* SS bulk wMaxPacket is 1024B */ + remainder = trb_buff_len & (maxpacket - 1); + trb_buff_len -= remainder; +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jonathan Bell +Date: Tue, 1 Mar 2022 15:17:04 +0000 +Subject: [PATCH 809/847] 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 +a multiple of wMaxPacket and not the last TRB in a TD can cause data +corruption. + +Work around this by linearising any vulnerable Bulk OUT scatter-gather +URBs prior to URB submission. Normal XHCI TRB formation will split +buffers on 64K boundaries and align TRBs prior to a Link TRB to +wMaxPacket, so keep the residue TRB generation added with the first +iteration of the quirk which will guarantee the last TRB is the only TRB +with an odd buffer size. + +Signed-off-by: Jonathan Bell +--- + drivers/usb/host/xhci.c | 16 +++++++++++++++- + 1 file changed, 15 insertions(+), 1 deletion(-) + +diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c +index 45dfdcdc9f30..dc0651828f97 100644 +--- a/drivers/usb/host/xhci.c ++++ b/drivers/usb/host/xhci.c +@@ -1395,9 +1395,12 @@ static void xhci_unmap_temp_buf(struct usb_hcd *hcd, struct urb *urb) + static int xhci_map_urb_for_dma(struct usb_hcd *hcd, struct urb *urb, + gfp_t mem_flags) + { ++ unsigned int i, maxpacket; ++ struct scatterlist *sg; + struct xhci_hcd *xhci; + + xhci = hcd_to_xhci(hcd); ++ maxpacket = usb_endpoint_maxp(&urb->ep->desc); + + if (xhci_urb_suitable_for_idt(urb)) + return 0; +@@ -1406,6 +1409,16 @@ static int xhci_map_urb_for_dma(struct usb_hcd *hcd, struct urb *urb, + if (xhci_urb_temp_buffer_required(hcd, urb)) + return xhci_map_temp_buffer(hcd, urb); + } ++ ++ if (xhci->quirks & XHCI_VLI_SS_BULK_OUT_BUG && ++ usb_endpoint_is_bulk_out(&urb->ep->desc) && ++ urb->dev->speed >= USB_SPEED_SUPER && ++ urb->transfer_buffer_length != 0) { ++ for_each_sg(urb->sg, sg, urb->num_sgs, i) { ++ if (sg->length % maxpacket) ++ return xhci_map_temp_buffer(hcd, urb); ++ } ++ } + return usb_hcd_map_urb_for_dma(hcd, urb, mem_flags); + } + +@@ -1419,7 +1432,8 @@ static void xhci_unmap_urb_for_dma(struct usb_hcd *hcd, struct urb *urb) + if (urb->num_sgs && (urb->transfer_flags & URB_DMA_MAP_SINGLE)) + unmap_temp_buf = true; + +- if ((xhci->quirks & XHCI_SG_TRB_CACHE_SIZE_QUIRK) && unmap_temp_buf) ++ if ((xhci->quirks & (XHCI_SG_TRB_CACHE_SIZE_QUIRK | XHCI_VLI_SS_BULK_OUT_BUG)) ++ && unmap_temp_buf) + xhci_unmap_temp_buf(hcd, urb); + else + usb_hcd_unmap_urb_for_dma(hcd, urb); +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Fri, 25 Feb 2022 18:16:13 +0000 +Subject: [PATCH 810/847] media/i2c: Add driver for Omnivision OV2311 + +Omnivision OV2311 is a CSI2 1600x1300 global shutter image sensor. +Add a driver for it. + +Signed-off-by: Dave Stevenson +--- + drivers/media/i2c/Kconfig | 11 + + drivers/media/i2c/Makefile | 1 + + drivers/media/i2c/ov2311.c | 1181 ++++++++++++++++++++++++++++++++++++ + 3 files changed, 1193 insertions(+) + create mode 100644 drivers/media/i2c/ov2311.c + +diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig +index 4b9cbf1e81fb..7638dad7048b 100644 +--- a/drivers/media/i2c/Kconfig ++++ b/drivers/media/i2c/Kconfig +@@ -918,6 +918,17 @@ config VIDEO_OV02A10 + To compile this driver as a module, choose M here: the + module will be called ov02a10. + ++config VIDEO_OV2311 ++ tristate "OmniVision OV2311 sensor support" ++ depends on I2C && VIDEO_V4L2 ++ depends on MEDIA_CAMERA_SUPPORT ++ help ++ This is a Video4Linux2 sensor-level driver for the OmniVision ++ OV2311 camera. ++ ++ To compile this driver as a module, choose M here: the ++ module will be called ov2311. ++ + config VIDEO_OV2640 + tristate "OmniVision OV2640 sensor support" + depends on VIDEO_V4L2 && I2C +diff --git a/drivers/media/i2c/Makefile b/drivers/media/i2c/Makefile +index 9f1210fa6243..daed83f59111 100644 +--- a/drivers/media/i2c/Makefile ++++ b/drivers/media/i2c/Makefile +@@ -65,6 +65,7 @@ obj-$(CONFIG_VIDEO_SONY_BTF_MPX) += sony-btf-mpx.o + obj-$(CONFIG_VIDEO_UPD64031A) += upd64031a.o + obj-$(CONFIG_VIDEO_UPD64083) += upd64083.o + obj-$(CONFIG_VIDEO_OV02A10) += ov02a10.o ++obj-$(CONFIG_VIDEO_OV2311) += ov2311.o + obj-$(CONFIG_VIDEO_OV2640) += ov2640.o + obj-$(CONFIG_VIDEO_OV2680) += ov2680.o + obj-$(CONFIG_VIDEO_OV2685) += ov2685.o +diff --git a/drivers/media/i2c/ov2311.c b/drivers/media/i2c/ov2311.c +new file mode 100644 +index 000000000000..a6d68e760742 +--- /dev/null ++++ b/drivers/media/i2c/ov2311.c +@@ -0,0 +1,1181 @@ ++// SPDX-License-Identifier: GPL-2.0 ++/* ++ * Omnivision OV2311 1600x1300 global shutter image sensor driver ++ * Copyright (C) 2022, Raspberry Pi (Trading) Ltd ++ * ++ * This driver is based on the OV9281 driver. ++ * Copyright (C) 2017 Fuzhou Rockchip Electronics Co., Ltd. ++ * Register configuration from ++ * https://github.com/ArduCAM/ArduCAM_USB_Camera_Shield/tree/master/Config/USB3.0_UC-425_Rev.C%2BUC-628_Rev.B/OV2311 ++ * with additional exposure and gain register information from ++ * https://github.com/renesas-rcar/linux-bsp/tree/0cf6e36f5bf49e1c2aab87139ec5b588623c56f8/drivers/media/i2c/imagers ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define OV2311_LINK_FREQ 400000000 ++#define OV2311_LANES 2 ++ ++/* pixel rate = link frequency * 2 * lanes / BITS_PER_SAMPLE */ ++#define OV2311_PIXEL_RATE_10BIT (OV2311_LINK_FREQ * 2 * \ ++ OV2311_LANES / 10) ++#define OV2311_PIXEL_RATE_8BIT (OV2311_LINK_FREQ * 2 * \ ++ OV2311_LANES / 8) ++#define OV2311_XVCLK_FREQ 24000000 ++ ++#define CHIP_ID 0x2311 ++#define OV2311_REG_CHIP_ID 0x300a ++ ++#define OV2311_REG_CTRL_MODE 0x0100 ++#define OV2311_MODE_SW_STANDBY 0x0 ++#define OV2311_MODE_STREAMING BIT(0) ++ ++#define OV2311_REG_V_FLIP 0x3820 ++#define OV2311_REG_H_FLIP 0x3821 ++#define OV2311_FLIP_BIT BIT(2) ++ ++#define OV2311_REG_EXPOSURE 0x3501 ++#define OV2311_EXPOSURE_MIN 4 ++#define OV2311_EXPOSURE_STEP 1 ++#define OV2311_VTS_MAX 0xffff ++ ++#define OV2311_REG_GAIN_H 0x3508 ++#define OV2311_REG_GAIN_L 0x3509 ++#define OV2311_GAIN_H_MASK 0x07 ++#define OV2311_GAIN_H_SHIFT 8 ++#define OV2311_GAIN_L_MASK 0xff ++#define OV2311_GAIN_MIN 0x100 ++#define OV2311_GAIN_MAX 0x780 ++#define OV2311_GAIN_STEP 1 ++#define OV2311_GAIN_DEFAULT OV2311_GAIN_MIN ++ ++#define OV2311_REG_TEST_PATTERN 0x5e00 ++#define OV2311_TEST_PATTERN_ENABLE 0x80 ++#define OV2311_TEST_PATTERN_DISABLE 0x0 ++ ++#define OV2311_REG_VTS 0x380e ++ ++/* ++ * OV2311 native and active pixel array size. ++ * Datasheet not available to confirm these values. renesas-rcar linux-bsp tree ++ * has these values. ++ */ ++#define OV2311_NATIVE_WIDTH 1616U ++#define OV2311_NATIVE_HEIGHT 1316U ++#define OV2311_PIXEL_ARRAY_LEFT 8U ++#define OV2311_PIXEL_ARRAY_TOP 8U ++#define OV2311_PIXEL_ARRAY_WIDTH 1600U ++#define OV2311_PIXEL_ARRAY_HEIGHT 1300U ++ ++#define REG_NULL 0xFFFF ++ ++#define OV2311_REG_VALUE_08BIT 1 ++#define OV2311_REG_VALUE_16BIT 2 ++#define OV2311_REG_VALUE_24BIT 3 ++ ++#define OV2311_NAME "ov2311" ++ ++static const char * const ov2311_supply_names[] = { ++ "avdd", /* Analog power */ ++ "dovdd", /* Digital I/O power */ ++ "dvdd", /* Digital core power */ ++}; ++ ++#define OV2311_NUM_SUPPLIES ARRAY_SIZE(ov2311_supply_names) ++ ++struct regval { ++ u16 addr; ++ u8 val; ++}; ++ ++struct ov2311_mode { ++ u32 width; ++ u32 height; ++ u32 hts_def; ++ u32 vts_def; ++ u32 exp_def; ++ struct v4l2_rect crop; ++ const struct regval *reg_list; ++}; ++ ++struct ov2311 { ++ struct i2c_client *client; ++ struct clk *xvclk; ++ struct gpio_desc *reset_gpio; ++ struct gpio_desc *pwdn_gpio; ++ struct regulator_bulk_data supplies[OV2311_NUM_SUPPLIES]; ++ ++ struct v4l2_subdev subdev; ++ struct media_pad pad; ++ struct v4l2_ctrl_handler ctrl_handler; ++ struct v4l2_ctrl *exposure; ++ struct v4l2_ctrl *hblank; ++ struct v4l2_ctrl *vblank; ++ struct v4l2_ctrl *pixel_rate; ++ /* ++ * Mutex for serialized access: ++ * Protect sensor module set pad format and start/stop streaming safely. ++ */ ++ struct mutex mutex; ++ ++ /* Streaming on/off */ ++ bool streaming; ++ ++ const struct ov2311_mode *cur_mode; ++ u32 code; ++}; ++ ++#define to_ov2311(sd) container_of(sd, struct ov2311, subdev) ++ ++/* ++ * Xclk 24Mhz ++ * max_framerate 60fps for 10 bit, 74.6fps for 8 bit. ++ */ ++static const struct regval ov2311_common_regs[] = { ++ { 0x0103, 0x01 }, ++ { 0x0100, 0x00 }, ++ { 0x0300, 0x01 }, ++ { 0x0302, 0x32 }, ++ { 0x0303, 0x00 }, ++ { 0x0304, 0x03 }, ++ { 0x0305, 0x02 }, ++ { 0x0306, 0x01 }, ++ { 0x030e, 0x04 }, ++ { 0x3001, 0x02 }, ++ { 0x3004, 0x00 }, ++ { 0x3005, 0x00 }, ++ { 0x3006, 0x00 }, ++ { 0x3011, 0x0d }, ++ { 0x3014, 0x04 }, ++ { 0x301c, 0xf0 }, ++ { 0x3020, 0x00 }, ++ { 0x302c, 0x00 }, ++ { 0x302d, 0x12 }, ++ { 0x302e, 0x4c }, ++ { 0x302f, 0x8c }, ++ { 0x3030, 0x10 }, ++ { 0x303f, 0x03 }, ++ { 0x3103, 0x00 }, ++ { 0x3106, 0x08 }, ++ { 0x31ff, 0x01 }, ++ { 0x3501, 0x05 }, ++ { 0x3502, 0xba }, ++ { 0x3506, 0x00 }, ++ { 0x3507, 0x00 }, ++ { 0x3620, 0x67 }, ++ { 0x3633, 0x78 }, ++ { 0x3666, 0x00 }, ++ { 0x3670, 0x68 }, ++ { 0x3674, 0x10 }, ++ { 0x3675, 0x00 }, ++ { 0x3680, 0x84 }, ++ { 0x36a2, 0x04 }, ++ { 0x36a3, 0x80 }, ++ { 0x36b0, 0x00 }, ++ { 0x3700, 0x35 }, ++ { 0x3704, 0x59 }, ++ { 0x3712, 0x00 }, ++ { 0x3713, 0x02 }, ++ { 0x379b, 0x01 }, ++ { 0x379c, 0x10 }, ++ { 0x3800, 0x00 }, ++ { 0x3801, 0x00 }, ++ { 0x3804, 0x06 }, ++ { 0x3805, 0x4f }, ++ { 0x3810, 0x00 }, ++ { 0x3811, 0x08 }, ++ { 0x3812, 0x00 }, ++ { 0x3813, 0x08 }, ++ { 0x3814, 0x11 }, ++ { 0x3815, 0x11 }, ++ { 0x3816, 0x00 }, ++ { 0x3817, 0x00 }, ++ { 0x3818, 0x04 }, ++ { 0x3819, 0x00 }, ++ { 0x382b, 0x5a }, ++ { 0x382c, 0x09 }, ++ { 0x382d, 0x9a }, ++ { 0x3882, 0x02 }, ++ { 0x3883, 0x6c }, ++ { 0x3885, 0x07 }, ++ { 0x389d, 0x03 }, ++ { 0x38a6, 0x00 }, ++ { 0x38a7, 0x01 }, ++ { 0x38b3, 0x07 }, ++ { 0x38b1, 0x00 }, ++ { 0x38e5, 0x02 }, ++ { 0x38e7, 0x00 }, ++ { 0x38e8, 0x00 }, ++ { 0x3910, 0xff }, ++ { 0x3911, 0xff }, ++ { 0x3912, 0x08 }, ++ { 0x3913, 0x00 }, ++ { 0x3914, 0x00 }, ++ { 0x3915, 0x00 }, ++ { 0x391c, 0x00 }, ++ { 0x3920, 0xa5 }, ++ { 0x3921, 0x00 }, ++ { 0x3922, 0x00 }, ++ { 0x3923, 0x00 }, ++ { 0x3924, 0x05 }, ++ { 0x3925, 0x00 }, ++ { 0x3926, 0x00 }, ++ { 0x3927, 0x00 }, ++ { 0x3928, 0x1a }, ++ { 0x392d, 0x05 }, ++ { 0x392e, 0xf2 }, ++ { 0x392f, 0x40 }, ++ { 0x4001, 0x00 }, ++ { 0x4003, 0x40 }, ++ { 0x4008, 0x12 }, ++ { 0x4009, 0x1b }, ++ { 0x400c, 0x0c }, ++ { 0x400d, 0x13 }, ++ { 0x4010, 0xf0 }, ++ { 0x4011, 0x00 }, ++ { 0x4016, 0x00 }, ++ { 0x4017, 0x04 }, ++ { 0x4042, 0x11 }, ++ { 0x4043, 0x70 }, ++ { 0x4045, 0x00 }, ++ { 0x4409, 0x5f }, ++ { 0x450b, 0x00 }, ++ { 0x4600, 0x00 }, ++ { 0x4601, 0xa0 }, ++ { 0x4708, 0x09 }, ++ { 0x470c, 0x81 }, ++ { 0x4710, 0x06 }, ++ { 0x4711, 0x00 }, ++ { 0x4800, 0x00 }, ++ { 0x481f, 0x30 }, ++ { 0x4837, 0x14 }, ++ { 0x4f00, 0x00 }, ++ { 0x4f07, 0x00 }, ++ { 0x4f08, 0x03 }, ++ { 0x4f09, 0x08 }, ++ { 0x4f0c, 0x06 }, ++ { 0x4f0d, 0x02 }, ++ { 0x4f10, 0x00 }, ++ { 0x4f11, 0x00 }, ++ { 0x4f12, 0x07 }, ++ { 0x4f13, 0xe2 }, ++ { 0x5000, 0x9f }, ++ { 0x5001, 0x20 }, ++ { 0x5026, 0x00 }, ++ { 0x5c00, 0x00 }, ++ { 0x5c01, 0x2c }, ++ { 0x5c02, 0x00 }, ++ { 0x5c03, 0x7f }, ++ { 0x5e00, 0x00 }, ++ { 0x5e01, 0x41 }, ++ {REG_NULL, 0x00}, ++}; ++ ++static const struct regval ov2311_1600x1300_regs[] = { ++ { 0x3802, 0x00 }, ++ { 0x3803, 0x00 }, ++ { 0x3806, 0x05 }, ++ { 0x3807, 0x23 }, ++ { 0x3808, 0x06 }, ++ { 0x3809, 0x40 }, ++ { 0x380a, 0x05 }, ++ { 0x380b, 0x14 }, ++ { 0x380c, 0x03 }, ++ { 0x380d, 0x88 }, ++ {REG_NULL, 0x00}, ++}; ++ ++static const struct regval ov2311_1600x1080_regs[] = { ++ { 0x3802, 0x00 }, ++ { 0x3803, 0x6e }, ++ { 0x3806, 0x04 }, ++ { 0x3807, 0xae }, ++ { 0x3808, 0x06 }, ++ { 0x3809, 0x40 }, ++ { 0x380a, 0x04 }, ++ { 0x380b, 0x38 }, ++ { 0x380c, 0x03 }, ++ { 0x380d, 0x88 }, ++ ++ { 0x5d01, 0x00 }, ++ { 0x5d02, 0x04 }, ++ { 0x5d03, 0x00 }, ++ { 0x5d04, 0x04 }, ++ { 0x5d05, 0x00 }, ++ {REG_NULL, 0x00}, ++}; ++ ++static const struct regval op_10bit[] = { ++ { 0x030d, 0x5a }, ++ { 0x3662, 0x65 }, ++ {REG_NULL, 0x00}, ++}; ++ ++static const struct regval op_8bit[] = { ++ { 0x030d, 0x70 }, ++ { 0x3662, 0x67 }, ++ {REG_NULL, 0x00}, ++}; ++ ++static const struct ov2311_mode supported_modes[] = { ++ { ++ .width = 1600, ++ .height = 1300, ++ .exp_def = 0x0320, ++ .hts_def = (0x0388 * 2),/* Registers 0x380c / 0x380d * 2 */ ++ .vts_def = 0x5c2, /* Registers 0x380e / 0x380f ++ * 60fps for 10bpp ++ */ ++ .crop = { ++ .left = OV2311_PIXEL_ARRAY_LEFT, ++ .top = OV2311_PIXEL_ARRAY_TOP, ++ .width = 1600, ++ .height = 1300 ++ }, ++ .reg_list = ov2311_1600x1300_regs, ++ }, ++ { ++ .width = 1600, ++ .height = 1080, ++ .exp_def = 0x0320, ++ .hts_def = (0x0388 * 2),/* Registers 0x380c / 0x380d * 2 */ ++ .vts_def = 0x5c2, /* Registers 0x380e / 0x380f ++ * 60fps for 10bpp ++ */ ++ .crop = { ++ .left = OV2311_PIXEL_ARRAY_LEFT, ++ .top = 110 + OV2311_PIXEL_ARRAY_TOP, ++ .width = 1600, ++ .height = 1080 ++ }, ++ .reg_list = ov2311_1600x1080_regs, ++ }, ++}; ++ ++static const s64 link_freq_menu_items[] = { ++ OV2311_LINK_FREQ ++}; ++ ++static const char * const ov2311_test_pattern_menu[] = { ++ "Disabled", ++ "Vertical Color Bar Type 1", ++ "Vertical Color Bar Type 2", ++ "Vertical Color Bar Type 3", ++ "Vertical Color Bar Type 4" ++}; ++ ++/* Write registers up to 4 at a time */ ++static int ov2311_write_reg(struct i2c_client *client, u16 reg, ++ u32 len, u32 val) ++{ ++ u32 buf_i, val_i; ++ u8 buf[6]; ++ u8 *val_p; ++ __be32 val_be; ++ ++ if (len > 4) ++ return -EINVAL; ++ ++ buf[0] = reg >> 8; ++ buf[1] = reg & 0xff; ++ ++ val_be = cpu_to_be32(val); ++ val_p = (u8 *)&val_be; ++ buf_i = 2; ++ val_i = 4 - len; ++ ++ while (val_i < 4) ++ buf[buf_i++] = val_p[val_i++]; ++ ++ if (i2c_master_send(client, buf, len + 2) != len + 2) ++ return -EIO; ++ ++ return 0; ++} ++ ++static int ov2311_write_array(struct i2c_client *client, ++ const struct regval *regs) ++{ ++ u32 i; ++ int ret = 0; ++ ++ for (i = 0; ret == 0 && regs[i].addr != REG_NULL; i++) ++ ret = ov2311_write_reg(client, regs[i].addr, ++ OV2311_REG_VALUE_08BIT, regs[i].val); ++ ++ return ret; ++} ++ ++/* Read registers up to 4 at a time */ ++static int ov2311_read_reg(struct i2c_client *client, u16 reg, unsigned int len, ++ u32 *val) ++{ ++ struct i2c_msg msgs[2]; ++ u8 *data_be_p; ++ __be32 data_be = 0; ++ __be16 reg_addr_be = cpu_to_be16(reg); ++ int ret; ++ ++ if (len > 4 || !len) ++ return -EINVAL; ++ ++ data_be_p = (u8 *)&data_be; ++ /* Write register address */ ++ msgs[0].addr = client->addr; ++ msgs[0].flags = 0; ++ msgs[0].len = 2; ++ msgs[0].buf = (u8 *)®_addr_be; ++ ++ /* Read data from register */ ++ msgs[1].addr = client->addr; ++ msgs[1].flags = I2C_M_RD; ++ msgs[1].len = len; ++ msgs[1].buf = &data_be_p[4 - len]; ++ ++ ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs)); ++ if (ret != ARRAY_SIZE(msgs)) ++ return -EIO; ++ ++ *val = be32_to_cpu(data_be); ++ ++ return 0; ++} ++ ++static int ov2311_set_fmt(struct v4l2_subdev *sd, ++ struct v4l2_subdev_state *sd_state, ++ struct v4l2_subdev_format *fmt) ++{ ++ struct ov2311 *ov2311 = to_ov2311(sd); ++ const struct ov2311_mode *mode; ++ s64 h_blank, vblank_def, pixel_rate; ++ ++ mutex_lock(&ov2311->mutex); ++ ++ mode = v4l2_find_nearest_size(supported_modes, ++ ARRAY_SIZE(supported_modes), ++ width, height, ++ fmt->format.width, ++ fmt->format.height); ++ if (fmt->format.code != MEDIA_BUS_FMT_Y8_1X8) ++ fmt->format.code = MEDIA_BUS_FMT_Y10_1X10; ++ fmt->format.width = mode->width; ++ fmt->format.height = mode->height; ++ fmt->format.field = V4L2_FIELD_NONE; ++ fmt->format.colorspace = V4L2_COLORSPACE_RAW; ++ fmt->format.ycbcr_enc = ++ V4L2_MAP_YCBCR_ENC_DEFAULT(fmt->format.colorspace); ++ fmt->format.quantization = ++ V4L2_MAP_QUANTIZATION_DEFAULT(true, fmt->format.colorspace, ++ fmt->format.ycbcr_enc); ++ fmt->format.xfer_func = ++ V4L2_MAP_XFER_FUNC_DEFAULT(fmt->format.colorspace); ++ ++ if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) { ++ *v4l2_subdev_get_try_format(sd, sd_state, fmt->pad) = ++ fmt->format; ++ } else { ++ ov2311->cur_mode = mode; ++ ov2311->code = fmt->format.code; ++ h_blank = mode->hts_def - mode->width; ++ __v4l2_ctrl_modify_range(ov2311->hblank, h_blank, ++ h_blank, 1, h_blank); ++ __v4l2_ctrl_s_ctrl(ov2311->hblank, h_blank); ++ vblank_def = mode->vts_def - mode->height; ++ __v4l2_ctrl_modify_range(ov2311->vblank, vblank_def, ++ OV2311_VTS_MAX - mode->height, ++ 1, vblank_def); ++ __v4l2_ctrl_s_ctrl(ov2311->vblank, vblank_def); ++ ++ pixel_rate = (fmt->format.code == MEDIA_BUS_FMT_Y10_1X10) ? ++ OV2311_PIXEL_RATE_10BIT : OV2311_PIXEL_RATE_8BIT; ++ __v4l2_ctrl_modify_range(ov2311->pixel_rate, pixel_rate, ++ pixel_rate, 1, pixel_rate); ++ } ++ ++ mutex_unlock(&ov2311->mutex); ++ ++ return 0; ++} ++ ++static int ov2311_get_fmt(struct v4l2_subdev *sd, ++ struct v4l2_subdev_state *sd_state, ++ struct v4l2_subdev_format *fmt) ++{ ++ struct ov2311 *ov2311 = to_ov2311(sd); ++ const struct ov2311_mode *mode = ov2311->cur_mode; ++ ++ mutex_lock(&ov2311->mutex); ++ if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) { ++ fmt->format = *v4l2_subdev_get_try_format(sd, sd_state, fmt->pad); ++ } else { ++ fmt->format.width = mode->width; ++ fmt->format.height = mode->height; ++ fmt->format.code = ov2311->code; ++ fmt->format.field = V4L2_FIELD_NONE; ++ fmt->format.colorspace = V4L2_COLORSPACE_SRGB; ++ fmt->format.ycbcr_enc = ++ V4L2_MAP_YCBCR_ENC_DEFAULT(fmt->format.colorspace); ++ fmt->format.quantization = ++ V4L2_MAP_QUANTIZATION_DEFAULT(true, ++ fmt->format.colorspace, ++ fmt->format.ycbcr_enc); ++ fmt->format.xfer_func = ++ V4L2_MAP_XFER_FUNC_DEFAULT(fmt->format.colorspace); ++ } ++ mutex_unlock(&ov2311->mutex); ++ ++ return 0; ++} ++ ++static int ov2311_enum_mbus_code(struct v4l2_subdev *sd, ++ struct v4l2_subdev_state *sd_state, ++ struct v4l2_subdev_mbus_code_enum *code) ++{ ++ switch (code->index) { ++ default: ++ return -EINVAL; ++ case 0: ++ code->code = MEDIA_BUS_FMT_Y10_1X10; ++ break; ++ case 1: ++ code->code = MEDIA_BUS_FMT_Y8_1X8; ++ break; ++ } ++ ++ return 0; ++} ++ ++static int ov2311_enum_frame_sizes(struct v4l2_subdev *sd, ++ struct v4l2_subdev_state *sd_state, ++ struct v4l2_subdev_frame_size_enum *fse) ++{ ++ if (fse->index >= ARRAY_SIZE(supported_modes)) ++ return -EINVAL; ++ ++ if (fse->code != MEDIA_BUS_FMT_Y10_1X10 && ++ fse->code != MEDIA_BUS_FMT_Y8_1X8) ++ return -EINVAL; ++ ++ fse->min_width = supported_modes[fse->index].width; ++ fse->max_width = supported_modes[fse->index].width; ++ fse->max_height = supported_modes[fse->index].height; ++ fse->min_height = supported_modes[fse->index].height; ++ ++ return 0; ++} ++ ++static int ov2311_enable_test_pattern(struct ov2311 *ov2311, u32 pattern) ++{ ++ u32 val; ++ ++ if (pattern) ++ val = (pattern - 1) | OV2311_TEST_PATTERN_ENABLE; ++ else ++ val = OV2311_TEST_PATTERN_DISABLE; ++ ++ return ov2311_write_reg(ov2311->client, OV2311_REG_TEST_PATTERN, ++ OV2311_REG_VALUE_08BIT, val); ++} ++ ++static const struct v4l2_rect * ++__ov2311_get_pad_crop(struct ov2311 *ov2311, 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(&ov2311->subdev, sd_state, pad); ++ case V4L2_SUBDEV_FORMAT_ACTIVE: ++ return &ov2311->cur_mode->crop; ++ } ++ ++ return NULL; ++} ++ ++static int ov2311_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 ov2311 *ov2311 = to_ov2311(sd); ++ ++ mutex_lock(&ov2311->mutex); ++ sel->r = *__ov2311_get_pad_crop(ov2311, sd_state, sel->pad, ++ sel->which); ++ mutex_unlock(&ov2311->mutex); ++ ++ return 0; ++ } ++ ++ case V4L2_SEL_TGT_NATIVE_SIZE: ++ sel->r.top = 0; ++ sel->r.left = 0; ++ sel->r.width = OV2311_NATIVE_WIDTH; ++ sel->r.height = OV2311_NATIVE_HEIGHT; ++ ++ return 0; ++ ++ case V4L2_SEL_TGT_CROP_DEFAULT: ++ case V4L2_SEL_TGT_CROP_BOUNDS: ++ sel->r.top = OV2311_PIXEL_ARRAY_TOP; ++ sel->r.left = OV2311_PIXEL_ARRAY_LEFT; ++ sel->r.width = OV2311_PIXEL_ARRAY_WIDTH; ++ sel->r.height = OV2311_PIXEL_ARRAY_HEIGHT; ++ ++ return 0; ++ } ++ ++ return -EINVAL; ++} ++ ++static int ov2311_start_stream(struct ov2311 *ov2311) ++{ ++ int ret; ++ ++ ret = ov2311_write_array(ov2311->client, ov2311_common_regs); ++ if (ret) ++ return ret; ++ ++ ret = ov2311_write_array(ov2311->client, ov2311->cur_mode->reg_list); ++ if (ret) ++ return ret; ++ ++ if (ov2311->code == MEDIA_BUS_FMT_Y10_1X10) ++ ret = ov2311_write_array(ov2311->client, op_10bit); ++ else ++ ret = ov2311_write_array(ov2311->client, op_8bit); ++ if (ret) ++ return ret; ++ ++ /* In case these controls are set before streaming */ ++ mutex_unlock(&ov2311->mutex); ++ ret = v4l2_ctrl_handler_setup(&ov2311->ctrl_handler); ++ mutex_lock(&ov2311->mutex); ++ if (ret) ++ return ret; ++ ++ return ov2311_write_reg(ov2311->client, OV2311_REG_CTRL_MODE, ++ OV2311_REG_VALUE_08BIT, OV2311_MODE_STREAMING); ++} ++ ++static int ov2311_stop_stream(struct ov2311 *ov2311) ++{ ++ return ov2311_write_reg(ov2311->client, OV2311_REG_CTRL_MODE, ++ OV2311_REG_VALUE_08BIT, OV2311_MODE_SW_STANDBY); ++} ++ ++static int ov2311_s_stream(struct v4l2_subdev *sd, int enable) ++{ ++ struct ov2311 *ov2311 = to_ov2311(sd); ++ struct i2c_client *client = ov2311->client; ++ int ret = 0; ++ ++ mutex_lock(&ov2311->mutex); ++ if (ov2311->streaming == enable) { ++ mutex_unlock(&ov2311->mutex); ++ return 0; ++ } ++ ++ if (enable) { ++ ret = pm_runtime_resume_and_get(&client->dev); ++ if (ret < 0) ++ goto unlock_and_return; ++ ++ ret = ov2311_start_stream(ov2311); ++ if (ret) { ++ v4l2_err(sd, "start stream failed while write regs\n"); ++ pm_runtime_put(&client->dev); ++ goto unlock_and_return; ++ } ++ } else { ++ ov2311_stop_stream(ov2311); ++ pm_runtime_put(&client->dev); ++ } ++ ++ ov2311->streaming = enable; ++ ++unlock_and_return: ++ mutex_unlock(&ov2311->mutex); ++ ++ return ret; ++} ++ ++static int ov2311_power_on(struct device *dev) ++{ ++ struct v4l2_subdev *sd = dev_get_drvdata(dev); ++ struct ov2311 *ov2311 = to_ov2311(sd); ++ int ret; ++ ++ ret = clk_set_rate(ov2311->xvclk, OV2311_XVCLK_FREQ); ++ if (ret < 0) ++ dev_warn(dev, "Failed to set xvclk rate (24MHz)\n"); ++ if (clk_get_rate(ov2311->xvclk) != OV2311_XVCLK_FREQ) ++ dev_warn(dev, "xvclk mismatched, modes are based on 24MHz - rate is %lu\n", ++ clk_get_rate(ov2311->xvclk)); ++ ++ ret = clk_prepare_enable(ov2311->xvclk); ++ if (ret < 0) { ++ dev_err(dev, "Failed to enable xvclk\n"); ++ return ret; ++ } ++ ++ gpiod_set_value_cansleep(ov2311->reset_gpio, 0); ++ ++ ret = regulator_bulk_enable(OV2311_NUM_SUPPLIES, ov2311->supplies); ++ if (ret < 0) { ++ dev_err(dev, "Failed to enable regulators\n"); ++ goto disable_clk; ++ } ++ ++ gpiod_set_value_cansleep(ov2311->reset_gpio, 1); ++ ++ usleep_range(500, 1000); ++ gpiod_set_value_cansleep(ov2311->pwdn_gpio, 1); ++ ++ usleep_range(1000, 2000); ++ ++ return 0; ++ ++disable_clk: ++ clk_disable_unprepare(ov2311->xvclk); ++ ++ return ret; ++} ++ ++static int ov2311_power_off(struct device *dev) ++{ ++ struct v4l2_subdev *sd = dev_get_drvdata(dev); ++ struct ov2311 *ov2311 = to_ov2311(sd); ++ ++ gpiod_set_value_cansleep(ov2311->pwdn_gpio, 0); ++ clk_disable_unprepare(ov2311->xvclk); ++ gpiod_set_value_cansleep(ov2311->reset_gpio, 0); ++ regulator_bulk_disable(OV2311_NUM_SUPPLIES, ov2311->supplies); ++ ++ return 0; ++} ++ ++static int ov2311_runtime_resume(struct device *dev) ++{ ++ struct v4l2_subdev *sd = dev_get_drvdata(dev); ++ struct ov2311 *ov2311 = to_ov2311(sd); ++ int ret; ++ ++ if (ov2311->streaming) { ++ ret = ov2311_start_stream(ov2311); ++ if (ret) ++ goto error; ++ } ++ return 0; ++ ++error: ++ ov2311_stop_stream(ov2311); ++ ov2311->streaming = 0; ++ return ret; ++} ++ ++static int ov2311_runtime_suspend(struct device *dev) ++{ ++ struct v4l2_subdev *sd = dev_get_drvdata(dev); ++ struct ov2311 *ov2311 = to_ov2311(sd); ++ ++ if (ov2311->streaming) ++ ov2311_stop_stream(ov2311); ++ ++ return 0; ++} ++ ++static int ov2311_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh) ++{ ++ struct ov2311 *ov2311 = to_ov2311(sd); ++ struct v4l2_mbus_framefmt *try_fmt = ++ v4l2_subdev_get_try_format(sd, fh->state, 0); ++ const struct ov2311_mode *def_mode = &supported_modes[0]; ++ ++ mutex_lock(&ov2311->mutex); ++ /* Initialize try_fmt */ ++ try_fmt->width = def_mode->width; ++ try_fmt->height = def_mode->height; ++ try_fmt->code = MEDIA_BUS_FMT_Y10_1X10; ++ try_fmt->field = V4L2_FIELD_NONE; ++ try_fmt->colorspace = V4L2_COLORSPACE_RAW; ++ try_fmt->ycbcr_enc = V4L2_MAP_YCBCR_ENC_DEFAULT(try_fmt->colorspace); ++ try_fmt->quantization = ++ V4L2_MAP_QUANTIZATION_DEFAULT(true, try_fmt->colorspace, ++ try_fmt->ycbcr_enc); ++ try_fmt->xfer_func = V4L2_MAP_XFER_FUNC_DEFAULT(try_fmt->colorspace); ++ ++ mutex_unlock(&ov2311->mutex); ++ /* No crop or compose */ ++ ++ return 0; ++} ++ ++static const struct dev_pm_ops ov2311_pm_ops = { ++ SET_RUNTIME_PM_OPS(ov2311_runtime_suspend, ov2311_runtime_resume, NULL) ++ SET_RUNTIME_PM_OPS(ov2311_power_off, ov2311_power_on, NULL) ++}; ++ ++static const struct v4l2_subdev_internal_ops ov2311_internal_ops = { ++ .open = ov2311_open, ++}; ++ ++static const struct v4l2_subdev_core_ops ov2311_core_ops = { ++ .subscribe_event = v4l2_ctrl_subdev_subscribe_event, ++ .unsubscribe_event = v4l2_event_subdev_unsubscribe, ++}; ++ ++static const struct v4l2_subdev_video_ops ov2311_video_ops = { ++ .s_stream = ov2311_s_stream, ++}; ++ ++static const struct v4l2_subdev_pad_ops ov2311_pad_ops = { ++ .enum_mbus_code = ov2311_enum_mbus_code, ++ .enum_frame_size = ov2311_enum_frame_sizes, ++ .get_fmt = ov2311_get_fmt, ++ .set_fmt = ov2311_set_fmt, ++ .get_selection = ov2311_get_selection, ++}; ++ ++static const struct v4l2_subdev_ops ov2311_subdev_ops = { ++ .core = &ov2311_core_ops, ++ .video = &ov2311_video_ops, ++ .pad = &ov2311_pad_ops, ++}; ++ ++static int ov2311_set_ctrl(struct v4l2_ctrl *ctrl) ++{ ++ struct ov2311 *ov2311 = container_of(ctrl->handler, ++ struct ov2311, ctrl_handler); ++ struct i2c_client *client = ov2311->client; ++ s64 max; ++ int ret = 0; ++ ++ /* Propagate change of current control to all related controls */ ++ switch (ctrl->id) { ++ case V4L2_CID_VBLANK: ++ /* Update max exposure while meeting expected vblanking */ ++ max = ov2311->cur_mode->height + ctrl->val - 4; ++ __v4l2_ctrl_modify_range(ov2311->exposure, ++ ov2311->exposure->minimum, max, ++ ov2311->exposure->step, ++ ov2311->exposure->default_value); ++ break; ++ } ++ ++ if (pm_runtime_get(&client->dev) <= 0) ++ return 0; ++ ++ switch (ctrl->id) { ++ case V4L2_CID_EXPOSURE: ++ ret = ov2311_write_reg(ov2311->client, OV2311_REG_EXPOSURE, ++ OV2311_REG_VALUE_16BIT, ctrl->val); ++ break; ++ case V4L2_CID_ANALOGUE_GAIN: ++ ret = ov2311_write_reg(ov2311->client, OV2311_REG_GAIN_H, ++ OV2311_REG_VALUE_08BIT, ++ (ctrl->val >> OV2311_GAIN_H_SHIFT) & ++ OV2311_GAIN_H_MASK); ++ ret |= ov2311_write_reg(ov2311->client, OV2311_REG_GAIN_L, ++ OV2311_REG_VALUE_08BIT, ++ ctrl->val & OV2311_GAIN_L_MASK); ++ break; ++ case V4L2_CID_VBLANK: ++ ret = ov2311_write_reg(ov2311->client, OV2311_REG_VTS, ++ OV2311_REG_VALUE_16BIT, ++ ctrl->val + ov2311->cur_mode->height); ++ break; ++ case V4L2_CID_TEST_PATTERN: ++ ret = ov2311_enable_test_pattern(ov2311, ctrl->val); ++ break; ++ case V4L2_CID_HFLIP: ++ ret = ov2311_write_reg(ov2311->client, OV2311_REG_H_FLIP, ++ OV2311_REG_VALUE_08BIT, ++ ctrl->val ? OV2311_FLIP_BIT : 0); ++ break; ++ case V4L2_CID_VFLIP: ++ ret = ov2311_write_reg(ov2311->client, OV2311_REG_V_FLIP, ++ OV2311_REG_VALUE_08BIT, ++ ctrl->val ? OV2311_FLIP_BIT : 0); ++ break; ++ default: ++ dev_warn(&client->dev, "%s Unhandled id:0x%x, val:0x%x\n", ++ __func__, ctrl->id, ctrl->val); ++ break; ++ } ++ ++ pm_runtime_put(&client->dev); ++ ++ return ret; ++} ++ ++static const struct v4l2_ctrl_ops ov2311_ctrl_ops = { ++ .s_ctrl = ov2311_set_ctrl, ++}; ++ ++static int ov2311_initialize_controls(struct ov2311 *ov2311) ++{ ++ struct v4l2_fwnode_device_properties props; ++ const struct ov2311_mode *mode; ++ struct v4l2_ctrl_handler *handler; ++ struct v4l2_ctrl *ctrl; ++ s64 exposure_max, vblank_def; ++ u32 h_blank; ++ int ret; ++ ++ handler = &ov2311->ctrl_handler; ++ mode = ov2311->cur_mode; ++ ret = v4l2_ctrl_handler_init(handler, 11); ++ if (ret) ++ return ret; ++ handler->lock = &ov2311->mutex; ++ ++ ctrl = v4l2_ctrl_new_int_menu(handler, NULL, V4L2_CID_LINK_FREQ, ++ 0, 0, link_freq_menu_items); ++ if (ctrl) ++ ctrl->flags |= V4L2_CTRL_FLAG_READ_ONLY; ++ ++ ov2311->pixel_rate = v4l2_ctrl_new_std(handler, NULL, ++ V4L2_CID_PIXEL_RATE, ++ OV2311_PIXEL_RATE_10BIT, ++ OV2311_PIXEL_RATE_10BIT, 1, ++ OV2311_PIXEL_RATE_10BIT); ++ ++ h_blank = mode->hts_def - mode->width; ++ ov2311->hblank = v4l2_ctrl_new_std(handler, NULL, V4L2_CID_HBLANK, ++ h_blank, h_blank, 1, h_blank); ++ if (ov2311->hblank) ++ ov2311->hblank->flags |= V4L2_CTRL_FLAG_READ_ONLY; ++ ++ vblank_def = mode->vts_def - mode->height; ++ ov2311->vblank = v4l2_ctrl_new_std(handler, &ov2311_ctrl_ops, ++ V4L2_CID_VBLANK, vblank_def, ++ OV2311_VTS_MAX - mode->height, 1, ++ vblank_def); ++ ++ exposure_max = mode->vts_def - 4; ++ ov2311->exposure = v4l2_ctrl_new_std(handler, &ov2311_ctrl_ops, ++ V4L2_CID_EXPOSURE, ++ OV2311_EXPOSURE_MIN, exposure_max, ++ OV2311_EXPOSURE_STEP, ++ mode->exp_def); ++ ++ v4l2_ctrl_new_std(handler, &ov2311_ctrl_ops, V4L2_CID_ANALOGUE_GAIN, ++ OV2311_GAIN_MIN, OV2311_GAIN_MAX, OV2311_GAIN_STEP, ++ OV2311_GAIN_DEFAULT); ++ ++ v4l2_ctrl_new_std_menu_items(handler, &ov2311_ctrl_ops, ++ V4L2_CID_TEST_PATTERN, ++ ARRAY_SIZE(ov2311_test_pattern_menu) - 1, ++ 0, 0, ov2311_test_pattern_menu); ++ ++ v4l2_ctrl_new_std(handler, &ov2311_ctrl_ops, ++ V4L2_CID_HFLIP, 0, 1, 1, 0); ++ ++ v4l2_ctrl_new_std(handler, &ov2311_ctrl_ops, ++ V4L2_CID_VFLIP, 0, 1, 1, 0); ++ ++ ret = v4l2_fwnode_device_parse(&ov2311->client->dev, &props); ++ if (ret) ++ goto err_free_handler; ++ ++ ret = v4l2_ctrl_new_fwnode_properties(handler, &ov2311_ctrl_ops, ++ &props); ++ if (ret) ++ goto err_free_handler; ++ ++ if (handler->error) { ++ ret = handler->error; ++ dev_err(&ov2311->client->dev, ++ "Failed to init controls(%d)\n", ret); ++ goto err_free_handler; ++ } ++ ++ ov2311->subdev.ctrl_handler = handler; ++ ++ return 0; ++ ++err_free_handler: ++ v4l2_ctrl_handler_free(handler); ++ ++ return ret; ++} ++ ++static int ov2311_check_sensor_id(struct ov2311 *ov2311, ++ struct i2c_client *client) ++{ ++ struct device *dev = &ov2311->client->dev; ++ u32 id = 0, id_msb; ++ int ret; ++ ++ ret = ov2311_read_reg(client, OV2311_REG_CHIP_ID + 1, ++ OV2311_REG_VALUE_08BIT, &id); ++ if (!ret) ++ ret = ov2311_read_reg(client, OV2311_REG_CHIP_ID, ++ OV2311_REG_VALUE_08BIT, &id_msb); ++ id |= (id_msb << 8); ++ if (ret || id != CHIP_ID) { ++ dev_err(dev, "Unexpected sensor id(%04x), ret(%d)\n", id, ret); ++ return -ENODEV; ++ } ++ ++ dev_info(dev, "Detected OV%06x sensor\n", CHIP_ID); ++ ++ return 0; ++} ++ ++static int ov2311_configure_regulators(struct ov2311 *ov2311) ++{ ++ unsigned int i; ++ ++ for (i = 0; i < OV2311_NUM_SUPPLIES; i++) ++ ov2311->supplies[i].supply = ov2311_supply_names[i]; ++ ++ return devm_regulator_bulk_get(&ov2311->client->dev, ++ OV2311_NUM_SUPPLIES, ++ ov2311->supplies); ++} ++ ++static int ov2311_probe(struct i2c_client *client, ++ const struct i2c_device_id *id) ++{ ++ struct device *dev = &client->dev; ++ struct ov2311 *ov2311; ++ struct v4l2_subdev *sd; ++ int ret; ++ ++ ov2311 = devm_kzalloc(dev, sizeof(*ov2311), GFP_KERNEL); ++ if (!ov2311) ++ return -ENOMEM; ++ ++ ov2311->client = client; ++ ov2311->cur_mode = &supported_modes[0]; ++ ++ ov2311->xvclk = devm_clk_get(dev, "xvclk"); ++ if (IS_ERR(ov2311->xvclk)) { ++ dev_err(dev, "Failed to get xvclk\n"); ++ return -EINVAL; ++ } ++ ++ ov2311->reset_gpio = devm_gpiod_get_optional(dev, "reset", ++ GPIOD_OUT_LOW); ++ if (IS_ERR(ov2311->reset_gpio)) ++ dev_warn(dev, "Failed to get reset-gpios\n"); ++ ++ ov2311->pwdn_gpio = devm_gpiod_get_optional(dev, "pwdn", GPIOD_OUT_LOW); ++ if (IS_ERR(ov2311->pwdn_gpio)) ++ dev_warn(dev, "Failed to get pwdn-gpios\n"); ++ ++ ret = ov2311_configure_regulators(ov2311); ++ if (ret) { ++ dev_err(dev, "Failed to get power regulators\n"); ++ return ret; ++ } ++ ++ mutex_init(&ov2311->mutex); ++ ++ sd = &ov2311->subdev; ++ v4l2_i2c_subdev_init(sd, client, &ov2311_subdev_ops); ++ ret = ov2311_initialize_controls(ov2311); ++ if (ret) ++ goto err_destroy_mutex; ++ ++ ret = ov2311_power_on(&client->dev); ++ if (ret) ++ goto err_free_handler; ++ ++ ret = ov2311_check_sensor_id(ov2311, client); ++ if (ret) ++ goto err_power_off; ++ ++ sd->internal_ops = &ov2311_internal_ops; ++ sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE; ++ ++ ov2311->pad.flags = MEDIA_PAD_FL_SOURCE; ++ sd->entity.function = MEDIA_ENT_F_CAM_SENSOR; ++ ret = media_entity_pads_init(&sd->entity, 1, &ov2311->pad); ++ if (ret < 0) ++ goto err_power_off; ++ ++ ret = v4l2_async_register_subdev(sd); ++ if (ret) { ++ dev_err(dev, "v4l2 async register subdev failed\n"); ++ goto err_clean_entity; ++ } ++ ++ pm_runtime_set_active(dev); ++ pm_runtime_enable(dev); ++ pm_runtime_idle(dev); ++ ++ return 0; ++ ++err_clean_entity: ++ media_entity_cleanup(&sd->entity); ++err_power_off: ++ ov2311_power_off(&client->dev); ++err_free_handler: ++ v4l2_ctrl_handler_free(&ov2311->ctrl_handler); ++err_destroy_mutex: ++ mutex_destroy(&ov2311->mutex); ++ ++ return ret; ++} ++ ++static int ov2311_remove(struct i2c_client *client) ++{ ++ struct v4l2_subdev *sd = i2c_get_clientdata(client); ++ struct ov2311 *ov2311 = to_ov2311(sd); ++ ++ v4l2_async_unregister_subdev(sd); ++ media_entity_cleanup(&sd->entity); ++ v4l2_ctrl_handler_free(&ov2311->ctrl_handler); ++ mutex_destroy(&ov2311->mutex); ++ ++ pm_runtime_disable(&client->dev); ++ if (!pm_runtime_status_suspended(&client->dev)) ++ ov2311_power_off(&client->dev); ++ pm_runtime_set_suspended(&client->dev); ++ ++ return 0; ++} ++ ++static const struct of_device_id ov2311_of_match[] = { ++ { .compatible = "ovti,ov2311" }, ++ {}, ++}; ++MODULE_DEVICE_TABLE(of, ov2311_of_match); ++ ++static const struct i2c_device_id ov2311_match_id[] = { ++ { "ovti,ov2311", 0 }, ++ { }, ++}; ++ ++static struct i2c_driver ov2311_i2c_driver = { ++ .driver = { ++ .name = OV2311_NAME, ++ .pm = &ov2311_pm_ops, ++ .of_match_table = of_match_ptr(ov2311_of_match), ++ }, ++ .probe = &ov2311_probe, ++ .remove = &ov2311_remove, ++ .id_table = ov2311_match_id, ++}; ++ ++module_i2c_driver(ov2311_i2c_driver); ++ ++MODULE_AUTHOR("Dave Stevenson +Date: Fri, 25 Feb 2022 18:16:26 +0000 +Subject: [PATCH 811/847] dtoverlays: Add overlay for Omnivision OV2311 image + sensor + +Adds an overlay for the OV2311 1600x1300 monochrome global +shutter image sensor. + +Signed-off-by: Dave Stevenson +--- + arch/arm/boot/dts/overlays/Makefile | 1 + + arch/arm/boot/dts/overlays/README | 15 +++ + arch/arm/boot/dts/overlays/ov2311-overlay.dts | 93 +++++++++++++++++++ + 3 files changed, 109 insertions(+) + create mode 100644 arch/arm/boot/dts/overlays/ov2311-overlay.dts + +diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile +index 826233d40fc6..2759090f1581 100644 +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -139,6 +139,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ + mmc.dtbo \ + mpu6050.dtbo \ + mz61581.dtbo \ ++ ov2311.dtbo \ + ov5647.dtbo \ + ov7251.dtbo \ + ov9281.dtbo \ +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index d2ae07b79154..2c1dcd03b841 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -2421,6 +2421,21 @@ Params: speed Display SPI bus speed + xohms Touchpanel sensitivity (X-plate resistance) + + ++Name: ov2311 ++Info: Omnivision OV2311 camera module. ++ Uses Unicam 1, which is the standard camera connector on most Pi ++ variants. ++Load: dtoverlay=ov2311,= ++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: ov5647 + Info: Omnivision OV5647 camera module. + Uses Unicam 1, which is the standard camera connector on most Pi +diff --git a/arch/arm/boot/dts/overlays/ov2311-overlay.dts b/arch/arm/boot/dts/overlays/ov2311-overlay.dts +new file mode 100644 +index 000000000000..9f8e1b3edccc +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/ov2311-overlay.dts +@@ -0,0 +1,93 @@ ++// SPDX-License-Identifier: GPL-2.0-only ++// Definitions for OV2311 camera module on VC I2C bus ++/dts-v1/; ++/plugin/; ++ ++#include ++ ++/{ ++ compatible = "brcm,bcm2835"; ++ ++ i2c_frag: fragment@0 { ++ target = <&i2c_csi_dsi>; ++ __overlay__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ status = "okay"; ++ ++ ov2311: ov2311@60 { ++ compatible = "ovti,ov2311"; ++ reg = <0x60>; ++ status = "okay"; ++ ++ clocks = <&cam1_clk>; ++ clock-names = "xvclk"; ++ ++ avdd-supply = <&cam1_reg>; ++ dovdd-supply = <&cam_dummy_reg>; ++ dvdd-supply = <&cam_dummy_reg>; ++ ++ rotation = <0>; ++ orientation = <2>; ++ ++ port { ++ ov2311_0: endpoint { ++ remote-endpoint = <&csi1_ep>; ++ clock-lanes = <0>; ++ data-lanes = <1 2>; ++ link-frequencies = ++ /bits/ 64 <400000000>; ++ }; ++ }; ++ }; ++ }; ++ }; ++ ++ csi_frag: fragment@1 { ++ target = <&csi1>; ++ csi: __overlay__ { ++ status = "okay"; ++ brcm,media-controller; ++ ++ port { ++ csi1_ep: endpoint { ++ remote-endpoint = <&ov2311_0>; ++ data-lanes = <1 2>; ++ }; ++ }; ++ }; ++ }; ++ ++ fragment@2 { ++ target = <&i2c0if>; ++ __overlay__ { ++ status = "okay"; ++ }; ++ }; ++ ++ fragment@3 { ++ target = <&i2c0mux>; ++ __overlay__ { ++ status = "okay"; ++ }; ++ }; ++ ++ clk_frag: fragment@4 { ++ target = <&cam1_clk>; ++ __overlay__ { ++ status = "okay"; ++ clock-frequency = <24000000>; ++ }; ++ }; ++ ++ __overrides__ { ++ rotation = <&ov2311>,"rotation:0"; ++ orientation = <&ov2311>,"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>, ++ <&ov2311>, "clocks:0=",<&cam0_clk>, ++ <&ov2311>, "avdd-supply:0=",<&cam0_reg>; ++ }; ++}; +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Fri, 25 Feb 2022 18:14:39 +0000 +Subject: [PATCH 812/847] defconfigs: Add OV2311 image sensor to Pi defconfigs + +Signed-off-by: Dave Stevenson +--- + 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 f10b30c92722..838c5a0af2e3 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -873,6 +873,7 @@ CONFIG_VIDEO_IMX219=m + CONFIG_VIDEO_IMX290=m + CONFIG_VIDEO_IMX477=m + CONFIG_VIDEO_IMX519=m ++CONFIG_VIDEO_OV2311=m + CONFIG_VIDEO_OV5647=m + CONFIG_VIDEO_OV7251=m + CONFIG_VIDEO_OV7640=m +diff --git a/arch/arm/configs/bcm2711_defconfig b/arch/arm/configs/bcm2711_defconfig +index 256859a1095a..3788278047b6 100644 +--- a/arch/arm/configs/bcm2711_defconfig ++++ b/arch/arm/configs/bcm2711_defconfig +@@ -888,6 +888,7 @@ CONFIG_VIDEO_IMX219=m + CONFIG_VIDEO_IMX290=m + CONFIG_VIDEO_IMX477=m + CONFIG_VIDEO_IMX519=m ++CONFIG_VIDEO_OV2311=m + CONFIG_VIDEO_OV5647=m + CONFIG_VIDEO_OV7251=m + CONFIG_VIDEO_OV7640=m +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index 262624622cd7..a12654b0c9ca 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -866,6 +866,7 @@ CONFIG_VIDEO_IMX219=m + CONFIG_VIDEO_IMX290=m + CONFIG_VIDEO_IMX477=m + CONFIG_VIDEO_IMX519=m ++CONFIG_VIDEO_OV2311=m + CONFIG_VIDEO_OV5647=m + CONFIG_VIDEO_OV7251=m + CONFIG_VIDEO_OV7640=m +diff --git a/arch/arm64/configs/bcm2711_defconfig b/arch/arm64/configs/bcm2711_defconfig +index 2513eae16731..8558136ce3c4 100644 +--- a/arch/arm64/configs/bcm2711_defconfig ++++ b/arch/arm64/configs/bcm2711_defconfig +@@ -893,6 +893,7 @@ CONFIG_VIDEO_IMX219=m + CONFIG_VIDEO_IMX290=m + CONFIG_VIDEO_IMX477=m + CONFIG_VIDEO_IMX519=m ++CONFIG_VIDEO_OV2311=m + CONFIG_VIDEO_OV5647=m + CONFIG_VIDEO_OV7251=m + CONFIG_VIDEO_OV7640=m +diff --git a/arch/arm64/configs/bcmrpi3_defconfig b/arch/arm64/configs/bcmrpi3_defconfig +index 01ef1bdc4900..039d06428669 100644 +--- a/arch/arm64/configs/bcmrpi3_defconfig ++++ b/arch/arm64/configs/bcmrpi3_defconfig +@@ -814,6 +814,7 @@ CONFIG_VIDEO_IMX219=m + CONFIG_VIDEO_IMX290=m + CONFIG_VIDEO_IMX477=m + CONFIG_VIDEO_IMX519=m ++CONFIG_VIDEO_OV2311=m + CONFIG_VIDEO_OV5647=m + CONFIG_VIDEO_OV7251=m + CONFIG_VIDEO_OV7640=m +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Wed, 2 Mar 2022 17:23:16 +0000 +Subject: [PATCH 813/847] 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 +through the VPU L2 cache. +vc-sm-cma was trying to ensure it was in an uncached alias (0xc), and +complaining on every allocation if it weren't. Reduce this logging. + +Signed-off-by: Dave Stevenson +--- + drivers/staging/vc04_services/vc-sm-cma/vc_sm.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +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 88c4df822922..82a9c6e7f277 100644 +--- a/drivers/staging/vc04_services/vc-sm-cma/vc_sm.c ++++ b/drivers/staging/vc04_services/vc-sm-cma/vc_sm.c +@@ -720,6 +720,7 @@ vc_sm_cma_import_dmabuf_internal(struct vc_sm_privdata_t *private, + struct dma_buf_attachment *attach = NULL; + struct sg_table *sgt = NULL; + dma_addr_t dma_addr; ++ u32 cache_alias; + int ret = 0; + int status; + +@@ -762,9 +763,13 @@ vc_sm_cma_import_dmabuf_internal(struct vc_sm_privdata_t *private, + import.type = VC_SM_ALLOC_NON_CACHED; + dma_addr = sg_dma_address(sgt->sgl); + import.addr = (u32)dma_addr; +- if ((import.addr & 0xC0000000) != 0xC0000000) { ++ cache_alias = import.addr & 0xC0000000; ++ if (cache_alias != 0xC0000000 && cache_alias != 0x80000000) { + pr_err("%s: Expecting an uncached alias for dma_addr %pad\n", + __func__, &dma_addr); ++ /* Note that this assumes we're on >= Pi2, but it implies a ++ * DT configuration error. ++ */ + import.addr |= 0xC0000000; + } + import.size = sg_dma_len(sgt->sgl); +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: David Plowman +Date: Wed, 2 Mar 2022 16:47:37 +0000 +Subject: [PATCH 814/847] staging: vc04_services: isp: Permit all sRGB colour + spaces on ISP outputs + +ISP outputs actually support all colour spaces that are fundamentally +sRGB underneath, regardless of whether an RGB or YUV output format is +actually requested. + +Signed-off-by: David Plowman +--- + .../bcm2835-isp/bcm2835-isp-fmts.h | 45 ++++++++++--------- + 1 file changed, 25 insertions(+), 20 deletions(-) + +diff --git a/drivers/staging/vc04_services/bcm2835-isp/bcm2835-isp-fmts.h b/drivers/staging/vc04_services/bcm2835-isp/bcm2835-isp-fmts.h +index a545dbf2b5dd..5ab232ff9bd9 100644 +--- a/drivers/staging/vc04_services/bcm2835-isp/bcm2835-isp-fmts.h ++++ b/drivers/staging/vc04_services/bcm2835-isp/bcm2835-isp-fmts.h +@@ -34,14 +34,19 @@ struct bcm2835_isp_fmt { + #define V4L2_COLORSPACE_MASK_RAW V4L2_COLORSPACE_MASK(V4L2_COLORSPACE_RAW) + + /* +- * The colour spaces we support for YUV outputs. SRGB features here because, +- * once you assign the default transfer func and so on, it and JPEG effectively +- * mean the same. ++ * All three colour spaces JPEG, SMPTE170M and REC709 are fundamentally sRGB ++ * underneath (as near as makes no difference to us), just with different YCbCr ++ * encodings. Therefore the ISP can generate sRGB on its main output and any of ++ * the others on its low resolution output. Applications should, when using both ++ * outputs, program the colour spaces on them to be the same, matching whatever ++ * is requested for the low resolution output, even if the main output is ++ * producing an RGB format. In turn this requires us to allow all these colour ++ * spaces for every YUV/RGB output format. + */ +-#define V4L2_COLORSPACE_MASK_YUV (V4L2_COLORSPACE_MASK_JPEG | \ +- V4L2_COLORSPACE_MASK_SRGB | \ +- V4L2_COLORSPACE_MASK_SMPTE170M | \ +- V4L2_COLORSPACE_MASK_REC709) ++#define V4L2_COLORSPACE_MASK_ALL_SRGB (V4L2_COLORSPACE_MASK_JPEG | \ ++ V4L2_COLORSPACE_MASK_SRGB | \ ++ V4L2_COLORSPACE_MASK_SMPTE170M | \ ++ V4L2_COLORSPACE_MASK_REC709) + + static const struct bcm2835_isp_fmt supported_formats[] = { + { +@@ -51,7 +56,7 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 64, + .mmal_fmt = MMAL_ENCODING_I420, + .size_multiplier_x2 = 3, +- .colorspace_mask = V4L2_COLORSPACE_MASK_YUV, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_ALL_SRGB, + .colorspace_default = V4L2_COLORSPACE_JPEG, + .step_size = 2, + }, { +@@ -60,7 +65,7 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 64, + .mmal_fmt = MMAL_ENCODING_YV12, + .size_multiplier_x2 = 3, +- .colorspace_mask = V4L2_COLORSPACE_MASK_YUV, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_ALL_SRGB, + .colorspace_default = V4L2_COLORSPACE_SMPTE170M, + .step_size = 2, + }, { +@@ -69,7 +74,7 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_NV12, + .size_multiplier_x2 = 3, +- .colorspace_mask = V4L2_COLORSPACE_MASK_YUV, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_ALL_SRGB, + .colorspace_default = V4L2_COLORSPACE_SMPTE170M, + .step_size = 2, + }, { +@@ -78,7 +83,7 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_NV21, + .size_multiplier_x2 = 3, +- .colorspace_mask = V4L2_COLORSPACE_MASK_YUV, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_ALL_SRGB, + .colorspace_default = V4L2_COLORSPACE_SMPTE170M, + .step_size = 2, + }, { +@@ -87,7 +92,7 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 64, + .mmal_fmt = MMAL_ENCODING_YUYV, + .size_multiplier_x2 = 2, +- .colorspace_mask = V4L2_COLORSPACE_MASK_YUV, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_ALL_SRGB, + .colorspace_default = V4L2_COLORSPACE_SMPTE170M, + .step_size = 2, + }, { +@@ -96,7 +101,7 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 64, + .mmal_fmt = MMAL_ENCODING_UYVY, + .size_multiplier_x2 = 2, +- .colorspace_mask = V4L2_COLORSPACE_MASK_YUV, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_ALL_SRGB, + .colorspace_default = V4L2_COLORSPACE_SMPTE170M, + .step_size = 2, + }, { +@@ -105,7 +110,7 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 64, + .mmal_fmt = MMAL_ENCODING_YVYU, + .size_multiplier_x2 = 2, +- .colorspace_mask = V4L2_COLORSPACE_MASK_YUV, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_ALL_SRGB, + .colorspace_default = V4L2_COLORSPACE_SMPTE170M, + .step_size = 2, + }, { +@@ -114,7 +119,7 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 64, + .mmal_fmt = MMAL_ENCODING_VYUY, + .size_multiplier_x2 = 2, +- .colorspace_mask = V4L2_COLORSPACE_MASK_YUV, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_ALL_SRGB, + .colorspace_default = V4L2_COLORSPACE_SMPTE170M, + .step_size = 2, + }, { +@@ -124,7 +129,7 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_RGB24, + .size_multiplier_x2 = 2, +- .colorspace_mask = V4L2_COLORSPACE_MASK_SRGB, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_ALL_SRGB, + .colorspace_default = V4L2_COLORSPACE_SRGB, + .step_size = 1, + }, { +@@ -133,7 +138,7 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_RGB16, + .size_multiplier_x2 = 2, +- .colorspace_mask = V4L2_COLORSPACE_MASK_SRGB, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_ALL_SRGB, + .colorspace_default = V4L2_COLORSPACE_SRGB, + .step_size = 1, + }, { +@@ -142,7 +147,7 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BGR24, + .size_multiplier_x2 = 2, +- .colorspace_mask = V4L2_COLORSPACE_MASK_SRGB, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_ALL_SRGB, + .colorspace_default = V4L2_COLORSPACE_SRGB, + .step_size = 1, + }, { +@@ -151,7 +156,7 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 64, + .mmal_fmt = MMAL_ENCODING_BGRA, + .size_multiplier_x2 = 2, +- .colorspace_mask = V4L2_COLORSPACE_MASK_SRGB, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_ALL_SRGB, + .colorspace_default = V4L2_COLORSPACE_SRGB, + .step_size = 1, + }, { +@@ -160,7 +165,7 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 64, + .mmal_fmt = MMAL_ENCODING_RGBA, + .size_multiplier_x2 = 2, +- .colorspace_mask = V4L2_COLORSPACE_MASK_SRGB, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_ALL_SRGB, + .colorspace_default = V4L2_COLORSPACE_SRGB, + .step_size = 1, + }, { +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Naushir Patuck +Date: Thu, 3 Mar 2022 16:45:53 +0000 +Subject: [PATCH 815/847] 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 +code. This will subsequently cause and error if userland re-queues the same +buffer on the next start_streaming() call. + +Remove this cleanup code and rely on the vb2_ops->buf_cleanup() call to do the +cleanups instead. + +Signed-off-by: Naushir Patuck +--- + .../staging/vc04_services/bcm2835-isp/bcm2835-v4l2-isp.c | 9 --------- + 1 file changed, 9 deletions(-) + +diff --git a/drivers/staging/vc04_services/bcm2835-isp/bcm2835-v4l2-isp.c b/drivers/staging/vc04_services/bcm2835-isp/bcm2835-v4l2-isp.c +index 57e0ecc193f3..9ea817073dcd 100644 +--- a/drivers/staging/vc04_services/bcm2835-isp/bcm2835-v4l2-isp.c ++++ b/drivers/staging/vc04_services/bcm2835-isp/bcm2835-v4l2-isp.c +@@ -622,7 +622,6 @@ static void bcm2835_isp_node_stop_streaming(struct vb2_queue *q) + { + struct bcm2835_isp_node *node = vb2_get_drv_priv(q); + struct bcm2835_isp_dev *dev = node_get_dev(node); +- unsigned int i; + int ret; + + v4l2_dbg(1, debug, &dev->v4l2_dev, "%s: node %s[%d], mmal port %p\n", +@@ -653,14 +652,6 @@ static void bcm2835_isp_node_stop_streaming(struct vb2_queue *q) + } + } + +- /* Release the VCSM handle here to release the associated dmabuf */ +- for (i = 0; i < q->num_buffers; i++) { +- struct vb2_v4l2_buffer *vb2 = to_vb2_v4l2_buffer(q->bufs[i]); +- struct bcm2835_isp_buffer *buf = +- container_of(vb2, struct bcm2835_isp_buffer, vb); +- bcm2835_isp_mmal_buf_cleanup(&buf->mmal); +- } +- + atomic_dec(&dev->num_streaming); + /* If all ports disabled, then disable the component */ + if (atomic_read(&dev->num_streaming) == 0) { +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Wed, 8 Sep 2021 21:12:26 +0200 +Subject: [PATCH 816/847] 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 +possible GPU buffer being rendered through a call to +vc4_queue_seqno_cb(). + +On the BCM2835-37, the GPU driver is part of the vc4 driver and that +function is defined in vc4_gem.c to wait for the buffer to be rendered, +and once it's done, call a callback. + +However, on the BCM2711 used on the RaspberryPi4, the GPU driver is +separate (v3d) and that function won't do anything. This was working +because we were going into a path, due to uninitialized variables, that +was always scheduling the callback. + +However, we were never actually waiting for the buffer to be rendered +which was resulting in frames being displayed out of order. + +The generic API to signal those kind of completion in the kernel are the +DMA fences, and fortunately the v3d drivers supports them and signal +when its job is done. That API also provides an equivalent function that +allows to have a callback being executed when the fence is signalled as +done. + +Let's change our driver a bit to rely on the previous function for the +older SoCs, and on DMA fences for the BCM2711. + +Signed-off-by: Maxime Ripard +--- + drivers/gpu/drm/vc4/vc4_crtc.c | 37 ++++++++++++++++++++++++++++++++-- + 1 file changed, 35 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c +index 49016f7e6b9f..da264e2c4982 100644 +--- a/drivers/gpu/drm/vc4/vc4_crtc.c ++++ b/drivers/gpu/drm/vc4/vc4_crtc.c +@@ -813,6 +813,7 @@ struct vc4_async_flip_state { + struct drm_pending_vblank_event *event; + + struct vc4_seqno_cb cb; ++ struct dma_fence_cb fence_cb; + }; + + /* Called when the V3D execution for the BO being flipped to is done, so that +@@ -858,6 +859,39 @@ vc4_async_page_flip_complete(struct vc4_seqno_cb *cb) + kfree(flip_state); + } + ++static void vc4_async_page_flip_fence_complete(struct dma_fence *fence, ++ struct dma_fence_cb *cb) ++{ ++ struct vc4_async_flip_state *flip_state = ++ container_of(cb, struct vc4_async_flip_state, fence_cb); ++ ++ vc4_async_page_flip_complete(&flip_state->cb); ++ dma_fence_put(fence); ++} ++ ++static int vc4_async_set_fence_cb(struct drm_device *dev, ++ struct vc4_async_flip_state *flip_state) ++{ ++ struct drm_framebuffer *fb = flip_state->fb; ++ struct drm_gem_cma_object *cma_bo = drm_fb_cma_get_gem_obj(fb, 0); ++ struct vc4_dev *vc4 = to_vc4_dev(dev); ++ struct dma_fence *fence; ++ ++ if (!vc4->hvs->hvs5) { ++ struct vc4_bo *bo = to_vc4_bo(&cma_bo->base); ++ ++ return vc4_queue_seqno_cb(dev, &flip_state->cb, bo->seqno, ++ vc4_async_page_flip_complete); ++ } ++ ++ fence = dma_fence_get(dma_resv_excl_fence(cma_bo->base.resv)); ++ if (dma_fence_add_callback(fence, &flip_state->fence_cb, ++ vc4_async_page_flip_fence_complete)) ++ vc4_async_page_flip_fence_complete(fence, &flip_state->fence_cb); ++ ++ return 0; ++} ++ + /* Implements async (non-vblank-synced) page flips. + * + * The page flip ioctl needs to return immediately, so we grab the +@@ -918,8 +952,7 @@ static int vc4_async_page_flip(struct drm_crtc *crtc, + */ + drm_atomic_set_fb_for_plane(plane->state, fb); + +- vc4_queue_seqno_cb(dev, &flip_state->cb, bo->seqno, +- vc4_async_page_flip_complete); ++ vc4_async_set_fence_cb(dev, flip_state); + + /* Driver takes ownership of state on successful async commit. */ + return 0; +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: David Plowman +Date: Mon, 7 Mar 2022 10:00:33 +0000 +Subject: [PATCH 817/847] 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 +and blue swapped, so it makes sense to include this variant as well. + +Signed-off-by: David Plowman +--- + .../vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c | 7 +++++++ + 1 file changed, 7 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 472d97d1d228..4451ceecb265 100644 +--- a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c ++++ b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c +@@ -240,6 +240,13 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BGRA, + .size_multiplier_x2 = 2, ++ }, { ++ .fourcc = V4L2_PIX_FMT_RGBA32, ++ .depth = 32, ++ .bytesperline_align = { 32, 32, 32, 32 }, ++ .flags = 0, ++ .mmal_fmt = MMAL_ENCODING_RGBA, ++ .size_multiplier_x2 = 2, + }, { + /* Bayer formats */ + /* 8 bit */ +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Fri, 4 Mar 2022 16:24:00 +0100 +Subject: [PATCH 818/847] 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 819/847] 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. + +Signed-off-by: Maxime Ripard +--- + drivers/gpu/drm/vc4/vc4_kms.c | 15 ++++++++------- + 1 file changed, 8 insertions(+), 7 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c +index dcb27969fba7..db82e40fbbce 100644 +--- a/drivers/gpu/drm/vc4/vc4_kms.c ++++ b/drivers/gpu/drm/vc4/vc4_kms.c +@@ -286,13 +286,14 @@ static void vc5_hvs_pv_muxing_commit(struct vc4_dev *vc4, + for_each_new_crtc_in_state(state, crtc, crtc_state, i) { + struct vc4_crtc_state *vc4_state = to_vc4_crtc_state(crtc_state); + struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); ++ unsigned int channel = vc4_state->assigned_channel; + + if (!vc4_state->update_muxing) + continue; + + switch (vc4_crtc->data->hvs_output) { + case 2: +- mux = (vc4_state->assigned_channel == 2) ? 0 : 1; ++ mux = (channel == 2) ? 0 : 1; + reg = HVS_READ(SCALER_DISPECTRL); + HVS_WRITE(SCALER_DISPECTRL, + (reg & ~SCALER_DISPECTRL_DSP2_MUX_MASK) | +@@ -300,10 +301,10 @@ static void vc5_hvs_pv_muxing_commit(struct vc4_dev *vc4, + break; + + case 3: +- if (vc4_state->assigned_channel == VC4_HVS_CHANNEL_DISABLED) ++ if (channel == VC4_HVS_CHANNEL_DISABLED) + mux = 3; + else +- mux = vc4_state->assigned_channel; ++ mux = channel; + + reg = HVS_READ(SCALER_DISPCTRL); + HVS_WRITE(SCALER_DISPCTRL, +@@ -312,10 +313,10 @@ static void vc5_hvs_pv_muxing_commit(struct vc4_dev *vc4, + break; + + case 4: +- if (vc4_state->assigned_channel == VC4_HVS_CHANNEL_DISABLED) ++ if (channel == VC4_HVS_CHANNEL_DISABLED) + mux = 3; + else +- mux = vc4_state->assigned_channel; ++ mux = channel; + + reg = HVS_READ(SCALER_DISPEOLN); + HVS_WRITE(SCALER_DISPEOLN, +@@ -325,10 +326,10 @@ static void vc5_hvs_pv_muxing_commit(struct vc4_dev *vc4, + break; + + case 5: +- if (vc4_state->assigned_channel == VC4_HVS_CHANNEL_DISABLED) ++ if (channel == VC4_HVS_CHANNEL_DISABLED) + mux = 3; + else +- mux = vc4_state->assigned_channel; ++ mux = channel; + + reg = HVS_READ(SCALER_DISPDITHER); + HVS_WRITE(SCALER_DISPDITHER, +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Fri, 4 Mar 2022 15:59:08 +0100 +Subject: [PATCH 820/847] 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. + +Let's add a warning to make some noise if we ever find ourselves in such +a case. + +Signed-off-by: Maxime Ripard +--- + drivers/gpu/drm/vc4/vc4_kms.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c +index db82e40fbbce..1dbb6e0427fc 100644 +--- a/drivers/gpu/drm/vc4/vc4_kms.c ++++ b/drivers/gpu/drm/vc4/vc4_kms.c +@@ -293,6 +293,9 @@ static void vc5_hvs_pv_muxing_commit(struct vc4_dev *vc4, + + switch (vc4_crtc->data->hvs_output) { + case 2: ++ WARN_ON(VC4_GET_FIELD(HVS_READ(SCALER_DISPCTRL), ++ SCALER_DISPCTRL_DSP3_MUX) == channel); ++ + mux = (channel == 2) ? 0 : 1; + reg = HVS_READ(SCALER_DISPECTRL); + HVS_WRITE(SCALER_DISPECTRL, +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Fri, 4 Mar 2022 15:59:40 +0100 +Subject: [PATCH 821/847] 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 +messages. + +Signed-off-by: Maxime Ripard +--- + drivers/gpu/drm/vc4/vc4_kms.c | 20 +++++++++++++++++++- + 1 file changed, 19 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c +index 1dbb6e0427fc..0ac34db76b47 100644 +--- a/drivers/gpu/drm/vc4/vc4_kms.c ++++ b/drivers/gpu/drm/vc4/vc4_kms.c +@@ -447,6 +447,9 @@ static void vc4_atomic_commit_tail(struct drm_atomic_state *state) + + /* And drop the temporary request */ + clk_request_done(core_req); ++ ++ drm_dbg(dev, "Core clock actual rate: %lu Hz\n", ++ clk_get_rate(hvs->core_clk)); + } + } + +@@ -827,9 +830,18 @@ static int vc4_pv_muxing_atomic_check(struct drm_device *dev, + if (vc4->firmware_kms) + continue; + ++ drm_dbg(dev, "%s: Trying to find a channel.\n", crtc->name); ++ + /* Nothing to do here, let's skip it */ +- if (old_crtc_state->enable == new_crtc_state->enable) ++ if (old_crtc_state->enable == new_crtc_state->enable) { ++ if (new_crtc_state->enable) ++ drm_dbg(dev, "%s: Already enabled, reusing channel %d.\n", ++ crtc->name, new_vc4_crtc_state->assigned_channel); ++ else ++ drm_dbg(dev, "%s: Disabled, ignoring.\n", crtc->name); ++ + continue; ++ } + + /* Muxing will need to be modified, mark it as such */ + new_vc4_crtc_state->update_muxing = true; +@@ -837,6 +849,10 @@ static int vc4_pv_muxing_atomic_check(struct drm_device *dev, + /* If we're disabling our CRTC, we put back our channel */ + if (!new_crtc_state->enable) { + channel = old_vc4_crtc_state->assigned_channel; ++ ++ drm_dbg(dev, "%s: Disabling, Freeing channel %d\n", ++ crtc->name, channel); ++ + hvs_new_state->fifo_state[channel].in_use = false; + new_vc4_crtc_state->assigned_channel = VC4_HVS_CHANNEL_DISABLED; + continue; +@@ -871,6 +887,8 @@ static int vc4_pv_muxing_atomic_check(struct drm_device *dev, + return -EINVAL; + + channel = ffs(matching_channels) - 1; ++ ++ drm_dbg(dev, "Assigned HVS channel %d to CRTC %s\n", channel, crtc->name); + new_vc4_crtc_state->assigned_channel = channel; + unassigned_channels &= ~BIT(channel); + hvs_new_state->fifo_state[channel].in_use = true; +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Fri, 4 Mar 2022 15:55:25 +0100 +Subject: [PATCH 822/847] 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 823/847] 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 824/847] 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 +access and can generate core-specific interrupts. Make the usage clear +by disabling the driver for the old STC. + +See: https://github.com/raspberrypi/firmware/issues/1702 + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/bcm2711-rpi-ds.dtsi | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi b/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi +index ebf73b789b4a..cd5c43adc56b 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi ++++ b/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi +@@ -203,3 +203,7 @@ + &dvp { + status = "disabled"; + }; ++ ++&system_timer { ++ status = "disabled"; ++}; +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Tue, 8 Mar 2022 14:15:39 +0000 +Subject: [PATCH 825/847] Revert "drm/tc358762: Set the + DRM_BRIDGE_OP_UPSTREAM_FIRST flag to configure DSI host" + +This reverts commit cdad8467dc8bfce4cc797cb159789029e07ed192. +--- + drivers/gpu/drm/bridge/tc358762.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/drivers/gpu/drm/bridge/tc358762.c b/drivers/gpu/drm/bridge/tc358762.c +index 1e233acd31d7..7cda18a12e98 100644 +--- a/drivers/gpu/drm/bridge/tc358762.c ++++ b/drivers/gpu/drm/bridge/tc358762.c +@@ -237,7 +237,6 @@ static int tc358762_probe(struct mipi_dsi_device *dsi) + ctx->bridge.funcs = &tc358762_bridge_funcs; + ctx->bridge.type = DRM_MODE_CONNECTOR_DPI; + ctx->bridge.of_node = dev->of_node; +- ctx->bridge.ops = DRM_BRIDGE_OP_UPSTREAM_FIRST; + + drm_bridge_add(&ctx->bridge); + +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Tue, 8 Mar 2022 14:15:41 +0000 +Subject: [PATCH 826/847] Revert "drm: Introduce DRM_BRIDGE_OP_UPSTREAM_FIRST + to alter bridge init order" + +This reverts commit c5eb171771384d5c51457672db3b6e75126e3779. +--- + drivers/gpu/drm/drm_bridge.c | 197 +++++------------------------------ + include/drm/drm_bridge.h | 8 -- + 2 files changed, 25 insertions(+), 180 deletions(-) + +diff --git a/drivers/gpu/drm/drm_bridge.c b/drivers/gpu/drm/drm_bridge.c +index 7900c9487550..a8ed66751c2d 100644 +--- a/drivers/gpu/drm/drm_bridge.c ++++ b/drivers/gpu/drm/drm_bridge.c +@@ -462,58 +462,21 @@ EXPORT_SYMBOL(drm_bridge_chain_disable); + * Calls &drm_bridge_funcs.post_disable op for all the bridges in the + * encoder chain, starting from the first bridge to the last. These are called + * after completing the encoder's prepare op. +- * If a bridge sets the DRM_BRIDGE_OP_UPSTREAM_FIRST, then the post_disable for +- * that bridge will be called before the previous one to reverse the pre_enable +- * calling direction. + * + * Note: the bridge passed should be the one closest to the encoder + */ + void drm_bridge_chain_post_disable(struct drm_bridge *bridge) + { + struct drm_encoder *encoder; +- struct drm_bridge *next, *limit; + + if (!bridge) + return; + + encoder = bridge->encoder; + list_for_each_entry_from(bridge, &encoder->bridge_chain, chain_node) { +- limit = NULL; +- +- if (!list_is_last(&bridge->chain_node, &encoder->bridge_chain)) { +- next = list_next_entry(bridge, chain_node); +- +- if (next->ops & DRM_BRIDGE_OP_UPSTREAM_FIRST) { +- limit = next; +- +- list_for_each_entry_from(next, &encoder->bridge_chain, +- chain_node) { +- if (!(next->ops & +- DRM_BRIDGE_OP_UPSTREAM_FIRST)) { +- next = list_prev_entry(next, chain_node); +- limit = next; +- break; +- } +- } +- +- list_for_each_entry_from_reverse(next, &encoder->bridge_chain, +- chain_node) { +- if (next == bridge) +- break; +- +- if (next->funcs->post_disable) +- next->funcs->post_disable(next); +- } +- } +- } +- + if (bridge->funcs->post_disable) + bridge->funcs->post_disable(bridge); +- +- if (limit) +- bridge = limit; + } +- + } + EXPORT_SYMBOL(drm_bridge_chain_post_disable); + +@@ -554,53 +517,22 @@ EXPORT_SYMBOL(drm_bridge_chain_mode_set); + * Calls &drm_bridge_funcs.pre_enable op for all the bridges in the encoder + * chain, starting from the last bridge to the first. These are called + * before calling the encoder's commit op. +- * If a bridge sets the DRM_BRIDGE_OP_UPSTREAM_FIRST, then the pre_enable for +- * the previous bridge will be called before pre_enable of this bridge. + * + * Note: the bridge passed should be the one closest to the encoder + */ + void drm_bridge_chain_pre_enable(struct drm_bridge *bridge) + { + struct drm_encoder *encoder; +- struct drm_bridge *iter, *next, *limit; ++ struct drm_bridge *iter; + + if (!bridge) + return; + + encoder = bridge->encoder; +- + list_for_each_entry_reverse(iter, &encoder->bridge_chain, chain_node) { +- if (iter->ops & DRM_BRIDGE_OP_UPSTREAM_FIRST) { +- next = iter; +- limit = bridge; +- list_for_each_entry_from_reverse(next, +- &encoder->bridge_chain, +- chain_node) { +- if (next == bridge) +- break; +- +- if (!(next->ops & +- DRM_BRIDGE_OP_UPSTREAM_FIRST)) { +- limit = list_prev_entry(next, chain_node); +- break; +- } +- } +- +- list_for_each_entry_from(next, &encoder->bridge_chain, chain_node) { +- if (next == iter) +- break; +- +- if (next->funcs->pre_enable) +- next->funcs->pre_enable(next); +- } +- } +- + if (iter->funcs->pre_enable) + iter->funcs->pre_enable(iter); + +- if (iter->ops & DRM_BRIDGE_OP_UPSTREAM_FIRST) +- iter = limit; +- + if (iter == bridge) + break; + } +@@ -675,25 +607,6 @@ void drm_atomic_bridge_chain_disable(struct drm_bridge *bridge, + } + EXPORT_SYMBOL(drm_atomic_bridge_chain_disable); + +-static void drm_atomic_bridge_call_post_disable(struct drm_bridge *bridge, +- struct drm_atomic_state *old_state) +-{ +- if (bridge->funcs->atomic_post_disable) { +- struct drm_bridge_state *old_bridge_state; +- +- old_bridge_state = +- drm_atomic_get_old_bridge_state(old_state, +- bridge); +- if (WARN_ON(!old_bridge_state)) +- return; +- +- bridge->funcs->atomic_post_disable(bridge, +- old_bridge_state); +- } else if (bridge->funcs->post_disable) { +- bridge->funcs->post_disable(bridge); +- } +-} +- + /** + * drm_atomic_bridge_chain_post_disable - cleans up after disabling all bridges + * in the encoder chain +@@ -704,9 +617,6 @@ static void drm_atomic_bridge_call_post_disable(struct drm_bridge *bridge, + * &drm_bridge_funcs.post_disable) op for all the bridges in the encoder chain, + * starting from the first bridge to the last. These are called after completing + * &drm_encoder_helper_funcs.atomic_disable +- * If a bridge sets the DRM_BRIDGE_OP_UPSTREAM_FIRST, then the post_disable for +- * that bridge will be called before the previous one to reverse the pre_enable +- * calling direction. + * + * Note: the bridge passed should be the one closest to the encoder + */ +@@ -714,69 +624,30 @@ void drm_atomic_bridge_chain_post_disable(struct drm_bridge *bridge, + struct drm_atomic_state *old_state) + { + struct drm_encoder *encoder; +- struct drm_bridge *next, *limit; + + if (!bridge) + return; + + encoder = bridge->encoder; +- + list_for_each_entry_from(bridge, &encoder->bridge_chain, chain_node) { +- limit = NULL; +- +- if (!list_is_last(&bridge->chain_node, &encoder->bridge_chain)) { +- next = list_next_entry(bridge, chain_node); +- +- if (next->ops & DRM_BRIDGE_OP_UPSTREAM_FIRST) { +- limit = next; +- +- list_for_each_entry_from(next, &encoder->bridge_chain, +- chain_node) { +- if (!(next->ops & +- DRM_BRIDGE_OP_UPSTREAM_FIRST)) { +- next = list_prev_entry(next, chain_node); +- limit = next; +- break; +- } +- } +- +- list_for_each_entry_from_reverse(next, &encoder->bridge_chain, +- chain_node) { +- if (next == bridge) +- break; +- +- drm_atomic_bridge_call_post_disable(next, +- old_state); +- } +- } +- } ++ if (bridge->funcs->atomic_post_disable) { ++ struct drm_bridge_state *old_bridge_state; + +- drm_atomic_bridge_call_post_disable(bridge, old_state); ++ old_bridge_state = ++ drm_atomic_get_old_bridge_state(old_state, ++ bridge); ++ if (WARN_ON(!old_bridge_state)) ++ return; + +- if (limit) +- bridge = limit; ++ bridge->funcs->atomic_post_disable(bridge, ++ old_bridge_state); ++ } else if (bridge->funcs->post_disable) { ++ bridge->funcs->post_disable(bridge); ++ } + } + } + EXPORT_SYMBOL(drm_atomic_bridge_chain_post_disable); + +-static void drm_atomic_bridge_call_pre_enable(struct drm_bridge *bridge, +- struct drm_atomic_state *old_state) +-{ +- if (bridge->funcs->atomic_pre_enable) { +- struct drm_bridge_state *old_bridge_state; +- +- old_bridge_state = +- drm_atomic_get_old_bridge_state(old_state, +- bridge); +- if (WARN_ON(!old_bridge_state)) +- return; +- +- bridge->funcs->atomic_pre_enable(bridge, old_bridge_state); +- } else if (bridge->funcs->pre_enable) { +- bridge->funcs->pre_enable(bridge); +- } +-} +- + /** + * drm_atomic_bridge_chain_pre_enable - prepares for enabling all bridges in + * the encoder chain +@@ -787,8 +658,6 @@ static void drm_atomic_bridge_call_pre_enable(struct drm_bridge *bridge, + * &drm_bridge_funcs.pre_enable) op for all the bridges in the encoder chain, + * starting from the last bridge to the first. These are called before calling + * &drm_encoder_helper_funcs.atomic_enable +- * If a bridge sets the DRM_BRIDGE_OP_UPSTREAM_FIRST, then the pre_enable for +- * the previous bridge will be called before pre_enable of this bridge. + * + * Note: the bridge passed should be the one closest to the encoder + */ +@@ -796,42 +665,26 @@ void drm_atomic_bridge_chain_pre_enable(struct drm_bridge *bridge, + struct drm_atomic_state *old_state) + { + struct drm_encoder *encoder; +- struct drm_bridge *iter, *next, *limit; ++ struct drm_bridge *iter; + + if (!bridge) + return; + + encoder = bridge->encoder; +- + list_for_each_entry_reverse(iter, &encoder->bridge_chain, chain_node) { +- if (iter->ops & DRM_BRIDGE_OP_UPSTREAM_FIRST) { +- next = iter; +- limit = bridge; +- list_for_each_entry_from_reverse(next, +- &encoder->bridge_chain, +- chain_node) { +- if (next == bridge) +- break; +- +- if (!(next->ops & +- DRM_BRIDGE_OP_UPSTREAM_FIRST)) { +- limit = list_prev_entry(next, chain_node); +- break; +- } +- } +- +- list_for_each_entry_from(next, &encoder->bridge_chain, chain_node) { +- if (next == iter) +- break; +- +- drm_atomic_bridge_call_pre_enable(next, old_state); +- } +- } ++ if (iter->funcs->atomic_pre_enable) { ++ struct drm_bridge_state *old_bridge_state; + +- drm_atomic_bridge_call_pre_enable(iter, old_state); ++ old_bridge_state = ++ drm_atomic_get_old_bridge_state(old_state, ++ iter); ++ if (WARN_ON(!old_bridge_state)) ++ return; + +- if (iter->ops & DRM_BRIDGE_OP_UPSTREAM_FIRST) +- iter = limit; ++ iter->funcs->atomic_pre_enable(iter, old_bridge_state); ++ } else if (iter->funcs->pre_enable) { ++ iter->funcs->pre_enable(iter); ++ } + + if (iter == bridge) + break; +diff --git a/include/drm/drm_bridge.h b/include/drm/drm_bridge.h +index 76c4cf8db6e8..46bdfa48c413 100644 +--- a/include/drm/drm_bridge.h ++++ b/include/drm/drm_bridge.h +@@ -718,14 +718,6 @@ enum drm_bridge_ops { + * this flag shall implement the &drm_bridge_funcs->get_modes callback. + */ + DRM_BRIDGE_OP_MODES = BIT(3), +- /** +- * @DRM_BRIDGE_OP_UPSTREAM_FIRST: The bridge can requires +- * that the upstream node pre_enable is called before its pre_enable, +- * and conversely for post_disables. This is most frequently a +- * requirement for DSI devices which need the host to be initialised +- * before them. +- */ +- DRM_BRIDGE_OP_UPSTREAM_FIRST = BIT(4), + }; + + /** +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Thu, 16 Dec 2021 15:25:35 +0000 +Subject: [PATCH 827/847] drm/bridge: Introduce pre_enable_upstream_first to + alter bridge init order + +DSI sink devices typically want the DSI host powered up and configured +before they are powered up. pre_enable is the place this would normally +happen, but they are called in reverse order from panel/connector towards +the encoder, which is the "wrong" order. + +Add a new flag pre_enable_upstream_first that any bridge can set +to swap the order of pre_enable (and post_disable) for that and the +immediately upstream bridge. +Should the immediately upstream bridge also set the +pre_enable_upstream_first flag, the bridge upstream of that will be called +before either of those which requested pre_enable_upstream_first. + +eg: +- Panel +- Bridge 1 +- Bridge 2 pre_enable_upstream_first +- Bridge 3 +- Bridge 4 pre_enable_upstream_first +- Bridge 5 pre_enable_upstream_first +- Bridge 6 +- Encoder +Would result in pre_enable's being called as Panel, Bridge 1, Bridge 3, +Bridge 2, Bridge 6, Bridge 5, Bridge 4, Encoder. + +Signed-off-by: Dave Stevenson +--- + drivers/gpu/drm/drm_bridge.c | 177 +++++++++++++++++++++++++---------- + include/drm/drm_bridge.h | 8 ++ + 2 files changed, 137 insertions(+), 48 deletions(-) + +diff --git a/drivers/gpu/drm/drm_bridge.c b/drivers/gpu/drm/drm_bridge.c +index a8ed66751c2d..e0f57427a545 100644 +--- a/drivers/gpu/drm/drm_bridge.c ++++ b/drivers/gpu/drm/drm_bridge.c +@@ -463,20 +463,15 @@ EXPORT_SYMBOL(drm_bridge_chain_disable); + * encoder chain, starting from the first bridge to the last. These are called + * after completing the encoder's prepare op. + * ++ * If a bridge sets @pre_enable_upstream_first, then the @post_disable for that ++ * bridge will be called before the previous one to reverse the @pre_enable ++ * calling direction. ++ * + * Note: the bridge passed should be the one closest to the encoder + */ + void drm_bridge_chain_post_disable(struct drm_bridge *bridge) + { +- struct drm_encoder *encoder; +- +- if (!bridge) +- return; +- +- encoder = bridge->encoder; +- list_for_each_entry_from(bridge, &encoder->bridge_chain, chain_node) { +- if (bridge->funcs->post_disable) +- bridge->funcs->post_disable(bridge); +- } ++ drm_atomic_bridge_chain_post_disable(bridge, NULL); + } + EXPORT_SYMBOL(drm_bridge_chain_post_disable); + +@@ -518,24 +513,14 @@ EXPORT_SYMBOL(drm_bridge_chain_mode_set); + * chain, starting from the last bridge to the first. These are called + * before calling the encoder's commit op. + * ++ * If a bridge sets @pre_enable_upstream_first, then the @pre_enable for the ++ * previous bridge will be called before @pre_enable of this bridge. ++ * + * Note: the bridge passed should be the one closest to the encoder + */ + void drm_bridge_chain_pre_enable(struct drm_bridge *bridge) + { +- struct drm_encoder *encoder; +- struct drm_bridge *iter; +- +- if (!bridge) +- return; +- +- encoder = bridge->encoder; +- list_for_each_entry_reverse(iter, &encoder->bridge_chain, chain_node) { +- if (iter->funcs->pre_enable) +- iter->funcs->pre_enable(iter); +- +- if (iter == bridge) +- break; +- } ++ drm_atomic_bridge_chain_pre_enable(bridge, NULL); + } + EXPORT_SYMBOL(drm_bridge_chain_pre_enable); + +@@ -607,6 +592,25 @@ void drm_atomic_bridge_chain_disable(struct drm_bridge *bridge, + } + EXPORT_SYMBOL(drm_atomic_bridge_chain_disable); + ++static void drm_atomic_bridge_call_post_disable(struct drm_bridge *bridge, ++ struct drm_atomic_state *old_state) ++{ ++ if (old_state && bridge->funcs->atomic_post_disable) { ++ struct drm_bridge_state *old_bridge_state; ++ ++ old_bridge_state = ++ drm_atomic_get_old_bridge_state(old_state, ++ bridge); ++ if (WARN_ON(!old_bridge_state)) ++ return; ++ ++ bridge->funcs->atomic_post_disable(bridge, ++ old_bridge_state); ++ } else if (bridge->funcs->post_disable) { ++ bridge->funcs->post_disable(bridge); ++ } ++} ++ + /** + * drm_atomic_bridge_chain_post_disable - cleans up after disabling all bridges + * in the encoder chain +@@ -617,6 +621,9 @@ EXPORT_SYMBOL(drm_atomic_bridge_chain_disable); + * &drm_bridge_funcs.post_disable) op for all the bridges in the encoder chain, + * starting from the first bridge to the last. These are called after completing + * &drm_encoder_helper_funcs.atomic_disable ++ * If a bridge sets @pre_enable_upstream_first, then the @post_disable for that ++ * bridge will be called before the previous one to reverse the @pre_enable ++ * calling direction. + * + * Note: the bridge passed should be the one closest to the encoder + */ +@@ -624,30 +631,75 @@ void drm_atomic_bridge_chain_post_disable(struct drm_bridge *bridge, + struct drm_atomic_state *old_state) + { + struct drm_encoder *encoder; ++ struct drm_bridge *next, *limit; + + if (!bridge) + return; + + encoder = bridge->encoder; ++ + list_for_each_entry_from(bridge, &encoder->bridge_chain, chain_node) { +- if (bridge->funcs->atomic_post_disable) { +- struct drm_bridge_state *old_bridge_state; ++ limit = NULL; ++ ++ if (!list_is_last(&bridge->chain_node, &encoder->bridge_chain)) { ++ next = list_next_entry(bridge, chain_node); ++ ++ if (next->pre_enable_upstream_first) { ++ /* Downstream bridge had requested that upstream ++ * was enabled first, so disabled last ++ */ ++ limit = next; ++ ++ /* Find the next bridge that has NOT requested ++ * upstream to be enabled first / disabled last ++ */ ++ list_for_each_entry_from(next, &encoder->bridge_chain, ++ chain_node) { ++ if (next->pre_enable_upstream_first) { ++ next = list_prev_entry(next, chain_node); ++ limit = next; ++ break; ++ } ++ } ++ ++ /* Call these bridges in reverse order */ ++ list_for_each_entry_from_reverse(next, &encoder->bridge_chain, ++ chain_node) { ++ if (next == bridge) ++ break; ++ ++ drm_atomic_bridge_call_post_disable(next, ++ old_state); ++ } ++ } ++ } + +- old_bridge_state = +- drm_atomic_get_old_bridge_state(old_state, +- bridge); +- if (WARN_ON(!old_bridge_state)) +- return; ++ drm_atomic_bridge_call_post_disable(bridge, old_state); + +- bridge->funcs->atomic_post_disable(bridge, +- old_bridge_state); +- } else if (bridge->funcs->post_disable) { +- bridge->funcs->post_disable(bridge); +- } ++ if (limit) ++ bridge = limit; + } + } + EXPORT_SYMBOL(drm_atomic_bridge_chain_post_disable); + ++static void drm_atomic_bridge_call_pre_enable(struct drm_bridge *bridge, ++ struct drm_atomic_state *old_state) ++{ ++ if (old_state && bridge->funcs->atomic_pre_enable) { ++ struct drm_bridge_state *old_bridge_state; ++ ++ old_bridge_state = ++ drm_atomic_get_old_bridge_state(old_state, ++ bridge); ++ if (WARN_ON(!old_bridge_state)) ++ return; ++ ++ bridge->funcs->atomic_pre_enable(bridge, old_bridge_state); ++ } else if (bridge->funcs->pre_enable) { ++ bridge->funcs->pre_enable(bridge); ++ } ++} ++ + /** + * drm_atomic_bridge_chain_pre_enable - prepares for enabling all bridges in + * the encoder chain +@@ -659,32 +711,61 @@ EXPORT_SYMBOL(drm_atomic_bridge_chain_post_disable); + * starting from the last bridge to the first. These are called before calling + * &drm_encoder_helper_funcs.atomic_enable + * ++ * If a bridge sets @pre_enable_upstream_first, then the pre_enable for the ++ * upstream bridge will be called before pre_enable of this bridge. ++ * + * Note: the bridge passed should be the one closest to the encoder + */ + void drm_atomic_bridge_chain_pre_enable(struct drm_bridge *bridge, + struct drm_atomic_state *old_state) + { + struct drm_encoder *encoder; +- struct drm_bridge *iter; ++ struct drm_bridge *iter, *next, *limit; + + if (!bridge) + return; + + encoder = bridge->encoder; ++ + list_for_each_entry_reverse(iter, &encoder->bridge_chain, chain_node) { +- if (iter->funcs->atomic_pre_enable) { +- struct drm_bridge_state *old_bridge_state; ++ if (iter->pre_enable_upstream_first) { ++ next = iter; ++ limit = bridge; ++ list_for_each_entry_from_reverse(next, ++ &encoder->bridge_chain, ++ chain_node) { ++ if (next == bridge) ++ break; ++ ++ if (!next->pre_enable_upstream_first) { ++ /* Found first bridge that does NOT ++ * request upstream to be enabled first ++ */ ++ limit = list_prev_entry(next, chain_node); ++ break; ++ } ++ } ++ ++ list_for_each_entry_from(next, &encoder->bridge_chain, chain_node) { ++ /* Call requested upstream bridge pre_enable ++ * in order. ++ */ ++ if (next == iter) ++ /* At the first bridgge to request upstream ++ * bridges called first. ++ */ ++ break; ++ ++ drm_atomic_bridge_call_pre_enable(next, old_state); ++ } ++ } + +- old_bridge_state = +- drm_atomic_get_old_bridge_state(old_state, +- iter); +- if (WARN_ON(!old_bridge_state)) +- return; ++ drm_atomic_bridge_call_pre_enable(iter, old_state); + +- iter->funcs->atomic_pre_enable(iter, old_bridge_state); +- } else if (iter->funcs->pre_enable) { +- iter->funcs->pre_enable(iter); +- } ++ if (iter->pre_enable_upstream_first) ++ /* Jump all bridges that we have already pre_enabled ++ */ ++ iter = limit; + + if (iter == bridge) + break; +diff --git a/include/drm/drm_bridge.h b/include/drm/drm_bridge.h +index 46bdfa48c413..e1466106b319 100644 +--- a/include/drm/drm_bridge.h ++++ b/include/drm/drm_bridge.h +@@ -761,6 +761,14 @@ struct drm_bridge { + * modes. + */ + bool interlace_allowed; ++ /** ++ * @pre_enable_upstream_first: The bridge requires that the upstream ++ * bridge @pre_enable function is called before its @pre_enable, ++ * and conversely for post_disable. This is most frequently a ++ * requirement for DSI devices which need the host to be initialised ++ * before the peripheral. ++ */ ++ bool pre_enable_upstream_first; + /** + * @ddc: Associated I2C adapter for DDC access, if any. + */ +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Wed, 23 Feb 2022 15:36:56 +0000 +Subject: [PATCH 828/847] drm/panel: Add prepare_upstream_first flag to + drm_panel + +Mapping to the drm_bridge flag pre_enable_upstream_first, +add a new flag prepare_upstream_first to drm_panel to allow +the panel driver to request that the upstream bridge should +be pre_enabled before the panel prepare. + +Signed-off-by: Dave Stevenson +--- + drivers/gpu/drm/bridge/panel.c | 3 +++ + include/drm/drm_panel.h | 10 ++++++++++ + 2 files changed, 13 insertions(+) + +diff --git a/drivers/gpu/drm/bridge/panel.c b/drivers/gpu/drm/bridge/panel.c +index a63d6d238e3c..f11ff627d5d6 100644 +--- a/drivers/gpu/drm/bridge/panel.c ++++ b/drivers/gpu/drm/bridge/panel.c +@@ -225,6 +225,9 @@ struct drm_bridge *drm_panel_bridge_add_typed(struct drm_panel *panel, + panel_bridge->bridge.ops = DRM_BRIDGE_OP_MODES; + panel_bridge->bridge.type = connector_type; + ++ panel_bridge->bridge.pre_enable_upstream_first = ++ panel->prepare_upstream_first; ++ + drm_bridge_add(&panel_bridge->bridge); + + return &panel_bridge->bridge; +diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h +index 830b4d058622..971f788ec6ca 100644 +--- a/include/drm/drm_panel.h ++++ b/include/drm/drm_panel.h +@@ -179,6 +179,16 @@ struct drm_panel { + * Panel entry in registry. + */ + struct list_head list; ++ ++ /** ++ * @prepare_upstream_first: ++ * ++ * The upstream controller should be prepared first, before the prepare ++ * for the panel is called. This is largely required for DSI panels ++ * where the DSI host controller should be initialised to LP-11 before ++ * the panel is powered up. ++ */ ++ bool prepare_upstream_first; + }; + + void drm_panel_init(struct drm_panel *panel, struct device *dev, +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Fri, 11 Mar 2022 17:24:37 +0000 +Subject: [PATCH 829/847] 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). +Include drm_connector.h in drm_panel.h to avoid the rare situation where +drm_panel.h is used with drm_connector.h + +https://github.com/raspberrypi/linux/issues/4919 + +Signed-off-by: Dave Stevenson +--- + include/drm/drm_panel.h | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h +index 971f788ec6ca..99eb628d7dcb 100644 +--- a/include/drm/drm_panel.h ++++ b/include/drm/drm_panel.h +@@ -24,6 +24,7 @@ + #ifndef __DRM_PANEL_H__ + #define __DRM_PANEL_H__ + ++#include + #include + #include + #include +@@ -35,8 +36,6 @@ struct drm_device; + struct drm_panel; + struct display_timing; + +-enum drm_panel_orientation; +- + /** + * struct drm_panel_funcs - perform operations on a given panel + * +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Thu, 16 Dec 2021 15:33:43 +0000 +Subject: [PATCH 830/847] 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 +pre_enable called first. + +Signed-off-by: Dave Stevenson +--- + drivers/gpu/drm/bridge/tc358762.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/gpu/drm/bridge/tc358762.c b/drivers/gpu/drm/bridge/tc358762.c +index 7cda18a12e98..82d13182697e 100644 +--- a/drivers/gpu/drm/bridge/tc358762.c ++++ b/drivers/gpu/drm/bridge/tc358762.c +@@ -237,6 +237,7 @@ static int tc358762_probe(struct mipi_dsi_device *dsi) + ctx->bridge.funcs = &tc358762_bridge_funcs; + ctx->bridge.type = DRM_MODE_CONNECTOR_DPI; + ctx->bridge.of_node = dev->of_node; ++ ctx->bridge.pre_enable_upstream_first = true; + + drm_bridge_add(&ctx->bridge); + +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Maxim Devaev +Date: Thu, 3 Mar 2022 23:06:15 +0300 +Subject: [PATCH 831/847] bcm2835-codec: /dev/video31 as interface to + image_encode JPEG encoder + +Signed-off-by: Maxim Devaev +--- + .../bcm2835-codec/bcm2835-v4l2-codec.c | 246 ++++++++++++------ + .../vchiq-mmal/mmal-parameters.h | 2 + + 2 files changed, 165 insertions(+), 83 deletions(-) + +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 4451ceecb265..ebda39a2cc06 100644 +--- a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c ++++ b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c +@@ -62,6 +62,10 @@ static int deinterlace_video_nr = 18; + module_param(deinterlace_video_nr, int, 0644); + MODULE_PARM_DESC(deinterlace_video_nr, "deinterlace video device number"); + ++static int encode_image_nr = 31; ++module_param(encode_image_nr, int, 0644); ++MODULE_PARM_DESC(encode_image_nr, "encoder image device number"); ++ + /* + * Workaround for GStreamer v4l2convert component not considering Bayer formats + * as raw, and therefore not considering a V4L2 device that supports them as +@@ -88,6 +92,7 @@ enum bcm2835_codec_role { + ENCODE, + ISP, + DEINTERLACE, ++ ENCODE_IMAGE, + NUM_ROLES + }; + +@@ -96,6 +101,7 @@ static const char * const roles[] = { + "encode", + "isp", + "image_fx", ++ "encode_image", + }; + + static const char * const components[] = { +@@ -103,6 +109,7 @@ static const char * const components[] = { + "ril.video_encode", + "ril.isp", + "ril.image_fx", ++ "ril.image_encode", + }; + + /* Timeout for stop_streaming to allow all buffers to return */ +@@ -136,6 +143,8 @@ static const char * const components[] = { + */ + #define DEF_COMP_BUF_SIZE_GREATER_720P (768 << 10) + #define DEF_COMP_BUF_SIZE_720P_OR_LESS (512 << 10) ++/* JPEG image can be very large. For paranoid reasons 4MB is used */ ++#define DEF_COMP_BUF_SIZE_JPEG (4096 << 10) + + /* Flags that indicate a format can be used for capture/output */ + #define MEM2MEM_CAPTURE BIT(0) +@@ -158,63 +167,63 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + /* YUV formats */ + .fourcc = V4L2_PIX_FMT_YUV420, + .depth = 8, +- .bytesperline_align = { 32, 64, 64, 32 }, ++ .bytesperline_align = { 32, 64, 64, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_I420, + .size_multiplier_x2 = 3, + }, { + .fourcc = V4L2_PIX_FMT_YVU420, + .depth = 8, +- .bytesperline_align = { 32, 64, 64, 32 }, ++ .bytesperline_align = { 32, 64, 64, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_YV12, + .size_multiplier_x2 = 3, + }, { + .fourcc = V4L2_PIX_FMT_NV12, + .depth = 8, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_NV12, + .size_multiplier_x2 = 3, + }, { + .fourcc = V4L2_PIX_FMT_NV21, + .depth = 8, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_NV21, + .size_multiplier_x2 = 3, + }, { + .fourcc = V4L2_PIX_FMT_RGB565, + .depth = 16, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_RGB16, + .size_multiplier_x2 = 2, + }, { + .fourcc = V4L2_PIX_FMT_YUYV, + .depth = 16, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_YUYV, + .size_multiplier_x2 = 2, + }, { + .fourcc = V4L2_PIX_FMT_UYVY, + .depth = 16, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_UYVY, + .size_multiplier_x2 = 2, + }, { + .fourcc = V4L2_PIX_FMT_YVYU, + .depth = 16, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_YVYU, + .size_multiplier_x2 = 2, + }, { + .fourcc = V4L2_PIX_FMT_VYUY, + .depth = 16, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_VYUY, + .size_multiplier_x2 = 2, +@@ -222,21 +231,21 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + /* RGB formats */ + .fourcc = V4L2_PIX_FMT_RGB24, + .depth = 24, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_RGB24, + .size_multiplier_x2 = 2, + }, { + .fourcc = V4L2_PIX_FMT_BGR24, + .depth = 24, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BGR24, + .size_multiplier_x2 = 2, + }, { + .fourcc = V4L2_PIX_FMT_BGR32, + .depth = 32, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BGRA, + .size_multiplier_x2 = 2, +@@ -252,7 +261,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + /* 8 bit */ + .fourcc = V4L2_PIX_FMT_SRGGB8, + .depth = 8, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SRGGB8, + .size_multiplier_x2 = 2, +@@ -260,7 +269,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + }, { + .fourcc = V4L2_PIX_FMT_SBGGR8, + .depth = 8, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SBGGR8, + .size_multiplier_x2 = 2, +@@ -268,7 +277,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + }, { + .fourcc = V4L2_PIX_FMT_SGRBG8, + .depth = 8, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SGRBG8, + .size_multiplier_x2 = 2, +@@ -276,7 +285,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + }, { + .fourcc = V4L2_PIX_FMT_SGBRG8, + .depth = 8, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SGBRG8, + .size_multiplier_x2 = 2, +@@ -285,7 +294,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + /* 10 bit */ + .fourcc = V4L2_PIX_FMT_SRGGB10P, + .depth = 10, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SRGGB10P, + .size_multiplier_x2 = 2, +@@ -293,7 +302,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + }, { + .fourcc = V4L2_PIX_FMT_SBGGR10P, + .depth = 10, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SBGGR10P, + .size_multiplier_x2 = 2, +@@ -301,7 +310,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + }, { + .fourcc = V4L2_PIX_FMT_SGRBG10P, + .depth = 10, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SGRBG10P, + .size_multiplier_x2 = 2, +@@ -309,7 +318,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + }, { + .fourcc = V4L2_PIX_FMT_SGBRG10P, + .depth = 10, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SGBRG10P, + .size_multiplier_x2 = 2, +@@ -318,7 +327,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + /* 12 bit */ + .fourcc = V4L2_PIX_FMT_SRGGB12P, + .depth = 12, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SRGGB12P, + .size_multiplier_x2 = 2, +@@ -326,7 +335,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + }, { + .fourcc = V4L2_PIX_FMT_SBGGR12P, + .depth = 12, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SBGGR12P, + .size_multiplier_x2 = 2, +@@ -334,7 +343,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + }, { + .fourcc = V4L2_PIX_FMT_SGRBG12P, + .depth = 12, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SGRBG12P, + .size_multiplier_x2 = 2, +@@ -342,7 +351,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + }, { + .fourcc = V4L2_PIX_FMT_SGBRG12P, + .depth = 12, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SGBRG12P, + .size_multiplier_x2 = 2, +@@ -351,7 +360,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + /* 14 bit */ + .fourcc = V4L2_PIX_FMT_SRGGB14P, + .depth = 14, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SRGGB14P, + .size_multiplier_x2 = 2, +@@ -359,7 +368,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + }, { + .fourcc = V4L2_PIX_FMT_SBGGR14P, + .depth = 14, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SBGGR14P, + .size_multiplier_x2 = 2, +@@ -368,7 +377,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + }, { + .fourcc = V4L2_PIX_FMT_SGRBG14P, + .depth = 14, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SGRBG14P, + .size_multiplier_x2 = 2, +@@ -376,7 +385,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + }, { + .fourcc = V4L2_PIX_FMT_SGBRG14P, + .depth = 14, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SGBRG14P, + .size_multiplier_x2 = 2, +@@ -385,7 +394,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + /* 16 bit */ + .fourcc = V4L2_PIX_FMT_SRGGB16, + .depth = 16, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SRGGB16, + .size_multiplier_x2 = 2, +@@ -393,7 +402,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + }, { + .fourcc = V4L2_PIX_FMT_SBGGR16, + .depth = 16, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SBGGR16, + .size_multiplier_x2 = 2, +@@ -401,7 +410,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + }, { + .fourcc = V4L2_PIX_FMT_SGRBG16, + .depth = 16, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SGRBG16, + .size_multiplier_x2 = 2, +@@ -409,7 +418,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + }, { + .fourcc = V4L2_PIX_FMT_SGBRG16, + .depth = 16, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SGBRG16, + .size_multiplier_x2 = 2, +@@ -419,7 +428,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + /* 10 bit */ + .fourcc = V4L2_PIX_FMT_SRGGB10, + .depth = 16, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SRGGB10, + .size_multiplier_x2 = 2, +@@ -427,7 +436,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + }, { + .fourcc = V4L2_PIX_FMT_SBGGR10, + .depth = 16, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SBGGR10, + .size_multiplier_x2 = 2, +@@ -435,7 +444,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + }, { + .fourcc = V4L2_PIX_FMT_SGRBG10, + .depth = 16, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SGRBG10, + .size_multiplier_x2 = 2, +@@ -443,7 +452,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + }, { + .fourcc = V4L2_PIX_FMT_SGBRG10, + .depth = 16, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SGBRG10, + .size_multiplier_x2 = 2, +@@ -452,7 +461,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + /* 12 bit */ + .fourcc = V4L2_PIX_FMT_SRGGB12, + .depth = 16, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SRGGB12, + .size_multiplier_x2 = 2, +@@ -460,7 +469,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + }, { + .fourcc = V4L2_PIX_FMT_SBGGR12, + .depth = 16, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SBGGR12, + .size_multiplier_x2 = 2, +@@ -468,7 +477,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + }, { + .fourcc = V4L2_PIX_FMT_SGRBG12, + .depth = 16, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SGRBG12, + .size_multiplier_x2 = 2, +@@ -476,7 +485,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + }, { + .fourcc = V4L2_PIX_FMT_SGBRG12, + .depth = 16, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SGBRG12, + .size_multiplier_x2 = 2, +@@ -485,7 +494,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + /* 14 bit */ + .fourcc = V4L2_PIX_FMT_SRGGB14, + .depth = 16, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SRGGB14, + .size_multiplier_x2 = 2, +@@ -493,7 +502,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + }, { + .fourcc = V4L2_PIX_FMT_SBGGR14, + .depth = 16, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SBGGR14, + .size_multiplier_x2 = 2, +@@ -501,7 +510,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + }, { + .fourcc = V4L2_PIX_FMT_SGRBG14, + .depth = 16, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SGRBG14, + .size_multiplier_x2 = 2, +@@ -509,7 +518,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + }, { + .fourcc = V4L2_PIX_FMT_SGBRG14, + .depth = 16, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_BAYER_SGBRG14, + .size_multiplier_x2 = 2, +@@ -519,7 +528,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + /* 8 bit */ + .fourcc = V4L2_PIX_FMT_GREY, + .depth = 8, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_GREY, + .size_multiplier_x2 = 2, +@@ -527,7 +536,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + /* 10 bit */ + .fourcc = V4L2_PIX_FMT_Y10P, + .depth = 10, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_Y10P, + .size_multiplier_x2 = 2, +@@ -535,7 +544,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + /* 12 bit */ + .fourcc = V4L2_PIX_FMT_Y12P, + .depth = 12, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_Y12P, + .size_multiplier_x2 = 2, +@@ -543,7 +552,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + /* 14 bit */ + .fourcc = V4L2_PIX_FMT_Y14P, + .depth = 14, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_Y14P, + .size_multiplier_x2 = 2, +@@ -551,7 +560,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + /* 16 bit */ + .fourcc = V4L2_PIX_FMT_Y16, + .depth = 16, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_Y16, + .size_multiplier_x2 = 2, +@@ -559,7 +568,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + /* 10 bit as 16bpp */ + .fourcc = V4L2_PIX_FMT_Y10, + .depth = 16, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_Y10, + .size_multiplier_x2 = 2, +@@ -567,7 +576,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + /* 12 bit as 16bpp */ + .fourcc = V4L2_PIX_FMT_Y12, + .depth = 16, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_Y12, + .size_multiplier_x2 = 2, +@@ -575,7 +584,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + /* 14 bit as 16bpp */ + .fourcc = V4L2_PIX_FMT_Y14, + .depth = 16, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_Y14, + .size_multiplier_x2 = 2, +@@ -585,6 +594,11 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + .depth = 0, + .flags = V4L2_FMT_FLAG_COMPRESSED, + .mmal_fmt = MMAL_ENCODING_H264, ++ }, { ++ .fourcc = V4L2_PIX_FMT_JPEG, ++ .depth = 0, ++ .flags = V4L2_FMT_FLAG_COMPRESSED, ++ .mmal_fmt = MMAL_ENCODING_JPEG, + }, { + .fourcc = V4L2_PIX_FMT_MJPEG, + .depth = 0, +@@ -705,6 +719,7 @@ struct bcm2835_codec_driver { + struct bcm2835_codec_dev *decode; + struct bcm2835_codec_dev *isp; + struct bcm2835_codec_dev *deinterlace; ++ struct bcm2835_codec_dev *encode_image; + }; + + enum { +@@ -838,6 +853,9 @@ static inline unsigned int get_sizeimage(int bpl, int width, int height, + struct bcm2835_codec_fmt *fmt) + { + if (fmt->flags & V4L2_FMT_FLAG_COMPRESSED) { ++ if (fmt->fourcc == V4L2_PIX_FMT_JPEG) ++ return DEF_COMP_BUF_SIZE_JPEG; ++ + if (width * height > 1280 * 720) + return DEF_COMP_BUF_SIZE_GREATER_720P; + else +@@ -1422,12 +1440,12 @@ static int vidioc_try_fmt(struct bcm2835_codec_ctx *ctx, struct v4l2_format *f, + f->fmt.pix_mp.height = MIN_H; + + /* +- * For decoders the buffer must have a vertical alignment of 16 +- * lines. ++ * For decoders and image encoders the buffer must have ++ * a vertical alignment of 16 lines. + * The selection will reflect any cropping rectangle when only + * some of the pixels are active. + */ +- if (ctx->dev->role == DECODE) ++ if (ctx->dev->role == DECODE || ctx->dev->role == ENCODE_IMAGE) + f->fmt.pix_mp.height = ALIGN(f->fmt.pix_mp.height, 16); + } + f->fmt.pix_mp.num_planes = 1; +@@ -1573,12 +1591,13 @@ static int vidioc_s_fmt(struct bcm2835_codec_ctx *ctx, struct v4l2_format *f, + v4l2_dbg(1, debug, &ctx->dev->v4l2_dev, "Calculated bpl as %u, size %u\n", + q_data->bytesperline, q_data->sizeimage); + +- if (ctx->dev->role == DECODE && ++ if ((ctx->dev->role == DECODE || ctx->dev->role == ENCODE_IMAGE) && + q_data->fmt->flags & V4L2_FMT_FLAG_COMPRESSED && + q_data->crop_width && q_data->height) { + /* +- * On the decoder, if provided with a resolution on the input +- * side, then replicate that to the output side. ++ * On the decoder or image encoder, if provided with ++ * a resolution on the input side, then replicate that ++ * to the output side. + * GStreamer appears not to support V4L2_EVENT_SOURCE_CHANGE, + * nor set up a resolution on the output side, therefore + * we can't decode anything at a resolution other than the +@@ -1719,7 +1738,7 @@ static int vidioc_g_selection(struct file *file, void *priv, + switch (s->type) { + case V4L2_BUF_TYPE_VIDEO_CAPTURE: + /* CAPTURE on encoder is not valid. */ +- if (ctx->dev->role == ENCODE) ++ if (ctx->dev->role == ENCODE || ctx->dev->role == ENCODE_IMAGE) + return -EINVAL; + q_data = &ctx->q_data[V4L2_M2M_DST]; + break; +@@ -1762,6 +1781,7 @@ static int vidioc_g_selection(struct file *file, void *priv, + } + break; + case ENCODE: ++ case ENCODE_IMAGE: + switch (s->target) { + case V4L2_SEL_TGT_CROP_DEFAULT: + case V4L2_SEL_TGT_CROP_BOUNDS: +@@ -1846,7 +1866,7 @@ static int vidioc_s_selection(struct file *file, void *priv, + switch (s->type) { + case V4L2_BUF_TYPE_VIDEO_CAPTURE: + /* CAPTURE on encoder is not valid. */ +- if (ctx->dev->role == ENCODE) ++ if (ctx->dev->role == ENCODE || ctx->dev->role == ENCODE_IMAGE) + return -EINVAL; + q_data = &ctx->q_data[V4L2_M2M_DST]; + break; +@@ -1882,6 +1902,7 @@ static int vidioc_s_selection(struct file *file, void *priv, + } + break; + case ENCODE: ++ case ENCODE_IMAGE: + switch (s->target) { + case V4L2_SEL_TGT_CROP: + /* Only support crop from (0,0) */ +@@ -2266,6 +2287,16 @@ static int bcm2835_codec_s_ctrl(struct v4l2_ctrl *ctrl) + sizeof(u32_value)); + break; + } ++ case V4L2_CID_JPEG_COMPRESSION_QUALITY: ++ if (!ctx->component) ++ break; ++ ++ ret = vchiq_mmal_port_parameter_set(ctx->dev->instance, ++ &ctx->component->output[0], ++ MMAL_PARAMETER_JPEG_Q_FACTOR, ++ &ctrl->val, ++ sizeof(ctrl->val)); ++ break; + + default: + v4l2_err(&ctx->dev->v4l2_dev, "Invalid control\n"); +@@ -2364,7 +2395,7 @@ static int vidioc_try_encoder_cmd(struct file *file, void *priv, + { + struct bcm2835_codec_ctx *ctx = file2ctx(file); + +- if (ctx->dev->role != ENCODE) ++ if (ctx->dev->role != ENCODE && ctx->dev->role != ENCODE_IMAGE) + return -EINVAL; + + switch (cmd->cmd) { +@@ -2567,6 +2598,20 @@ static int bcm2835_codec_create_component(struct bcm2835_codec_ctx *ctx) + MMAL_PARAMETER_IMAGE_EFFECT_PARAMETERS, + ¶ms, + sizeof(params)); ++ ++ } else if (dev->role == ENCODE_IMAGE) { ++ enable = 0; ++ vchiq_mmal_port_parameter_set(dev->instance, ++ &ctx->component->control, ++ MMAL_PARAMETER_EXIF_DISABLE, ++ &enable, ++ sizeof(enable)); ++ enable = 1; ++ vchiq_mmal_port_parameter_set(dev->instance, ++ &ctx->component->output[0], ++ MMAL_PARAMETER_JPEG_IJG_SCALING, ++ &enable, ++ sizeof(enable)); + } + + setup_mmal_port_format(ctx, &ctx->q_data[V4L2_M2M_SRC], +@@ -2595,7 +2640,7 @@ static int bcm2835_codec_create_component(struct bcm2835_codec_ctx *ctx) + goto destroy_component; + } + +- if (dev->role == ENCODE) { ++ if (dev->role == ENCODE || dev->role == ENCODE_IMAGE) { + u32 param = 1; + + if (ctx->q_data[V4L2_M2M_SRC].sizeimage < +@@ -2604,27 +2649,29 @@ static int bcm2835_codec_create_component(struct bcm2835_codec_ctx *ctx) + ctx->q_data[V4L2_M2M_SRC].sizeimage, + ctx->component->output[0].minimum_buffer.size); + +- /* Enable SPS Timing header so framerate information is encoded +- * in the H264 header. +- */ +- vchiq_mmal_port_parameter_set(ctx->dev->instance, +- &ctx->component->output[0], +- MMAL_PARAMETER_VIDEO_ENCODE_SPS_TIMING, +- ¶m, sizeof(param)); +- +- /* Enable inserting headers into the first frame */ +- vchiq_mmal_port_parameter_set(ctx->dev->instance, +- &ctx->component->control, +- MMAL_PARAMETER_VIDEO_ENCODE_HEADERS_WITH_FRAME, +- ¶m, sizeof(param)); +- /* +- * Avoid fragmenting the buffers over multiple frames (unless +- * the frame is bigger than the whole buffer) +- */ +- vchiq_mmal_port_parameter_set(ctx->dev->instance, +- &ctx->component->control, +- MMAL_PARAMETER_MINIMISE_FRAGMENTATION, +- ¶m, sizeof(param)); ++ if (dev->role == ENCODE) { ++ /* Enable SPS Timing header so framerate information is encoded ++ * in the H264 header. ++ */ ++ vchiq_mmal_port_parameter_set(ctx->dev->instance, ++ &ctx->component->output[0], ++ MMAL_PARAMETER_VIDEO_ENCODE_SPS_TIMING, ++ ¶m, sizeof(param)); ++ ++ /* Enable inserting headers into the first frame */ ++ vchiq_mmal_port_parameter_set(ctx->dev->instance, ++ &ctx->component->control, ++ MMAL_PARAMETER_VIDEO_ENCODE_HEADERS_WITH_FRAME, ++ ¶m, sizeof(param)); ++ /* ++ * Avoid fragmenting the buffers over multiple frames (unless ++ * the frame is bigger than the whole buffer) ++ */ ++ vchiq_mmal_port_parameter_set(ctx->dev->instance, ++ &ctx->component->control, ++ MMAL_PARAMETER_MINIMISE_FRAGMENTATION, ++ ¶m, sizeof(param)); ++ } + } else { + if (ctx->q_data[V4L2_M2M_DST].sizeimage < + ctx->component->output[0].minimum_buffer.size) +@@ -3248,6 +3295,23 @@ static int bcm2835_codec_open(struct file *file) + v4l2_ctrl_handler_init(hdl, 0); + } + break; ++ case ENCODE_IMAGE: ++ { ++ /* Encode image controls */ ++ v4l2_ctrl_handler_init(hdl, 1); ++ ++ v4l2_ctrl_new_std(hdl, &bcm2835_codec_ctrl_ops, ++ V4L2_CID_JPEG_COMPRESSION_QUALITY, ++ 1, 100, ++ 1, 80); ++ if (hdl->error) { ++ rc = hdl->error; ++ goto free_ctrl_handler; ++ } ++ ctx->fh.ctrl_handler = hdl; ++ v4l2_ctrl_handler_setup(hdl); ++ } ++ break; + case NUM_ROLES: + break; + } +@@ -3527,6 +3591,12 @@ static int bcm2835_codec_create(struct bcm2835_codec_driver *drv, + function = MEDIA_ENT_F_PROC_VIDEO_PIXEL_FORMATTER; + video_nr = deinterlace_video_nr; + break; ++ case ENCODE_IMAGE: ++ v4l2_disable_ioctl(vfd, VIDIOC_DECODER_CMD); ++ v4l2_disable_ioctl(vfd, VIDIOC_TRY_DECODER_CMD); ++ function = MEDIA_ENT_F_PROC_VIDEO_ENCODER; ++ video_nr = encode_image_nr; ++ break; + default: + ret = -EINVAL; + goto unreg_dev; +@@ -3626,6 +3696,10 @@ static int bcm2835_codec_probe(struct platform_device *pdev) + if (ret) + goto out; + ++ ret = bcm2835_codec_create(drv, &drv->encode_image, ENCODE_IMAGE); ++ if (ret) ++ goto out; ++ + /* Register the media device node */ + if (media_device_register(mdev) < 0) + goto out; +@@ -3635,6 +3709,10 @@ static int bcm2835_codec_probe(struct platform_device *pdev) + return 0; + + out: ++ if (drv->encode_image) { ++ bcm2835_codec_destroy(drv->encode_image); ++ drv->encode_image = NULL; ++ } + if (drv->deinterlace) { + bcm2835_codec_destroy(drv->deinterlace); + drv->deinterlace = NULL; +@@ -3660,6 +3738,8 @@ static int bcm2835_codec_remove(struct platform_device *pdev) + + media_device_unregister(&drv->mdev); + ++ bcm2835_codec_destroy(drv->encode_image); ++ + bcm2835_codec_destroy(drv->deinterlace); + + bcm2835_codec_destroy(drv->isp); +diff --git a/drivers/staging/vc04_services/vchiq-mmal/mmal-parameters.h b/drivers/staging/vc04_services/vchiq-mmal/mmal-parameters.h +index 21087496a481..a1a5e6c9cb74 100644 +--- a/drivers/staging/vc04_services/vchiq-mmal/mmal-parameters.h ++++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-parameters.h +@@ -279,6 +279,8 @@ enum mmal_parameter_camera_type { + MMAL_PARAMETER_GAMMA, + /**< Takes a @ref MMAL_PARAMETER_CDN_T */ + MMAL_PARAMETER_CDN, ++ /**< Takes a @ref MMAL_PARAMETER_BOOLEAN_T */ ++ MMAL_PARAMETER_JPEG_IJG_SCALING, + }; + + struct mmal_parameter_rational { +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Daniel Scally +Date: Wed, 2 Mar 2022 22:03:00 +0000 +Subject: [PATCH 832/847] media: entity: Skip non-data links in graph iteration + +When iterating over the media graph, don't follow links that are not +data links. + +Reviewed-by: Laurent Pinchart +Signed-off-by: Daniel Scally +--- + drivers/media/mc/mc-entity.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/drivers/media/mc/mc-entity.c b/drivers/media/mc/mc-entity.c +index f40f41977142..2a6e16fb0048 100644 +--- a/drivers/media/mc/mc-entity.c ++++ b/drivers/media/mc/mc-entity.c +@@ -313,6 +313,12 @@ static void media_graph_walk_iter(struct media_graph *graph) + + link = list_entry(link_top(graph), typeof(*link), list); + ++ /* If the link is not a data link, don't follow it */ ++ if ((link->flags & MEDIA_LNK_FL_LINK_TYPE) != MEDIA_LNK_FL_DATA_LINK) { ++ link_top(graph) = link_top(graph)->next; ++ return; ++ } ++ + /* The link is not enabled so we do not follow. */ + if (!(link->flags & MEDIA_LNK_FL_ENABLED)) { + link_top(graph) = link_top(graph)->next; +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Daniel Scally +Date: Wed, 2 Mar 2022 22:03:01 +0000 +Subject: [PATCH 833/847] 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 +driving the focusing lens for it), add a new type of media link +to introduce the concept of these ancillary links. + +Add some elements to the uAPI documentation to explain the new link +type, their purpose and some aspects of their current implementation. + +Reviewed-by: Laurent Pinchart +Signed-off-by: Daniel Scally +--- + .../media/mediactl/media-controller-model.rst | 6 ++++++ + .../media/mediactl/media-types.rst | 17 ++++++++++++----- + include/uapi/linux/media.h | 1 + + 3 files changed, 19 insertions(+), 5 deletions(-) + +diff --git a/Documentation/userspace-api/media/mediactl/media-controller-model.rst b/Documentation/userspace-api/media/mediactl/media-controller-model.rst +index 222cb99debb5..78bfdfb2a322 100644 +--- a/Documentation/userspace-api/media/mediactl/media-controller-model.rst ++++ b/Documentation/userspace-api/media/mediactl/media-controller-model.rst +@@ -33,3 +33,9 @@ are: + + - An **interface link** is a point-to-point bidirectional control + connection between a Linux Kernel interface and an entity. ++ ++- An **ancillary link** is a point-to-point connection denoting that two ++ entities form a single logical unit. For example this could represent the ++ fact that a particular camera sensor and lens controller form a single ++ physical module, meaning this lens controller drives the lens for this ++ camera sensor. +\ No newline at end of file +diff --git a/Documentation/userspace-api/media/mediactl/media-types.rst b/Documentation/userspace-api/media/mediactl/media-types.rst +index 0a26397bd01d..60747251d409 100644 +--- a/Documentation/userspace-api/media/mediactl/media-types.rst ++++ b/Documentation/userspace-api/media/mediactl/media-types.rst +@@ -412,14 +412,21 @@ must be set for every pad. + is set by drivers and is read-only for applications. + + * - ``MEDIA_LNK_FL_LINK_TYPE`` +- - This is a bitmask that defines the type of the link. Currently, +- two types of links are supported: ++ - This is a bitmask that defines the type of the link. The following ++ link types are currently supported: + + .. _MEDIA-LNK-FL-DATA-LINK: + +- ``MEDIA_LNK_FL_DATA_LINK`` if the link is between two pads ++ ``MEDIA_LNK_FL_DATA_LINK`` for links that represent a data connection ++ between two pads. + + .. _MEDIA-LNK-FL-INTERFACE-LINK: + +- ``MEDIA_LNK_FL_INTERFACE_LINK`` if the link is between an +- interface and an entity ++ ``MEDIA_LNK_FL_INTERFACE_LINK`` for links that associate an entity to its ++ interface. ++ ++ .. _MEDIA-LNK-FL-ANCILLARY-LINK: ++ ++ ``MEDIA_LNK_FL_ANCILLARY_LINK`` for links that represent a physical ++ relationship between two entities. The link may or may not be ummutable, so ++ applications must not assume either case. +\ No newline at end of file +diff --git a/include/uapi/linux/media.h b/include/uapi/linux/media.h +index 200fa8462b90..afbae7213d35 100644 +--- a/include/uapi/linux/media.h ++++ b/include/uapi/linux/media.h +@@ -226,6 +226,7 @@ struct media_pad_desc { + #define MEDIA_LNK_FL_LINK_TYPE (0xf << 28) + # define MEDIA_LNK_FL_DATA_LINK (0 << 28) + # define MEDIA_LNK_FL_INTERFACE_LINK (1 << 28) ++# define MEDIA_LNK_FL_ANCILLARY_LINK (2 << 28) + + struct media_link_desc { + struct media_pad_desc source; +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Daniel Scally +Date: Wed, 2 Mar 2022 22:03:02 +0000 +Subject: [PATCH 834/847] 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 +make it easier. + +Reviewed-by: Laurent Pinchart +Signed-off-by: Daniel Scally +--- + drivers/media/mc/mc-entity.c | 18 +++++++++++++++--- + 1 file changed, 15 insertions(+), 3 deletions(-) + +diff --git a/drivers/media/mc/mc-entity.c b/drivers/media/mc/mc-entity.c +index 2a6e16fb0048..29d1285c805a 100644 +--- a/drivers/media/mc/mc-entity.c ++++ b/drivers/media/mc/mc-entity.c +@@ -60,6 +60,20 @@ static inline const char *intf_type(struct media_interface *intf) + } + }; + ++static inline const char *link_type_name(struct media_link *link) ++{ ++ switch (link->flags & MEDIA_LNK_FL_LINK_TYPE) { ++ case MEDIA_LNK_FL_DATA_LINK: ++ return "data"; ++ case MEDIA_LNK_FL_INTERFACE_LINK: ++ return "interface"; ++ case MEDIA_LNK_FL_ANCILLARY_LINK: ++ return "ancillary"; ++ default: ++ return "unknown"; ++ } ++} ++ + __must_check int __media_entity_enum_init(struct media_entity_enum *ent_enum, + int idx_max) + { +@@ -107,9 +121,7 @@ static void dev_dbg_obj(const char *event_name, struct media_gobj *gobj) + + dev_dbg(gobj->mdev->dev, + "%s id %u: %s link id %u ==> id %u\n", +- event_name, media_id(gobj), +- media_type(link->gobj0) == MEDIA_GRAPH_PAD ? +- "data" : "interface", ++ event_name, media_id(gobj), link_type_name(link), + media_id(link->gobj0), + media_id(link->gobj1)); + break; +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Daniel Scally +Date: Wed, 2 Mar 2022 22:03:03 +0000 +Subject: [PATCH 835/847] 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. + +Reviewed-by: Laurent Pinchart +Signed-off-by: Daniel Scally +--- + drivers/media/mc/mc-entity.c | 22 ++++++++++++++++++++++ + include/media/media-entity.h | 19 +++++++++++++++++++ + 2 files changed, 41 insertions(+) + +diff --git a/drivers/media/mc/mc-entity.c b/drivers/media/mc/mc-entity.c +index 29d1285c805a..7bf2c73a3886 100644 +--- a/drivers/media/mc/mc-entity.c ++++ b/drivers/media/mc/mc-entity.c +@@ -1050,3 +1050,25 @@ void media_remove_intf_links(struct media_interface *intf) + mutex_unlock(&mdev->graph_mutex); + } + EXPORT_SYMBOL_GPL(media_remove_intf_links); ++ ++struct media_link *media_create_ancillary_link(struct media_entity *primary, ++ struct media_entity *ancillary) ++{ ++ struct media_link *link; ++ ++ link = media_add_link(&primary->links); ++ if (!link) ++ return ERR_PTR(-ENOMEM); ++ ++ link->gobj0 = &primary->graph_obj; ++ link->gobj1 = &ancillary->graph_obj; ++ link->flags = MEDIA_LNK_FL_IMMUTABLE | MEDIA_LNK_FL_ENABLED | ++ MEDIA_LNK_FL_ANCILLARY_LINK; ++ ++ /* Initialize graph object embedded in the new link */ ++ media_gobj_create(primary->graph_obj.mdev, MEDIA_GRAPH_LINK, ++ &link->graph_obj); ++ ++ return link; ++} ++EXPORT_SYMBOL_GPL(media_create_ancillary_link); +diff --git a/include/media/media-entity.h b/include/media/media-entity.h +index 09737b47881f..72c7cd885d6b 100644 +--- a/include/media/media-entity.h ++++ b/include/media/media-entity.h +@@ -1107,4 +1107,23 @@ void media_remove_intf_links(struct media_interface *intf); + (((entity)->ops && (entity)->ops->operation) ? \ + (entity)->ops->operation((entity) , ##args) : -ENOIOCTLCMD) + ++/** ++ * media_create_ancillary_link() - create an ancillary link between two ++ * instances of &media_entity ++ * ++ * @primary: pointer to the primary &media_entity ++ * @ancillary: pointer to the ancillary &media_entity ++ * ++ * Create an ancillary link between two entities, indicating that they ++ * represent two connected pieces of hardware that form a single logical unit. ++ * A typical example is a camera lens controller being linked to the sensor that ++ * it is supporting. ++ * ++ * The function sets both MEDIA_LNK_FL_ENABLED and MEDIA_LNK_FL_IMMUTABLE for ++ * the new link. ++ */ ++struct media_link * ++media_create_ancillary_link(struct media_entity *primary, ++ struct media_entity *ancillary); ++ + #endif +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Daniel Scally +Date: Wed, 2 Mar 2022 22:03:04 +0000 +Subject: [PATCH 836/847] media: v4l2-async: Create links during + v4l2_async_match_notify() + +Upon an async fwnode match, there's some typical behaviour that the +notifier and matching subdev will want to do. For example, a notifier +representing a sensor matching to an async subdev representing its +VCM will want to create an ancillary link to expose that relationship +to userspace. + +To avoid lots of code in individual drivers, try to build these links +within v4l2 core. + +Signed-off-by: Daniel Scally +--- + drivers/media/v4l2-core/v4l2-async.c | 31 ++++++++++++++++++++++++++++ + 1 file changed, 31 insertions(+) + +diff --git a/drivers/media/v4l2-core/v4l2-async.c b/drivers/media/v4l2-core/v4l2-async.c +index cd9e78c63791..84a12788d62c 100644 +--- a/drivers/media/v4l2-core/v4l2-async.c ++++ b/drivers/media/v4l2-core/v4l2-async.c +@@ -275,6 +275,24 @@ v4l2_async_notifier_try_complete(struct v4l2_async_notifier *notifier) + static int + v4l2_async_notifier_try_all_subdevs(struct v4l2_async_notifier *notifier); + ++static int v4l2_async_create_ancillary_links(struct v4l2_async_notifier *n, ++ struct v4l2_subdev *sd) ++{ ++ struct media_link *link = NULL; ++ ++#if IS_ENABLED(CONFIG_MEDIA_CONTROLLER) ++ ++ if (sd->entity.function != MEDIA_ENT_F_LENS && ++ sd->entity.function != MEDIA_ENT_F_FLASH) ++ return 0; ++ ++ link = media_create_ancillary_link(&n->sd->entity, &sd->entity); ++ ++#endif ++ ++ return IS_ERR(link) ? PTR_ERR(link) : 0; ++} ++ + static int v4l2_async_match_notify(struct v4l2_async_notifier *notifier, + struct v4l2_device *v4l2_dev, + struct v4l2_subdev *sd, +@@ -293,6 +311,19 @@ static int v4l2_async_match_notify(struct v4l2_async_notifier *notifier, + return ret; + } + ++ /* ++ * Depending of the function of the entities involved, we may want to ++ * create links between them (for example between a sensor and its lens ++ * or between a sensor's source pad and the connected device's sink ++ * pad). ++ */ ++ ret = v4l2_async_create_ancillary_links(notifier, sd); ++ if (ret) { ++ v4l2_async_notifier_call_unbind(notifier, sd, asd); ++ v4l2_device_unregister_subdev(sd); ++ return ret; ++ } ++ + /* Remove from the waiting list */ + list_del(&asd->list); + sd->asd = asd; +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Wed, 29 Sep 2021 12:33:35 +0100 +Subject: [PATCH 837/847] 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. + +FIXME: Convert to YAML + +Signed-off-by: Dave Stevenson +--- + .../devicetree/bindings/media/i2c/ad5398.txt | 20 +++++++++++++++++++ + 1 file changed, 20 insertions(+) + create mode 100644 Documentation/devicetree/bindings/media/i2c/ad5398.txt + +diff --git a/Documentation/devicetree/bindings/media/i2c/ad5398.txt b/Documentation/devicetree/bindings/media/i2c/ad5398.txt +new file mode 100644 +index 000000000000..446ac9717598 +--- /dev/null ++++ b/Documentation/devicetree/bindings/media/i2c/ad5398.txt +@@ -0,0 +1,20 @@ ++* Analog Devices AD5398 autofocus coil ++ ++Required Properties: ++ ++ - compatible: Must contain one of: ++ - "adi,ad5398" ++ ++ - reg: I2C slave address ++ ++ - VANA-supply: supply of voltage for VANA pin ++ ++Example: ++ ++ ad5398: coil@c { ++ compatible = "adi,ad5398"; ++ reg = <0x0c>; ++ ++ VANA-supply = <&vaux4>; ++ }; ++ +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Wed, 29 Sep 2021 14:04:28 +0100 +Subject: [PATCH 838/847] 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 +mechanisms. + +Signed-off-by: Dave Stevenson +--- + drivers/media/i2c/Kconfig | 7 + + drivers/media/i2c/Makefile | 1 + + drivers/media/i2c/ad5398.c | 342 +++++++++++++++++++++++++++++++++++++ + 3 files changed, 350 insertions(+) + create mode 100644 drivers/media/i2c/ad5398.c + +diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig +index 7638dad7048b..ef176eea2cae 100644 +--- a/drivers/media/i2c/Kconfig ++++ b/drivers/media/i2c/Kconfig +@@ -1451,6 +1451,13 @@ endmenu + menu "Lens drivers" + visible if MEDIA_CAMERA_SUPPORT + ++config VIDEO_AD5398 ++ tristate "AD5398 lens voice coil support" ++ depends on GPIOLIB && I2C && VIDEO_V4L2 ++ select MEDIA_CONTROLLER ++ help ++ This is a driver for the AD5398 camera lens voice coil. ++ + config VIDEO_AD5820 + tristate "AD5820 lens voice coil support" + depends on GPIOLIB && I2C && VIDEO_V4L2 +diff --git a/drivers/media/i2c/Makefile b/drivers/media/i2c/Makefile +index daed83f59111..05b9de170c97 100644 +--- a/drivers/media/i2c/Makefile ++++ b/drivers/media/i2c/Makefile +@@ -21,6 +21,7 @@ obj-$(CONFIG_VIDEO_SAA717X) += saa717x.o + obj-$(CONFIG_VIDEO_SAA7127) += saa7127.o + obj-$(CONFIG_VIDEO_SAA7185) += saa7185.o + obj-$(CONFIG_VIDEO_SAA6752HS) += saa6752hs.o ++obj-$(CONFIG_VIDEO_AD5398) += ad5398.o + obj-$(CONFIG_VIDEO_AD5820) += ad5820.o + obj-$(CONFIG_VIDEO_AK7375) += ak7375.o + obj-$(CONFIG_VIDEO_DW9714) += dw9714.o +diff --git a/drivers/media/i2c/ad5398.c b/drivers/media/i2c/ad5398.c +new file mode 100644 +index 000000000000..102c3143f7d7 +--- /dev/null ++++ b/drivers/media/i2c/ad5398.c +@@ -0,0 +1,342 @@ ++// SPDX-License-Identifier: GPL-2.0-only ++/* ++ * AD5398 DAC driver for camera voice coil focus. ++ * Copyright (C) 2021 Raspberry Pi (Trading) Ltd. ++ * ++ * Based on AD5820 DAC driver by Nokia and TI. ++ * ++ * This driver uses the regulator framework notification hooks on the ++ * assumption that the VCM and sensor share a regulator. This means the VCM ++ * position will be restored when either the sensor or VCM subdevices are opened ++ * or powered up. The client can therefore choose to ignore the VCM subdevice, ++ * and the lens position will be as previously requested. Without that, there ++ * is a hard requirement to have the VCM subdevice open in order for the VCM ++ * to be powered and at the requested position. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++/* Register definitions */ ++#define AD5398_POWER_DOWN BIT(15) ++#define AD5398_DAC_SHIFT 4 ++ ++#define to_ad5398_device(sd) container_of(sd, struct ad5398_device, subdev) ++ ++struct ad5398_device { ++ struct v4l2_subdev subdev; ++ struct ad5398_platform_data *platform_data; ++ struct regulator *vana; ++ struct notifier_block nb; ++ ++ struct v4l2_ctrl_handler ctrls; ++ u32 focus_absolute; ++ ++ bool standby; ++}; ++ ++static int ad5398_write(struct ad5398_device *coil, u16 data) ++{ ++ struct i2c_client *client = v4l2_get_subdevdata(&coil->subdev); ++ struct i2c_msg msg; ++ __be16 be_data; ++ int r; ++ ++ if (!client->adapter) ++ return -ENODEV; ++ ++ be_data = cpu_to_be16(data); ++ msg.addr = client->addr; ++ msg.flags = 0; ++ msg.len = 2; ++ msg.buf = (u8 *)&be_data; ++ ++ r = i2c_transfer(client->adapter, &msg, 1); ++ if (r < 0) { ++ dev_err(&client->dev, "write failed, error %d\n", r); ++ return r; ++ } ++ ++ return 0; ++} ++ ++/* ++ * Calculate status word and write it to the device based on current ++ * values of V4L2 controls. It is assumed that the stored V4L2 control ++ * values are properly limited and rounded. ++ */ ++static int ad5398_update_hw(struct ad5398_device *coil) ++{ ++ u16 status; ++ ++ status = coil->focus_absolute << AD5398_DAC_SHIFT; ++ ++ if (coil->standby) ++ status |= AD5398_POWER_DOWN; ++ ++ return ad5398_write(coil, status); ++} ++ ++/* ++ * Power handling ++ */ ++static int ad5398_power_off(struct ad5398_device *coil) ++{ ++ int ret = 0; ++ ++ coil->standby = true; ++ ret = ad5398_update_hw(coil); ++ ++ return ret; ++} ++ ++static int ad5398_power_on(struct ad5398_device *coil) ++{ ++ int ret; ++ ++ /* Restore the hardware settings. */ ++ coil->standby = false; ++ ret = ad5398_update_hw(coil); ++ if (ret) ++ goto fail; ++ ++ return 0; ++ ++fail: ++ coil->standby = true; ++ ++ return ret; ++} ++ ++/* ++ * V4L2 controls ++ */ ++static int ad5398_set_ctrl(struct v4l2_ctrl *ctrl) ++{ ++ struct ad5398_device *coil = ++ container_of(ctrl->handler, struct ad5398_device, ctrls); ++ ++ switch (ctrl->id) { ++ case V4L2_CID_FOCUS_ABSOLUTE: ++ coil->focus_absolute = ctrl->val; ++ return ad5398_update_hw(coil); ++ } ++ ++ return 0; ++} ++ ++static const struct v4l2_ctrl_ops ad5398_ctrl_ops = { ++ .s_ctrl = ad5398_set_ctrl, ++}; ++ ++static int ad5398_init_controls(struct ad5398_device *coil) ++{ ++ v4l2_ctrl_handler_init(&coil->ctrls, 1); ++ ++ /* ++ * V4L2_CID_FOCUS_ABSOLUTE ++ * ++ * Minimum current is 0 mA, maximum is 120 mA. Thus, 1 code is ++ * equivalent to 120/1023 = 0.1173 mA. Nevertheless, we do not use [mA] ++ * for focus position, because it is meaningless for user. Meaningful ++ * would be to use focus distance or even its inverse, but since the ++ * driver doesn't have sufficient knowledge to do the conversion, we ++ * will just use abstract codes here. In any case, smaller value = focus ++ * position farther from camera. The default zero value means focus at ++ * infinity, and also least current consumption. ++ */ ++ v4l2_ctrl_new_std(&coil->ctrls, &ad5398_ctrl_ops, ++ V4L2_CID_FOCUS_ABSOLUTE, 0, 1023, 1, 0); ++ ++ if (coil->ctrls.error) ++ return coil->ctrls.error; ++ ++ coil->focus_absolute = 0; ++ ++ coil->subdev.ctrl_handler = &coil->ctrls; ++ ++ return 0; ++} ++ ++/* ++ * V4L2 subdev operations ++ */ ++static int ad5398_registered(struct v4l2_subdev *subdev) ++{ ++ struct ad5398_device *coil = to_ad5398_device(subdev); ++ ++ return ad5398_init_controls(coil); ++} ++ ++static int ++ad5398_set_power(struct v4l2_subdev *subdev, int on) ++{ ++ struct ad5398_device *coil = to_ad5398_device(subdev); ++ int ret; ++ ++ if (on) ++ ret = regulator_enable(coil->vana); ++ else ++ ret = regulator_disable(coil->vana); ++ ++ return ret; ++} ++ ++static int ad5398_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh) ++{ ++ struct ad5398_device *coil = to_ad5398_device(sd); ++ ++ return regulator_enable(coil->vana); ++} ++ ++static int ad5398_close(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh) ++{ ++ struct ad5398_device *coil = to_ad5398_device(sd); ++ ++ return regulator_disable(coil->vana); ++} ++ ++static const struct v4l2_subdev_core_ops ad5398_core_ops = { ++ .s_power = ad5398_set_power, ++}; ++ ++static const struct v4l2_subdev_ops ad5398_ops = { ++ .core = &ad5398_core_ops, ++}; ++ ++static const struct v4l2_subdev_internal_ops ad5398_internal_ops = { ++ .registered = ad5398_registered, ++ .open = ad5398_open, ++ .close = ad5398_close, ++}; ++ ++/* ++ * I2C driver ++ */ ++static int __maybe_unused ad5398_suspend(struct device *dev) ++{ ++ struct i2c_client *client = container_of(dev, struct i2c_client, dev); ++ struct v4l2_subdev *subdev = i2c_get_clientdata(client); ++ struct ad5398_device *coil = to_ad5398_device(subdev); ++ ++ return regulator_enable(coil->vana); ++} ++ ++static int __maybe_unused ad5398_resume(struct device *dev) ++{ ++ struct i2c_client *client = container_of(dev, struct i2c_client, dev); ++ struct v4l2_subdev *subdev = i2c_get_clientdata(client); ++ struct ad5398_device *coil = to_ad5398_device(subdev); ++ ++ return regulator_disable(coil->vana); ++} ++ ++static int ad5398_regulator_notifier(struct notifier_block *nb, ++ unsigned long event, ++ void *ignored) ++{ ++ struct ad5398_device *coil = container_of(nb, struct ad5398_device, nb); ++ ++ if (event == REGULATOR_EVENT_ENABLE) ++ ad5398_power_on(coil); ++ else if (event == REGULATOR_EVENT_PRE_DISABLE) ++ ad5398_power_off(coil); ++ ++ return NOTIFY_OK; ++} ++ ++static int ad5398_probe(struct i2c_client *client, ++ const struct i2c_device_id *devid) ++{ ++ struct ad5398_device *coil; ++ int ret; ++ ++ coil = devm_kzalloc(&client->dev, sizeof(*coil), GFP_KERNEL); ++ if (!coil) ++ return -ENOMEM; ++ ++ coil->vana = devm_regulator_get(&client->dev, "VANA"); ++ if (IS_ERR(coil->vana)) { ++ ret = PTR_ERR(coil->vana); ++ if (ret != -EPROBE_DEFER) ++ dev_err(&client->dev, "could not get regulator for vana\n"); ++ return ret; ++ } ++ ++ v4l2_i2c_subdev_init(&coil->subdev, client, &ad5398_ops); ++ coil->subdev.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE; ++ coil->subdev.internal_ops = &ad5398_internal_ops; ++ coil->subdev.entity.function = MEDIA_ENT_F_LENS; ++ strscpy(coil->subdev.name, "ad5398 focus", sizeof(coil->subdev.name)); ++ ++ coil->nb.notifier_call = &ad5398_regulator_notifier; ++ ret = regulator_register_notifier(coil->vana, &coil->nb); ++ if (ret < 0) ++ return ret; ++ ++ ret = media_entity_pads_init(&coil->subdev.entity, 0, NULL); ++ if (ret < 0) ++ goto cleanup2; ++ ++ ret = v4l2_async_register_subdev(&coil->subdev); ++ if (ret < 0) ++ goto cleanup; ++ ++ return ret; ++ ++cleanup: ++ media_entity_cleanup(&coil->subdev.entity); ++cleanup2: ++ regulator_unregister_notifier(coil->vana, &coil->nb); ++ return ret; ++} ++ ++static int ad5398_remove(struct i2c_client *client) ++{ ++ struct v4l2_subdev *subdev = i2c_get_clientdata(client); ++ struct ad5398_device *coil = to_ad5398_device(subdev); ++ ++ v4l2_async_unregister_subdev(&coil->subdev); ++ v4l2_ctrl_handler_free(&coil->ctrls); ++ media_entity_cleanup(&coil->subdev.entity); ++ return 0; ++} ++ ++static const struct i2c_device_id ad5398_id_table[] = { ++ { "ad5398", 0 }, ++ { } ++}; ++MODULE_DEVICE_TABLE(i2c, ad5398_id_table); ++ ++static const struct of_device_id ad5398_of_table[] = { ++ { .compatible = "adi,ad5398" }, ++ { } ++}; ++MODULE_DEVICE_TABLE(of, ad5398_of_table); ++ ++static SIMPLE_DEV_PM_OPS(ad5398_pm, ad5398_suspend, ad5398_resume); ++ ++static struct i2c_driver ad5398_i2c_driver = { ++ .driver = { ++ .name = "ad5398", ++ .pm = &ad5398_pm, ++ .of_match_table = ad5398_of_table, ++ }, ++ .probe = ad5398_probe, ++ .remove = ad5398_remove, ++ .id_table = ad5398_id_table, ++}; ++ ++module_i2c_driver(ad5398_i2c_driver); ++ ++MODULE_AUTHOR("Dave Stevenson "); ++MODULE_DESCRIPTION("AD5398 camera lens driver"); ++MODULE_LICENSE("GPL"); +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Wed, 16 Mar 2022 12:15:41 +0000 +Subject: [PATCH 839/847] media: i2c: ov5647: Use + v4l2_async_register_subdev_sensor for lens binding + +v4l2_async_register_subdev doesn't bind in lens or flash drivers, +but v4l2_async_register_subdev_sensor does. +Switch to using v4l2_async_register_subdev_sensor. + +Signed-off-by: Dave Stevenson +--- + drivers/media/i2c/ov5647.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/media/i2c/ov5647.c b/drivers/media/i2c/ov5647.c +index 491246786f7c..befdb53bda1d 100644 +--- a/drivers/media/i2c/ov5647.c ++++ b/drivers/media/i2c/ov5647.c +@@ -1558,7 +1558,7 @@ static int ov5647_probe(struct i2c_client *client) + if (ret < 0) + goto power_off; + +- ret = v4l2_async_register_subdev(sd); ++ ret = v4l2_async_register_subdev_sensor(sd); + if (ret < 0) + goto power_off; + +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Wed, 29 Sep 2021 14:25:49 +0100 +Subject: [PATCH 840/847] defconfigs: Add AD5398 VCM to all Pi defconfigs + +Supports AD5398 controlled lens, as found on some 3rd party +OV5647 and IMX219 image sensors. + +Signed-off-by: Dave Stevenson +--- + 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 838c5a0af2e3..5be34206ec5c 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -880,6 +880,7 @@ CONFIG_VIDEO_OV7640=m + CONFIG_VIDEO_OV9281=m + CONFIG_VIDEO_IRS1125=m + CONFIG_VIDEO_MT9V011=m ++CONFIG_VIDEO_AD5398=m + CONFIG_DRM=m + CONFIG_DRM_LOAD_EDID_FIRMWARE=y + CONFIG_DRM_UDL=m +diff --git a/arch/arm/configs/bcm2711_defconfig b/arch/arm/configs/bcm2711_defconfig +index 3788278047b6..be7a837cc2d6 100644 +--- a/arch/arm/configs/bcm2711_defconfig ++++ b/arch/arm/configs/bcm2711_defconfig +@@ -895,6 +895,7 @@ CONFIG_VIDEO_OV7640=m + CONFIG_VIDEO_OV9281=m + CONFIG_VIDEO_IRS1125=m + CONFIG_VIDEO_MT9V011=m ++CONFIG_VIDEO_AD5398=m + CONFIG_DRM=m + CONFIG_DRM_LOAD_EDID_FIRMWARE=y + CONFIG_DRM_UDL=m +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index a12654b0c9ca..1b00ef0c9a60 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -873,6 +873,7 @@ CONFIG_VIDEO_OV7640=m + CONFIG_VIDEO_OV9281=m + CONFIG_VIDEO_IRS1125=m + CONFIG_VIDEO_MT9V011=m ++CONFIG_VIDEO_AD5398=m + CONFIG_DRM=m + CONFIG_DRM_LOAD_EDID_FIRMWARE=y + CONFIG_DRM_UDL=m +diff --git a/arch/arm64/configs/bcm2711_defconfig b/arch/arm64/configs/bcm2711_defconfig +index 8558136ce3c4..16d756cacc38 100644 +--- a/arch/arm64/configs/bcm2711_defconfig ++++ b/arch/arm64/configs/bcm2711_defconfig +@@ -900,6 +900,7 @@ CONFIG_VIDEO_OV7640=m + CONFIG_VIDEO_OV9281=m + CONFIG_VIDEO_IRS1125=m + CONFIG_VIDEO_MT9V011=m ++CONFIG_VIDEO_AD5398=m + CONFIG_DRM=m + CONFIG_DRM_LOAD_EDID_FIRMWARE=y + CONFIG_DRM_UDL=m +diff --git a/arch/arm64/configs/bcmrpi3_defconfig b/arch/arm64/configs/bcmrpi3_defconfig +index 039d06428669..c98578ac5de0 100644 +--- a/arch/arm64/configs/bcmrpi3_defconfig ++++ b/arch/arm64/configs/bcmrpi3_defconfig +@@ -821,6 +821,7 @@ CONFIG_VIDEO_OV7640=m + CONFIG_VIDEO_OV9281=m + CONFIG_VIDEO_IRS1125=m + CONFIG_VIDEO_MT9V011=m ++CONFIG_VIDEO_AD5398=m + CONFIG_DRM=m + CONFIG_DRM_LOAD_EDID_FIRMWARE=y + CONFIG_DRM_UDL=m +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Fri, 11 Mar 2022 15:32:00 +0000 +Subject: [PATCH 841/847] dtoverlays: Add VCM option to imx219 + +Signed-off-by: Dave Stevenson +--- + arch/arm/boot/dts/overlays/README | 1 + + arch/arm/boot/dts/overlays/imx219-overlay.dts | 12 +++++++++++- + 2 files changed, 12 insertions(+), 1 deletion(-) + +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index 2c1dcd03b841..ede35669fa5c 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -1869,6 +1869,7 @@ Params: rotation Mounting rotation of the camera sensor (0 or + configuring the sensor (default on) + cam0 Adopt the default configuration for CAM0 on a + Compute Module (CSI0, i2c_vc, and cam0_reg). ++ vcm Configure a VCM focus drive on the sensor. + + + Name: imx290 +diff --git a/arch/arm/boot/dts/overlays/imx219-overlay.dts b/arch/arm/boot/dts/overlays/imx219-overlay.dts +index bc1217397dd5..d73f76aba8b6 100644 +--- a/arch/arm/boot/dts/overlays/imx219-overlay.dts ++++ b/arch/arm/boot/dts/overlays/imx219-overlay.dts +@@ -63,6 +63,13 @@ + }; + }; + }; ++ ++ vcm: ad5398@0c { ++ compatible = "adi,ad5398"; ++ reg = <0x0c>; ++ status = "disabled"; ++ VANA-supply = <&cam1_reg>; ++ }; + }; + }; + +@@ -91,6 +98,9 @@ + <&csi_frag>, "target:0=",<&csi0>, + <&clk_frag>, "target:0=",<&cam0_clk>, + <&imx219>, "clocks:0=",<&cam0_clk>, +- <&imx219>, "VANA-supply:0=",<&cam0_reg>; ++ <&imx219>, "VANA-supply:0=",<&cam0_reg>, ++ <&vcm>, "VANA-supply:0=", <&cam0_reg>; ++ vcm = <&vcm>, "status=okay", ++ <&imx219>,"lens-focus:0=", <&vcm>; + }; + }; +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Tue, 15 Mar 2022 18:36:10 +0000 +Subject: [PATCH 842/847] dtoverlay: Add VCM option to ov5647 overlay + +Signed-off-by: Dave Stevenson +--- + arch/arm/boot/dts/overlays/README | 1 + + arch/arm/boot/dts/overlays/ov5647-overlay.dts | 9 +++++++++ + 2 files changed, 10 insertions(+) + +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index ede35669fa5c..302132582470 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -2450,6 +2450,7 @@ Params: rotation Mounting rotation of the camera sensor (0 or + configuring the sensor (default on) + cam0 Adopt the default configuration for CAM0 on a + Compute Module (CSI0, i2c_vc, and cam0_reg). ++ vcm Configure a VCM focus drive on the sensor. + + + Name: ov7251 +diff --git a/arch/arm/boot/dts/overlays/ov5647-overlay.dts b/arch/arm/boot/dts/overlays/ov5647-overlay.dts +index a1221024d334..af2c86383e1f 100644 +--- a/arch/arm/boot/dts/overlays/ov5647-overlay.dts ++++ b/arch/arm/boot/dts/overlays/ov5647-overlay.dts +@@ -38,6 +38,13 @@ + }; + }; + }; ++ ++ vcm: ad5398@0c { ++ compatible = "adi,ad5398"; ++ reg = <0x0c>; ++ status = "disabled"; ++ VANA-supply = <&cam1_reg>; ++ }; + }; + }; + +@@ -95,5 +102,7 @@ + <&clk_frag>, "target:0=",<&cam0_clk>, + <&ov5647>, "clocks:0=",<&cam0_clk>, + <&ov5647>, "avdd-supply:0=",<&cam0_reg>; ++ vcm = <&vcm>, "status=okay", ++ <&ov5647>,"lens-focus:0=", <&vcm>; + }; + }; +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Thu, 17 Mar 2022 15:13:10 +0000 +Subject: [PATCH 843/847] 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 +the terms that it uses and how it maps to V4L2, so a new driver +was added. However the module name collision wasn't noted, so +rename it now. + +Signed-off-by: Dave Stevenson +--- + drivers/media/i2c/Makefile | 2 +- + drivers/media/i2c/{ad5398.c => ad5398_vcm.c} | 0 + 2 files changed, 1 insertion(+), 1 deletion(-) + rename drivers/media/i2c/{ad5398.c => ad5398_vcm.c} (100%) + +diff --git a/drivers/media/i2c/Makefile b/drivers/media/i2c/Makefile +index 05b9de170c97..8c26efffdc37 100644 +--- a/drivers/media/i2c/Makefile ++++ b/drivers/media/i2c/Makefile +@@ -21,7 +21,7 @@ obj-$(CONFIG_VIDEO_SAA717X) += saa717x.o + obj-$(CONFIG_VIDEO_SAA7127) += saa7127.o + obj-$(CONFIG_VIDEO_SAA7185) += saa7185.o + obj-$(CONFIG_VIDEO_SAA6752HS) += saa6752hs.o +-obj-$(CONFIG_VIDEO_AD5398) += ad5398.o ++obj-$(CONFIG_VIDEO_AD5398) += ad5398_vcm.o + obj-$(CONFIG_VIDEO_AD5820) += ad5820.o + obj-$(CONFIG_VIDEO_AK7375) += ak7375.o + obj-$(CONFIG_VIDEO_DW9714) += dw9714.o +diff --git a/drivers/media/i2c/ad5398.c b/drivers/media/i2c/ad5398_vcm.c +similarity index 100% +rename from drivers/media/i2c/ad5398.c +rename to drivers/media/i2c/ad5398_vcm.c +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Mon, 21 Feb 2022 10:59:02 +0100 +Subject: [PATCH 844/847] drm/object: Add + drm_object_property_get_default_value() function + +Upstream commit adf47b75297ebc71c53b6dc2d3c55f42b8fb79fd. + +Some functions to create properties (drm_plane_create_zpos_property or +drm_plane_create_color_properties for example) will ask for a range of +acceptable value and an initial one. + +This initial value is then stored in the values array for that property. + +Let's provide an helper to access this property. + +Acked-by: Daniel Vetter +Reviewed-by: Laurent Pinchart +Signed-off-by: Dave Stevenson +Signed-off-by: Maxime Ripard +Link: https://patchwork.freedesktop.org/patch/msgid/20220221095918.18763-7-maxime@cerno.tech +--- + drivers/gpu/drm/drm_mode_object.c | 53 +++++++++++++++++++++++++------ + include/drm/drm_mode_object.h | 7 ++++ + 2 files changed, 50 insertions(+), 10 deletions(-) + +diff --git a/drivers/gpu/drm/drm_mode_object.c b/drivers/gpu/drm/drm_mode_object.c +index 86d9e907c0b2..ba1608effc0f 100644 +--- a/drivers/gpu/drm/drm_mode_object.c ++++ b/drivers/gpu/drm/drm_mode_object.c +@@ -297,11 +297,26 @@ int drm_object_property_set_value(struct drm_mode_object *obj, + } + EXPORT_SYMBOL(drm_object_property_set_value); + ++static int __drm_object_property_get_prop_value(struct drm_mode_object *obj, ++ struct drm_property *property, ++ uint64_t *val) ++{ ++ int i; ++ ++ for (i = 0; i < obj->properties->count; i++) { ++ if (obj->properties->properties[i] == property) { ++ *val = obj->properties->values[i]; ++ return 0; ++ } ++ } ++ ++ return -EINVAL; ++} ++ + static int __drm_object_property_get_value(struct drm_mode_object *obj, + struct drm_property *property, + uint64_t *val) + { +- int i; + + /* read-only properties bypass atomic mechanism and still store + * their value in obj->properties->values[].. mostly to avoid +@@ -311,15 +326,7 @@ static int __drm_object_property_get_value(struct drm_mode_object *obj, + !(property->flags & DRM_MODE_PROP_IMMUTABLE)) + return drm_atomic_get_property(obj, property, val); + +- for (i = 0; i < obj->properties->count; i++) { +- if (obj->properties->properties[i] == property) { +- *val = obj->properties->values[i]; +- return 0; +- } +- +- } +- +- return -EINVAL; ++ return __drm_object_property_get_prop_value(obj, property, val); + } + + /** +@@ -348,6 +355,32 @@ int drm_object_property_get_value(struct drm_mode_object *obj, + } + EXPORT_SYMBOL(drm_object_property_get_value); + ++/** ++ * drm_object_property_get_default_value - retrieve the default value of a ++ * property when in atomic mode. ++ * @obj: drm mode object to get property value from ++ * @property: property to retrieve ++ * @val: storage for the property value ++ * ++ * This function retrieves the default state of the given property as passed in ++ * to drm_object_attach_property ++ * ++ * Only atomic drivers should call this function directly, as for non-atomic ++ * drivers it will return the current value. ++ * ++ * Returns: ++ * Zero on success, error code on failure. ++ */ ++int drm_object_property_get_default_value(struct drm_mode_object *obj, ++ struct drm_property *property, ++ uint64_t *val) ++{ ++ WARN_ON(!drm_drv_uses_atomic_modeset(property->dev)); ++ ++ return __drm_object_property_get_prop_value(obj, property, val); ++} ++EXPORT_SYMBOL(drm_object_property_get_default_value); ++ + /* helper for getconnector and getproperties ioctls */ + int drm_mode_object_get_properties(struct drm_mode_object *obj, bool atomic, + uint32_t __user *prop_ptr, +diff --git a/include/drm/drm_mode_object.h b/include/drm/drm_mode_object.h +index c34a3e8030e1..912f1e415685 100644 +--- a/include/drm/drm_mode_object.h ++++ b/include/drm/drm_mode_object.h +@@ -98,6 +98,10 @@ struct drm_object_properties { + * Hence atomic drivers should not use drm_object_property_set_value() + * and drm_object_property_get_value() on mutable objects, i.e. those + * without the DRM_MODE_PROP_IMMUTABLE flag set. ++ * ++ * For atomic drivers the default value of properties is stored in this ++ * array, so drm_object_property_get_default_value can be used to ++ * retrieve it. + */ + uint64_t values[DRM_OBJECT_MAX_PROPERTY]; + }; +@@ -126,6 +130,9 @@ int drm_object_property_set_value(struct drm_mode_object *obj, + int drm_object_property_get_value(struct drm_mode_object *obj, + struct drm_property *property, + uint64_t *value); ++int drm_object_property_get_default_value(struct drm_mode_object *obj, ++ struct drm_property *property, ++ uint64_t *val); + + void drm_object_attach_property(struct drm_mode_object *obj, + struct drm_property *property, +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Mon, 21 Feb 2022 10:59:03 +0100 +Subject: [PATCH 845/847] drm/object: Add default zpos value at reset + +Upstream commit 1a7998dab5dd3d11bada7e3921781922082e7fe6 + +The drm_plane_create_zpos_property() function asks for an initial value, +and will set the associated plane state variable with that value if a +state is present. + +However, that function is usually called at a time where there's no +state yet. Since the drm_plane_state reset helper doesn't take care of +reading that value when it's called, it means that in most cases the +initial value will be 0, or the drivers will have to work around it. + +Let's add some code in __drm_atomic_helper_plane_state_reset() to get +the initial zpos value if the property has been attached in order to fix +this. + +Reviewed-by: Harry Wentland +Reviewed-by: Laurent Pinchart +Signed-off-by: Dave Stevenson +Signed-off-by: Maxime Ripard +Link: https://patchwork.freedesktop.org/patch/msgid/20220221095918.18763-8-maxime@cerno.tech +--- + drivers/gpu/drm/drm_atomic_state_helper.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/drivers/gpu/drm/drm_atomic_state_helper.c b/drivers/gpu/drm/drm_atomic_state_helper.c +index ddcf5c2c8e6a..1412cee404ca 100644 +--- a/drivers/gpu/drm/drm_atomic_state_helper.c ++++ b/drivers/gpu/drm/drm_atomic_state_helper.c +@@ -243,11 +243,22 @@ EXPORT_SYMBOL(drm_atomic_helper_crtc_destroy_state); + void __drm_atomic_helper_plane_state_reset(struct drm_plane_state *plane_state, + struct drm_plane *plane) + { ++ u64 val; ++ + plane_state->plane = plane; + plane_state->rotation = DRM_MODE_ROTATE_0; + + plane_state->alpha = DRM_BLEND_ALPHA_OPAQUE; + plane_state->pixel_blend_mode = DRM_MODE_BLEND_PREMULTI; ++ ++ if (plane->zpos_property) { ++ if (!drm_object_property_get_default_value(&plane->base, ++ plane->zpos_property, ++ &val)) { ++ plane_state->zpos = val; ++ plane_state->normalized_zpos = val; ++ } ++ } + } + EXPORT_SYMBOL(__drm_atomic_helper_plane_state_reset); + +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Mon, 21 Feb 2022 10:59:14 +0100 +Subject: [PATCH 846/847] drm/object: Add default color encoding and range + value at reset + +Upstream commit 9a48ab11714c955456fefdd4ab532d324fbef563 + +The drm_plane_create_color_properties() function asks for an initial +value for the color encoding and range, and will set the associated +plane state variable with that value if a state is present. + +However, that function is usually called at a time where there's no +state yet. Since the drm_plane_state reset helper doesn't take care of +reading that value when it's called, it means that in most cases the +initial value will be 0 (so DRM_COLOR_YCBCR_BT601 and +DRM_COLOR_YCBCR_LIMITED_RANGE, respectively), or the drivers will have +to work around it. + +Let's add some code in __drm_atomic_helper_plane_state_reset() to get +the initial encoding and range value if the property has been attached +in order to fix this. + +Reviewed-by: Harry Wentland +Signed-off-by: Dave Stevenson +Signed-off-by: Maxime Ripard +Link: https://patchwork.freedesktop.org/patch/msgid/20220221095918.18763-19-maxime@cerno.tech +--- + drivers/gpu/drm/drm_atomic_state_helper.c | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/drivers/gpu/drm/drm_atomic_state_helper.c b/drivers/gpu/drm/drm_atomic_state_helper.c +index 1412cee404ca..3b6d3bdbd099 100644 +--- a/drivers/gpu/drm/drm_atomic_state_helper.c ++++ b/drivers/gpu/drm/drm_atomic_state_helper.c +@@ -251,6 +251,20 @@ void __drm_atomic_helper_plane_state_reset(struct drm_plane_state *plane_state, + plane_state->alpha = DRM_BLEND_ALPHA_OPAQUE; + plane_state->pixel_blend_mode = DRM_MODE_BLEND_PREMULTI; + ++ if (plane->color_encoding_property) { ++ if (!drm_object_property_get_default_value(&plane->base, ++ plane->color_encoding_property, ++ &val)) ++ plane_state->color_encoding = val; ++ } ++ ++ if (plane->color_range_property) { ++ if (!drm_object_property_get_default_value(&plane->base, ++ plane->color_range_property, ++ &val)) ++ plane_state->color_range = val; ++ } ++ + if (plane->zpos_property) { + if (!drm_object_property_get_default_value(&plane->base, + plane->zpos_property, +-- +2.18.4 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Tue, 25 Jan 2022 17:28:18 +0000 +Subject: [PATCH 847/847] 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. + +Signed-off-by: Dave Stevenson +--- + drivers/gpu/drm/vc4/vc4_hvs.c | 43 +++++++++++++++++++++------------ + drivers/gpu/drm/vc4/vc4_kms.c | 3 +-- + drivers/gpu/drm/vc4/vc4_plane.c | 22 ++++++++++++++--- + 3 files changed, 48 insertions(+), 20 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_hvs.c b/drivers/gpu/drm/vc4/vc4_hvs.c +index 20dd26576228..7823320b0980 100644 +--- a/drivers/gpu/drm/vc4/vc4_hvs.c ++++ b/drivers/gpu/drm/vc4/vc4_hvs.c +@@ -854,6 +854,8 @@ void vc4_hvs_atomic_flush(struct drm_crtc *crtc, + bool debug_dump_regs = false; + bool enable_bg_fill = false; + u32 __iomem *dlist_start, *dlist_next; ++ unsigned int zpos = 0; ++ bool found = false; + + if (vc4_state->assigned_channel == VC4_HVS_CHANNEL_DISABLED) + return; +@@ -867,23 +869,34 @@ void vc4_hvs_atomic_flush(struct drm_crtc *crtc, + dlist_next = dlist_start; + + /* Copy all the active planes' dlist contents to the hardware dlist. */ +- drm_atomic_crtc_for_each_plane(plane, crtc) { +- /* Is this the first active plane? */ +- if (dlist_next == dlist_start) { +- /* We need to enable background fill when a plane +- * could be alpha blending from the background, i.e. +- * where no other plane is underneath. It suffices to +- * consider the first active plane here since we set +- * needs_bg_fill such that either the first plane +- * already needs it or all planes on top blend from +- * the first or a lower plane. +- */ +- vc4_plane_state = to_vc4_plane_state(plane->state); +- enable_bg_fill = vc4_plane_state->needs_bg_fill; ++ do { ++ found = false; ++ ++ drm_atomic_crtc_for_each_plane(plane, crtc) { ++ if (plane->state->normalized_zpos != zpos) ++ continue; ++ ++ /* Is this the first active plane? */ ++ if (dlist_next == dlist_start) { ++ /* We need to enable background fill when a plane ++ * could be alpha blending from the background, i.e. ++ * where no other plane is underneath. It suffices to ++ * consider the first active plane here since we set ++ * needs_bg_fill such that either the first plane ++ * already needs it or all planes on top blend from ++ * the first or a lower plane. ++ */ ++ vc4_plane_state = to_vc4_plane_state(plane->state); ++ enable_bg_fill = vc4_plane_state->needs_bg_fill; ++ } ++ ++ dlist_next += vc4_plane_write_dlist(plane, dlist_next); ++ ++ found = true; + } + +- dlist_next += vc4_plane_write_dlist(plane, dlist_next); +- } ++ zpos++; ++ } while (found); + + writel(SCALER_CTL0_END, dlist_next); + dlist_next++; +diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c +index 0ac34db76b47..78c4d57fe597 100644 +--- a/drivers/gpu/drm/vc4/vc4_kms.c ++++ b/drivers/gpu/drm/vc4/vc4_kms.c +@@ -1042,8 +1042,7 @@ int vc4_kms_load(struct drm_device *dev) + dev->mode_config.helper_private = &vc4_mode_config_helpers; + dev->mode_config.preferred_depth = 24; + dev->mode_config.async_page_flip = true; +- if (vc4->firmware_kms) +- dev->mode_config.normalize_zpos = true; ++ dev->mode_config.normalize_zpos = true; + + ret = vc4_ctm_obj_init(vc4); + if (ret) +diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c +index 7a0f9d55777d..0e791620d97b 100644 +--- a/drivers/gpu/drm/vc4/vc4_plane.c ++++ b/drivers/gpu/drm/vc4/vc4_plane.c +@@ -1572,9 +1572,14 @@ struct drm_plane *vc4_plane_init(struct drm_device *dev, + DRM_COLOR_YCBCR_BT709, + DRM_COLOR_YCBCR_LIMITED_RANGE); + ++ if (type == DRM_PLANE_TYPE_PRIMARY) ++ drm_plane_create_zpos_immutable_property(plane, 0); ++ + return plane; + } + ++#define VC4_NUM_OVERLAY_PLANES 16 ++ + int vc4_plane_create_additional_planes(struct drm_device *drm) + { + struct drm_plane *cursor_plane; +@@ -1590,7 +1595,7 @@ int vc4_plane_create_additional_planes(struct drm_device *drm) + * modest number of planes to expose, that should hopefully + * still cover any sane usecase. + */ +- for (i = 0; i < 16; i++) { ++ for (i = 0; i < VC4_NUM_OVERLAY_PLANES; i++) { + struct drm_plane *plane = + vc4_plane_init(drm, DRM_PLANE_TYPE_OVERLAY); + +@@ -1599,17 +1604,28 @@ int vc4_plane_create_additional_planes(struct drm_device *drm) + + plane->possible_crtcs = + GENMASK(drm->mode_config.num_crtc - 1, 0); ++ ++ /* Create zpos property. Max of all the overlays + 1 primary + ++ * 1 cursor plane on a crtc. ++ */ ++ drm_plane_create_zpos_property(plane, i + 1, 1, ++ VC4_NUM_OVERLAY_PLANES + 1); + } + + drm_for_each_crtc(crtc, drm) { + /* Set up the legacy cursor after overlay initialization, +- * since we overlay planes on the CRTC in the order they were +- * initialized. ++ * since the zpos fallback is that planes are rendered by plane ++ * ID order, and that then puts the cursor on top. + */ + cursor_plane = vc4_plane_init(drm, DRM_PLANE_TYPE_CURSOR); + if (!IS_ERR(cursor_plane)) { + cursor_plane->possible_crtcs = drm_crtc_mask(crtc); + crtc->cursor = cursor_plane; ++ ++ drm_plane_create_zpos_property(cursor_plane, ++ VC4_NUM_OVERLAY_PLANES + 1, ++ 1, ++ VC4_NUM_OVERLAY_PLANES + 1); + } + } + +-- +2.18.4 + diff --git a/SPECS/raspberrypi2.spec b/SPECS/raspberrypi2.spec index 99b6db2..093fc1c 100644 --- a/SPECS/raspberrypi2.spec +++ b/SPECS/raspberrypi2.spec @@ -1,5 +1,5 @@ -%global commit_firmware_long a6496ae5cd5e9b4cd5b38f7274fa94dce315fa7a -%global commit_linux_long 6dc14c0e44ca49f59b5b2cb38b053b08afb37124 +%global commit_firmware_long 7cb1aa0ff575959163e1cea042e5e3ab5a7a90d2 +%global commit_linux_long 53c0d5c6893c940cb762d3a474103706b1e5e383 ExclusiveArch: aarch64 armv7hl @@ -32,7 +32,7 @@ ExclusiveArch: aarch64 armv7hl %define extra_version 1 %define kversion 5.15 -%define kfullversion %{kversion}.25 +%define kfullversion %{kversion}.29 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 +* Thu Mar 17 2022 Pablo Greco - 5.15.29 +- Update to version v5.5.29 + * Sat Feb 26 2022 Pablo Greco - 5.15.25 - Update to version v5.15.25