KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
endif
-LINUX_VERSION-5.4 = .72
+LINUX_VERSION-5.4 = .73
-LINUX_KERNEL_HASH-5.4.72 = 0e24645bd56fe5b55a7a662895f5562c103d71b54d097281f0c9c71ff22c1172
+LINUX_KERNEL_HASH-5.4.73 = 5a424b403b726bbe7dfa1d1524e431676c4a64f22a8db524534ed678bfe576b2
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
--- a/drivers/tty/serial/Kconfig
+++ b/drivers/tty/serial/Kconfig
-@@ -1279,6 +1279,7 @@ config SERIAL_AR933X
+@@ -1280,6 +1280,7 @@ config SERIAL_AR933X
tristate "AR933X serial port support"
depends on HAVE_CLK && ATH79
select SERIAL_CORE
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
-@@ -2265,8 +2265,15 @@ static int bcm2835_clk_probe(struct plat
+@@ -2267,8 +2267,15 @@ static int bcm2835_clk_probe(struct plat
if (ret)
return ret;
}
static const struct cprman_plat_data cprman_bcm2835_plat_data = {
-@@ -2292,7 +2299,11 @@ static struct platform_driver bcm2835_cl
+@@ -2294,7 +2301,11 @@ static struct platform_driver bcm2835_cl
.probe = bcm2835_clk_probe,
};
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
-@@ -1379,6 +1379,11 @@ bcm2835_register_pll_divider(struct bcm2
+@@ -1381,6 +1381,11 @@ bcm2835_register_pll_divider(struct bcm2
divider->div.hw.init = &init;
divider->div.table = NULL;
pll = kzalloc(sizeof(*pll), GFP_KERNEL);
if (!pll)
return NULL;
-@@ -1380,8 +1385,10 @@ bcm2835_register_pll_divider(struct bcm2
+@@ -1382,8 +1387,10 @@ bcm2835_register_pll_divider(struct bcm2
divider->div.table = NULL;
if (!(cprman_read(cprman, data->cm_reg) & data->hold_mask)) {
}
divider->cprman = cprman;
-@@ -2189,6 +2196,8 @@ static const struct bcm2835_clk_desc clk
+@@ -2191,6 +2198,8 @@ static const struct bcm2835_clk_desc clk
.ctl_reg = CM_PERIICTL),
};
/*
* Permanently take a reference on the parent of the SDRAM clock.
*
-@@ -2208,6 +2217,19 @@ static int bcm2835_mark_sdc_parent_criti
+@@ -2210,6 +2219,19 @@ static int bcm2835_mark_sdc_parent_criti
return clk_prepare_enable(parent);
}
static int bcm2835_clk_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
-@@ -2218,6 +2240,7 @@ static int bcm2835_clk_probe(struct plat
+@@ -2220,6 +2242,7 @@ static int bcm2835_clk_probe(struct plat
const size_t asize = ARRAY_SIZE(clk_desc_array);
const struct cprman_plat_data *pdata;
size_t i;
int ret;
pdata = of_device_get_match_data(&pdev->dev);
-@@ -2237,6 +2260,13 @@ static int bcm2835_clk_probe(struct plat
+@@ -2239,6 +2262,13 @@ static int bcm2835_clk_probe(struct plat
if (IS_ERR(cprman->regs))
return PTR_ERR(cprman->regs);
.set_rate = bcm2835_clock_set_rate,
.determine_rate = bcm2835_clock_determine_rate,
.set_parent = bcm2835_clock_set_parent,
-@@ -2239,6 +2267,7 @@ static int bcm2835_clk_probe(struct plat
+@@ -2241,6 +2269,7 @@ static int bcm2835_clk_probe(struct plat
const struct bcm2835_clk_desc *desc;
const size_t asize = ARRAY_SIZE(clk_desc_array);
const struct cprman_plat_data *pdata;
size_t i;
u32 clk_id;
int ret;
-@@ -2260,6 +2289,14 @@ static int bcm2835_clk_probe(struct plat
+@@ -2262,6 +2291,14 @@ static int bcm2835_clk_probe(struct plat
if (IS_ERR(cprman->regs))
return PTR_ERR(cprman->regs);
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
-@@ -1471,6 +1471,15 @@ static struct clk_hw *bcm2835_register_c
+@@ -1473,6 +1473,15 @@ static struct clk_hw *bcm2835_register_c
init.flags = data->flags | CLK_IGNORE_UNUSED;
/*
static int bcm2708_fb_register(struct bcm2708_fb *fb)
--- a/drivers/video/fbdev/core/fbmem.c
+++ b/drivers/video/fbdev/core/fbmem.c
-@@ -1072,6 +1072,30 @@ fb_blank(struct fb_info *info, int blank
+@@ -1076,6 +1076,30 @@ fb_blank(struct fb_info *info, int blank
}
EXPORT_SYMBOL(fb_blank);
static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
unsigned long arg)
{
-@@ -1080,6 +1104,7 @@ static long do_fb_ioctl(struct fb_info *
+@@ -1084,6 +1108,7 @@ static long do_fb_ioctl(struct fb_info *
struct fb_fix_screeninfo fix;
struct fb_cmap cmap_from;
struct fb_cmap_user cmap;
void __user *argp = (void __user *)arg;
long ret = 0;
-@@ -1155,6 +1180,15 @@ static long do_fb_ioctl(struct fb_info *
+@@ -1159,6 +1184,15 @@ static long do_fb_ioctl(struct fb_info *
unlock_fb_info(info);
console_unlock();
break;
default:
lock_fb_info(info);
fb = info->fbops;
-@@ -1300,6 +1334,7 @@ static long fb_compat_ioctl(struct file
+@@ -1304,6 +1338,7 @@ static long fb_compat_ioctl(struct file
case FBIOPAN_DISPLAY:
case FBIOGET_CON2FBMAP:
case FBIOPUT_CON2FBMAP:
--- a/drivers/media/i2c/tc358743.c
+++ b/drivers/media/i2c/tc358743.c
-@@ -1947,7 +1947,7 @@ static int tc358743_probe_of(struct tc35
+@@ -1949,7 +1949,7 @@ static int tc358743_probe_of(struct tc35
state->pdata.ddc5v_delay = DDC5V_DELAY_100_MS;
state->pdata.enable_hdcp = false;
/* A FIFO level of 16 should be enough for 2-lane 720p60 at 594 MHz. */
--- a/drivers/media/i2c/tc358743.c
+++ b/drivers/media/i2c/tc358743.c
-@@ -1606,11 +1606,20 @@ static int tc358743_g_mbus_config(struct
+@@ -1608,11 +1608,20 @@ static int tc358743_g_mbus_config(struct
struct v4l2_mbus_config *cfg)
{
struct tc358743_state *state = to_state(sd);
switch (state->csi_lanes_in_use) {
case 1:
-@@ -2052,6 +2061,7 @@ static int tc358743_probe(struct i2c_cli
+@@ -2054,6 +2063,7 @@ static int tc358743_probe(struct i2c_cli
if (pdata) {
state->pdata = *pdata;
state->bus.flags = V4L2_MBUS_CSI2_CONTINUOUS_CLOCK;
--- a/drivers/media/i2c/tc358743.c
+++ b/drivers/media/i2c/tc358743.c
-@@ -1976,6 +1976,7 @@ static int tc358743_probe_of(struct tc35
+@@ -1978,6 +1978,7 @@ static int tc358743_probe_of(struct tc35
/*
* The CSI bps per lane must be between 62.5 Mbps and 1 Gbps.
* The default is 594 Mbps for 4-lane 1080p60 or 2-lane 720p60.
*/
bps_pr_lane = 2 * endpoint.link_frequencies[0];
if (bps_pr_lane < 62500000U || bps_pr_lane > 1000000000U) {
-@@ -1988,23 +1989,41 @@ static int tc358743_probe_of(struct tc35
+@@ -1990,23 +1991,41 @@ static int tc358743_probe_of(struct tc35
state->pdata.refclk_hz * state->pdata.pll_prd;
/*
static void i2c_wr16(struct v4l2_subdev *sd, u16 reg, u16 val)
{
i2c_wrreg(sd, reg, val, 2);
-@@ -2062,6 +2079,7 @@ static int tc358743_probe(struct i2c_cli
+@@ -2064,6 +2081,7 @@ static int tc358743_probe(struct i2c_cli
struct tc358743_platform_data *pdata = client->dev.platform_data;
struct v4l2_subdev *sd;
u16 irq_mask = MASK_HDMI_MSK | MASK_CSI_MSK;
int err;
if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_BYTE_DATA))
-@@ -2094,7 +2112,8 @@ static int tc358743_probe(struct i2c_cli
+@@ -2096,7 +2114,8 @@ static int tc358743_probe(struct i2c_cli
sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE | V4L2_SUBDEV_FL_HAS_EVENTS;
/* i2c access */
--- a/drivers/media/i2c/tc358743.c
+++ b/drivers/media/i2c/tc358743.c
-@@ -1688,12 +1688,23 @@ static int tc358743_enum_mbus_code(struc
+@@ -1690,12 +1690,23 @@ static int tc358743_enum_mbus_code(struc
return 0;
}
if (format->pad != 0)
return -EINVAL;
-@@ -1703,23 +1714,7 @@ static int tc358743_get_fmt(struct v4l2_
+@@ -1705,23 +1716,7 @@ static int tc358743_get_fmt(struct v4l2_
format->format.height = state->timings.bt.height;
format->format.field = V4L2_FIELD_NONE;
return 0;
}
-@@ -1734,18 +1729,11 @@ static int tc358743_set_fmt(struct v4l2_
+@@ -1736,18 +1731,11 @@ static int tc358743_set_fmt(struct v4l2_
int ret = tc358743_get_fmt(sd, cfg, format);
format->format.code = code;
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
-@@ -2352,7 +2352,7 @@ static int bcm2835_clk_probe(struct plat
+@@ -2354,7 +2354,7 @@ static int bcm2835_clk_probe(struct plat
return ret;
/* note that we have registered all the clocks */
ctl |= (div & CM_DIV_FRAC_MASK) ? CM_FRAC : 0;
cprman_write(cprman, data->ctl_reg, ctl);
-@@ -1492,7 +1496,7 @@ static struct clk_hw *bcm2835_register_c
+@@ -1494,7 +1498,7 @@ static struct clk_hw *bcm2835_register_c
init.ops = &bcm2835_vpu_clock_clk_ops;
} else {
init.ops = &bcm2835_clock_clk_ops;
.determine_rate = bcm2835_clock_determine_rate,
.set_parent = bcm2835_clock_set_parent,
.get_parent = bcm2835_clock_get_parent,
-@@ -1496,7 +1510,6 @@ static struct clk_hw *bcm2835_register_c
+@@ -1498,7 +1512,6 @@ static struct clk_hw *bcm2835_register_c
init.ops = &bcm2835_vpu_clock_clk_ops;
} else {
init.ops = &bcm2835_clock_clk_ops;
* non-error returns are a promise to giveback() the urb later
* we drop ownership so next owner (or urb unlink) can get it
*/
-@@ -5335,6 +5432,7 @@ static const struct hc_driver xhci_hc_dr
+@@ -5334,6 +5431,7 @@ static const struct hc_driver xhci_hc_dr
.endpoint_reset = xhci_endpoint_reset,
.check_bandwidth = xhci_check_bandwidth,
.reset_bandwidth = xhci_reset_bandwidth,
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
-@@ -2278,9 +2278,11 @@ static bool bcm2835_clk_is_claimed(const
+@@ -2280,9 +2280,11 @@ static bool bcm2835_clk_is_claimed(const
int i;
for (i = 0; i < ARRAY_SIZE(clk_desc_array); i++) {
#define USB_VENDOR_ID_BELKIN 0x050d
#define USB_DEVICE_ID_FLIP_KVM 0x3201
-@@ -1244,6 +1247,9 @@
+@@ -1245,6 +1248,9 @@
#define USB_VENDOR_ID_XAT 0x2505
#define USB_DEVICE_ID_XAT_CSR 0x0220
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
-@@ -1732,16 +1732,12 @@ static const struct bcm2835_clk_desc clk
+@@ -1734,16 +1734,12 @@ static const struct bcm2835_clk_desc clk
.hold_mask = CM_PLLA_HOLDCORE,
.fixed_divider = 1,
.flags = CLK_SET_RATE_PARENT),
[BCM2835_PLLA_DSI0] = REGISTER_PLL_DIV(
SOC_ALL,
.name = "plla_dsi0",
-@@ -2019,14 +2015,12 @@ static const struct bcm2835_clk_desc clk
+@@ -2021,14 +2017,12 @@ static const struct bcm2835_clk_desc clk
.int_bits = 6,
.frac_bits = 0,
.tcnt_mux = 3),
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
-@@ -2399,7 +2399,7 @@ static int __init __bcm2835_clk_driver_i
+@@ -2401,7 +2401,7 @@ static int __init __bcm2835_clk_driver_i
{
return platform_driver_register(&bcm2835_clk_driver);
}
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
-@@ -1019,7 +1019,8 @@ static int advk_pcie_probe(struct platfo
+@@ -1018,7 +1018,8 @@ static int advk_pcie_probe(struct platfo
return ret;
}
}
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
-@@ -2277,6 +2277,7 @@ struct irq_domain;
+@@ -2278,6 +2278,7 @@ struct irq_domain;
struct irq_domain *pci_host_bridge_of_msi_domain(struct pci_bus *bus);
int pci_parse_request_of_pci_ranges(struct device *dev,
struct list_head *resources,
struct resource **bus_range);
/* Arch may override this (weak) */
-@@ -2285,9 +2286,11 @@ struct device_node *pcibios_get_phb_of_n
+@@ -2286,9 +2287,11 @@ struct device_node *pcibios_get_phb_of_n
#else /* CONFIG_OF */
static inline struct irq_domain *
pci_host_bridge_of_msi_domain(struct pci_bus *bus) { return NULL; }
--- a/drivers/media/i2c/tc358743.c
+++ b/drivers/media/i2c/tc358743.c
-@@ -2002,6 +2002,7 @@ static int tc358743_probe_of(struct tc35
+@@ -2004,6 +2004,7 @@ static int tc358743_probe_of(struct tc35
switch (bps_pr_lane) {
default:
dev_warn(dev, "untested bps per lane: %u bps\n", bps_pr_lane);
--- a/drivers/net/dsa/rtl8366.c
+++ b/drivers/net/dsa/rtl8366.c
-@@ -285,7 +285,7 @@ int rtl8366_init_vlan(struct realtek_smi
+@@ -311,7 +311,7 @@ int rtl8366_init_vlan(struct realtek_smi
/* For the CPU port, make all ports members of this
* VLAN.
*/
config MODULES_TREE_LOOKUP
--- a/kernel/module.c
+++ b/kernel/module.c
-@@ -3126,9 +3126,11 @@ static int setup_load_info(struct load_i
+@@ -3127,9 +3127,11 @@ static int setup_load_info(struct load_i
static int check_modinfo(struct module *mod, struct load_info *info, int flags)
{
if (flags & MODULE_INIT_IGNORE_VERMAGIC)
modmagic = NULL;
-@@ -3149,6 +3151,7 @@ static int check_modinfo(struct module *
+@@ -3150,6 +3152,7 @@ static int check_modinfo(struct module *
mod->name);
add_taint_module(mod, TAINT_OOT_MODULE, LOCKDEP_STILL_OK);
}
struct dst_entry *__sk_dst_check(struct sock *sk, u32 cookie)
{
struct dst_entry *dst = __sk_dst_get(sk);
-@@ -1747,9 +1760,11 @@ static void __sk_free(struct sock *sk)
+@@ -1743,9 +1756,11 @@ static void __sk_free(struct sock *sk)
if (likely(sk->sk_net_refcnt))
sock_inuse_add(sock_net(sk), -1);
--- a/net/core/sock.c
+++ b/net/core/sock.c
-@@ -3634,6 +3634,8 @@ static __net_initdata struct pernet_oper
+@@ -3630,6 +3630,8 @@ static __net_initdata struct pernet_oper
static int __init proto_init(void)
{
* Perform scheduler related setup for a newly forked process p.
--- a/fs/d_path.c
+++ b/fs/d_path.c
-@@ -307,6 +307,7 @@ char *dynamic_dname(struct dentry *dentr
+@@ -311,6 +311,7 @@ char *dynamic_dname(struct dentry *dentr
buffer += buflen - sz;
return memcpy(buffer, temp, sz);
}
+++ /dev/null
-From 5f312dcb38b8003d9711290366cd4b1def5daf3b Mon Sep 17 00:00:00 2001
-From: Hauke Mehrtens <hauke@hauke-m.de>
-Date: Sun, 16 Aug 2020 14:43:35 +0200
-Subject: [PATCH v2 445/447] mtd: spinand: gigadevice: Only one dummy byte in
- QUADIO
-
-The datasheet only lists one dummy byte in the 0xEH operation for the
-following chips:
-* GD5F1GQ4xExxG
-* GD5F1GQ4xFxxG
-* GD5F1GQ4UAYIG
-* GD5F4GQ4UAYIG
-
-Fixes: c93c613214ac ("mtd: spinand: add support for GigaDevice GD5FxGQ4xA")
-Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
----
- drivers/mtd/nand/spi/gigadevice.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/drivers/mtd/nand/spi/gigadevice.c
-+++ b/drivers/mtd/nand/spi/gigadevice.c
-@@ -21,7 +21,7 @@
- #define GD5FXGQ4UXFXXG_STATUS_ECC_UNCOR_ERROR (7 << 4)
-
- static SPINAND_OP_VARIANTS(read_cache_variants,
-- SPINAND_PAGE_READ_FROM_CACHE_QUADIO_OP(0, 2, NULL, 0),
-+ SPINAND_PAGE_READ_FROM_CACHE_QUADIO_OP(0, 1, NULL, 0),
- SPINAND_PAGE_READ_FROM_CACHE_X4_OP(0, 1, NULL, 0),
- SPINAND_PAGE_READ_FROM_CACHE_DUALIO_OP(0, 1, NULL, 0),
- SPINAND_PAGE_READ_FROM_CACHE_X2_OP(0, 1, NULL, 0),
-@@ -29,7 +29,7 @@ static SPINAND_OP_VARIANTS(read_cache_va
- SPINAND_PAGE_READ_FROM_CACHE_OP(false, 0, 1, NULL, 0));
-
- static SPINAND_OP_VARIANTS(read_cache_variants_f,
-- SPINAND_PAGE_READ_FROM_CACHE_QUADIO_OP(0, 2, NULL, 0),
-+ SPINAND_PAGE_READ_FROM_CACHE_QUADIO_OP(0, 1, NULL, 0),
- SPINAND_PAGE_READ_FROM_CACHE_X4_OP_3A(0, 1, NULL, 0),
- SPINAND_PAGE_READ_FROM_CACHE_DUALIO_OP(0, 1, NULL, 0),
- SPINAND_PAGE_READ_FROM_CACHE_X2_OP_3A(0, 1, NULL, 0),
+++ /dev/null
-From f72e99ada020a81e3e4ef79c0a83ede7e9d6c7b1 Mon Sep 17 00:00:00 2001
-From: Hauke Mehrtens <hauke@hauke-m.de>
-Date: Sun, 16 Aug 2020 14:42:17 +0200
-Subject: [PATCH v2 446/447] mtd: spinand: gigadevice: Add QE Bit
-
-The following GigaDevice chips have the QE BIT in the feature flags, I
-checked the datasheets, but did not try this.
-* GD5F1GQ4xExxG
-* GD5F1GQ4xFxxG
-* GD5F1GQ4UAYIG
-* GD5F4GQ4UAYIG
-
-The Quad operations like 0xEB mention that the QE bit has to be set.
-
-Fixes: c93c613214ac ("mtd: spinand: add support for GigaDevice GD5FxGQ4xA")
-Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
----
- drivers/mtd/nand/spi/gigadevice.c | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
---- a/drivers/mtd/nand/spi/gigadevice.c
-+++ b/drivers/mtd/nand/spi/gigadevice.c
-@@ -201,7 +201,7 @@ static const struct spinand_info gigadev
- SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
- &write_cache_variants,
- &update_cache_variants),
-- 0,
-+ SPINAND_HAS_QE_BIT,
- SPINAND_ECCINFO(&gd5fxgq4xa_ooblayout,
- gd5fxgq4xa_ecc_get_status)),
- SPINAND_INFO("GD5F2GQ4xA", 0xF2,
-@@ -210,7 +210,7 @@ static const struct spinand_info gigadev
- SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
- &write_cache_variants,
- &update_cache_variants),
-- 0,
-+ SPINAND_HAS_QE_BIT,
- SPINAND_ECCINFO(&gd5fxgq4xa_ooblayout,
- gd5fxgq4xa_ecc_get_status)),
- SPINAND_INFO("GD5F4GQ4xA", 0xF4,
-@@ -219,7 +219,7 @@ static const struct spinand_info gigadev
- SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
- &write_cache_variants,
- &update_cache_variants),
-- 0,
-+ SPINAND_HAS_QE_BIT,
- SPINAND_ECCINFO(&gd5fxgq4xa_ooblayout,
- gd5fxgq4xa_ecc_get_status)),
- SPINAND_INFO("GD5F1GQ4UExxG", 0xd1,
-@@ -228,7 +228,7 @@ static const struct spinand_info gigadev
- SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
- &write_cache_variants,
- &update_cache_variants),
-- 0,
-+ SPINAND_HAS_QE_BIT,
- SPINAND_ECCINFO(&gd5fxgq4_variant2_ooblayout,
- gd5fxgq4uexxg_ecc_get_status)),
- SPINAND_INFO("GD5F1GQ4UFxxG", 0xb148,
-@@ -237,7 +237,7 @@ static const struct spinand_info gigadev
- SPINAND_INFO_OP_VARIANTS(&read_cache_variants_f,
- &write_cache_variants,
- &update_cache_variants),
-- 0,
-+ SPINAND_HAS_QE_BIT,
- SPINAND_ECCINFO(&gd5fxgq4_variant2_ooblayout,
- gd5fxgq4ufxxg_ecc_get_status)),
- };
/*
* Get the required data from the packet.
*/
-@@ -1123,7 +1129,7 @@ int nf_conntrack_tcp_packet(struct nf_co
+@@ -1130,7 +1136,7 @@ int nf_conntrack_tcp_packet(struct nf_co
IP_CT_TCP_FLAG_DATA_UNACKNOWLEDGED &&
timeouts[new_state] > timeouts[TCP_CONNTRACK_UNACK])
timeout = timeouts[TCP_CONNTRACK_UNACK];
--- a/drivers/opp/core.c
+++ b/drivers/opp/core.c
-@@ -2095,6 +2095,75 @@ put_table:
+@@ -2101,6 +2101,75 @@ put_table:
}
/**
--- a/drivers/opp/core.c
+++ b/drivers/opp/core.c
-@@ -2135,6 +2135,7 @@ int dev_pm_opp_adjust_voltage(struct dev
+@@ -2141,6 +2141,7 @@ int dev_pm_opp_adjust_voltage(struct dev
struct opp_table *opp_table;
struct dev_pm_opp *tmp_opp, *opp = ERR_PTR(-ENODEV);
int r = 0;
/* Find the opp_table */
opp_table = _find_opp_table(dev);
-@@ -2164,8 +2165,17 @@ int dev_pm_opp_adjust_voltage(struct dev
+@@ -2170,8 +2171,17 @@ int dev_pm_opp_adjust_voltage(struct dev
goto adjust_unlock;
opp->supplies->u_volt = u_volt;
drivers/pci/controller/dwc/pcie-qcom.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
-diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/controller/dwc/pcie-qcom.c
-index 3aac77a295ba..82336bbaf8dc 100644
--- a/drivers/pci/controller/dwc/pcie-qcom.c
+++ b/drivers/pci/controller/dwc/pcie-qcom.c
-@@ -302,6 +302,9 @@ static void qcom_pcie_deinit_2_1_0(struct qcom_pcie *pcie)
+@@ -296,6 +296,9 @@ static void qcom_pcie_deinit_2_1_0(struc
reset_control_assert(res->por_reset);
reset_control_assert(res->ext_reset);
reset_control_assert(res->phy_reset);
regulator_bulk_disable(ARRAY_SIZE(res->supplies), res->supplies);
}
-@@ -314,6 +317,16 @@ static int qcom_pcie_init_2_1_0(struct qcom_pcie *pcie)
+@@ -308,6 +311,16 @@ static int qcom_pcie_init_2_1_0(struct q
u32 val;
int ret;
ret = regulator_bulk_enable(ARRAY_SIZE(res->supplies), res->supplies);
if (ret < 0) {
dev_err(dev, "cannot enable regulators\n");
---
-2.27.0
-
(transaction layer end-to-end CRC checking).
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
-@@ -1389,6 +1389,8 @@ void pci_walk_bus(struct pci_bus *top, i
+@@ -1390,6 +1390,8 @@ void pci_walk_bus(struct pci_bus *top, i
void *userdata);
int pci_cfg_space_size(struct pci_dev *dev);
unsigned char pci_bus_max_busnr(struct pci_bus *bus);
.../arm64/boot/dts/freescale/fsl-lx2160a.dtsi | 130 +++++++++++++++++-
1 file changed, 125 insertions(+), 5 deletions(-)
-diff --git a/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi b/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi
-index cab7468c3..fe9b8bf4d 100644
--- a/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi
@@ -440,19 +440,19 @@
little-endian;
#thermal-sensor-cells = <1>;
};
---
-2.17.1
-
arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
-index 718af5e..1ef5743 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
-@@ -796,7 +796,7 @@
+@@ -808,7 +808,7 @@
rcpm: rcpm@1ee208c {
compatible = "fsl,ls1046a-rcpm", "fsl,qoriq-rcpm-2.1+";
#fsl,rcpm-wakeup-cells = <1>;
};
---
-2.7.4
-
arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi | 3 +++
3 files changed, 15 insertions(+)
-diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts b/arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts
-index 219a98780..fe4c4e1fa 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts
@@ -167,6 +167,10 @@
#include "fsl-ls1043-post.dtsi"
&fman0 {
-diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts b/arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts
-index ace1d6061..aa2f88f8e 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts
-@@ -213,3 +213,11 @@
+@@ -212,3 +212,11 @@
};
};
};
+&usb1 {
+ status = "okay";
+};
-diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
-index e19e05dda..f879ac8f0 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
@@ -706,6 +706,7 @@
};
sata: sata@3200000 {
---
-2.17.1
-
arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi | 4 ----
1 file changed, 4 deletions(-)
-diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
-index e19e05ddae08..fd898d51f53a 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
-@@ -915,8 +915,4 @@
+@@ -918,8 +918,4 @@
thermal-zone4 {
status = "okay";
};
- status = "okay";
- };
};
---
-2.17.1
-
ret = snd_pcm_hw_constraint_list(substream->runtime, 0,
SNDRV_PCM_HW_PARAM_RATE, &fsl_sai_rate_constraints);
-@@ -1049,35 +1039,30 @@ static int fsl_sai_remove(struct platfor
+@@ -1052,35 +1042,30 @@ static int fsl_sai_remove(struct platfor
static const struct fsl_sai_soc_data fsl_sai_vf610_data = {
.use_imx_pcm = false,
- unsigned int bclk_ratio;
const struct fsl_sai_soc_data *soc_data;
- struct snd_dmaengine_dai_dma_data dma_params_rx;
+ struct snd_soc_dai_driver cpu_dai_drv;
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
-@@ -1044,19 +1044,12 @@ static const struct fsl_sai_soc_data fsl
+@@ -1047,19 +1047,12 @@ static const struct fsl_sai_soc_data fsl
.reg_offset = 8,
};
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
-@@ -1032,24 +1032,10 @@ static const struct fsl_sai_soc_data fsl
+@@ -1035,24 +1035,10 @@ static const struct fsl_sai_soc_data fsl
.reg_offset = 0,
};
sai->regmap = devm_regmap_init_mmio_clk(&pdev->dev,
"bus", base, &fsl_sai_regmap_config);
-@@ -1023,13 +983,11 @@ static int fsl_sai_remove(struct platfor
+@@ -1026,13 +986,11 @@ static int fsl_sai_remove(struct platfor
static const struct fsl_sai_soc_data fsl_sai_vf610_data = {
.use_imx_pcm = false,
.fifo_depth = 32,
};
static const struct of_device_id fsl_sai_ids[] = {
-@@ -1062,7 +1020,6 @@ static int fsl_sai_runtime_suspend(struc
+@@ -1065,7 +1023,6 @@ static int fsl_sai_runtime_suspend(struc
static int fsl_sai_runtime_resume(struct device *dev)
{
struct fsl_sai *sai = dev_get_drvdata(dev);
int ret;
ret = clk_prepare_enable(sai->bus_clk);
-@@ -1084,11 +1041,11 @@ static int fsl_sai_runtime_resume(struct
+@@ -1087,11 +1044,11 @@ static int fsl_sai_runtime_resume(struct
}
regcache_cache_only(sai->regmap, false);
case FSL_SAI_TMR:
case FSL_SAI_RCSR:
case FSL_SAI_RCR1:
-@@ -939,8 +883,8 @@ static int fsl_sai_probe(struct platform
+@@ -942,8 +886,8 @@ static int fsl_sai_probe(struct platform
MCLK_DIR(index));
}
ret = devm_request_irq(&pdev->dev, irq, mxs_saif_irq, 0,
--- a/sound/soc/qcom/lpass-platform.c
+++ b/sound/soc/qcom/lpass-platform.c
-@@ -564,8 +564,11 @@ int asoc_qcom_lpass_platform_register(st
+@@ -565,8 +565,11 @@ int asoc_qcom_lpass_platform_register(st
int ret;
drvdata->lpaif_irq = platform_get_irq_byname(pdev, "lpass-irq-lpaif");
regmap_update_bits(sai->regmap, FSL_SAI_RCR1, FSL_SAI_CR1_RFW_MASK,
FSL_SAI_MAXBURST_RX - 1);
-@@ -925,12 +925,10 @@ static int fsl_sai_remove(struct platfor
+@@ -928,12 +928,10 @@ static int fsl_sai_remove(struct platfor
static const struct fsl_sai_soc_data fsl_sai_vf610_data = {
.use_imx_pcm = false,
sai->is_lsb_first = of_property_read_bool(np, "lsb-first");
-@@ -898,7 +900,7 @@ static int fsl_sai_probe(struct platform
+@@ -901,7 +903,7 @@ static int fsl_sai_probe(struct platform
if (ret)
goto err_pm_disable;
ret = imx_pcm_dma_init(pdev, IMX_SAI_DMABUF_SIZE);
if (ret)
goto err_pm_disable;
-@@ -923,18 +925,10 @@ static int fsl_sai_remove(struct platfor
+@@ -926,18 +928,10 @@ static int fsl_sai_remove(struct platfor
return 0;
}
unsigned int slot_width;
- const struct fsl_sai_soc_data *soc_data;
+ struct snd_soc_dai_driver cpu_dai_drv;
struct snd_dmaengine_dai_dma_data dma_params_rx;
struct snd_dmaengine_dai_dma_data dma_params_tx;
- };
irq = platform_get_irq(pdev, 0);
if (irq < 0) {
dev_err(&pdev->dev, "no irq for node %s\n", pdev->name);
-@@ -933,8 +1027,8 @@ static int fsl_sai_probe(struct platform
+@@ -936,8 +1030,8 @@ static int fsl_sai_probe(struct platform
MCLK_DIR(index));
}
sai->dma_params_rx.maxburst = FSL_SAI_MAXBURST_RX;
sai->dma_params_tx.maxburst = FSL_SAI_MAXBURST_TX;
-@@ -947,7 +1041,7 @@ static int fsl_sai_probe(struct platform
+@@ -950,7 +1044,7 @@ static int fsl_sai_probe(struct platform
if (ret)
goto err_pm_disable;
ret = imx_pcm_dma_init(pdev, IMX_SAI_DMABUF_SIZE);
if (ret)
goto err_pm_disable;
-@@ -993,6 +1087,9 @@ static int fsl_sai_runtime_suspend(struc
+@@ -996,6 +1090,9 @@ static int fsl_sai_runtime_suspend(struc
clk_disable_unprepare(sai->bus_clk);
regcache_cache_only(sai->regmap, true);
regcache_mark_dirty(sai->regmap);
-@@ -1022,6 +1119,10 @@ static int fsl_sai_runtime_resume(struct
+@@ -1025,6 +1122,10 @@ static int fsl_sai_runtime_resume(struct
goto disable_tx_clk;
}
unsigned int mclk_id[2];
unsigned int mclk_streams;
-@@ -146,6 +173,8 @@ struct fsl_sai {
-
+@@ -147,6 +174,8 @@ struct fsl_sai {
+ struct snd_soc_dai_driver cpu_dai_drv;
struct snd_dmaengine_dai_dma_data dma_params_rx;
struct snd_dmaengine_dai_dma_data dma_params_tx;
+ const struct fsl_sai_soc_data *soc;
if (ret) {
dev_err(&pdev->dev, "failed to claim irq %u\n", irq);
return ret;
-@@ -1088,6 +1132,7 @@ static int fsl_sai_runtime_suspend(struc
+@@ -1091,6 +1135,7 @@ static int fsl_sai_runtime_suspend(struc
static int fsl_sai_runtime_resume(struct device *dev)
{
struct fsl_sai *sai = dev_get_drvdata(dev);
int ret;
ret = clk_prepare_enable(sai->bus_clk);
-@@ -1113,11 +1158,11 @@ static int fsl_sai_runtime_resume(struct
+@@ -1116,11 +1161,11 @@ static int fsl_sai_runtime_resume(struct
PM_QOS_CPU_DMA_LATENCY, 0);
regcache_cache_only(sai->regmap, false);
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
-@@ -1094,6 +1094,8 @@ static int fsl_sai_probe(struct platform
+@@ -1097,6 +1097,8 @@ static int fsl_sai_probe(struct platform
pm_runtime_enable(&pdev->dev);
+ regcache_cache_only(sai->regmap, true);
+
ret = devm_snd_soc_register_component(&pdev->dev, &fsl_component,
- &fsl_sai_dai, 1);
+ &sai->cpu_dai_drv, 1);
if (ret)
-@@ -1137,6 +1139,8 @@ static int fsl_sai_runtime_suspend(struc
+@@ -1140,6 +1142,8 @@ static int fsl_sai_runtime_suspend(struc
{
struct fsl_sai *sai = dev_get_drvdata(dev);
unsigned int slot_width;
+ unsigned int bitclk_freq;
+ struct snd_soc_dai_driver cpu_dai_drv;
struct snd_dmaengine_dai_dma_data dma_params_rx;
- struct snd_dmaengine_dai_dma_data dma_params_tx;
if ((of_find_property(np, "fsl,i2s-xtor", NULL) != NULL) ||
(of_find_property(np, "fsl,txm-rxs", NULL) != NULL))
{
-@@ -1141,6 +1280,11 @@ static int fsl_sai_probe(struct platform
+@@ -1144,6 +1283,11 @@ static int fsl_sai_probe(struct platform
sai->dma_params_rx.maxburst = FSL_SAI_MAXBURST_RX;
sai->dma_params_tx.maxburst = FSL_SAI_MAXBURST_TX;
unsigned int masterflag[2];
unsigned int mclk_id[2];
-@@ -187,6 +195,8 @@ struct fsl_sai {
+@@ -188,6 +196,8 @@ struct fsl_sai {
struct snd_dmaengine_dai_dma_data dma_params_tx;
const struct fsl_sai_soc_data *soc;
struct pm_qos_request pm_qos_req;
+ return 0;
+}
+
- static struct snd_soc_dai_driver fsl_sai_dai = {
+ static struct snd_soc_dai_driver fsl_sai_dai_template = {
.probe = fsl_sai_dai_probe,
.playback = {
@@ -913,6 +930,7 @@ static struct snd_soc_dai_driver fsl_sai
if (ret) {
dev_err(cpu_dai->dev,
"failed to set proper pins state: %d\n", ret);
-@@ -1354,9 +1345,6 @@ static int fsl_sai_probe(struct platform
+@@ -1357,9 +1348,6 @@ static int fsl_sai_probe(struct platform
sai->pinctrl = devm_pinctrl_get(&pdev->dev);
pm_runtime_enable(&pdev->dev);
--- a/sound/soc/fsl/fsl_sai.h
+++ b/sound/soc/fsl/fsl_sai.h
-@@ -211,7 +211,7 @@ struct fsl_sai {
+@@ -212,7 +212,7 @@ struct fsl_sai {
const struct fsl_sai_soc_data *soc;
struct pm_qos_request pm_qos_req;
struct pinctrl *pinctrl;
ret = pinctrl_select_state(sai->pinctrl, sai->pins_state);
if (ret) {
dev_err(cpu_dai->dev,
-@@ -1343,7 +1346,7 @@ static int fsl_sai_probe(struct platform
+@@ -1346,7 +1349,7 @@ static int fsl_sai_probe(struct platform
sai->dma_params_rx.maxburst = FSL_SAI_MAXBURST_RX;
sai->dma_params_tx.maxburst = FSL_SAI_MAXBURST_TX;
struct fsl_sai {
struct platform_device *pdev;
struct regmap *regmap;
-@@ -212,6 +266,9 @@ struct fsl_sai {
+@@ -213,6 +267,9 @@ struct fsl_sai {
struct pm_qos_request pm_qos_req;
struct pinctrl *pinctrl;
struct pinctrl_state *pins_state;
- unsigned int bitclk_freq;
+ unsigned int bitclk_ratio;
+ struct snd_soc_dai_driver cpu_dai_drv;
struct snd_dmaengine_dai_dma_data dma_params_rx;
- struct snd_dmaengine_dai_dma_data dma_params_tx;
break;
case SND_SOC_DAIFMT_CBM_CFS:
val_cr4 |= FSL_SAI_CR4_FSD_MSTR;
-@@ -1572,14 +1570,6 @@ static int fsl_sai_remove(struct platfor
+@@ -1575,14 +1573,6 @@ static int fsl_sai_remove(struct platfor
return 0;
}
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
-@@ -1614,6 +1614,8 @@ static int fsl_sai_runtime_resume(struct
+@@ -1617,6 +1617,8 @@ static int fsl_sai_runtime_resume(struct
PM_QOS_CPU_DMA_LATENCY, 0);
regcache_cache_only(sai->regmap, false);
#include "fsl_dsd.h"
#include "fsl_sai.h"
-@@ -1568,6 +1569,8 @@ static int fsl_sai_runtime_suspend(struc
+@@ -1571,6 +1572,8 @@ static int fsl_sai_runtime_suspend(struc
regcache_cache_only(sai->regmap, true);
if (sai->mclk_streams & BIT(SNDRV_PCM_STREAM_CAPTURE))
clk_disable_unprepare(sai->mclk_clk[sai->mclk_id[0]]);
-@@ -1609,6 +1612,8 @@ static int fsl_sai_runtime_resume(struct
+@@ -1612,6 +1615,8 @@ static int fsl_sai_runtime_resume(struct
goto disable_tx_clk;
}
for (id = 0; id < FSL_SAI_MCLK_MAX; id++) {
clk_rate = clk_get_rate(sai->mclk_clk[id]);
if (!clk_rate)
-@@ -1517,6 +1523,10 @@ static int fsl_sai_probe(struct platform
+@@ -1520,6 +1526,10 @@ static int fsl_sai_probe(struct platform
platform_set_drvdata(pdev, sai);
@@ -1030,6 +1114,7 @@ static int fsl_sai_dai_resume(struct snd
}
- static struct snd_soc_dai_driver fsl_sai_dai = {
+ static struct snd_soc_dai_driver fsl_sai_dai_template = {
+ .pcm_new = fsl_sai_pcm_new,
.probe = fsl_sai_dai_probe,
.playback = {
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
-@@ -1631,7 +1631,7 @@ static int fsl_sai_probe(struct platform
+@@ -1634,7 +1634,7 @@ static int fsl_sai_probe(struct platform
if (ret)
goto err_pm_disable;
--- a/drivers/net/can/flexcan.c
+++ b/drivers/net/can/flexcan.c
-@@ -1548,7 +1548,6 @@ static int flexcan_probe(struct platform
+@@ -1570,7 +1570,6 @@ static int flexcan_probe(struct platform
struct net_device *dev;
struct flexcan_priv *priv;
struct regulator *reg_xceiver;
struct clk *clk_ipg = NULL, *clk_per = NULL;
struct flexcan_regs __iomem *regs;
int err, irq;
-@@ -1583,12 +1582,11 @@ static int flexcan_probe(struct platform
+@@ -1605,12 +1604,11 @@ static int flexcan_probe(struct platform
clock_freq = clk_get_rate(clk_per);
}
netif_wake_queue(dev);
}
-@@ -1299,7 +1299,7 @@ static int flexcan_open(struct net_devic
+@@ -1321,7 +1321,7 @@ static int flexcan_open(struct net_devic
priv->tx_mb = flexcan_get_mb(priv, priv->tx_mb_idx);
priv->reg_imask1_default = 0;
enable_irq(dev->irq);
/* print chip status */
-@@ -1298,8 +1298,8 @@ static int flexcan_open(struct net_devic
+@@ -1320,8 +1320,8 @@ static int flexcan_open(struct net_devic
priv->tx_mb_idx = priv->mb_count - 1;
priv->tx_mb = flexcan_get_mb(priv, priv->tx_mb_idx);
priv->offload.mailbox_read = flexcan_mailbox_read;
-@@ -1311,12 +1311,12 @@ static int flexcan_open(struct net_devic
+@@ -1333,12 +1333,12 @@ static int flexcan_open(struct net_devic
imask = GENMASK_ULL(priv->offload.mb_last,
priv->offload.mb_first);
enable_irq(dev->irq);
/* print chip status */
-@@ -1298,9 +1297,6 @@ static int flexcan_open(struct net_devic
+@@ -1320,9 +1319,6 @@ static int flexcan_open(struct net_devic
priv->tx_mb_idx = priv->mb_count - 1;
priv->tx_mb = flexcan_get_mb(priv, priv->tx_mb_idx);
priv->offload.mailbox_read = flexcan_mailbox_read;
if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
-@@ -1311,12 +1307,12 @@ static int flexcan_open(struct net_devic
+@@ -1333,12 +1329,12 @@ static int flexcan_open(struct net_devic
imask = GENMASK_ULL(priv->offload.mb_last,
priv->offload.mb_first);
enable_irq(dev->irq);
/* print chip status */
-@@ -1300,19 +1301,14 @@ static int flexcan_open(struct net_devic
+@@ -1322,19 +1323,14 @@ static int flexcan_open(struct net_devic
priv->offload.mailbox_read = flexcan_mailbox_read;
if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
priv->write(upper_32_bits(reg_imask), ®s->imask2);
priv->write(lower_32_bits(reg_imask), ®s->imask1);
enable_irq(dev->irq);
-@@ -1297,6 +1298,7 @@ static int flexcan_open(struct net_devic
+@@ -1319,6 +1320,7 @@ static int flexcan_open(struct net_devic
flexcan_get_mb(priv, FLEXCAN_TX_MB_RESERVED_OFF_FIFO);
priv->tx_mb_idx = priv->mb_count - 1;
priv->tx_mb = flexcan_get_mb(priv, priv->tx_mb_idx);
if ((priv->devtype_data->quirks & FLEXCAN_QUIRK_ENABLE_EACEN_RRS)) {
reg_ctrl2 = priv->read(®s->ctrl2);
reg_ctrl2 |= FLEXCAN_CTRL2_EACEN | FLEXCAN_CTRL2_RRS;
-@@ -1288,6 +1456,12 @@ static int flexcan_open(struct net_devic
+@@ -1310,6 +1478,12 @@ static int flexcan_open(struct net_devic
struct flexcan_priv *priv = netdev_priv(dev);
int err;
err = pm_runtime_get_sync(priv->dev);
if (err < 0)
return err;
-@@ -1300,7 +1474,10 @@ static int flexcan_open(struct net_devic
+@@ -1322,7 +1496,10 @@ static int flexcan_open(struct net_devic
if (err)
goto out_close;
priv->mb_count = (sizeof(priv->regs->mb[0]) / priv->mb_size) +
(sizeof(priv->regs->mb[1]) / priv->mb_size);
-@@ -1645,6 +1822,18 @@ static int flexcan_probe(struct platform
+@@ -1667,6 +1844,18 @@ static int flexcan_probe(struct platform
priv->devtype_data = devtype_data;
priv->reg_xceiver = reg_xceiver;
}
if ((priv->devtype_data->quirks & FLEXCAN_QUIRK_ENABLE_EACEN_RRS)) {
-@@ -1831,7 +1837,7 @@ static int flexcan_probe(struct platform
+@@ -1853,7 +1859,7 @@ static int flexcan_probe(struct platform
if (priv->devtype_data->quirks & FLEXCAN_QUIRK_TIMESTAMP_SUPPORT_FD) {
if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
static const struct flexcan_devtype_data fsl_vf610_devtype_data = {
.quirks = FLEXCAN_QUIRK_DISABLE_RXFG | FLEXCAN_QUIRK_ENABLE_EACEN_RRS |
FLEXCAN_QUIRK_DISABLE_MECR | FLEXCAN_QUIRK_USE_OFF_TIMESTAMP |
-@@ -1738,6 +1745,7 @@ out_put_node:
+@@ -1760,6 +1767,7 @@ out_put_node:
}
static const struct of_device_id flexcan_of_match[] = {
static const struct flexcan_devtype_data fsl_ls1021a_r2_devtype_data = {
.quirks = FLEXCAN_QUIRK_DISABLE_RXFG | FLEXCAN_QUIRK_ENABLE_EACEN_RRS |
FLEXCAN_QUIRK_DISABLE_MECR | FLEXCAN_QUIRK_BROKEN_PERR_STATE |
-@@ -1754,6 +1761,7 @@ static const struct of_device_id flexcan
+@@ -1776,6 +1783,7 @@ static const struct of_device_id flexcan
{ .compatible = "fsl,p1010-flexcan", .data = &fsl_p1010_devtype_data, },
{ .compatible = "fsl,vf610-flexcan", .data = &fsl_vf610_devtype_data, },
{ .compatible = "fsl,ls1021ar2-flexcan", .data = &fsl_ls1021a_r2_devtype_data, },
#include <linux/regmap.h>
#define DRV_NAME "flexcan"
-@@ -1920,7 +1921,7 @@ static int __maybe_unused flexcan_suspen
+@@ -1942,7 +1943,7 @@ static int __maybe_unused flexcan_suspen
{
struct net_device *dev = dev_get_drvdata(device);
struct flexcan_priv *priv = netdev_priv(dev);
if (netif_running(dev)) {
/* if wakeup is enabled, enter stop mode
-@@ -1932,25 +1933,27 @@ static int __maybe_unused flexcan_suspen
+@@ -1954,25 +1955,27 @@ static int __maybe_unused flexcan_suspen
if (err)
return err;
} else {
priv->can.state = CAN_STATE_ERROR_ACTIVE;
if (netif_running(dev)) {
-@@ -1962,15 +1965,19 @@ static int __maybe_unused flexcan_resume
+@@ -1984,15 +1987,19 @@ static int __maybe_unused flexcan_resume
if (err)
return err;
} else {
reg_mcr = priv->read(®s->mcr);
-@@ -1745,11 +1789,6 @@ static int flexcan_setup_stop_mode(struc
+@@ -1767,11 +1811,6 @@ static int flexcan_setup_stop_mode(struc
gpr_np->full_name, priv->stm.req_gpr, priv->stm.req_bit,
priv->stm.ack_gpr, priv->stm.ack_bit);
return 0;
out_put_node:
-@@ -1757,6 +1796,30 @@ out_put_node:
+@@ -1779,6 +1818,30 @@ out_put_node:
return ret;
}
static const struct of_device_id flexcan_of_match[] = {
{ .compatible = "fsl,imx8qm-flexcan", .data = &fsl_imx8qm_devtype_data, },
{ .compatible = "fsl,imx6q-flexcan", .data = &fsl_imx6q_devtype_data, },
-@@ -1899,9 +1962,19 @@ static int flexcan_probe(struct platform
+@@ -1921,9 +1984,19 @@ static int flexcan_probe(struct platform
devm_can_led_init(dev);
if (priv->devtype_data->quirks & FLEXCAN_QUIRK_SETUP_STOP_MODE) {
static const struct can_bittiming_const flexcan_bittiming_const = {
.name = DRV_NAME,
.tseg1_min = 4,
-@@ -1831,6 +1836,8 @@ static const struct of_device_id flexcan
+@@ -1853,6 +1858,8 @@ static const struct of_device_id flexcan
{ .compatible = "fsl,vf610-flexcan", .data = &fsl_vf610_devtype_data, },
{ .compatible = "fsl,ls1021ar2-flexcan", .data = &fsl_ls1021a_r2_devtype_data, },
{ .compatible = "fsl,lx2160ar1-flexcan", .data = &fsl_lx2160a_r1_devtype_data, },
--- a/drivers/crypto/caam/Kconfig
+++ b/drivers/crypto/caam/Kconfig
-@@ -147,6 +147,14 @@ config CRYPTO_DEV_FSL_CAAM_RNG_API
+@@ -148,6 +148,14 @@ config CRYPTO_DEV_FSL_CAAM_RNG_API
Selecting this will register the SEC4 hardware rng to
the hw_random API for suppying the kernel entropy pool.
--- a/drivers/crypto/caam/Kconfig
+++ b/drivers/crypto/caam/Kconfig
-@@ -155,6 +155,13 @@ config CRYPTO_DEV_FSL_CAAM_RNG_TEST
+@@ -156,6 +156,13 @@ config CRYPTO_DEV_FSL_CAAM_RNG_TEST
caam RNG. This test is several minutes long and executes
just before the RNG is registered with the hw_random API.
--- a/drivers/crypto/caam/Kconfig
+++ b/drivers/crypto/caam/Kconfig
-@@ -155,6 +155,36 @@ config CRYPTO_DEV_FSL_CAAM_RNG_TEST
+@@ -156,6 +156,36 @@ config CRYPTO_DEV_FSL_CAAM_RNG_TEST
caam RNG. This test is several minutes long and executes
just before the RNG is registered with the hw_random API.
--- a/drivers/crypto/caam/Kconfig
+++ b/drivers/crypto/caam/Kconfig
-@@ -147,6 +147,16 @@ config CRYPTO_DEV_FSL_CAAM_RNG_API
+@@ -148,6 +148,16 @@ config CRYPTO_DEV_FSL_CAAM_RNG_API
Selecting this will register the SEC4 hardware rng to
the hw_random API for suppying the kernel entropy pool.
const bool is_qi);
--- a/drivers/crypto/caam/caamalg_qi.c
+++ b/drivers/crypto/caam/caamalg_qi.c
-@@ -290,6 +290,167 @@ static int des3_aead_setkey(struct crypt
+@@ -296,6 +296,167 @@ static int des3_aead_setkey(struct crypt
return err;
}
static int gcm_set_sh_desc(struct crypto_aead *aead)
{
struct caam_ctx *ctx = crypto_aead_ctx(aead);
-@@ -809,6 +970,29 @@ struct aead_edesc {
+@@ -820,6 +981,29 @@ struct aead_edesc {
};
/*
* skcipher_edesc - s/w-extended skcipher descriptor
* @src_nents: number of segments in input scatterlist
* @dst_nents: number of segments in output scatterlist
-@@ -900,6 +1084,18 @@ static void aead_unmap(struct device *de
+@@ -911,6 +1095,18 @@ static void aead_unmap(struct device *de
dma_unmap_single(dev, edesc->assoclen_dma, 4, DMA_TO_DEVICE);
}
static void skcipher_unmap(struct device *dev, struct skcipher_edesc *edesc,
struct skcipher_request *req)
{
-@@ -1192,6 +1388,243 @@ static int aead_decrypt(struct aead_requ
+@@ -1203,6 +1399,243 @@ static int aead_decrypt(struct aead_requ
return aead_crypt(req, false);
}
static int ipsec_gcm_encrypt(struct aead_request *req)
{
return crypto_ipsec_check_assoclen(req->assoclen) ? : aead_crypt(req,
-@@ -2411,6 +2844,26 @@ static struct caam_aead_alg driver_aeads
+@@ -2446,6 +2879,26 @@ static struct caam_aead_alg driver_aeads
.geniv = true,
}
},
};
static int caam_init_common(struct caam_ctx *ctx, struct caam_alg_entry *caam,
-@@ -2418,6 +2871,16 @@ static int caam_init_common(struct caam_
+@@ -2453,6 +2906,16 @@ static int caam_init_common(struct caam_
{
struct caam_drv_private *priv;
struct device *dev;
/*
* distribute tfms across job rings to ensure in-order
-@@ -2449,6 +2912,21 @@ static int caam_init_common(struct caam_
+@@ -2484,6 +2947,21 @@ static int caam_init_common(struct caam_
ctx->adata.algtype = OP_TYPE_CLASS2_ALG | caam->class2_alg_type;
ctx->qidev = dev;
--- a/drivers/crypto/caam/Kconfig
+++ b/drivers/crypto/caam/Kconfig
-@@ -202,6 +202,17 @@ config CRYPTO_DEV_FSL_CAAM_SECVIO
+@@ -203,6 +203,17 @@ config CRYPTO_DEV_FSL_CAAM_SECVIO
handler functions which can be specified to act on the consequences
of a security violation.
--- a/drivers/crypto/caam/Kconfig
+++ b/drivers/crypto/caam/Kconfig
-@@ -166,7 +166,7 @@ config CRYPTO_DEV_FSL_CAAM_RNG_TEST
+@@ -167,7 +167,7 @@ config CRYPTO_DEV_FSL_CAAM_RNG_TEST
just before the RNG is registered with the hw_random API.
config CRYPTO_DEV_FSL_CAAM_SM
--- a/drivers/crypto/caam/Kconfig
+++ b/drivers/crypto/caam/Kconfig
-@@ -190,6 +190,7 @@ config CRYPTO_DEV_FSL_CAAM_SM_SLOTSIZE
+@@ -191,6 +191,7 @@ config CRYPTO_DEV_FSL_CAAM_SM_SLOTSIZE
config CRYPTO_DEV_FSL_CAAM_SM_TEST
tristate "CAAM Secure Memory - Keystore Test/Example (EXPERIMENTAL)"
depends on CRYPTO_DEV_FSL_CAAM_SM
* fall back to INTx or other interrupts, e.g., a system shared
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
-@@ -2020,6 +2020,7 @@ static inline void pcibios_penalize_isa_
+@@ -2021,6 +2021,7 @@ static inline void pcibios_penalize_isa_
int pcibios_alloc_irq(struct pci_dev *dev);
void pcibios_free_irq(struct pci_dev *dev);
resource_size_t pcibios_default_alignment(void);
drivers/thermal/qoriq_thermal.c | 21 +++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)
-diff --git a/drivers/thermal/qoriq_thermal.c b/drivers/thermal/qoriq_thermal.c
-index ba7d6105a..8b371fd3d 100644
--- a/drivers/thermal/qoriq_thermal.c
+++ b/drivers/thermal/qoriq_thermal.c
@@ -23,6 +23,7 @@
u32 ipbrr0; /* IP Block Revision Register 0 */
u32 ipbrr1; /* IP Block Revision Register 1 */
u8 res8[0x300];
-@@ -158,7 +168,10 @@ static int tmu_get_temp(void *p, int *temp)
+@@ -158,7 +168,10 @@ static int tmu_get_temp(void *p, int *te
u32 val;
val = tmu_read(qdata, &qdata->regs->site[qsensor->id].tritsr);
return 0;
}
-@@ -319,6 +332,8 @@ static int qoriq_tmu_calibration(struct platform_device *pdev)
+@@ -319,6 +332,8 @@ static int qoriq_tmu_calibration(struct
static void qoriq_tmu_init_device(struct qoriq_tmu_data *data)
{
/* Disable interrupt, using polling instead */
tmu_write(data, TIER_DISABLE, &data->regs->tier);
-@@ -328,6 +343,8 @@ static void qoriq_tmu_init_device(struct qoriq_tmu_data *data)
+@@ -328,6 +343,8 @@ static void qoriq_tmu_init_device(struct
} else {
tmu_write(data, TMTMIR_DEFAULT, &data->regs_v2->tmtmir);
tmu_write(data, TEUMR0_V2, &data->regs_v2->teumr0);
}
/* Disable monitoring */
---
-2.17.1
-
#include <linux/serial_core.h>
#include <linux/slab.h>
#include <linux/tty_flip.h>
-@@ -2369,6 +2371,54 @@ static struct uart_driver lpuart_reg = {
+@@ -2367,6 +2369,54 @@ static struct uart_driver lpuart_reg = {
.cons = LPUART_CONSOLE,
};
static int lpuart_probe(struct platform_device *pdev)
{
const struct of_device_id *of_id = of_match_device(lpuart_dt_ids,
-@@ -2406,6 +2456,10 @@ static int lpuart_probe(struct platform_
+@@ -2404,6 +2454,10 @@ static int lpuart_probe(struct platform_
sport->port.rs485_config = lpuart_config_rs485;
#include <linux/serial_core.h>
#include <linux/slab.h>
#include <linux/tty_flip.h>
-@@ -1544,8 +1545,17 @@ static void lpuart32_configure(struct lp
+@@ -1542,8 +1543,17 @@ static void lpuart32_configure(struct lp
static int lpuart32_startup(struct uart_port *port)
{
struct lpuart_port *sport = container_of(port, struct lpuart_port, port);
--- a/drivers/tty/serial/fsl_lpuart.c
+++ b/drivers/tty/serial/fsl_lpuart.c
-@@ -920,7 +920,12 @@ static void lpuart32_rxint(struct lpuart
+@@ -918,7 +918,12 @@ static void lpuart32_rxint(struct lpuart
*/
sr = lpuart32_read(&sport->port, UARTSTAT);
rx = lpuart32_read(&sport->port, UARTDATA);
--- a/drivers/tty/serial/fsl_lpuart.c
+++ b/drivers/tty/serial/fsl_lpuart.c
-@@ -2454,7 +2454,7 @@ static int lpuart_probe(struct platform_
+@@ -2452,7 +2452,7 @@ static int lpuart_probe(struct platform_
return PTR_ERR(sport->port.membase);
sport->port.membase += sdata->reg_off;
static inline bool is_imx8qxp_lpuart(struct lpuart_port *sport)
{
-@@ -1000,19 +1021,15 @@ static irqreturn_t lpuart32_int(int irq,
+@@ -998,19 +1019,15 @@ static irqreturn_t lpuart32_int(int irq,
if ((sts & UARTSTAT_TDRE) && !sport->lpuart_dma_tx_use)
lpuart32_txint(sport);
if (lpuart_is_32(sport)) {
unsigned long sr = lpuart32_read(&sport->port, UARTSTAT);
-@@ -1064,8 +1081,21 @@ static void lpuart_copy_rx_to_tty(struct
+@@ -1062,8 +1079,21 @@ static void lpuart_copy_rx_to_tty(struct
writeb(cr2, sport->port.membase + UARTCR2);
}
}
spin_lock_irqsave(&sport->port.lock, flags);
-@@ -1128,7 +1158,33 @@ static void lpuart_copy_rx_to_tty(struct
+@@ -1126,7 +1156,33 @@ static void lpuart_copy_rx_to_tty(struct
spin_unlock_irqrestore(&sport->port.lock, flags);
tty_flip_buffer_push(port);
}
static void lpuart_dma_rx_complete(void *arg)
-@@ -1136,6 +1192,8 @@ static void lpuart_dma_rx_complete(void
+@@ -1134,6 +1190,8 @@ static void lpuart_dma_rx_complete(void
struct lpuart_port *sport = arg;
lpuart_copy_rx_to_tty(sport);
}
static void lpuart_timer_func(struct timer_list *t)
-@@ -1143,13 +1201,78 @@ static void lpuart_timer_func(struct tim
+@@ -1141,13 +1199,78 @@ static void lpuart_timer_func(struct tim
struct lpuart_port *sport = from_timer(sport, t, lpuart_timer);
lpuart_copy_rx_to_tty(sport);
int bits, baud;
struct tty_port *port = &sport->port.state->port;
struct tty_struct *tty = port->tty;
-@@ -1169,6 +1292,18 @@ static inline int lpuart_start_rx_dma(st
+@@ -1167,6 +1290,18 @@ static inline int lpuart_start_rx_dma(st
sport->rx_dma_rng_buf_len = (1 << (fls(sport->rx_dma_rng_buf_len) - 1));
if (sport->rx_dma_rng_buf_len < 16)
sport->rx_dma_rng_buf_len = 16;
ring->buf = kzalloc(sport->rx_dma_rng_buf_len, GFP_ATOMIC);
if (!ring->buf)
-@@ -1194,32 +1329,7 @@ static inline int lpuart_start_rx_dma(st
+@@ -1192,32 +1327,7 @@ static inline int lpuart_start_rx_dma(st
return ret;
}
}
static void lpuart_dma_rx_free(struct uart_port *port)
-@@ -1405,8 +1515,10 @@ static void lpuart_setup_watermark(struc
+@@ -1403,8 +1513,10 @@ static void lpuart_setup_watermark(struc
writeb(UARTSFIFO_RXUF, sport->port.membase + UARTSFIFO);
}
/* Restore cr2 */
writeb(cr2_saved, sport->port.membase + UARTCR2);
-@@ -1427,6 +1539,7 @@ static void lpuart32_setup_watermark(str
+@@ -1425,6 +1537,7 @@ static void lpuart32_setup_watermark(str
{
unsigned long val, ctrl;
unsigned long ctrl_saved;
ctrl = lpuart32_read(&sport->port, UARTCTRL);
ctrl_saved = ctrl;
-@@ -1438,12 +1551,26 @@ static void lpuart32_setup_watermark(str
+@@ -1436,12 +1549,26 @@ static void lpuart32_setup_watermark(str
val = lpuart32_read(&sport->port, UARTFIFO);
val |= UARTFIFO_TXFE | UARTFIFO_RXFE;
val |= UARTFIFO_TXFLUSH | UARTFIFO_RXFLUSH;
/* Restore cr2 */
lpuart32_write(&sport->port, ctrl_saved, UARTCTRL);
}
-@@ -1455,17 +1582,29 @@ static void lpuart32_setup_watermark_ena
+@@ -1453,17 +1580,29 @@ static void lpuart32_setup_watermark_ena
lpuart32_setup_watermark(sport);
temp = lpuart32_read(&sport->port, UARTCTRL);
static void lpuart_tx_dma_startup(struct lpuart_port *sport)
{
u32 uartbaud;
-@@ -1529,19 +1668,23 @@ static int lpuart_startup(struct uart_po
+@@ -1527,19 +1666,23 @@ static int lpuart_startup(struct uart_po
return 0;
}
if (!sport->lpuart_dma_tx_use)
temp |= UARTCTRL_TIE;
lpuart32_write(&sport->port, temp, UARTCTRL);
-@@ -1574,12 +1717,12 @@ static int lpuart32_startup(struct uart_
+@@ -1572,12 +1715,12 @@ static int lpuart32_startup(struct uart_
spin_lock_irqsave(&sport->port.lock, flags);
lpuart32_configure(sport);
spin_unlock_irqrestore(&sport->port.lock, flags);
-@@ -1589,7 +1732,7 @@ static int lpuart32_startup(struct uart_
+@@ -1587,7 +1730,7 @@ static int lpuart32_startup(struct uart_
static void lpuart_dma_shutdown(struct lpuart_port *sport)
{
if (sport->lpuart_dma_rx_use) {
lpuart_dma_rx_free(&sport->port);
}
-@@ -1630,11 +1773,22 @@ static void lpuart32_shutdown(struct uar
+@@ -1628,11 +1771,22 @@ static void lpuart32_shutdown(struct uar
spin_lock_irqsave(&port->lock, flags);
spin_unlock_irqrestore(&port->lock, flags);
-@@ -1731,10 +1885,10 @@ lpuart_set_termios(struct uart_port *por
+@@ -1729,10 +1883,10 @@ lpuart_set_termios(struct uart_port *por
* baud rate and restart Rx DMA path.
*
* Since timer function acqures sport->port.lock, need to stop before
lpuart_dma_rx_free(&sport->port);
}
-@@ -1946,10 +2100,10 @@ lpuart32_set_termios(struct uart_port *p
+@@ -1944,10 +2098,10 @@ lpuart32_set_termios(struct uart_port *p
* baud rate and restart Rx DMA path.
*
* Since timer function acqures sport->port.lock, need to stop before
lpuart_dma_rx_free(&sport->port);
}
-@@ -2458,6 +2612,10 @@ static int lpuart_probe(struct platform_
+@@ -2456,6 +2610,10 @@ static int lpuart_probe(struct platform_
sport->port.dev = &pdev->dev;
sport->port.type = PORT_LPUART;
sport->devtype = sdata->devtype;
ret = platform_get_irq(pdev, 0);
if (ret < 0)
return ret;
-@@ -2620,7 +2778,7 @@ static int lpuart_suspend(struct device
+@@ -2618,7 +2776,7 @@ static int lpuart_suspend(struct device
* Rx DMA path before suspend and start Rx DMA path on resume.
*/
if (irq_wake) {
--- a/drivers/tty/serial/fsl_lpuart.c
+++ b/drivers/tty/serial/fsl_lpuart.c
-@@ -1464,6 +1464,14 @@ static void lpuart32_set_mctrl(struct ua
+@@ -1462,6 +1462,14 @@ static void lpuart32_set_mctrl(struct ua
temp |= UARTMODIR_TXCTSE;
lpuart32_write(port, temp, UARTMODIR);
static void lpuart_stop_tx(struct uart_port *port)
{
unsigned char temp;
-@@ -2704,6 +2746,10 @@ static int lpuart_probe(struct platform_
+@@ -2702,6 +2744,10 @@ static int lpuart_probe(struct platform_
if (ret)
goto failed_attach_port;
uart_get_rs485_mode(&pdev->dev, &sport->port.rs485);
if (sport->port.rs485.flags & SER_RS485_RX_DURING_TX)
-@@ -2727,6 +2773,8 @@ static int lpuart_probe(struct platform_
+@@ -2725,6 +2771,8 @@ static int lpuart_probe(struct platform_
return 0;
#define DRIVER_NAME "fsl-lpuart"
#define DEV_NAME "ttyLP"
-@@ -846,6 +847,20 @@ static void lpuart32_start_tx(struct uar
+@@ -844,6 +845,20 @@ static void lpuart32_start_tx(struct uar
}
}
/* return TIOCSER_TEMT when transmitter is not busy */
static unsigned int lpuart_tx_empty(struct uart_port *port)
{
-@@ -2259,6 +2274,7 @@ static const struct uart_ops lpuart_pops
+@@ -2257,6 +2272,7 @@ static const struct uart_ops lpuart_pops
.break_ctl = lpuart_break_ctl,
.startup = lpuart_startup,
.shutdown = lpuart_shutdown,
.set_termios = lpuart_set_termios,
.type = lpuart_type,
.request_port = lpuart_request_port,
-@@ -2283,6 +2299,7 @@ static const struct uart_ops lpuart32_po
+@@ -2281,6 +2297,7 @@ static const struct uart_ops lpuart32_po
.break_ctl = lpuart32_break_ctl,
.startup = lpuart32_startup,
.shutdown = lpuart32_shutdown,
.set_termios = lpuart32_set_termios,
.type = lpuart_type,
.request_port = lpuart_request_port,
-@@ -2742,6 +2759,11 @@ static int lpuart_probe(struct platform_
+@@ -2740,6 +2757,11 @@ static int lpuart_probe(struct platform_
if (ret)
goto failed_irq_request;
ret = uart_add_one_port(&lpuart_reg, &sport->port);
if (ret)
goto failed_attach_port;
-@@ -2776,6 +2798,9 @@ static int lpuart_probe(struct platform_
+@@ -2774,6 +2796,9 @@ static int lpuart_probe(struct platform_
failed_reset:
uart_remove_one_port(&lpuart_reg, &sport->port);
failed_attach_port:
failed_irq_request:
lpuart_disable_clks(sport);
failed_clock_enable:
-@@ -2802,15 +2827,41 @@ static int lpuart_remove(struct platform
+@@ -2800,15 +2825,41 @@ static int lpuart_remove(struct platform
if (sport->dma_rx_chan)
dma_release_channel(sport->dma_rx_chan);
if (lpuart_is_32(sport)) {
/* disable Rx/Tx and interrupts */
-@@ -2824,10 +2875,14 @@ static int lpuart_suspend(struct device
+@@ -2822,10 +2873,14 @@ static int lpuart_suspend(struct device
writeb(temp, sport->port.membase + UARTCR2);
}
if (sport->lpuart_dma_rx_use) {
/*
-@@ -2858,9 +2913,6 @@ static int lpuart_suspend(struct device
+@@ -2856,9 +2911,6 @@ static int lpuart_suspend(struct device
dmaengine_terminate_all(sport->dma_tx_chan);
}
return 0;
}
-@@ -2868,9 +2920,11 @@ static int lpuart_resume(struct device *
+@@ -2866,9 +2918,11 @@ static int lpuart_resume(struct device *
{
struct lpuart_port *sport = dev_get_drvdata(dev);
bool irq_wake = irqd_is_wakeup_set(irq_get_irq_data(sport->port.irq));
if (lpuart_is_32(sport))
lpuart32_setup_watermark_enable(sport);
-@@ -2891,13 +2945,23 @@ static int lpuart_resume(struct device *
+@@ -2889,13 +2943,23 @@ static int lpuart_resume(struct device *
if (lpuart_is_32(sport))
lpuart32_configure(sport);
static struct platform_driver lpuart_driver = {
.probe = lpuart_probe,
-@@ -2905,7 +2969,7 @@ static struct platform_driver lpuart_dri
+@@ -2903,7 +2967,7 @@ static struct platform_driver lpuart_dri
.driver = {
.name = "fsl-lpuart",
.of_match_table = lpuart_dt_ids,
#include <linux/pm_domain.h>
#include <linux/pm_runtime.h>
#include <linux/reset.h>
-@@ -1709,10 +1710,23 @@ static void lpuart_rx_dma_startup(struct
+@@ -1707,10 +1708,23 @@ static void lpuart_rx_dma_startup(struct
}
}
unsigned char temp;
/* determine FIFO size and enable FIFO mode */
-@@ -1725,14 +1739,7 @@ static int lpuart_startup(struct uart_po
+@@ -1723,14 +1737,7 @@ static int lpuart_startup(struct uart_po
sport->rxfifo_size = UARTFIFO_DEPTH((temp >> UARTPFIFO_RXSIZE_OFF) &
UARTPFIFO_FIFOSIZE_MASK);
return 0;
}
-@@ -1759,11 +1766,27 @@ static void lpuart32_configure(struct lp
+@@ -1757,11 +1764,27 @@ static void lpuart32_configure(struct lp
lpuart32_write(&sport->port, temp, UARTCTRL);
}
unsigned long temp;
int ret;
-@@ -1784,17 +1807,8 @@ static int lpuart32_startup(struct uart_
+@@ -1782,17 +1805,8 @@ static int lpuart32_startup(struct uart_
sport->rxfifo_size = UARTFIFO_DEPTH((temp >> UARTFIFO_RXSIZE_OFF) &
UARTFIFO_FIFOSIZE_MASK);
return 0;
}
-@@ -2852,108 +2866,205 @@ static int lpuart_runtime_resume(struct
+@@ -2850,108 +2864,205 @@ static int lpuart_runtime_resume(struct
return lpuart_enable_clks(sport);
};
--- a/drivers/tty/serial/fsl_lpuart.c
+++ b/drivers/tty/serial/fsl_lpuart.c
-@@ -2111,11 +2111,12 @@ lpuart32_set_termios(struct uart_port *p
+@@ -2109,11 +2109,12 @@ lpuart32_set_termios(struct uart_port *p
{
struct lpuart_port *sport = container_of(port, struct lpuart_port, port);
unsigned long flags;
modem = lpuart32_read(&sport->port, UARTMODIR);
/*
* only support CS8 and CS7, and for CS7 must enable PE.
-@@ -2152,7 +2153,9 @@ lpuart32_set_termios(struct uart_port *p
+@@ -2150,7 +2151,9 @@ lpuart32_set_termios(struct uart_port *p
}
if (termios->c_cflag & CSTOPB)
/* parity must be enabled when CS7 to match 8-bits format */
if ((termios->c_cflag & CSIZE) == CS7)
-@@ -2222,6 +2225,7 @@ lpuart32_set_termios(struct uart_port *p
+@@ -2220,6 +2223,7 @@ lpuart32_set_termios(struct uart_port *p
lpuart32_write(&sport->port, old_ctrl & ~(UARTCTRL_TE | UARTCTRL_RE),
UARTCTRL);
--- a/drivers/tty/serial/fsl_lpuart.c
+++ b/drivers/tty/serial/fsl_lpuart.c
-@@ -2600,7 +2600,9 @@ static int __init lpuart32_early_console
+@@ -2598,7 +2598,9 @@ static int __init lpuart32_early_console
if (!device->port.membase)
return -ENODEV;
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
-@@ -894,6 +894,25 @@ static void dwc3_set_incr_burst_type(str
+@@ -900,6 +900,25 @@ static void dwc3_set_incr_burst_type(str
dwc3_writel(dwc->regs, DWC3_GSBUSCFG0, cfg);
}
/**
* dwc3_core_init - Low-level initialization of DWC3 Core
* @dwc: Pointer to our controller context structure
-@@ -918,6 +937,8 @@ static int dwc3_core_init(struct dwc3 *d
+@@ -924,6 +943,8 @@ static int dwc3_core_init(struct dwc3 *d
dwc->maximum_speed = USB_SPEED_HIGH;
}
goto err0;
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
-@@ -223,6 +223,7 @@
+@@ -224,6 +224,7 @@
/* Global Configuration Register */
#define DWC3_GCTL_PWRDNSCALE(n) ((n) << 19)
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
-@@ -1263,6 +1263,17 @@ static void dwc3_get_properties(struct d
+@@ -1269,6 +1269,17 @@ static void dwc3_get_properties(struct d
dwc->maximum_speed = usb_get_maximum_speed(dev);
dwc->dr_mode = usb_get_dr_mode(dev);
dwc->sysdev_is_parent = device_property_read_bool(dev,
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
-@@ -949,6 +949,7 @@ struct dwc3_scratchpad_array {
+@@ -953,6 +953,7 @@ struct dwc3_scratchpad_array {
* @nr_scratch: number of scratch buffers
* @u1u2: only used on revisions <1.83a for workaround
* @maximum_speed: maximum speed requested (mainly for testing purposes)
* @revision: revision register contents
* @version_type: VERSIONTYPE register contents, a sub release of a revision
* @dr_mode: requested mode of operation
-@@ -1104,6 +1105,7 @@ struct dwc3 {
+@@ -1109,6 +1110,7 @@ struct dwc3 {
u32 nr_scratch;
u32 u1u2;
u32 maximum_speed;
#include <linux/ulpi/interface.h>
#include <linux/phy/phy.h>
-@@ -1089,6 +1090,7 @@ struct dwc3 {
+@@ -1094,6 +1095,7 @@ struct dwc3 {
void __iomem *regs;
size_t regs_size;
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
-@@ -1355,6 +1355,9 @@ static void dwc3_get_properties(struct d
- dwc->dis_metastability_quirk = device_property_read_bool(dev,
- "snps,dis_metastability_quirk");
+@@ -1364,6 +1364,9 @@ static void dwc3_get_properties(struct d
+ dwc->dis_split_quirk = device_property_read_bool(dev,
+ "snps,dis-split-quirk");
+ dwc->host_vbus_glitches = device_property_read_bool(dev,
+ "snps,host-vbus-glitches");
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
-@@ -1041,6 +1041,8 @@ struct dwc3_scratchpad_array {
- * 2 - No de-emphasis
+@@ -1046,6 +1046,8 @@ struct dwc3_scratchpad_array {
* 3 - Reserved
* @dis_metastability_quirk: set to disable metastability quirk.
+ * @dis_split_quirk: set to disable split boundary.
+ * @host_vbus_glitches: set to avoid vbus glitch during
+ * xhci reset.
* @imod_interval: set the interrupt moderation interval in 250ns
* increments or 0 to disable.
*/
-@@ -1233,6 +1235,7 @@ struct dwc3 {
- unsigned tx_de_emphasis:2;
+@@ -1241,6 +1243,8 @@ struct dwc3 {
- unsigned dis_metastability_quirk:1;
-+ unsigned host_vbus_glitches:1;
+ unsigned dis_split_quirk:1;
++ unsigned host_vbus_glitches:1;
++
u16 imod_interval;
};
+
--- a/drivers/usb/dwc3/host.c
+++ b/drivers/usb/dwc3/host.c
@@ -9,8 +9,49 @@
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
-@@ -1033,6 +1033,21 @@ static int dwc3_core_init(struct dwc3 *d
+@@ -1039,6 +1039,21 @@ static int dwc3_core_init(struct dwc3 *d
reg |= DWC3_GUCTL_HSTINAUTORETRY;
dwc3_writel(dwc->regs, DWC3_GUCTL, reg);
/*
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
-@@ -254,6 +254,7 @@
+@@ -255,6 +255,7 @@
#define DWC3_GUCTL1_PARKMODE_DISABLE_SS BIT(17)
#define DWC3_GUCTL1_TX_IPGAP_LINECHECK_DIS BIT(28)
#define DWC3_GUCTL1_DEV_L1_EXIT_BY_HW BIT(24)
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
-@@ -913,6 +913,54 @@ static void dwc3_set_power_down_clk_scal
+@@ -919,6 +919,54 @@ static void dwc3_set_power_down_clk_scal
dwc3_writel(dwc->regs, DWC3_GCTL, reg);
}
/**
* dwc3_core_init - Low-level initialization of DWC3 Core
* @dwc: Pointer to our controller context structure
-@@ -973,6 +1021,10 @@ static int dwc3_core_init(struct dwc3 *d
+@@ -979,6 +1027,10 @@ static int dwc3_core_init(struct dwc3 *d
dwc3_set_incr_burst_type(dwc);
usb_phy_set_suspend(dwc->usb2_phy, 0);
usb_phy_set_suspend(dwc->usb3_phy, 0);
ret = phy_power_on(dwc->usb2_generic_phy);
-@@ -1895,12 +1947,9 @@ static const struct dev_pm_ops dwc3_dev_
+@@ -1920,12 +1972,9 @@ static const struct dev_pm_ops dwc3_dev_
#ifdef CONFIG_OF
static const struct of_device_id of_dwc3_match[] = {
MODULE_DEVICE_TABLE(of, of_dwc3_match);
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
-@@ -166,6 +166,21 @@
+@@ -167,6 +167,21 @@
/* Bit fields */
/* Global SoC Bus Configuration INCRx Register 0 */
* bursts that are required to move all packets in this TD. Only SuperSpeed
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
-@@ -5362,6 +5362,7 @@ static const struct hc_driver xhci_hc_dr
+@@ -5361,6 +5361,7 @@ static const struct hc_driver xhci_hc_dr
.disable_usb3_lpm_timeout = xhci_disable_usb3_lpm_timeout,
.find_raw_port_number = xhci_find_raw_port_number,
.clear_tt_buffer_complete = xhci_clear_tt_buffer_complete,
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
-@@ -5379,6 +5379,8 @@ void xhci_init_driver(struct hc_driver *
+@@ -5378,6 +5378,8 @@ void xhci_init_driver(struct hc_driver *
drv->reset = over->reset;
if (over->start)
drv->start = over->start;
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
-@@ -913,54 +913,6 @@ static void dwc3_set_power_down_clk_scal
+@@ -919,54 +919,6 @@ static void dwc3_set_power_down_clk_scal
dwc3_writel(dwc->regs, DWC3_GCTL, reg);
}
/**
* dwc3_core_init - Low-level initialization of DWC3 Core
* @dwc: Pointer to our controller context structure
-@@ -1021,10 +973,6 @@ static int dwc3_core_init(struct dwc3 *d
+@@ -1027,10 +979,6 @@ static int dwc3_core_init(struct dwc3 *d
dwc3_set_incr_burst_type(dwc);
usb_phy_set_suspend(dwc->usb2_phy, 0);
usb_phy_set_suspend(dwc->usb3_phy, 0);
ret = phy_power_on(dwc->usb2_generic_phy);
-@@ -1947,9 +1895,12 @@ static const struct dev_pm_ops dwc3_dev_
+@@ -1972,9 +1920,12 @@ static const struct dev_pm_ops dwc3_dev_
#ifdef CONFIG_OF
static const struct of_device_id of_dwc3_match[] = {
MODULE_DEVICE_TABLE(of, of_dwc3_match);
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
-@@ -166,21 +166,6 @@
+@@ -167,21 +167,6 @@
/* Bit fields */
/* Global SoC Bus Configuration INCRx Register 0 */
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
-@@ -913,6 +913,53 @@ static void dwc3_set_power_down_clk_scal
+@@ -919,6 +919,53 @@ static void dwc3_set_power_down_clk_scal
dwc3_writel(dwc->regs, DWC3_GCTL, reg);
}
/**
* dwc3_core_init - Low-level initialization of DWC3 Core
* @dwc: Pointer to our controller context structure
-@@ -973,6 +1020,10 @@ static int dwc3_core_init(struct dwc3 *d
+@@ -979,6 +1026,10 @@ static int dwc3_core_init(struct dwc3 *d
dwc3_set_incr_burst_type(dwc);
usb_phy_set_suspend(dwc->usb2_phy, 0);
usb_phy_set_suspend(dwc->usb3_phy, 0);
ret = phy_power_on(dwc->usb2_generic_phy);
-@@ -1895,12 +1946,16 @@ static const struct dev_pm_ops dwc3_dev_
+@@ -1920,12 +1971,16 @@ static const struct dev_pm_ops dwc3_dev_
#ifdef CONFIG_OF
static const struct of_device_id of_dwc3_match[] = {
MODULE_DEVICE_TABLE(of, of_dwc3_match);
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
-@@ -166,6 +166,21 @@
+@@ -167,6 +167,21 @@
/* Bit fields */
/* Global SoC Bus Configuration INCRx Register 0 */
phylink_config);
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
-@@ -951,8 +951,10 @@ static void stmmac_mac_link_down(struct
+@@ -925,8 +925,10 @@ static void stmmac_mac_link_down(struct
}
static void stmmac_mac_link_up(struct phylink_config *config,
reg = advk_readl(pcie, PCIE_CORE_CMD_STATUS_REG);
reg |= PCIE_CORE_CMD_MEM_ACCESS_EN |
-@@ -1036,6 +1094,12 @@ static int advk_pcie_probe(struct platfo
+@@ -1035,6 +1093,12 @@ static int advk_pcie_probe(struct platfo
return ret;
}
+
advk_pcie_setup_hw(pcie);
- advk_sw_pci_bridge_init(pcie);
+ ret = advk_sw_pci_bridge_init(pcie);
* fundamental reset. As required by PCI Express spec a delay for at
* least 100ms after such a reset before link training is needed.
*/
-@@ -1094,6 +1119,22 @@ static int advk_pcie_probe(struct platfo
+@@ -1093,6 +1118,22 @@ static int advk_pcie_probe(struct platfo
return ret;
}
/* Set to Direct mode */
reg = advk_readl(pcie, CTRL_CONFIG_REG);
reg &= ~(CTRL_MODE_MASK << CTRL_MODE_SHIFT);
-@@ -1084,6 +1093,62 @@ out_release_res:
+@@ -1083,6 +1092,62 @@ out_release_res:
return err;
}
static int advk_pcie_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
-@@ -1141,6 +1206,10 @@ static int advk_pcie_probe(struct platfo
+@@ -1140,6 +1205,10 @@ static int advk_pcie_probe(struct platfo
else
pcie->link_gen = ret;
+
advk_pcie_setup_hw(pcie);
- advk_sw_pci_bridge_init(pcie);
+ ret = advk_sw_pci_bridge_init(pcie);
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
-@@ -640,6 +640,13 @@ static bool advk_pcie_valid_device(struc
+@@ -639,6 +639,13 @@ static bool advk_pcie_valid_device(struc
if ((bus->number == pcie->root_bus_nr) && PCI_SLOT(devfn) != 0)
return false;
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
-@@ -1124,7 +1124,9 @@ static int advk_pcie_enable_phy(struct a
+@@ -1123,7 +1123,9 @@ static int advk_pcie_enable_phy(struct a
}
ret = phy_power_on(pcie->phy);
+++ /dev/null
-From 502396fe598126ffd91f962d53a507aa6c7276fc Mon Sep 17 00:00:00 2001
-From: Hauke Mehrtens <hauke@hauke-m.de>
-Date: Sat, 15 Aug 2020 16:37:43 +0200
-Subject: [PATCH v2] pwm: img: Fix null pointer access in probe
-
-dev_get_drvdata() is called in img_pwm_runtime_resume() before the
-driver data is set.
-When pm_runtime_enabled() returns false in img_pwm_probe() it calls
-img_pwm_runtime_resume() which results in a null pointer access.
-
-This patch fixes the problem by setting the driver data earlier in the
-img_pwm_probe() function.
-
-This crash was seen when booting the Imagination Technologies Creator
-Ci40 (Marduk) with kernel 5.4 in OpenWrt.
-
-Fixes: e690ae526216 ("pwm: img: Add runtime PM")
-Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
-Acked-by: Lee Jones <lee.jones@linaro.org>
----
- drivers/pwm/pwm-img.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/drivers/pwm/pwm-img.c
-+++ b/drivers/pwm/pwm-img.c
-@@ -277,6 +277,8 @@ static int img_pwm_probe(struct platform
- return PTR_ERR(pwm->pwm_clk);
- }
-
-+ platform_set_drvdata(pdev, pwm);
-+
- pm_runtime_set_autosuspend_delay(&pdev->dev, IMG_PWM_PM_TIMEOUT);
- pm_runtime_use_autosuspend(&pdev->dev);
- pm_runtime_enable(&pdev->dev);
-@@ -313,7 +315,6 @@ static int img_pwm_probe(struct platform
- goto err_suspend;
- }
-
-- platform_set_drvdata(pdev, pwm);
- return 0;
-
- err_suspend: