mirror of
https://github.com/hanwckf/immortalwrt-mt798x.git
synced 2025-01-07 01:53:34 +08:00
kernel: bump to 5.4.243
Manually rebased: * bcm27xx/patches-5.4/950-0052-firmware-bcm2835-Support-ARCH_BCM270x.patch * bcm27xx/patches-5.4/950-0642-media-uapi-Add-MEDIA_BUS_FMT_SENSOR_DATA-media-bus-f.patch * bcm27xx/patches-5.4/950-0653-Revert-firmware-raspberrypi-register-clk-device.patch Refreshed all patches. Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
parent
32e60759e6
commit
25f66d9c49
@ -1,2 +1,2 @@
|
||||
LINUX_VERSION-5.4 = .242
|
||||
LINUX_KERNEL_HASH-5.4.242 = 142f9aed1c9f2e409dd72c5c490ad824dddf31f955ed2097d5989c4b5074fc28
|
||||
LINUX_VERSION-5.4 = .243
|
||||
LINUX_KERNEL_HASH-5.4.243 = c3cf664feeeee47e0f0c45c53705568f73692c37a3ff7f11c1b15e59610feb04
|
||||
|
@ -18,7 +18,7 @@ Subject: [PATCH] firmware: Updated mailbox header
|
||||
struct rpi_firmware;
|
||||
|
||||
enum rpi_firmware_property_status {
|
||||
@@ -159,5 +161,6 @@ static inline struct rpi_firmware *rpi_f
|
||||
@@ -169,5 +171,6 @@ static inline struct rpi_firmware *devm_
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
@ -14,7 +14,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
|
||||
|
||||
--- a/mm/page_alloc.c
|
||||
+++ b/mm/page_alloc.c
|
||||
@@ -8566,8 +8566,6 @@ int alloc_contig_range(unsigned long sta
|
||||
@@ -8582,8 +8582,6 @@ int alloc_contig_range(unsigned long sta
|
||||
|
||||
/* Make sure the range is really isolated. */
|
||||
if (test_pages_isolated(outer_start, end, false)) {
|
||||
|
@ -27,8 +27,8 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
|
||||
|
||||
--- a/drivers/firmware/raspberrypi.c
|
||||
+++ b/drivers/firmware/raspberrypi.c
|
||||
@@ -29,6 +29,8 @@ struct rpi_firmware {
|
||||
u32 enabled;
|
||||
@@ -32,6 +32,8 @@ struct rpi_firmware {
|
||||
struct kref consumers;
|
||||
};
|
||||
|
||||
+static struct platform_device *g_pdev;
|
||||
@ -36,32 +36,32 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
|
||||
static DEFINE_MUTEX(transaction_lock);
|
||||
|
||||
static void response_callback(struct mbox_client *cl, void *msg)
|
||||
@@ -238,6 +240,7 @@ static int rpi_firmware_probe(struct pla
|
||||
init_completion(&fw->c);
|
||||
@@ -269,6 +271,7 @@ static int rpi_firmware_probe(struct pla
|
||||
kref_init(&fw->consumers);
|
||||
|
||||
platform_set_drvdata(pdev, fw);
|
||||
+ g_pdev = pdev;
|
||||
|
||||
rpi_firmware_print_firmware_revision(fw);
|
||||
rpi_register_hwmon_driver(dev, fw);
|
||||
@@ -265,6 +268,7 @@ static int rpi_firmware_remove(struct pl
|
||||
platform_device_unregister(rpi_clk);
|
||||
@@ -297,6 +300,7 @@ static int rpi_firmware_remove(struct pl
|
||||
rpi_clk = NULL;
|
||||
mbox_free_channel(fw->chan);
|
||||
|
||||
rpi_firmware_put(fw);
|
||||
+ g_pdev = NULL;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -277,7 +281,7 @@ static int rpi_firmware_remove(struct pl
|
||||
@@ -311,7 +315,7 @@ static int rpi_firmware_remove(struct pl
|
||||
*/
|
||||
struct rpi_firmware *rpi_firmware_get(struct device_node *firmware_node)
|
||||
{
|
||||
- struct platform_device *pdev = of_find_device_by_node(firmware_node);
|
||||
+ struct platform_device *pdev = g_pdev;
|
||||
struct rpi_firmware *fw;
|
||||
|
||||
if (!pdev)
|
||||
return NULL;
|
||||
@@ -301,7 +305,18 @@ static struct platform_driver rpi_firmwa
|
||||
@@ -365,7 +369,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
|
||||
@@ -43,7 +43,7 @@ static void response_callback(struct mbo
|
||||
@@ -46,7 +46,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);
|
||||
@@ -68,6 +68,7 @@ rpi_firmware_transaction(struct rpi_firm
|
||||
@@ -71,6 +71,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/of_platform.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/slab.h>
|
||||
@ -21,7 +21,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
#include <soc/bcm2835/raspberrypi-firmware.h>
|
||||
|
||||
#define MBOX_MSG(chan, data28) (((data28) & ~0xf) | ((chan) & 0xf))
|
||||
@@ -177,6 +178,26 @@ int rpi_firmware_property(struct rpi_fir
|
||||
@@ -180,6 +181,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)
|
||||
{
|
||||
@@ -307,15 +328,32 @@ static struct platform_driver rpi_firmwa
|
||||
@@ -371,15 +392,32 @@ static struct platform_driver rpi_firmwa
|
||||
.remove = rpi_firmware_remove,
|
||||
};
|
||||
|
||||
|
@ -16,15 +16,15 @@ Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
|
||||
--- a/drivers/firmware/raspberrypi.c
|
||||
+++ b/drivers/firmware/raspberrypi.c
|
||||
@@ -28,6 +28,7 @@ struct rpi_firmware {
|
||||
struct mbox_chan *chan; /* The property channel. */
|
||||
struct completion c;
|
||||
@@ -31,6 +31,7 @@ struct rpi_firmware {
|
||||
u32 enabled;
|
||||
|
||||
struct kref consumers;
|
||||
+ u32 get_throttled;
|
||||
};
|
||||
|
||||
static struct platform_device *g_pdev;
|
||||
@@ -174,6 +175,12 @@ int rpi_firmware_property(struct rpi_fir
|
||||
@@ -177,6 +178,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);
|
||||
@@ -198,6 +205,27 @@ static int rpi_firmware_notify_reboot(st
|
||||
@@ -201,6 +208,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
|
||||
@@ -233,6 +261,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
|
||||
@@ -229,21 +229,55 @@ static const struct attribute_group rpi_
|
||||
@@ -232,21 +232,55 @@ static const struct attribute_group rpi_
|
||||
static void
|
||||
rpi_firmware_print_firmware_revision(struct rpi_firmware *fw)
|
||||
{
|
||||
@ -90,7 +90,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -298,6 +332,7 @@ static int rpi_firmware_probe(struct pla
|
||||
@@ -329,6 +363,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
|
||||
@@ -416,7 +416,7 @@ out2:
|
||||
@@ -480,7 +480,7 @@ out2:
|
||||
out1:
|
||||
return ret;
|
||||
}
|
||||
|
@ -15,11 +15,10 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
|
||||
|
||||
--- a/Documentation/media/uapi/v4l/subdev-formats.rst
|
||||
+++ b/Documentation/media/uapi/v4l/subdev-formats.rst
|
||||
@@ -7794,3 +7794,36 @@ formats.
|
||||
- 0x5001
|
||||
- Interleaved raw UYVY and JPEG image format with embedded meta-data
|
||||
used by Samsung S3C73MX camera sensors.
|
||||
+
|
||||
@@ -7821,3 +7821,35 @@ The following table lists the existing m
|
||||
both sides of the link and the bus format is a fixed
|
||||
metadata format that is not configurable from userspace.
|
||||
Width and height will be set to 0 for this format.
|
||||
+
|
||||
+
|
||||
+.. _v4l2-mbus-sensor-data:
|
||||
@ -54,11 +53,11 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
|
||||
+
|
||||
--- a/include/uapi/linux/media-bus-format.h
|
||||
+++ b/include/uapi/linux/media-bus-format.h
|
||||
@@ -155,4 +155,7 @@
|
||||
/* HSV - next is 0x6002 */
|
||||
#define MEDIA_BUS_FMT_AHSV8888_1X32 0x6001
|
||||
@@ -163,4 +163,7 @@
|
||||
*/
|
||||
#define MEDIA_BUS_FMT_METADATA_FIXED 0x7001
|
||||
|
||||
+/* Sensor ancillary metadata formats - next is 0x7002 */
|
||||
+#define MEDIA_BUS_FMT_SENSOR_DATA 0x7001
|
||||
+#define MEDIA_BUS_FMT_SENSOR_DATA 0x7002
|
||||
+
|
||||
#endif /* __LINUX_MEDIA_BUS_FORMAT_H */
|
||||
|
@ -18,7 +18,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/drivers/firmware/raspberrypi.c
|
||||
+++ b/drivers/firmware/raspberrypi.c
|
||||
@@ -21,7 +21,6 @@
|
||||
@@ -22,7 +22,6 @@
|
||||
#define MBOX_CHAN_PROPERTY 8
|
||||
|
||||
static struct platform_device *rpi_hwmon;
|
||||
@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
struct rpi_firmware {
|
||||
struct mbox_client cl;
|
||||
@@ -299,12 +298,6 @@ rpi_register_hwmon_driver(struct device
|
||||
@@ -302,12 +301,6 @@ rpi_register_hwmon_driver(struct device
|
||||
}
|
||||
}
|
||||
|
||||
@ -36,10 +36,10 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
- -1, NULL, 0);
|
||||
-}
|
||||
-
|
||||
static int rpi_firmware_probe(struct platform_device *pdev)
|
||||
static void rpi_firmware_delete(struct kref *kref)
|
||||
{
|
||||
struct device *dev = &pdev->dev;
|
||||
@@ -334,7 +327,6 @@ static int rpi_firmware_probe(struct pla
|
||||
struct rpi_firmware *fw = container_of(kref, struct rpi_firmware,
|
||||
@@ -365,7 +358,6 @@ static int rpi_firmware_probe(struct pla
|
||||
rpi_firmware_print_firmware_revision(fw);
|
||||
rpi_firmware_print_firmware_hash(fw);
|
||||
rpi_register_hwmon_driver(dev, fw);
|
||||
@ -47,12 +47,12 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -355,8 +347,6 @@ static int rpi_firmware_remove(struct pl
|
||||
@@ -386,8 +378,6 @@ static int rpi_firmware_remove(struct pl
|
||||
|
||||
platform_device_unregister(rpi_hwmon);
|
||||
rpi_hwmon = NULL;
|
||||
- platform_device_unregister(rpi_clk);
|
||||
- rpi_clk = NULL;
|
||||
mbox_free_channel(fw->chan);
|
||||
g_pdev = NULL;
|
||||
|
||||
rpi_firmware_put(fw);
|
||||
g_pdev = NULL;
|
||||
|
@ -20,7 +20,7 @@ mechanism to be implemented for OS upgrades.
|
||||
|
||||
--- a/drivers/firmware/raspberrypi.c
|
||||
+++ b/drivers/firmware/raspberrypi.c
|
||||
@@ -190,6 +190,7 @@ static int rpi_firmware_notify_reboot(st
|
||||
@@ -193,6 +193,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;
|
||||
@@ -198,8 +199,28 @@ static int rpi_firmware_notify_reboot(st
|
||||
@@ -201,8 +202,28 @@ static int rpi_firmware_notify_reboot(st
|
||||
if (!fw)
|
||||
return 0;
|
||||
|
||||
|
@ -202,7 +202,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
}
|
||||
--- a/drivers/net/dsa/mv88e6xxx/chip.c
|
||||
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
|
||||
@@ -4883,7 +4883,8 @@ static struct mv88e6xxx_chip *mv88e6xxx_
|
||||
@@ -4884,7 +4884,8 @@ static struct mv88e6xxx_chip *mv88e6xxx_
|
||||
}
|
||||
|
||||
static enum dsa_tag_protocol mv88e6xxx_get_tag_protocol(struct dsa_switch *ds,
|
||||
|
@ -25,7 +25,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/drivers/net/dsa/mv88e6xxx/chip.c
|
||||
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
|
||||
@@ -4934,6 +4934,80 @@ static int mv88e6xxx_port_mdb_del(struct
|
||||
@@ -4935,6 +4935,80 @@ static int mv88e6xxx_port_mdb_del(struct
|
||||
return err;
|
||||
}
|
||||
|
||||
@ -106,7 +106,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
static int mv88e6xxx_port_egress_floods(struct dsa_switch *ds, int port,
|
||||
bool unicast, bool multicast)
|
||||
{
|
||||
@@ -4988,6 +5062,8 @@ static const struct dsa_switch_ops mv88e
|
||||
@@ -4989,6 +5063,8 @@ static const struct dsa_switch_ops mv88e
|
||||
.port_mdb_prepare = mv88e6xxx_port_mdb_prepare,
|
||||
.port_mdb_add = mv88e6xxx_port_mdb_add,
|
||||
.port_mdb_del = mv88e6xxx_port_mdb_del,
|
||||
|
@ -19,7 +19,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/drivers/net/dsa/mv88e6xxx/chip.c
|
||||
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
|
||||
@@ -5001,7 +5001,7 @@ static void mv88e6xxx_port_mirror_del(st
|
||||
@@ -5002,7 +5002,7 @@ static void mv88e6xxx_port_mirror_del(st
|
||||
if (chip->info->ops->set_egress_port(chip,
|
||||
direction,
|
||||
dsa_upstream_port(ds,
|
||||
|
@ -18,7 +18,7 @@
|
||||
|
||||
/* 4G Systems products */
|
||||
/* This one was sold as the VW and Skoda "Carstick LTE" */
|
||||
@@ -612,6 +613,16 @@ static void option_instat_callback(struc
|
||||
@@ -617,6 +618,16 @@ static void option_instat_callback(struc
|
||||
/* Device needs ZLP */
|
||||
#define ZLP BIT(17)
|
||||
|
||||
@ -35,7 +35,7 @@
|
||||
|
||||
static const struct usb_device_id option_ids[] = {
|
||||
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
|
||||
@@ -646,6 +657,8 @@ static const struct usb_device_id option
|
||||
@@ -651,6 +662,8 @@ static const struct usb_device_id option
|
||||
{ USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GLE) },
|
||||
{ USB_DEVICE(QUANTA_VENDOR_ID, 0xea42),
|
||||
.driver_info = RSVD(4) },
|
||||
|
@ -71,7 +71,7 @@ Signed-off-by: Tobias Wolf <dev-NTEO@vplace.de>
|
||||
|
||||
--- a/mm/page_alloc.c
|
||||
+++ b/mm/page_alloc.c
|
||||
@@ -6931,7 +6931,7 @@ static void __ref alloc_node_mem_map(str
|
||||
@@ -6947,7 +6947,7 @@ static void __ref alloc_node_mem_map(str
|
||||
mem_map = NODE_DATA(0)->node_mem_map;
|
||||
#if defined(CONFIG_HAVE_MEMBLOCK_NODE_MAP) || defined(CONFIG_FLATMEM)
|
||||
if (page_to_pfn(mem_map) != pgdat->node_start_pfn)
|
||||
|
@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
#define PACKET_FANOUT_LB 1
|
||||
--- a/net/packet/af_packet.c
|
||||
+++ b/net/packet/af_packet.c
|
||||
@@ -1801,6 +1801,7 @@ static int packet_rcv_spkt(struct sk_buf
|
||||
@@ -1802,6 +1802,7 @@ static int packet_rcv_spkt(struct sk_buf
|
||||
{
|
||||
struct sock *sk;
|
||||
struct sockaddr_pkt *spkt;
|
||||
@ -38,7 +38,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
/*
|
||||
* When we registered the protocol we saved the socket in the data
|
||||
@@ -1808,6 +1809,7 @@ static int packet_rcv_spkt(struct sk_buf
|
||||
@@ -1809,6 +1810,7 @@ static int packet_rcv_spkt(struct sk_buf
|
||||
*/
|
||||
|
||||
sk = pt->af_packet_priv;
|
||||
@ -46,7 +46,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
/*
|
||||
* Yank back the headers [hope the device set this
|
||||
@@ -1820,7 +1822,7 @@ static int packet_rcv_spkt(struct sk_buf
|
||||
@@ -1821,7 +1823,7 @@ static int packet_rcv_spkt(struct sk_buf
|
||||
* so that this procedure is noop.
|
||||
*/
|
||||
|
||||
@ -55,7 +55,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
goto out;
|
||||
|
||||
if (!net_eq(dev_net(dev), sock_net(sk)))
|
||||
@@ -2068,12 +2070,12 @@ static int packet_rcv(struct sk_buff *sk
|
||||
@@ -2069,12 +2071,12 @@ static int packet_rcv(struct sk_buff *sk
|
||||
unsigned int snaplen, res;
|
||||
bool is_drop_n_account = false;
|
||||
|
||||
@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if (!net_eq(dev_net(dev), sock_net(sk)))
|
||||
goto drop;
|
||||
|
||||
@@ -2199,12 +2201,12 @@ static int tpacket_rcv(struct sk_buff *s
|
||||
@@ -2200,12 +2202,12 @@ static int tpacket_rcv(struct sk_buff *s
|
||||
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
|
||||
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
|
||||
|
||||
@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if (!net_eq(dev_net(dev), sock_net(sk)))
|
||||
goto drop;
|
||||
|
||||
@@ -3310,6 +3312,7 @@ static int packet_create(struct net *net
|
||||
@@ -3313,6 +3315,7 @@ static int packet_create(struct net *net
|
||||
mutex_init(&po->pg_vec_lock);
|
||||
po->rollover = NULL;
|
||||
po->prot_hook.func = packet_rcv;
|
||||
@ -96,7 +96,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if (sock->type == SOCK_PACKET)
|
||||
po->prot_hook.func = packet_rcv_spkt;
|
||||
@@ -3952,6 +3955,16 @@ packet_setsockopt(struct socket *sock, i
|
||||
po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
|
||||
WRITE_ONCE(po->xmit, val ? packet_direct_xmit : dev_queue_xmit);
|
||||
return 0;
|
||||
}
|
||||
+ case PACKET_RECV_TYPE:
|
||||
@ -128,7 +128,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
break;
|
||||
--- a/net/packet/internal.h
|
||||
+++ b/net/packet/internal.h
|
||||
@@ -136,6 +136,7 @@ struct packet_sock {
|
||||
@@ -135,6 +135,7 @@ struct packet_sock {
|
||||
int (*xmit)(struct sk_buff *skb);
|
||||
struct packet_type prot_hook ____cacheline_aligned_in_smp;
|
||||
atomic_t tp_drops ____cacheline_aligned_in_smp;
|
||||
|
@ -506,7 +506,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
+MODULE_ALIAS("nf-flow-table-hw");
|
||||
--- a/net/netfilter/nf_tables_api.c
|
||||
+++ b/net/netfilter/nf_tables_api.c
|
||||
@@ -5758,6 +5758,13 @@ static int nf_tables_flowtable_parse_hoo
|
||||
@@ -5770,6 +5770,13 @@ static int nf_tables_flowtable_parse_hoo
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
@ -520,7 +520,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
ops = kcalloc(n, sizeof(struct nf_hook_ops), GFP_KERNEL);
|
||||
if (!ops)
|
||||
return -ENOMEM;
|
||||
@@ -5888,10 +5895,19 @@ static int nf_tables_newflowtable(struct
|
||||
@@ -5900,10 +5907,19 @@ static int nf_tables_newflowtable(struct
|
||||
}
|
||||
|
||||
flowtable->data.type = type;
|
||||
@ -540,7 +540,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
err = nf_tables_flowtable_parse_hook(&ctx, nla[NFTA_FLOWTABLE_HOOK],
|
||||
flowtable);
|
||||
if (err < 0)
|
||||
@@ -6017,7 +6033,8 @@ static int nf_tables_fill_flowtable_info
|
||||
@@ -6029,7 +6045,8 @@ static int nf_tables_fill_flowtable_info
|
||||
nla_put_string(skb, NFTA_FLOWTABLE_NAME, flowtable->name) ||
|
||||
nla_put_be32(skb, NFTA_FLOWTABLE_USE, htonl(flowtable->use)) ||
|
||||
nla_put_be64(skb, NFTA_FLOWTABLE_HANDLE, cpu_to_be64(flowtable->handle),
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
|
||||
|
||||
--- a/drivers/net/dsa/mv88e6xxx/chip.c
|
||||
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
|
||||
@@ -5088,6 +5088,7 @@ static int mv88e6xxx_register_switch(str
|
||||
@@ -5089,6 +5089,7 @@ static int mv88e6xxx_register_switch(str
|
||||
ds->ops = &mv88e6xxx_switch_ops;
|
||||
ds->ageing_time_min = chip->info->age_time_coeff;
|
||||
ds->ageing_time_max = chip->info->age_time_coeff * U8_MAX;
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/drivers/firmware/qcom_scm.c
|
||||
+++ b/drivers/firmware/qcom_scm.c
|
||||
@@ -598,6 +598,7 @@ static const struct of_device_id qcom_sc
|
||||
@@ -597,6 +597,7 @@ static const struct of_device_id qcom_sc
|
||||
SCM_HAS_BUS_CLK)
|
||||
},
|
||||
{ .compatible = "qcom,scm-ipq4019" },
|
||||
|
@ -14,7 +14,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
|
||||
--- a/drivers/mmc/host/sdhci-of-esdhc.c
|
||||
+++ b/drivers/mmc/host/sdhci-of-esdhc.c
|
||||
@@ -596,6 +596,32 @@ static void esdhc_clock_enable(struct sd
|
||||
@@ -594,6 +594,32 @@ static void esdhc_clock_enable(struct sd
|
||||
}
|
||||
}
|
||||
|
||||
@ -47,7 +47,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
static void esdhc_of_set_clock(struct sdhci_host *host, unsigned int clock)
|
||||
{
|
||||
struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
|
||||
@@ -688,9 +714,7 @@ static void esdhc_of_set_clock(struct sd
|
||||
@@ -686,9 +712,7 @@ static void esdhc_of_set_clock(struct sd
|
||||
sdhci_writel(host, temp | ESDHC_HS400_WNDW_ADJUST, ESDHC_TBCTL);
|
||||
|
||||
esdhc_clock_enable(host, false);
|
||||
@ -58,7 +58,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
}
|
||||
|
||||
/* Wait max 20 ms */
|
||||
@@ -893,10 +917,7 @@ static void esdhc_tuning_block_enable(st
|
||||
@@ -891,10 +915,7 @@ static void esdhc_tuning_block_enable(st
|
||||
u32 val;
|
||||
|
||||
esdhc_clock_enable(host, false);
|
||||
|
@ -15,7 +15,7 @@ Acked-by: Adrian Hunter <adrian.hunter@intel.com>
|
||||
|
||||
--- a/drivers/mmc/host/sdhci-of-esdhc.c
|
||||
+++ b/drivers/mmc/host/sdhci-of-esdhc.c
|
||||
@@ -929,20 +929,11 @@ static void esdhc_tuning_block_enable(st
|
||||
@@ -927,20 +927,11 @@ static void esdhc_tuning_block_enable(st
|
||||
esdhc_clock_enable(host, true);
|
||||
}
|
||||
|
||||
@ -37,7 +37,7 @@ Acked-by: Adrian Hunter <adrian.hunter@intel.com>
|
||||
/* Write TBCTL[11:8]=4'h8 */
|
||||
val = sdhci_readl(host, ESDHC_TBCTL);
|
||||
val &= ~(0xf << 8);
|
||||
@@ -961,6 +952,25 @@ static void esdhc_prepare_sw_tuning(stru
|
||||
@@ -959,6 +950,25 @@ static void esdhc_prepare_sw_tuning(stru
|
||||
val = sdhci_readl(host, ESDHC_TBSTAT);
|
||||
val = sdhci_readl(host, ESDHC_TBSTAT);
|
||||
|
||||
@ -63,7 +63,7 @@ Acked-by: Adrian Hunter <adrian.hunter@intel.com>
|
||||
/* Reset data lines by setting ESDHCCTL[RSTD] */
|
||||
sdhci_reset(host, SDHCI_RESET_DATA);
|
||||
/* Write 32'hFFFF_FFFF to IRQSTAT register */
|
||||
@@ -971,10 +981,8 @@ static void esdhc_prepare_sw_tuning(stru
|
||||
@@ -969,10 +979,8 @@ static void esdhc_prepare_sw_tuning(stru
|
||||
* then program TBPTR[TB_WNDW_END_PTR] = 4 * div_ratio
|
||||
* and program TBPTR[TB_WNDW_START_PTR] = 8 * div_ratio.
|
||||
*/
|
||||
|
@ -20,7 +20,7 @@ Acked-by: Adrian Hunter <adrian.hunter@intel.com>
|
||||
|
||||
--- a/drivers/mmc/host/sdhci-of-esdhc.c
|
||||
+++ b/drivers/mmc/host/sdhci-of-esdhc.c
|
||||
@@ -895,20 +895,20 @@ static int esdhc_signal_voltage_switch(s
|
||||
@@ -893,20 +893,20 @@ static int esdhc_signal_voltage_switch(s
|
||||
}
|
||||
|
||||
static struct soc_device_attribute soc_tuning_erratum_type1[] = {
|
||||
@ -51,7 +51,7 @@ Acked-by: Adrian Hunter <adrian.hunter@intel.com>
|
||||
{ },
|
||||
};
|
||||
|
||||
@@ -976,13 +976,13 @@ static void esdhc_prepare_sw_tuning(stru
|
||||
@@ -974,13 +974,13 @@ static void esdhc_prepare_sw_tuning(stru
|
||||
/* Write 32'hFFFF_FFFF to IRQSTAT register */
|
||||
sdhci_writel(host, 0xFFFFFFFF, SDHCI_INT_STATUS);
|
||||
|
||||
@ -68,7 +68,7 @@ Acked-by: Adrian Hunter <adrian.hunter@intel.com>
|
||||
*window_start = 8 * esdhc->div_ratio;
|
||||
*window_end = 4 * esdhc->div_ratio;
|
||||
} else {
|
||||
@@ -1066,6 +1066,19 @@ static int esdhc_execute_tuning(struct m
|
||||
@@ -1064,6 +1064,19 @@ static int esdhc_execute_tuning(struct m
|
||||
if (ret)
|
||||
break;
|
||||
|
||||
|
@ -299,7 +299,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
struct tty_port *port = &sport->port.state->port;
|
||||
struct tty_struct *tty = port->tty;
|
||||
@@ -1183,6 +1308,18 @@ static inline int lpuart_start_rx_dma(st
|
||||
sport->rx_dma_rng_buf_len = (1 << (fls(sport->rx_dma_rng_buf_len) - 1));
|
||||
sport->rx_dma_rng_buf_len = (1 << fls(sport->rx_dma_rng_buf_len));
|
||||
if (sport->rx_dma_rng_buf_len < 16)
|
||||
sport->rx_dma_rng_buf_len = 16;
|
||||
+}
|
||||
|
@ -109,7 +109,7 @@ Reviewed-by: Jun Li <jun.li@nxp.com>
|
||||
usb_phy_set_suspend(dwc->usb2_phy, 0);
|
||||
usb_phy_set_suspend(dwc->usb3_phy, 0);
|
||||
ret = phy_power_on(dwc->usb2_generic_phy);
|
||||
@@ -1938,12 +1990,9 @@ static const struct dev_pm_ops dwc3_dev_
|
||||
@@ -1935,12 +1987,9 @@ static const struct dev_pm_ops dwc3_dev_
|
||||
|
||||
#ifdef CONFIG_OF
|
||||
static const struct of_device_id of_dwc3_match[] = {
|
||||
|
@ -81,7 +81,7 @@ Signed-off-by: Ran Wang <ran.wang_1@nxp.com>
|
||||
usb_phy_set_suspend(dwc->usb2_phy, 0);
|
||||
usb_phy_set_suspend(dwc->usb3_phy, 0);
|
||||
ret = phy_power_on(dwc->usb2_generic_phy);
|
||||
@@ -1990,9 +1938,12 @@ static const struct dev_pm_ops dwc3_dev_
|
||||
@@ -1987,9 +1935,12 @@ static const struct dev_pm_ops dwc3_dev_
|
||||
|
||||
#ifdef CONFIG_OF
|
||||
static const struct of_device_id of_dwc3_match[] = {
|
||||
|
@ -108,7 +108,7 @@ Reviewed-by: Jun Li <jun.li@nxp.com>
|
||||
usb_phy_set_suspend(dwc->usb2_phy, 0);
|
||||
usb_phy_set_suspend(dwc->usb3_phy, 0);
|
||||
ret = phy_power_on(dwc->usb2_generic_phy);
|
||||
@@ -1938,12 +1989,16 @@ static const struct dev_pm_ops dwc3_dev_
|
||||
@@ -1935,12 +1986,16 @@ static const struct dev_pm_ops dwc3_dev_
|
||||
|
||||
#ifdef CONFIG_OF
|
||||
static const struct of_device_id of_dwc3_match[] = {
|
||||
|
@ -362,7 +362,7 @@
|
||||
EIP197_HIA_RDR(priv, ring) + EIP197_HIA_xDR_PROC_COUNT);
|
||||
|
||||
/* If the number of requests overflowed the counter, try to proceed more
|
||||
@@ -1171,6 +1216,44 @@ static struct safexcel_alg_template *saf
|
||||
@@ -1176,6 +1221,44 @@ static struct safexcel_alg_template *saf
|
||||
&safexcel_alg_xts_aes,
|
||||
&safexcel_alg_gcm,
|
||||
&safexcel_alg_ccm,
|
||||
@ -407,7 +407,7 @@
|
||||
};
|
||||
|
||||
static int safexcel_register_algorithms(struct safexcel_crypto_priv *priv)
|
||||
@@ -1240,30 +1323,30 @@ static void safexcel_unregister_algorith
|
||||
@@ -1245,30 +1328,30 @@ static void safexcel_unregister_algorith
|
||||
|
||||
static void safexcel_configure(struct safexcel_crypto_priv *priv)
|
||||
{
|
||||
@ -457,7 +457,7 @@
|
||||
}
|
||||
|
||||
static void safexcel_init_register_offsets(struct safexcel_crypto_priv *priv)
|
||||
@@ -1309,7 +1392,7 @@ static int safexcel_probe_generic(void *
|
||||
@@ -1314,7 +1397,7 @@ static int safexcel_probe_generic(void *
|
||||
int is_pci_dev)
|
||||
{
|
||||
struct device *dev = priv->dev;
|
||||
@ -466,7 +466,7 @@
|
||||
int i, ret, hwctg;
|
||||
|
||||
priv->context_pool = dmam_pool_create("safexcel-context", dev,
|
||||
@@ -1371,13 +1454,16 @@ static int safexcel_probe_generic(void *
|
||||
@@ -1376,13 +1459,16 @@ static int safexcel_probe_generic(void *
|
||||
*/
|
||||
version = readl(EIP197_GLOBAL(priv) + EIP197_VERSION);
|
||||
if (((priv->flags & SAFEXCEL_HW_EIP197) &&
|
||||
@ -484,7 +484,7 @@
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
@@ -1385,6 +1471,14 @@ static int safexcel_probe_generic(void *
|
||||
@@ -1390,6 +1476,14 @@ static int safexcel_probe_generic(void *
|
||||
hwctg = version >> 28;
|
||||
peid = version & 255;
|
||||
|
||||
@ -499,7 +499,7 @@
|
||||
/* Detect EIP96 packet engine and version */
|
||||
version = readl(EIP197_PE(priv) + EIP197_PE_EIP96_VERSION(0));
|
||||
if (EIP197_REG_LO16(version) != EIP96_VERSION_LE) {
|
||||
@@ -1393,10 +1487,13 @@ static int safexcel_probe_generic(void *
|
||||
@@ -1398,10 +1492,13 @@ static int safexcel_probe_generic(void *
|
||||
}
|
||||
priv->hwconfig.pever = EIP197_VERSION_MASK(version);
|
||||
|
||||
@ -513,7 +513,7 @@
|
||||
priv->hwconfig.hwdataw = (hiaopt >> EIP197_HWDATAW_OFFSET) &
|
||||
EIP197_HWDATAW_MASK;
|
||||
priv->hwconfig.hwcfsize = ((hiaopt >> EIP197_CFSIZE_OFFSET) &
|
||||
@@ -1405,6 +1502,19 @@ static int safexcel_probe_generic(void *
|
||||
@@ -1410,6 +1507,19 @@ static int safexcel_probe_generic(void *
|
||||
priv->hwconfig.hwrfsize = ((hiaopt >> EIP197_RFSIZE_OFFSET) &
|
||||
EIP197_RFSIZE_MASK) +
|
||||
EIP197_RFSIZE_ADJUST;
|
||||
@ -533,7 +533,7 @@
|
||||
} else {
|
||||
/* EIP97 */
|
||||
priv->hwconfig.hwdataw = (hiaopt >> EIP197_HWDATAW_OFFSET) &
|
||||
@@ -1413,6 +1523,23 @@ static int safexcel_probe_generic(void *
|
||||
@@ -1418,6 +1528,23 @@ static int safexcel_probe_generic(void *
|
||||
EIP97_CFSIZE_MASK;
|
||||
priv->hwconfig.hwrfsize = (hiaopt >> EIP97_RFSIZE_OFFSET) &
|
||||
EIP97_RFSIZE_MASK;
|
||||
@ -557,7 +557,7 @@
|
||||
}
|
||||
|
||||
/* Get supported algorithms from EIP96 transform engine */
|
||||
@@ -1420,10 +1547,12 @@ static int safexcel_probe_generic(void *
|
||||
@@ -1425,10 +1552,12 @@ static int safexcel_probe_generic(void *
|
||||
EIP197_PE_EIP96_OPTIONS(0));
|
||||
|
||||
/* Print single info line describing what we just detected */
|
||||
@ -574,7 +574,7 @@
|
||||
priv->hwconfig.algo_flags);
|
||||
|
||||
safexcel_configure(priv);
|
||||
@@ -1547,7 +1676,6 @@ static void safexcel_hw_reset_rings(stru
|
||||
@@ -1571,7 +1700,6 @@ static void safexcel_hw_reset_rings(stru
|
||||
}
|
||||
}
|
||||
|
||||
@ -582,15 +582,15 @@
|
||||
/* for Device Tree platform driver */
|
||||
|
||||
static int safexcel_probe(struct platform_device *pdev)
|
||||
@@ -1625,6 +1753,7 @@ static int safexcel_remove(struct platfo
|
||||
@@ -1649,6 +1777,7 @@ static int safexcel_remove(struct platfo
|
||||
safexcel_unregister_algorithms(priv);
|
||||
safexcel_hw_reset_rings(priv);
|
||||
|
||||
+ clk_disable_unprepare(priv->reg_clk);
|
||||
clk_disable_unprepare(priv->clk);
|
||||
|
||||
for (i = 0; i < priv->config.rings; i++)
|
||||
@@ -1668,9 +1797,7 @@ static struct platform_driver crypto_sa
|
||||
for (i = 0; i < priv->config.rings; i++) {
|
||||
@@ -1694,9 +1823,7 @@ static struct platform_driver crypto_sa
|
||||
.of_match_table = safexcel_of_match_table,
|
||||
},
|
||||
};
|
||||
@ -600,7 +600,7 @@
|
||||
/* PCIE devices - i.e. Inside Secure development boards */
|
||||
|
||||
static int safexcel_pci_probe(struct pci_dev *pdev,
|
||||
@@ -1761,7 +1888,7 @@ static int safexcel_pci_probe(struct pci
|
||||
@@ -1787,7 +1914,7 @@ static int safexcel_pci_probe(struct pci
|
||||
return rc;
|
||||
}
|
||||
|
||||
@ -609,7 +609,7 @@
|
||||
{
|
||||
struct safexcel_crypto_priv *priv = pci_get_drvdata(pdev);
|
||||
int i;
|
||||
@@ -1791,54 +1918,32 @@ static struct pci_driver safexcel_pci_dr
|
||||
@@ -1817,54 +1944,32 @@ static struct pci_driver safexcel_pci_dr
|
||||
.probe = safexcel_pci_probe,
|
||||
.remove = safexcel_pci_remove,
|
||||
};
|
||||
@ -3371,7 +3371,7 @@
|
||||
};
|
||||
|
||||
struct safexcel_work_data {
|
||||
@@ -654,6 +721,12 @@ enum safexcel_eip_version {
|
||||
@@ -657,6 +724,12 @@ enum safexcel_eip_version {
|
||||
/* Priority we use for advertising our algorithms */
|
||||
#define SAFEXCEL_CRA_PRIORITY 300
|
||||
|
||||
@ -3384,7 +3384,7 @@
|
||||
/* EIP algorithm presence flags */
|
||||
enum safexcel_eip_algorithms {
|
||||
SAFEXCEL_ALG_BC0 = BIT(5),
|
||||
@@ -697,16 +770,23 @@ struct safexcel_register_offsets {
|
||||
@@ -700,16 +773,23 @@ struct safexcel_register_offsets {
|
||||
enum safexcel_flags {
|
||||
EIP197_TRC_CACHE = BIT(0),
|
||||
SAFEXCEL_HW_EIP197 = BIT(1),
|
||||
@ -3408,7 +3408,7 @@
|
||||
};
|
||||
|
||||
struct safexcel_crypto_priv {
|
||||
@@ -778,7 +858,7 @@ struct safexcel_inv_result {
|
||||
@@ -781,7 +861,7 @@ struct safexcel_inv_result {
|
||||
|
||||
void safexcel_dequeue(struct safexcel_crypto_priv *priv, int ring);
|
||||
int safexcel_rdesc_check_errors(struct safexcel_crypto_priv *priv,
|
||||
@ -3417,7 +3417,7 @@
|
||||
void safexcel_complete(struct safexcel_crypto_priv *priv, int ring);
|
||||
int safexcel_invalidate_cache(struct crypto_async_request *async,
|
||||
struct safexcel_crypto_priv *priv,
|
||||
@@ -797,7 +877,8 @@ struct safexcel_command_desc *safexcel_a
|
||||
@@ -800,7 +880,8 @@ struct safexcel_command_desc *safexcel_a
|
||||
bool first, bool last,
|
||||
dma_addr_t data, u32 len,
|
||||
u32 full_data_len,
|
||||
@ -3427,7 +3427,7 @@
|
||||
struct safexcel_result_desc *safexcel_add_rdesc(struct safexcel_crypto_priv *priv,
|
||||
int ring_id,
|
||||
bool first, bool last,
|
||||
@@ -853,5 +934,43 @@ extern struct safexcel_alg_template safe
|
||||
@@ -856,5 +937,43 @@ extern struct safexcel_alg_template safe
|
||||
extern struct safexcel_alg_template safexcel_alg_xts_aes;
|
||||
extern struct safexcel_alg_template safexcel_alg_gcm;
|
||||
extern struct safexcel_alg_template safexcel_alg_ccm;
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/drivers/crypto/inside-secure/safexcel.h
|
||||
+++ b/drivers/crypto/inside-secure/safexcel.h
|
||||
@@ -722,6 +722,9 @@ enum safexcel_eip_version {
|
||||
@@ -725,6 +725,9 @@ enum safexcel_eip_version {
|
||||
/* Priority we use for advertising our algorithms */
|
||||
#define SAFEXCEL_CRA_PRIORITY 300
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
#define UART_BUG_TXEN (1 << 1) /* UART has buggy TX IIR status */
|
||||
--- a/drivers/tty/serial/8250/8250_port.c
|
||||
+++ b/drivers/tty/serial/8250/8250_port.c
|
||||
@@ -291,7 +291,7 @@ static const struct serial8250_config ua
|
||||
@@ -292,7 +292,7 @@ static const struct serial8250_config ua
|
||||
.tx_loadsz = 16,
|
||||
.fcr = UART_FCR_ENABLE_FIFO |
|
||||
UART_FCR_CLEAR_RCVR | UART_FCR_CLEAR_XMIT,
|
||||
@ -19,7 +19,7 @@
|
||||
},
|
||||
[PORT_NPCM] = {
|
||||
.name = "Nuvoton 16550",
|
||||
@@ -2615,6 +2615,11 @@ serial8250_do_set_termios(struct uart_po
|
||||
@@ -2625,6 +2625,11 @@ serial8250_do_set_termios(struct uart_po
|
||||
unsigned long flags;
|
||||
unsigned int baud, quot, frac = 0;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user