mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-20 14:13:16 +00:00
kernel: bump 5.10 to 5.10.219
Removed upstreamed: bcm27xx/patches-5.10/950-0006-smsx95xx-fix-crimes-against-truesize.patch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.10.y&id=c3dc80f63326261fc991ac87a79d82a2e138bbb9 Link: https://github.com/openwrt/openwrt/pull/15843 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
parent
7b8ccbd37c
commit
c54d411ca6
@ -1,2 +1,2 @@
|
||||
LINUX_VERSION-5.10 = .218
|
||||
LINUX_KERNEL_HASH-5.10.218 = 9c36b243e8c3ec1d5963366618f336710b84340bf95be2037b26c452392cb2d6
|
||||
LINUX_VERSION-5.10 = .219
|
||||
LINUX_KERNEL_HASH-5.10.219 = 93b73f15cc376463e6422cce09ccd9d0a20fb113921ffebddf3352c44d84cd30
|
||||
|
@ -1,47 +0,0 @@
|
||||
From dbfae4876cd4c8525a0100f19307f16cf7fb384a Mon Sep 17 00:00:00 2001
|
||||
From: Steve Glendinning <steve.glendinning@smsc.com>
|
||||
Date: Thu, 19 Feb 2015 18:47:12 +0000
|
||||
Subject: [PATCH] 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.
|
||||
|
||||
This patch stops smsc95xx from changing truesize.
|
||||
|
||||
Signed-off-by: Steve Glendinning <steve.glendinning@smsc.com>
|
||||
---
|
||||
drivers/net/usb/smsc95xx.c | 10 ++++++++--
|
||||
1 file changed, 8 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/drivers/net/usb/smsc95xx.c
|
||||
+++ b/drivers/net/usb/smsc95xx.c
|
||||
@@ -68,6 +68,10 @@ static bool turbo_mode = true;
|
||||
module_param(turbo_mode, bool, 0644);
|
||||
MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction");
|
||||
|
||||
+static bool truesize_mode = false;
|
||||
+module_param(truesize_mode, bool, 0644);
|
||||
+MODULE_PARM_DESC(truesize_mode, "Report larger truesize value");
|
||||
+
|
||||
static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index,
|
||||
u32 *data, int in_pm)
|
||||
{
|
||||
@@ -1861,7 +1865,8 @@ static int smsc95xx_rx_fixup(struct usbn
|
||||
if (dev->net->features & NETIF_F_RXCSUM)
|
||||
smsc95xx_rx_csum_offload(skb);
|
||||
skb_trim(skb, skb->len - 4); /* remove fcs */
|
||||
- skb->truesize = size + sizeof(struct sk_buff);
|
||||
+ if (truesize_mode)
|
||||
+ skb->truesize = size + sizeof(struct sk_buff);
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -1879,7 +1884,8 @@ static int smsc95xx_rx_fixup(struct usbn
|
||||
if (dev->net->features & NETIF_F_RXCSUM)
|
||||
smsc95xx_rx_csum_offload(ax_skb);
|
||||
skb_trim(ax_skb, ax_skb->len - 4); /* remove fcs */
|
||||
- ax_skb->truesize = size + sizeof(struct sk_buff);
|
||||
+ if (truesize_mode)
|
||||
+ ax_skb->truesize = size + sizeof(struct sk_buff);
|
||||
|
||||
usbnet_skb_return(dev, ax_skb);
|
||||
}
|
@ -11,9 +11,9 @@ See: http://forum.kodi.tv/showthread.php?tid=285288
|
||||
|
||||
--- a/drivers/net/usb/smsc95xx.c
|
||||
+++ b/drivers/net/usb/smsc95xx.c
|
||||
@@ -72,6 +72,10 @@ static bool truesize_mode = false;
|
||||
module_param(truesize_mode, bool, 0644);
|
||||
MODULE_PARM_DESC(truesize_mode, "Report larger truesize value");
|
||||
@@ -68,6 +68,10 @@ static bool turbo_mode = true;
|
||||
module_param(turbo_mode, bool, 0644);
|
||||
MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction");
|
||||
|
||||
+static int packetsize = 2560;
|
||||
+module_param(packetsize, int, 0644);
|
||||
@ -22,7 +22,7 @@ See: http://forum.kodi.tv/showthread.php?tid=285288
|
||||
static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index,
|
||||
u32 *data, int in_pm)
|
||||
{
|
||||
@@ -920,13 +924,13 @@ static int smsc95xx_reset(struct usbnet
|
||||
@@ -916,13 +920,13 @@ static int smsc95xx_reset(struct usbnet
|
||||
|
||||
if (!turbo_mode) {
|
||||
burst_cap = 0;
|
||||
|
@ -18,7 +18,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||
|
||||
struct smsc95xx_priv {
|
||||
u32 mac_cr;
|
||||
@@ -76,6 +77,10 @@ static int packetsize = 2560;
|
||||
@@ -72,6 +73,10 @@ static int packetsize = 2560;
|
||||
module_param(packetsize, int, 0644);
|
||||
MODULE_PARM_DESC(packetsize, "Override the RX URB packet size");
|
||||
|
||||
@ -29,7 +29,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||
static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index,
|
||||
u32 *data, int in_pm)
|
||||
{
|
||||
@@ -776,6 +781,53 @@ static int smsc95xx_ioctl(struct net_dev
|
||||
@@ -772,6 +777,53 @@ static int smsc95xx_ioctl(struct net_dev
|
||||
return phy_mii_ioctl(netdev->phydev, rq, cmd);
|
||||
}
|
||||
|
||||
@ -83,7 +83,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||
static void smsc95xx_init_mac_address(struct usbnet *dev)
|
||||
{
|
||||
/* maybe the boot loader passed the MAC address in devicetree */
|
||||
@@ -798,6 +850,10 @@ static void smsc95xx_init_mac_address(st
|
||||
@@ -794,6 +846,10 @@ static void smsc95xx_init_mac_address(st
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -27,7 +27,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
|
||||
|
||||
--- a/drivers/firmware/raspberrypi.c
|
||||
+++ b/drivers/firmware/raspberrypi.c
|
||||
@@ -32,6 +32,8 @@ struct rpi_firmware {
|
||||
@@ -33,6 +33,8 @@ struct rpi_firmware {
|
||||
struct kref consumers;
|
||||
};
|
||||
|
||||
@ -36,7 +36,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
|
||||
static DEFINE_MUTEX(transaction_lock);
|
||||
|
||||
static void response_callback(struct mbox_client *cl, void *msg)
|
||||
@@ -280,6 +282,7 @@ static int rpi_firmware_probe(struct pla
|
||||
@@ -281,6 +283,7 @@ static int rpi_firmware_probe(struct pla
|
||||
kref_init(&fw->consumers);
|
||||
|
||||
platform_set_drvdata(pdev, fw);
|
||||
@ -44,7 +44,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
|
||||
|
||||
rpi_firmware_print_firmware_revision(fw);
|
||||
rpi_register_hwmon_driver(dev, fw);
|
||||
@@ -309,6 +312,8 @@ static int rpi_firmware_remove(struct pl
|
||||
@@ -310,6 +313,8 @@ static int rpi_firmware_remove(struct pl
|
||||
|
||||
rpi_firmware_put(fw);
|
||||
|
||||
@ -53,7 +53,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -322,7 +327,7 @@ static int rpi_firmware_remove(struct pl
|
||||
@@ -323,7 +328,7 @@ static int rpi_firmware_remove(struct pl
|
||||
*/
|
||||
struct rpi_firmware *rpi_firmware_get(struct device_node *firmware_node)
|
||||
{
|
||||
@ -62,7 +62,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
|
||||
struct rpi_firmware *fw;
|
||||
|
||||
if (!pdev)
|
||||
@@ -335,12 +340,9 @@ struct rpi_firmware *rpi_firmware_get(st
|
||||
@@ -336,12 +341,9 @@ struct rpi_firmware *rpi_firmware_get(st
|
||||
if (!kref_get_unless_zero(&fw->consumers))
|
||||
goto err_put_device;
|
||||
|
||||
@ -75,7 +75,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(rpi_firmware_get);
|
||||
@@ -382,7 +384,18 @@ static struct platform_driver rpi_firmwa
|
||||
@@ -383,7 +385,18 @@ static struct platform_driver rpi_firmwa
|
||||
.shutdown = rpi_firmware_shutdown,
|
||||
.remove = rpi_firmware_remove,
|
||||
};
|
||||
|
@ -13,7 +13,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
|
||||
|
||||
--- a/drivers/firmware/raspberrypi.c
|
||||
+++ b/drivers/firmware/raspberrypi.c
|
||||
@@ -46,7 +46,7 @@ static void response_callback(struct mbo
|
||||
@@ -47,7 +47,7 @@ static void response_callback(struct mbo
|
||||
* Sends a request to the firmware through the BCM2835 mailbox driver,
|
||||
* and synchronously waits for the reply.
|
||||
*/
|
||||
@ -22,7 +22,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
|
||||
rpi_firmware_transaction(struct rpi_firmware *fw, u32 chan, u32 data)
|
||||
{
|
||||
u32 message = MBOX_MSG(chan, data);
|
||||
@@ -71,6 +71,7 @@ rpi_firmware_transaction(struct rpi_firm
|
||||
@@ -72,6 +72,7 @@ rpi_firmware_transaction(struct rpi_firm
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -13,7 +13,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/drivers/firmware/raspberrypi.c
|
||||
+++ b/drivers/firmware/raspberrypi.c
|
||||
@@ -12,6 +12,7 @@
|
||||
@@ -13,6 +13,7 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/platform_device.h>
|
||||
@ -21,7 +21,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
#include <linux/slab.h>
|
||||
#include <soc/bcm2835/raspberrypi-firmware.h>
|
||||
|
||||
@@ -180,6 +181,26 @@ int rpi_firmware_property(struct rpi_fir
|
||||
@@ -181,6 +182,26 @@ int rpi_firmware_property(struct rpi_fir
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(rpi_firmware_property);
|
||||
|
||||
@ -48,7 +48,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
static void
|
||||
rpi_firmware_print_firmware_revision(struct rpi_firmware *fw)
|
||||
{
|
||||
@@ -386,15 +407,32 @@ static struct platform_driver rpi_firmwa
|
||||
@@ -387,15 +408,32 @@ static struct platform_driver rpi_firmwa
|
||||
.remove = rpi_firmware_remove,
|
||||
};
|
||||
|
||||
|
@ -16,7 +16,7 @@ Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
|
||||
--- a/drivers/firmware/raspberrypi.c
|
||||
+++ b/drivers/firmware/raspberrypi.c
|
||||
@@ -29,6 +29,7 @@ struct rpi_firmware {
|
||||
@@ -30,6 +30,7 @@ struct rpi_firmware {
|
||||
struct mbox_chan *chan; /* The property channel. */
|
||||
struct completion c;
|
||||
u32 enabled;
|
||||
@ -24,7 +24,7 @@ Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
|
||||
struct kref consumers;
|
||||
};
|
||||
@@ -177,6 +178,12 @@ int rpi_firmware_property(struct rpi_fir
|
||||
@@ -178,6 +179,12 @@ int rpi_firmware_property(struct rpi_fir
|
||||
|
||||
kfree(data);
|
||||
|
||||
@ -37,7 +37,7 @@ Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(rpi_firmware_property);
|
||||
@@ -201,6 +208,27 @@ static int rpi_firmware_notify_reboot(st
|
||||
@@ -202,6 +209,27 @@ static int rpi_firmware_notify_reboot(st
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -65,7 +65,7 @@ Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
static void
|
||||
rpi_firmware_print_firmware_revision(struct rpi_firmware *fw)
|
||||
{
|
||||
@@ -230,6 +258,11 @@ rpi_register_hwmon_driver(struct device
|
||||
@@ -231,6 +259,11 @@ rpi_register_hwmon_driver(struct device
|
||||
|
||||
rpi_hwmon = platform_device_register_data(dev, "raspberrypi-hwmon",
|
||||
-1, NULL, 0);
|
||||
|
@ -27,7 +27,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
||||
|
||||
--- a/drivers/firmware/raspberrypi.c
|
||||
+++ b/drivers/firmware/raspberrypi.c
|
||||
@@ -234,6 +234,15 @@ rpi_firmware_print_firmware_revision(str
|
||||
@@ -235,6 +235,15 @@ rpi_firmware_print_firmware_revision(str
|
||||
{
|
||||
time64_t date_and_time;
|
||||
u32 packet;
|
||||
@ -43,7 +43,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
||||
int ret = rpi_firmware_property(fw,
|
||||
RPI_FIRMWARE_GET_FIRMWARE_REVISION,
|
||||
&packet, sizeof(packet));
|
||||
@@ -243,7 +252,35 @@ rpi_firmware_print_firmware_revision(str
|
||||
@@ -244,7 +253,35 @@ rpi_firmware_print_firmware_revision(str
|
||||
|
||||
/* This is not compatible with y2038 */
|
||||
date_and_time = packet;
|
||||
@ -80,7 +80,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -340,6 +377,7 @@ static int rpi_firmware_probe(struct pla
|
||||
@@ -341,6 +378,7 @@ static int rpi_firmware_probe(struct pla
|
||||
g_pdev = pdev;
|
||||
|
||||
rpi_firmware_print_firmware_revision(fw);
|
||||
|
@ -36,7 +36,7 @@ Co-authored-by: Phil Elwell <phil@raspberrypi.org>
|
||||
MODULE_DESCRIPTION("BCM2835 clock driver");
|
||||
--- a/drivers/firmware/raspberrypi.c
|
||||
+++ b/drivers/firmware/raspberrypi.c
|
||||
@@ -498,7 +498,7 @@ out2:
|
||||
@@ -499,7 +499,7 @@ out2:
|
||||
out1:
|
||||
return ret;
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/drivers/spi/spi.c
|
||||
+++ b/drivers/spi/spi.c
|
||||
@@ -3340,6 +3340,7 @@ static int __spi_validate_bits_per_word(
|
||||
@@ -3344,6 +3344,7 @@ static int __spi_validate_bits_per_word(
|
||||
*/
|
||||
int spi_setup(struct spi_device *spi)
|
||||
{
|
||||
@ -40,7 +40,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
unsigned bad_bits, ugly_bits;
|
||||
int status;
|
||||
|
||||
@@ -3357,6 +3358,14 @@ int spi_setup(struct spi_device *spi)
|
||||
@@ -3361,6 +3362,14 @@ int spi_setup(struct spi_device *spi)
|
||||
(SPI_TX_DUAL | SPI_TX_QUAD | SPI_TX_OCTAL |
|
||||
SPI_RX_DUAL | SPI_RX_QUAD | SPI_RX_OCTAL)))
|
||||
return -EINVAL;
|
||||
|
@ -12,7 +12,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1488,9 +1488,6 @@ static int vc4_hdmi_cec_init(struct vc4_
|
||||
@@ -1490,9 +1490,6 @@ static int vc4_hdmi_cec_init(struct vc4_
|
||||
u32 value;
|
||||
int ret;
|
||||
|
||||
@ -22,7 +22,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
|
||||
vc4_hdmi->cec_adap = cec_allocate_adapter(&vc4_hdmi_cec_adap_ops,
|
||||
vc4_hdmi,
|
||||
vc4_hdmi->variant->card_name,
|
||||
@@ -1924,7 +1921,6 @@ static const struct vc4_hdmi_variant bcm
|
||||
@@ -1926,7 +1923,6 @@ static const struct vc4_hdmi_variant bcm
|
||||
.debugfs_name = "hdmi_regs",
|
||||
.card_name = "vc4-hdmi",
|
||||
.max_pixel_clock = 162000000,
|
||||
|
@ -94,7 +94,7 @@ Signed-off-by: Matthias Reichl <hias@horus.com>
|
||||
};
|
||||
|
||||
static const struct snd_soc_dapm_widget vc4_hdmi_audio_widgets[] = {
|
||||
@@ -1306,6 +1361,11 @@ static int vc4_hdmi_audio_init(struct vc
|
||||
@@ -1308,6 +1363,11 @@ static int vc4_hdmi_audio_init(struct vc
|
||||
vc4_hdmi->audio.dma_data.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
|
||||
vc4_hdmi->audio.dma_data.maxburst = 2;
|
||||
|
||||
|
@ -29,7 +29,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1738,6 +1744,7 @@ static int vc5_hdmi_init_resources(struc
|
||||
@@ -1740,6 +1746,7 @@ static int vc5_hdmi_init_resources(struc
|
||||
struct platform_device *pdev = vc4_hdmi->pdev;
|
||||
struct device *dev = &pdev->dev;
|
||||
struct resource *res;
|
||||
@ -37,7 +37,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "hdmi");
|
||||
if (!res)
|
||||
@@ -1828,6 +1835,38 @@ static int vc5_hdmi_init_resources(struc
|
||||
@@ -1830,6 +1837,38 @@ static int vc5_hdmi_init_resources(struc
|
||||
return PTR_ERR(vc4_hdmi->reset);
|
||||
}
|
||||
|
||||
|
@ -20,7 +20,7 @@ mechanism to be implemented for OS upgrades.
|
||||
|
||||
--- a/drivers/firmware/raspberrypi.c
|
||||
+++ b/drivers/firmware/raspberrypi.c
|
||||
@@ -194,6 +194,7 @@ static int rpi_firmware_notify_reboot(st
|
||||
@@ -195,6 +195,7 @@ static int rpi_firmware_notify_reboot(st
|
||||
{
|
||||
struct rpi_firmware *fw;
|
||||
struct platform_device *pdev = g_pdev;
|
||||
@ -28,7 +28,7 @@ mechanism to be implemented for OS upgrades.
|
||||
|
||||
if (!pdev)
|
||||
return 0;
|
||||
@@ -202,8 +203,28 @@ static int rpi_firmware_notify_reboot(st
|
||||
@@ -203,8 +204,28 @@ static int rpi_firmware_notify_reboot(st
|
||||
if (!fw)
|
||||
return 0;
|
||||
|
||||
|
@ -201,7 +201,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20201028123222.1732139-1-max
|
||||
|
||||
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
|
||||
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
|
||||
@@ -5642,17 +5642,19 @@ static void dm_update_crtc_active_planes
|
||||
@@ -5643,17 +5643,19 @@ static void dm_update_crtc_active_planes
|
||||
}
|
||||
|
||||
static int dm_crtc_helper_atomic_check(struct drm_crtc *crtc,
|
||||
@ -225,7 +225,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20201028123222.1732139-1-max
|
||||
WARN_ON(1);
|
||||
return ret;
|
||||
}
|
||||
@@ -5663,8 +5665,8 @@ static int dm_crtc_helper_atomic_check(s
|
||||
@@ -5664,8 +5666,8 @@ static int dm_crtc_helper_atomic_check(s
|
||||
* planes are disabled, which is not supported by the hardware. And there is legacy
|
||||
* userspace which stops using the HW cursor altogether in response to the resulting EINVAL.
|
||||
*/
|
||||
|
@ -27,7 +27,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
value |= clk_cnt << VC4_HDMI_CEC_DIV_CLK_CNT_SHIFT;
|
||||
HDMI_WRITE(HDMI_CEC_CNTRL_1, value);
|
||||
}
|
||||
@@ -1871,6 +1871,7 @@ static int vc4_hdmi_init_resources(struc
|
||||
@@ -1873,6 +1873,7 @@ static int vc4_hdmi_init_resources(struc
|
||||
return PTR_ERR(vc4_hdmi->hsm_clock);
|
||||
}
|
||||
vc4_hdmi->audio_clock = vc4_hdmi->hsm_clock;
|
||||
@ -35,7 +35,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1965,6 +1966,12 @@ static int vc5_hdmi_init_resources(struc
|
||||
@@ -1967,6 +1968,12 @@ static int vc5_hdmi_init_resources(struc
|
||||
return PTR_ERR(vc4_hdmi->audio_clock);
|
||||
}
|
||||
|
||||
|
@ -19,7 +19,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1575,15 +1575,22 @@ static int vc4_hdmi_audio_init(struct vc
|
||||
@@ -1577,15 +1577,22 @@ static int vc4_hdmi_audio_init(struct vc
|
||||
}
|
||||
|
||||
#ifdef CONFIG_DRM_VC4_HDMI_CEC
|
||||
@ -48,7 +48,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
cec_transmit_done(vc4_hdmi->cec_adap, CEC_TX_STATUS_OK,
|
||||
0, 0, 0, 0);
|
||||
} else {
|
||||
@@ -1597,6 +1604,19 @@ static irqreturn_t vc4_cec_irq_handler_t
|
||||
@@ -1599,6 +1606,19 @@ static irqreturn_t vc4_cec_irq_handler_t
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
@ -68,7 +68,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
static void vc4_cec_read_msg(struct vc4_hdmi *vc4_hdmi, u32 cntrl1)
|
||||
{
|
||||
struct drm_device *dev = vc4_hdmi->connector.dev;
|
||||
@@ -1621,31 +1641,55 @@ static void vc4_cec_read_msg(struct vc4_
|
||||
@@ -1623,31 +1643,55 @@ static void vc4_cec_read_msg(struct vc4_
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -20,7 +20,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1726,9 +1726,11 @@ static int vc4_hdmi_cec_adap_enable(stru
|
||||
@@ -1728,9 +1728,11 @@ static int vc4_hdmi_cec_adap_enable(stru
|
||||
((3600 / usecs) << VC4_HDMI_CEC_CNT_TO_3600_US_SHIFT) |
|
||||
((3500 / usecs) << VC4_HDMI_CEC_CNT_TO_3500_US_SHIFT));
|
||||
|
||||
@ -34,7 +34,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
HDMI_WRITE(HDMI_CEC_CNTRL_5, val |
|
||||
VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET);
|
||||
}
|
||||
@@ -1801,8 +1803,6 @@ static int vc4_hdmi_cec_init(struct vc4_
|
||||
@@ -1803,8 +1805,6 @@ static int vc4_hdmi_cec_init(struct vc4_
|
||||
cec_fill_conn_info_from_drm(&conn_info, &vc4_hdmi->connector);
|
||||
cec_s_conn_info(vc4_hdmi->cec_adap, &conn_info);
|
||||
|
||||
@ -43,7 +43,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
value = HDMI_READ(HDMI_CEC_CNTRL_1);
|
||||
/* Set the logical address to Unregistered */
|
||||
value |= VC4_HDMI_CEC_ADDR_MASK;
|
||||
@@ -1810,12 +1810,32 @@ static int vc4_hdmi_cec_init(struct vc4_
|
||||
@@ -1812,12 +1812,32 @@ static int vc4_hdmi_cec_init(struct vc4_
|
||||
|
||||
vc4_hdmi_cec_update_clk_div(vc4_hdmi);
|
||||
|
||||
@ -82,7 +82,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
ret = cec_register_adapter(vc4_hdmi->cec_adap, &pdev->dev);
|
||||
if (ret < 0)
|
||||
@@ -2290,6 +2310,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
@@ -2292,6 +2312,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
PHY_LANE_CK,
|
||||
},
|
||||
.unsupported_odd_h_timings = true,
|
||||
@ -90,7 +90,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
.init_resources = vc5_hdmi_init_resources,
|
||||
.csc_setup = vc5_hdmi_csc_setup,
|
||||
@@ -2316,6 +2337,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
@@ -2318,6 +2339,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
PHY_LANE_2,
|
||||
},
|
||||
.unsupported_odd_h_timings = true,
|
||||
|
@ -19,7 +19,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1788,9 +1788,15 @@ static int vc4_hdmi_cec_init(struct vc4_
|
||||
@@ -1790,9 +1790,15 @@ static int vc4_hdmi_cec_init(struct vc4_
|
||||
{
|
||||
struct cec_connector_info conn_info;
|
||||
struct platform_device *pdev = vc4_hdmi->pdev;
|
||||
|
@ -61,7 +61,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
}
|
||||
|
||||
static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder,
|
||||
@@ -2300,6 +2325,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
@@ -2302,6 +2327,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
.phy_rng_enable = vc4_hdmi_phy_rng_enable,
|
||||
.phy_rng_disable = vc4_hdmi_phy_rng_disable,
|
||||
.channel_map = vc4_hdmi_channel_map,
|
||||
@ -69,7 +69,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
};
|
||||
|
||||
static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = {
|
||||
@@ -2327,6 +2353,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
@@ -2329,6 +2355,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
.phy_rng_enable = vc5_hdmi_phy_rng_enable,
|
||||
.phy_rng_disable = vc5_hdmi_phy_rng_disable,
|
||||
.channel_map = vc5_hdmi_channel_map,
|
||||
@ -77,7 +77,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
};
|
||||
|
||||
static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = {
|
||||
@@ -2354,6 +2381,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
@@ -2356,6 +2383,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
.phy_rng_enable = vc5_hdmi_phy_rng_enable,
|
||||
.phy_rng_disable = vc5_hdmi_phy_rng_disable,
|
||||
.channel_map = vc5_hdmi_channel_map,
|
||||
|
@ -22,7 +22,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
|
||||
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
|
||||
@@ -6568,9 +6568,7 @@ void amdgpu_dm_connector_init_helper(str
|
||||
@@ -6569,9 +6569,7 @@ void amdgpu_dm_connector_init_helper(str
|
||||
if (connector_type == DRM_MODE_CONNECTOR_HDMIA ||
|
||||
connector_type == DRM_MODE_CONNECTOR_DisplayPort ||
|
||||
connector_type == DRM_MODE_CONNECTOR_eDP) {
|
||||
|
@ -21,7 +21,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
|
||||
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
|
||||
@@ -5513,25 +5513,6 @@ static int fill_hdr_info_packet(const st
|
||||
@@ -5514,25 +5514,6 @@ static int fill_hdr_info_packet(const st
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -47,7 +47,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
static int
|
||||
amdgpu_dm_connector_atomic_check(struct drm_connector *conn,
|
||||
struct drm_atomic_state *state)
|
||||
@@ -5547,7 +5528,7 @@ amdgpu_dm_connector_atomic_check(struct
|
||||
@@ -5548,7 +5529,7 @@ amdgpu_dm_connector_atomic_check(struct
|
||||
if (!crtc)
|
||||
return 0;
|
||||
|
||||
|
@ -18,7 +18,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1691,6 +1691,46 @@ static int vc4_hdmi_audio_init(struct vc
|
||||
@@ -1693,6 +1693,46 @@ static int vc4_hdmi_audio_init(struct vc
|
||||
|
||||
}
|
||||
|
||||
@ -65,7 +65,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
#ifdef CONFIG_DRM_VC4_HDMI_CEC
|
||||
static irqreturn_t vc4_cec_irq_handler_rx_thread(int irq, void *priv)
|
||||
{
|
||||
@@ -2319,6 +2359,10 @@ static int vc4_hdmi_bind(struct device *
|
||||
@@ -2321,6 +2361,10 @@ static int vc4_hdmi_bind(struct device *
|
||||
if (ret)
|
||||
goto err_destroy_encoder;
|
||||
|
||||
|
@ -70,7 +70,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder,
|
||||
struct drm_atomic_state *state)
|
||||
{
|
||||
@@ -2277,6 +2301,7 @@ static int vc4_hdmi_bind(struct device *
|
||||
@@ -2279,6 +2303,7 @@ static int vc4_hdmi_bind(struct device *
|
||||
vc4_hdmi = devm_kzalloc(dev, sizeof(*vc4_hdmi), GFP_KERNEL);
|
||||
if (!vc4_hdmi)
|
||||
return -ENOMEM;
|
||||
|
@ -11,7 +11,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1730,6 +1730,7 @@ static int vc4_hdmi_hotplug_init(struct
|
||||
@@ -1732,6 +1732,7 @@ static int vc4_hdmi_hotplug_init(struct
|
||||
{
|
||||
struct platform_device *pdev = vc4_hdmi->pdev;
|
||||
struct device *dev = &pdev->dev;
|
||||
|
@ -434,7 +434,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
const __be32 *addr;
|
||||
int index, len;
|
||||
int ret;
|
||||
@@ -1651,11 +1508,6 @@ static int vc4_hdmi_audio_init(struct vc
|
||||
@@ -1653,11 +1510,6 @@ static int vc4_hdmi_audio_init(struct vc
|
||||
vc4_hdmi->audio.dma_data.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
|
||||
vc4_hdmi->audio.dma_data.maxburst = 2;
|
||||
|
||||
@ -446,7 +446,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
ret = devm_snd_dmaengine_pcm_register(dev, &pcm_conf, 0);
|
||||
if (ret) {
|
||||
dev_err(dev, "Could not register PCM component: %d\n", ret);
|
||||
@@ -1669,12 +1521,13 @@ static int vc4_hdmi_audio_init(struct vc
|
||||
@@ -1671,12 +1523,13 @@ static int vc4_hdmi_audio_init(struct vc
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -466,7 +466,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
}
|
||||
|
||||
dai_link->cpus = &vc4_hdmi->audio.cpu;
|
||||
@@ -1687,9 +1540,9 @@ static int vc4_hdmi_audio_init(struct vc
|
||||
@@ -1689,9 +1542,9 @@ static int vc4_hdmi_audio_init(struct vc
|
||||
|
||||
dai_link->name = "MAI";
|
||||
dai_link->stream_name = "MAI PCM";
|
||||
|
@ -157,7 +157,7 @@ Signed-off-by: Joerg Quinten <aBUGSworstnightmare@gmail.com>
|
||||
static const struct drm_display_mode innolux_at070tn92_mode = {
|
||||
.clock = 33333,
|
||||
.hdisplay = 800,
|
||||
@@ -4087,6 +4119,9 @@ static const struct of_device_id platfor
|
||||
@@ -4090,6 +4122,9 @@ static const struct of_device_id platfor
|
||||
.compatible = "innolux,at043tn24",
|
||||
.data = &innolux_at043tn24,
|
||||
}, {
|
||||
|
@ -102,7 +102,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
static u32 vc4_hdmi_channel_map(struct vc4_hdmi *vc4_hdmi, u32 channel_mask)
|
||||
{
|
||||
int i;
|
||||
@@ -2338,6 +2355,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
@@ -2340,6 +2357,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
.phy_disable = vc4_hdmi_phy_disable,
|
||||
.phy_rng_enable = vc4_hdmi_phy_rng_enable,
|
||||
.phy_rng_disable = vc4_hdmi_phy_rng_disable,
|
||||
@ -110,7 +110,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
.channel_map = vc4_hdmi_channel_map,
|
||||
.supports_hdr = false,
|
||||
};
|
||||
@@ -2366,6 +2384,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
@@ -2368,6 +2386,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
.phy_disable = vc5_hdmi_phy_disable,
|
||||
.phy_rng_enable = vc5_hdmi_phy_rng_enable,
|
||||
.phy_rng_disable = vc5_hdmi_phy_rng_disable,
|
||||
@ -118,7 +118,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
.channel_map = vc5_hdmi_channel_map,
|
||||
.supports_hdr = true,
|
||||
};
|
||||
@@ -2394,6 +2413,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
@@ -2396,6 +2415,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
.phy_disable = vc5_hdmi_phy_disable,
|
||||
.phy_rng_enable = vc5_hdmi_phy_rng_enable,
|
||||
.phy_rng_disable = vc5_hdmi_phy_rng_disable,
|
||||
|
@ -15,7 +15,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1757,7 +1757,7 @@ static irqreturn_t vc4_cec_irq_handler(i
|
||||
@@ -1759,7 +1759,7 @@ static irqreturn_t vc4_cec_irq_handler(i
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -24,7 +24,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
{
|
||||
struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap);
|
||||
/* clock period in microseconds */
|
||||
@@ -1770,38 +1770,53 @@ static int vc4_hdmi_cec_adap_enable(stru
|
||||
@@ -1772,38 +1772,53 @@ static int vc4_hdmi_cec_adap_enable(stru
|
||||
val |= ((4700 / usecs) << VC4_HDMI_CEC_CNT_TO_4700_US_SHIFT) |
|
||||
((4500 / usecs) << VC4_HDMI_CEC_CNT_TO_4500_US_SHIFT);
|
||||
|
||||
|
@ -25,7 +25,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1898,25 +1898,23 @@ static int vc4_hdmi_cec_init(struct vc4_
|
||||
@@ -1900,25 +1900,23 @@ static int vc4_hdmi_cec_init(struct vc4_
|
||||
vc4_hdmi_cec_update_clk_div(vc4_hdmi);
|
||||
|
||||
if (vc4_hdmi->variant->external_irq_controller) {
|
||||
@ -55,7 +55,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
vc4_cec_irq_handler,
|
||||
vc4_cec_irq_handler_thread, 0,
|
||||
"vc4 hdmi cec", vc4_hdmi);
|
||||
@@ -1926,10 +1924,20 @@ static int vc4_hdmi_cec_init(struct vc4_
|
||||
@@ -1928,10 +1926,20 @@ static int vc4_hdmi_cec_init(struct vc4_
|
||||
|
||||
ret = cec_register_adapter(vc4_hdmi->cec_adap, &pdev->dev);
|
||||
if (ret < 0)
|
||||
@ -77,7 +77,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
err_delete_cec_adap:
|
||||
cec_delete_adapter(vc4_hdmi->cec_adap);
|
||||
|
||||
@@ -1938,6 +1946,15 @@ err_delete_cec_adap:
|
||||
@@ -1940,6 +1948,15 @@ err_delete_cec_adap:
|
||||
|
||||
static void vc4_hdmi_cec_exit(struct vc4_hdmi *vc4_hdmi)
|
||||
{
|
||||
|
@ -25,7 +25,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1613,26 +1613,28 @@ static irqreturn_t vc4_hdmi_hpd_irq_thre
|
||||
@@ -1615,26 +1615,28 @@ static irqreturn_t vc4_hdmi_hpd_irq_thre
|
||||
static int vc4_hdmi_hotplug_init(struct vc4_hdmi *vc4_hdmi)
|
||||
{
|
||||
struct platform_device *pdev = vc4_hdmi->pdev;
|
||||
@ -66,7 +66,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
connector->polled = DRM_CONNECTOR_POLL_HPD;
|
||||
}
|
||||
@@ -1640,6 +1642,16 @@ static int vc4_hdmi_hotplug_init(struct
|
||||
@@ -1642,6 +1644,16 @@ static int vc4_hdmi_hotplug_init(struct
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -83,7 +83,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
#ifdef CONFIG_DRM_VC4_HDMI_CEC
|
||||
static irqreturn_t vc4_cec_irq_handler_rx_thread(int irq, void *priv)
|
||||
{
|
||||
@@ -2307,7 +2319,7 @@ static int vc4_hdmi_bind(struct device *
|
||||
@@ -2309,7 +2321,7 @@ static int vc4_hdmi_bind(struct device *
|
||||
|
||||
ret = vc4_hdmi_cec_init(vc4_hdmi);
|
||||
if (ret)
|
||||
@ -92,7 +92,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
ret = vc4_hdmi_audio_init(vc4_hdmi);
|
||||
if (ret)
|
||||
@@ -2321,6 +2333,8 @@ static int vc4_hdmi_bind(struct device *
|
||||
@@ -2323,6 +2335,8 @@ static int vc4_hdmi_bind(struct device *
|
||||
|
||||
err_free_cec:
|
||||
vc4_hdmi_cec_exit(vc4_hdmi);
|
||||
@ -101,7 +101,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
err_destroy_conn:
|
||||
vc4_hdmi_connector_destroy(&vc4_hdmi->connector);
|
||||
err_destroy_encoder:
|
||||
@@ -2362,6 +2376,7 @@ static void vc4_hdmi_unbind(struct devic
|
||||
@@ -2364,6 +2378,7 @@ static void vc4_hdmi_unbind(struct devic
|
||||
kfree(vc4_hdmi->hd_regset.regs);
|
||||
|
||||
vc4_hdmi_cec_exit(vc4_hdmi);
|
||||
|
@ -24,7 +24,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1604,7 +1604,7 @@ static irqreturn_t vc4_hdmi_hpd_irq_thre
|
||||
@@ -1606,7 +1606,7 @@ static irqreturn_t vc4_hdmi_hpd_irq_thre
|
||||
struct vc4_hdmi *vc4_hdmi = priv;
|
||||
struct drm_device *dev = vc4_hdmi->connector.dev;
|
||||
|
||||
|
@ -42,7 +42,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20201211114237.213288-2-tomi
|
||||
|
||||
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
|
||||
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
|
||||
@@ -5029,7 +5029,6 @@ static void dm_disable_vblank(struct drm
|
||||
@@ -5030,7 +5030,6 @@ static void dm_disable_vblank(struct drm
|
||||
static const struct drm_crtc_funcs amdgpu_dm_crtc_funcs = {
|
||||
.reset = dm_crtc_reset_state,
|
||||
.destroy = amdgpu_dm_crtc_destroy,
|
||||
|
@ -18,7 +18,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -2297,6 +2297,18 @@ static int vc4_hdmi_bind(struct device *
|
||||
@@ -2299,6 +2299,18 @@ static int vc4_hdmi_bind(struct device *
|
||||
if (ret)
|
||||
goto err_put_ddc;
|
||||
|
||||
@ -37,7 +37,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
if (vc4_hdmi->variant->reset)
|
||||
vc4_hdmi->variant->reset(vc4_hdmi);
|
||||
|
||||
@@ -2308,8 +2320,6 @@ static int vc4_hdmi_bind(struct device *
|
||||
@@ -2310,8 +2322,6 @@ static int vc4_hdmi_bind(struct device *
|
||||
clk_prepare_enable(vc4_hdmi->pixel_bvb_clock);
|
||||
}
|
||||
|
||||
@ -46,7 +46,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
drm_simple_encoder_init(drm, encoder, DRM_MODE_ENCODER_TMDS);
|
||||
drm_encoder_helper_add(encoder, &vc4_hdmi_encoder_helper_funcs);
|
||||
|
||||
@@ -2333,6 +2343,8 @@ static int vc4_hdmi_bind(struct device *
|
||||
@@ -2335,6 +2345,8 @@ static int vc4_hdmi_bind(struct device *
|
||||
vc4_hdmi_debugfs_regs,
|
||||
vc4_hdmi);
|
||||
|
||||
@ -55,7 +55,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
return 0;
|
||||
|
||||
err_free_cec:
|
||||
@@ -2343,6 +2355,7 @@ err_destroy_conn:
|
||||
@@ -2345,6 +2357,7 @@ err_destroy_conn:
|
||||
vc4_hdmi_connector_destroy(&vc4_hdmi->connector);
|
||||
err_destroy_encoder:
|
||||
drm_encoder_cleanup(encoder);
|
||||
|
@ -396,7 +396,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
}
|
||||
--- a/net/ipv4/route.c
|
||||
+++ b/net/ipv4/route.c
|
||||
@@ -410,6 +410,9 @@ static struct pernet_operations ip_rt_pr
|
||||
@@ -411,6 +411,9 @@ static struct pernet_operations ip_rt_pr
|
||||
|
||||
static int __init ip_rt_proc_init(void)
|
||||
{
|
||||
|
@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if (!net_eq(dev_net(dev), sock_net(sk)))
|
||||
goto drop;
|
||||
|
||||
@@ -3346,6 +3348,7 @@ static int packet_create(struct net *net
|
||||
@@ -3345,6 +3347,7 @@ static int packet_create(struct net *net
|
||||
mutex_init(&po->pg_vec_lock);
|
||||
po->rollover = NULL;
|
||||
po->prot_hook.func = packet_rcv;
|
||||
@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
if (sock->type == SOCK_PACKET)
|
||||
po->prot_hook.func = packet_rcv_spkt;
|
||||
@@ -3986,6 +3989,16 @@ packet_setsockopt(struct socket *sock, i
|
||||
@@ -3985,6 +3988,16 @@ packet_setsockopt(struct socket *sock, i
|
||||
WRITE_ONCE(po->xmit, val ? packet_direct_xmit : dev_queue_xmit);
|
||||
return 0;
|
||||
}
|
||||
@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
default:
|
||||
return -ENOPROTOOPT;
|
||||
}
|
||||
@@ -4042,6 +4055,13 @@ static int packet_getsockopt(struct sock
|
||||
@@ -4041,6 +4054,13 @@ static int packet_getsockopt(struct sock
|
||||
case PACKET_VNET_HDR:
|
||||
val = po->has_vnet_hdr;
|
||||
break;
|
||||
|
@ -110,7 +110,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
return -EINVAL;
|
||||
--- a/net/ipv6/route.c
|
||||
+++ b/net/ipv6/route.c
|
||||
@@ -95,6 +95,8 @@ static int ip6_pkt_discard(struct sk_bu
|
||||
@@ -96,6 +96,8 @@ static int ip6_pkt_discard(struct sk_bu
|
||||
static int ip6_pkt_discard_out(struct net *net, struct sock *sk, struct sk_buff *skb);
|
||||
static int ip6_pkt_prohibit(struct sk_buff *skb);
|
||||
static int ip6_pkt_prohibit_out(struct net *net, struct sock *sk, struct sk_buff *skb);
|
||||
@ -119,7 +119,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
static void ip6_link_failure(struct sk_buff *skb);
|
||||
static void ip6_rt_update_pmtu(struct dst_entry *dst, struct sock *sk,
|
||||
struct sk_buff *skb, u32 mtu,
|
||||
@@ -310,6 +312,18 @@ static const struct rt6_info ip6_prohibi
|
||||
@@ -311,6 +313,18 @@ static const struct rt6_info ip6_prohibi
|
||||
.rt6i_flags = (RTF_REJECT | RTF_NONEXTHOP),
|
||||
};
|
||||
|
||||
@ -138,7 +138,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
static const struct rt6_info ip6_blk_hole_entry_template = {
|
||||
.dst = {
|
||||
.__refcnt = ATOMIC_INIT(1),
|
||||
@@ -1031,6 +1045,7 @@ static const int fib6_prop[RTN_MAX + 1]
|
||||
@@ -1032,6 +1046,7 @@ static const int fib6_prop[RTN_MAX + 1]
|
||||
[RTN_BLACKHOLE] = -EINVAL,
|
||||
[RTN_UNREACHABLE] = -EHOSTUNREACH,
|
||||
[RTN_PROHIBIT] = -EACCES,
|
||||
@ -146,7 +146,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
[RTN_THROW] = -EAGAIN,
|
||||
[RTN_NAT] = -EINVAL,
|
||||
[RTN_XRESOLVE] = -EINVAL,
|
||||
@@ -1066,6 +1081,10 @@ static void ip6_rt_init_dst_reject(struc
|
||||
@@ -1067,6 +1082,10 @@ static void ip6_rt_init_dst_reject(struc
|
||||
rt->dst.output = ip6_pkt_prohibit_out;
|
||||
rt->dst.input = ip6_pkt_prohibit;
|
||||
break;
|
||||
@ -157,7 +157,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
case RTN_THROW:
|
||||
case RTN_UNREACHABLE:
|
||||
default:
|
||||
@@ -4446,6 +4465,17 @@ static int ip6_pkt_prohibit_out(struct n
|
||||
@@ -4450,6 +4469,17 @@ static int ip6_pkt_prohibit_out(struct n
|
||||
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
|
||||
}
|
||||
|
||||
@ -175,7 +175,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
/*
|
||||
* Allocate a dst for local (unicast / anycast) address.
|
||||
*/
|
||||
@@ -4933,7 +4963,8 @@ static int rtm_to_fib6_config(struct sk_
|
||||
@@ -4937,7 +4967,8 @@ static int rtm_to_fib6_config(struct sk_
|
||||
if (rtm->rtm_type == RTN_UNREACHABLE ||
|
||||
rtm->rtm_type == RTN_BLACKHOLE ||
|
||||
rtm->rtm_type == RTN_PROHIBIT ||
|
||||
@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
cfg->fc_flags |= RTF_REJECT;
|
||||
|
||||
if (rtm->rtm_type == RTN_LOCAL)
|
||||
@@ -6126,6 +6157,8 @@ static int ip6_route_dev_notify(struct n
|
||||
@@ -6130,6 +6161,8 @@ static int ip6_route_dev_notify(struct n
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
|
||||
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
|
||||
@ -194,7 +194,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
|
||||
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
|
||||
#endif
|
||||
@@ -6137,6 +6170,7 @@ static int ip6_route_dev_notify(struct n
|
||||
@@ -6141,6 +6174,7 @@ static int ip6_route_dev_notify(struct n
|
||||
in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
|
||||
@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
|
||||
#endif
|
||||
}
|
||||
@@ -6328,6 +6362,8 @@ static int __net_init ip6_route_net_init
|
||||
@@ -6332,6 +6366,8 @@ static int __net_init ip6_route_net_init
|
||||
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
net->ipv6.fib6_has_custom_rules = false;
|
||||
@ -211,7 +211,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template,
|
||||
sizeof(*net->ipv6.ip6_prohibit_entry),
|
||||
GFP_KERNEL);
|
||||
@@ -6338,11 +6374,21 @@ static int __net_init ip6_route_net_init
|
||||
@@ -6342,11 +6378,21 @@ static int __net_init ip6_route_net_init
|
||||
ip6_template_metrics, true);
|
||||
INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached);
|
||||
|
||||
@ -234,7 +234,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
|
||||
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
|
||||
ip6_template_metrics, true);
|
||||
@@ -6369,6 +6415,8 @@ out:
|
||||
@@ -6373,6 +6419,8 @@ out:
|
||||
return ret;
|
||||
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
out_ip6_prohibit_entry:
|
||||
kfree(net->ipv6.ip6_prohibit_entry);
|
||||
out_ip6_null_entry:
|
||||
@@ -6388,6 +6436,7 @@ static void __net_exit ip6_route_net_exi
|
||||
@@ -6392,6 +6440,7 @@ static void __net_exit ip6_route_net_exi
|
||||
kfree(net->ipv6.ip6_null_entry);
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
kfree(net->ipv6.ip6_prohibit_entry);
|
||||
@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
kfree(net->ipv6.ip6_blk_hole_entry);
|
||||
#endif
|
||||
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
|
||||
@@ -6471,6 +6520,9 @@ void __init ip6_route_init_special_entri
|
||||
@@ -6475,6 +6524,9 @@ void __init ip6_route_init_special_entri
|
||||
init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
||||
init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
|
||||
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
||||
|
Loading…
Reference in New Issue
Block a user