KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
endif
-LINUX_VERSION-5.4 = .132
+LINUX_VERSION-5.4 = .137
-LINUX_KERNEL_HASH-5.4.132 = 8466adbfb3579e751ede683496df7bb20f258b5f882250f3dd82be63736d00ef
+LINUX_KERNEL_HASH-5.4.137 = f09e5e366ce5d8bde887cda229ef17138fd1653706a702221f934f99aaa31f7c
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
hcd->msi_enabled = 1;
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1883,6 +1883,7 @@ struct xhci_hcd {
+@@ -1884,6 +1884,7 @@ struct xhci_hcd {
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
/* support xHCI 1.0 spec USB2 hardware LPM */
#include <linux/uaccess.h>
#include <linux/ipv6.h>
#include <linux/icmpv6.h>
-@@ -849,10 +850,10 @@ static void tcp_v6_send_response(const s
+@@ -864,10 +865,10 @@ static void tcp_v6_send_response(const s
topt = (__be32 *)(t1 + 1);
if (tsecr) {
}
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
-@@ -5321,7 +5321,7 @@ static void port_event(struct usb_hub *h
+@@ -5369,7 +5369,7 @@ static void port_event(struct usb_hub *h
port_dev->over_current_count++;
port_over_current_notify(port_dev);
static int bcm2708_fb_register(struct bcm2708_fb *fb)
--- a/drivers/video/fbdev/core/fbmem.c
+++ b/drivers/video/fbdev/core/fbmem.c
-@@ -1076,6 +1076,30 @@ fb_blank(struct fb_info *info, int blank
+@@ -1074,6 +1074,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)
{
-@@ -1084,6 +1108,7 @@ static long do_fb_ioctl(struct fb_info *
+@@ -1082,6 +1106,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;
-@@ -1159,6 +1184,15 @@ static long do_fb_ioctl(struct fb_info *
+@@ -1157,6 +1182,15 @@ static long do_fb_ioctl(struct fb_info *
unlock_fb_info(info);
console_unlock();
break;
default:
lock_fb_info(info);
fb = info->fbops;
-@@ -1304,6 +1338,7 @@ static long fb_compat_ioctl(struct file
+@@ -1302,6 +1336,7 @@ static long fb_compat_ioctl(struct file
case FBIOPAN_DISPLAY:
case FBIOGET_CON2FBMAP:
case FBIOPUT_CON2FBMAP:
goto out;
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
-@@ -1922,7 +1922,8 @@ EXPORT_SYMBOL(mmc_erase);
+@@ -1925,7 +1925,8 @@ EXPORT_SYMBOL(mmc_erase);
int mmc_can_erase(struct mmc_card *card)
{
if ((card->host->caps & MMC_CAP_ERASE) &&
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
-@@ -2149,7 +2149,7 @@ static void bcmgenet_init_tx_ring(struct
+@@ -2150,7 +2150,7 @@ static void bcmgenet_init_tx_ring(struct
bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_PROD_INDEX);
bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_CONS_INDEX);
/* Disable rate control for now */
bcmgenet_tdma_ring_writel(priv, index, flow_period_val,
TDMA_FLOW_PERIOD);
-@@ -3573,9 +3573,12 @@ static int bcmgenet_probe(struct platfor
+@@ -3574,9 +3574,12 @@ static int bcmgenet_probe(struct platfor
netif_set_real_num_rx_queues(priv->dev, priv->hw_params->rx_queues + 1);
/* Set default coalescing parameters */
pdev->device == PCI_DEVICE_ID_ASMEDIA_1042_XHCI)
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
-@@ -527,7 +527,10 @@ void xhci_find_new_dequeue_state(struct
+@@ -550,7 +550,10 @@ void xhci_find_new_dequeue_state(struct
struct xhci_virt_ep *ep = &dev->eps[ep_index];
struct xhci_ring *ep_ring;
struct xhci_segment *new_seg;
dma_addr_t addr;
u64 hw_dequeue;
bool cycle_found = false;
-@@ -565,7 +568,28 @@ void xhci_find_new_dequeue_state(struct
+@@ -588,7 +591,28 @@ void xhci_find_new_dequeue_state(struct
hw_dequeue = xhci_get_hw_deq(xhci, dev, ep_index, stream_id);
new_seg = ep_ring->deq_seg;
new_deq = ep_ring->dequeue;
/*
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1873,6 +1873,7 @@ struct xhci_hcd {
+@@ -1874,6 +1874,7 @@ struct xhci_hcd {
#define XHCI_DEFAULT_PM_RUNTIME_ALLOW BIT_ULL(33)
#define XHCI_RESET_PLL_ON_DISCONNECT BIT_ULL(34)
#define XHCI_SNPS_BROKEN_SUSPEND BIT_ULL(35)
static inline void bcmgenet_writel(u32 value, void __iomem *offset)
{
/* MIPS chips strapped for BE will automagically configure the
-@@ -1995,6 +1999,11 @@ static void reset_umac(struct bcmgenet_p
+@@ -1996,6 +2000,11 @@ static void reset_umac(struct bcmgenet_p
bcmgenet_rbuf_ctrl_set(priv, 0);
udelay(10);
val);
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1649,8 +1649,8 @@ struct urb_priv {
+@@ -1650,8 +1650,8 @@ struct urb_priv {
* Each segment table entry is 4*32bits long. 1K seems like an ok size:
* (1K bytes * 8bytes/bit) / (4*32 bits) = 64 segment entries in the table,
* meaning 64 ring segments.
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
-@@ -3474,7 +3474,7 @@ static int bcmgenet_probe(struct platfor
+@@ -3475,7 +3475,7 @@ static int bcmgenet_probe(struct platfor
priv = netdev_priv(dev);
priv->irq0 = platform_get_irq(pdev, 0);
priv->irq1 = platform_get_irq(pdev, 1);
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
-@@ -1049,7 +1049,8 @@ static int advk_pcie_probe(struct platfo
+@@ -1060,7 +1060,8 @@ static int advk_pcie_probe(struct platfo
return ret;
}
#define MAX_TUNING_LOOP 40
-@@ -2758,7 +2758,7 @@ static void sdhci_timeout_timer(struct t
+@@ -2762,7 +2762,7 @@ static void sdhci_timeout_timer(struct t
spin_lock_irqsave(&host->lock, flags);
if (host->cmd && !sdhci_data_line_cmd(host->cmd)) {
mmc_hostname(host->mmc));
sdhci_dumpregs(host);
-@@ -2780,7 +2780,7 @@ static void sdhci_timeout_data_timer(str
+@@ -2784,7 +2784,7 @@ static void sdhci_timeout_data_timer(str
if (host->data || host->data_cmd ||
(host->cmd && sdhci_data_line_cmd(host->cmd))) {
--- a/include/media/v4l2-subdev.h
+++ b/include/media/v4l2-subdev.h
-@@ -670,6 +670,29 @@ struct v4l2_subdev_pad_config {
+@@ -674,6 +674,29 @@ struct v4l2_subdev_pad_config {
*
* @set_frame_desc: set the low level media bus frame parameters, @fd array
* may be adjusted by the subdev driver to device capabilities.
*/
struct v4l2_subdev_pad_ops {
int (*init_cfg)(struct v4l2_subdev *sd,
-@@ -710,6 +733,10 @@ struct v4l2_subdev_pad_ops {
+@@ -714,6 +737,10 @@ struct v4l2_subdev_pad_ops {
struct v4l2_mbus_frame_desc *fd);
int (*set_frame_desc)(struct v4l2_subdev *sd, unsigned int pad,
struct v4l2_mbus_frame_desc *fd);
--- a/include/media/v4l2-subdev.h
+++ b/include/media/v4l2-subdev.h
-@@ -402,12 +402,6 @@ struct v4l2_mbus_frame_desc {
+@@ -406,12 +406,6 @@ struct v4l2_mbus_frame_desc {
*
* @query_dv_timings: callback for VIDIOC_QUERY_DV_TIMINGS() ioctl handler code.
*
* @s_rx_buffer: set a host allocated memory buffer for the subdev. The subdev
* can adjust @size to a lower value and must not write more data to the
* buffer starting at @data than the original value of @size.
-@@ -435,10 +429,6 @@ struct v4l2_subdev_video_ops {
+@@ -439,10 +433,6 @@ struct v4l2_subdev_video_ops {
struct v4l2_dv_timings *timings);
int (*query_dv_timings)(struct v4l2_subdev *sd,
struct v4l2_dv_timings *timings);
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
-@@ -2790,7 +2790,7 @@ static void bcmgenet_set_hw_addr(struct
+@@ -2791,7 +2791,7 @@ static void bcmgenet_set_hw_addr(struct
}
/* Returns a reusable dma control register value */
-static u32 bcmgenet_dma_disable(struct bcmgenet_priv *priv)
+static u32 bcmgenet_dma_disable(struct bcmgenet_priv *priv, bool flush_rx)
{
+ unsigned int i;
u32 reg;
- u32 dma_ctrl;
-@@ -2809,6 +2809,14 @@ static u32 bcmgenet_dma_disable(struct b
+@@ -2816,6 +2816,14 @@ static u32 bcmgenet_dma_disable(struct b
udelay(10);
bcmgenet_umac_writel(priv, 0, UMAC_TX_FLUSH);
return dma_ctrl;
}
-@@ -2910,8 +2918,8 @@ static int bcmgenet_open(struct net_devi
- bcmgenet_ext_writel(priv, reg, EXT_EXT_PWR_MGMT);
- }
+@@ -2911,8 +2919,8 @@ static int bcmgenet_open(struct net_devi
+
+ bcmgenet_set_hw_addr(priv, dev->dev_addr);
- /* Disable RX/TX DMA and flush TX queues */
- dma_ctrl = bcmgenet_dma_disable(priv);
/* Reinitialize TDMA and RDMA and SW housekeeping */
ret = bcmgenet_init_dma(priv);
-@@ -3671,7 +3679,7 @@ static int bcmgenet_resume(struct device
+@@ -3665,7 +3673,7 @@ static int bcmgenet_resume(struct device
bcmgenet_power_up(priv, GENET_POWER_WOL_MAGIC);
/* Disable RX/TX DMA and flush TX queues */
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
-@@ -624,6 +624,16 @@ void xhci_find_new_dequeue_state(struct
+@@ -647,6 +647,16 @@ void xhci_find_new_dequeue_state(struct
} while (!cycle_found || !td_last_trb_found);
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1876,6 +1876,7 @@ struct xhci_hcd {
+@@ -1877,6 +1877,7 @@ struct xhci_hcd {
#define XHCI_EP_CTX_BROKEN_DCS BIT_ULL(36)
#define XHCI_SKIP_PHY_INIT BIT_ULL(37)
#define XHCI_DISABLE_SPARSE BIT_ULL(38)
/*
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1873,6 +1873,7 @@ struct xhci_hcd {
+@@ -1874,6 +1874,7 @@ struct xhci_hcd {
#define XHCI_DEFAULT_PM_RUNTIME_ALLOW BIT_ULL(33)
#define XHCI_RESET_PLL_ON_DISCONNECT BIT_ULL(34)
#define XHCI_SNPS_BROKEN_SUSPEND BIT_ULL(35)
--- a/arch/arm/boot/dts/gemini.dtsi
+++ b/arch/arm/boot/dts/gemini.dtsi
-@@ -356,7 +356,7 @@
+@@ -357,7 +357,7 @@
};
};
compatible = "cortina,gemini-pata", "faraday,ftide010";
reg = <0x63000000 0x1000>;
interrupts = <4 IRQ_TYPE_EDGE_RISING>;
-@@ -365,9 +365,11 @@
+@@ -366,9 +366,11 @@
clock-names = "PCLK";
sata = <&sata>;
status = "disabled";
compatible = "cortina,gemini-pata", "faraday,ftide010";
reg = <0x63400000 0x1000>;
interrupts = <5 IRQ_TYPE_EDGE_RISING>;
-@@ -376,6 +378,8 @@
+@@ -377,6 +379,8 @@
clock-names = "PCLK";
sata = <&sata>;
status = "disabled";
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
-@@ -4922,6 +4922,80 @@ static int mv88e6xxx_port_mdb_del(struct
+@@ -4926,6 +4926,80 @@ static int mv88e6xxx_port_mdb_del(struct
return err;
}
static int mv88e6xxx_port_egress_floods(struct dsa_switch *ds, int port,
bool unicast, bool multicast)
{
-@@ -4976,6 +5050,8 @@ static const struct dsa_switch_ops mv88e
+@@ -4980,6 +5054,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,
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
-@@ -4989,7 +4989,7 @@ static void mv88e6xxx_port_mirror_del(st
+@@ -4993,7 +4993,7 @@ static void mv88e6xxx_port_mirror_del(st
if (chip->info->ops->set_egress_port(chip,
direction,
dsa_upstream_port(ds,
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
# CONFIG_BATTERY_MAX1721X is not set
+# CONFIG_BATTERY_RT5033 is not set
# CONFIG_BATTERY_SBS is not set
# CONFIG_BAYCOM_EPP is not set
# CONFIG_BAYCOM_PAR is not set
if (netif_elide_gro(skb->dev))
goto normal;
-@@ -7284,6 +7287,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -7291,6 +7294,48 @@ static void __netdev_adjacent_dev_unlink
&upper_dev->adj_list.lower);
}
static int __netdev_upper_dev_link(struct net_device *dev,
struct net_device *upper_dev, bool master,
void *upper_priv, void *upper_info,
-@@ -7334,6 +7379,7 @@ static int __netdev_upper_dev_link(struc
+@@ -7341,6 +7386,7 @@ static int __netdev_upper_dev_link(struc
if (ret)
return ret;
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
&changeupper_info.info);
ret = notifier_to_errno(ret);
-@@ -7427,6 +7473,7 @@ void netdev_upper_dev_unlink(struct net_
+@@ -7434,6 +7480,7 @@ void netdev_upper_dev_unlink(struct net_
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
&changeupper_info.info);
-@@ -8157,6 +8204,7 @@ int dev_set_mac_address(struct net_devic
+@@ -8164,6 +8211,7 @@ int dev_set_mac_address(struct net_devic
if (err)
return err;
dev->addr_assign_type = NET_ADDR_SET;
local_irq_save(flags);
____napi_schedule(this_cpu_ptr(&softnet_data), n);
local_irq_restore(flags);
-@@ -5978,6 +5984,11 @@ EXPORT_SYMBOL(napi_schedule_prep);
+@@ -5982,6 +5988,11 @@ EXPORT_SYMBOL(napi_schedule_prep);
*/
void __napi_schedule_irqoff(struct napi_struct *n)
{
+ return;
+ }
+
- ____napi_schedule(this_cpu_ptr(&softnet_data), n);
- }
- EXPORT_SYMBOL(__napi_schedule_irqoff);
-@@ -6239,9 +6250,89 @@ static void init_gro_hash(struct napi_st
+ if (!IS_ENABLED(CONFIG_PREEMPT_RT))
+ ____napi_schedule(this_cpu_ptr(&softnet_data), n);
+ else
+@@ -6246,9 +6257,89 @@ static void init_gro_hash(struct napi_st
napi->gro_bitmask = 0;
}
INIT_LIST_HEAD(&napi->poll_list);
hrtimer_init(&napi->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_PINNED);
napi->timer.function = napi_watchdog;
-@@ -6258,6 +6349,7 @@ void netif_napi_add(struct net_device *d
+@@ -6265,6 +6356,7 @@ void netif_napi_add(struct net_device *d
#ifdef CONFIG_NETPOLL
napi->poll_owner = -1;
#endif
set_bit(NAPI_STATE_SCHED, &napi->state);
set_bit(NAPI_STATE_NPSVC, &napi->state);
list_add_rcu(&napi->dev_list, &dev->napi_list);
-@@ -6298,6 +6390,7 @@ static void flush_gro_hash(struct napi_s
+@@ -6305,6 +6397,7 @@ static void flush_gro_hash(struct napi_s
void netif_napi_del(struct napi_struct *napi)
{
might_sleep();
if (napi_hash_del(napi))
synchronize_net();
list_del_init(&napi->dev_list);
-@@ -6310,50 +6403,18 @@ EXPORT_SYMBOL(netif_napi_del);
+@@ -6317,50 +6410,18 @@ EXPORT_SYMBOL(netif_napi_del);
static int napi_poll(struct napi_struct *n, struct list_head *repoll)
{
/* Some drivers may have called napi_schedule
* prior to exhausting their budget.
-@@ -10333,6 +10394,10 @@ static int __init net_dev_init(void)
+@@ -10340,6 +10401,10 @@ static int __init net_dev_init(void)
sd->backlog.weight = weight_p;
}
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
-@@ -5076,6 +5076,7 @@ static int mv88e6xxx_register_switch(str
+@@ -5080,6 +5080,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;
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
-@@ -205,6 +205,7 @@ static void quirk_mmio_always_on(struct
+@@ -206,6 +206,7 @@ static void quirk_mmio_always_on(struct
DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_ANY_ID, PCI_ANY_ID,
PCI_CLASS_BRIDGE_HOST, 8, quirk_mmio_always_on);
/*
* The Mellanox Tavor device gives false positive parity errors. Mark this
* device with a broken_parity_status to allow PCI scanning code to "skip"
-@@ -3320,6 +3321,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
+@@ -3321,6 +3322,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, quirk_intel_mc_errata);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, quirk_intel_mc_errata);
/*
* Ivytown NTB BAR sizes are misreported by the hardware due to an erratum.
* To work around this, query the size it should be configured to by the
-@@ -3345,6 +3348,8 @@ static void quirk_intel_ntb(struct pci_d
+@@ -3346,6 +3349,8 @@ static void quirk_intel_ntb(struct pci_d
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e08, quirk_intel_ntb);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e0d, quirk_intel_ntb);
/*
* Some BIOS implementations leave the Intel GPU interrupts enabled, even
* though no one is handling them (e.g., if the i915 driver is never
-@@ -3383,6 +3388,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
+@@ -3384,6 +3389,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq);
};
pmu {
-@@ -560,15 +559,126 @@
+@@ -559,15 +558,126 @@
#interrupt-cells = <2>;
};
};
i2c1: i2c@2010000 {
-@@ -579,7 +689,7 @@
+@@ -578,7 +688,7 @@
reg = <0x0 0x2010000 0x0 0x10000>;
interrupts = <0 34 0x4>; /* Level high type */
clock-names = "i2c";
};
i2c2: i2c@2020000 {
-@@ -590,7 +700,7 @@
+@@ -589,7 +699,7 @@
reg = <0x0 0x2020000 0x0 0x10000>;
interrupts = <0 35 0x4>; /* Level high type */
clock-names = "i2c";
};
i2c3: i2c@2030000 {
-@@ -601,7 +711,7 @@
+@@ -600,7 +710,7 @@
reg = <0x0 0x2030000 0x0 0x10000>;
interrupts = <0 35 0x4>; /* Level high type */
clock-names = "i2c";
};
ifc: ifc@2240000 {
-@@ -633,8 +743,8 @@
+@@ -632,8 +742,8 @@
pcie1: pcie@3400000 {
compatible = "fsl,ls2080a-pcie", "fsl,ls2085a-pcie";
reg-names = "regs", "config";
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
-@@ -642,6 +752,7 @@
+@@ -641,6 +751,7 @@
num-viewport = <6>;
bus-range = <0x0 0xff>;
msi-parent = <&its>;
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 7>;
interrupt-map = <0000 0 0 1 &gic 0 0 0 109 4>,
-@@ -654,8 +765,8 @@
+@@ -653,8 +764,8 @@
pcie2: pcie@3500000 {
compatible = "fsl,ls2080a-pcie", "fsl,ls2085a-pcie";
reg-names = "regs", "config";
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
-@@ -663,6 +774,7 @@
+@@ -662,6 +773,7 @@
num-viewport = <6>;
bus-range = <0x0 0xff>;
msi-parent = <&its>;
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 7>;
interrupt-map = <0000 0 0 1 &gic 0 0 0 114 4>,
-@@ -675,8 +787,8 @@
+@@ -674,8 +786,8 @@
pcie3: pcie@3600000 {
compatible = "fsl,ls2080a-pcie", "fsl,ls2085a-pcie";
reg-names = "regs", "config";
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
-@@ -684,6 +796,7 @@
+@@ -683,6 +795,7 @@
num-viewport = <256>;
bus-range = <0x0 0xff>;
msi-parent = <&its>;
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 7>;
interrupt-map = <0000 0 0 1 &gic 0 0 0 119 4>,
-@@ -696,8 +809,8 @@
+@@ -695,8 +808,8 @@
pcie4: pcie@3700000 {
compatible = "fsl,ls2080a-pcie", "fsl,ls2085a-pcie";
reg-names = "regs", "config";
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
-@@ -705,6 +818,7 @@
+@@ -704,6 +817,7 @@
num-viewport = <6>;
bus-range = <0x0 0xff>;
msi-parent = <&its>;
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 7>;
interrupt-map = <0000 0 0 1 &gic 0 0 0 124 4>,
-@@ -754,11 +868,22 @@
+@@ -753,11 +867,22 @@
snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
};
timer: timer {
compatible = "arm,armv8-timer";
-@@ -907,3 +872,36 @@
+@@ -906,3 +871,36 @@
};
};
};
tmu: tmu@1f80000 {
--- a/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
-@@ -834,8 +834,9 @@
+@@ -833,8 +833,9 @@
};
serdes1: serdes@1ea0000 {
--- a/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
-@@ -820,6 +820,7 @@
+@@ -819,6 +819,7 @@
snps,quirk-frame-length-adjustment = <0x20>;
snps,dis_rxdet_inp3_quirk;
snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
};
usb1: usb3@3110000 {
-@@ -831,6 +832,7 @@
+@@ -830,6 +831,7 @@
snps,quirk-frame-length-adjustment = <0x20>;
snps,dis_rxdet_inp3_quirk;
snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
*
* Abhimanyu Saini <abhimanyu.saini@nxp.com>
*
-@@ -525,7 +525,7 @@
+@@ -524,7 +524,7 @@
};
/* TODO: WRIOP (CCSR?) */
* E-MDIO1: 0x1_6000
*/
compatible = "fsl,fman-memac-mdio";
-@@ -538,7 +538,7 @@
+@@ -537,7 +537,7 @@
#size-cells = <0>;
};
* E-MDIO2: 0x1_7000
*/
compatible = "fsl,fman-memac-mdio";
-@@ -550,7 +550,7 @@
+@@ -549,7 +549,7 @@
#size-cells = <0>;
};
compatible = "fsl,fman-memac-mdio";
reg = <0x0 0x8c07000 0x0 0x1000>;
device_type = "mdio";
-@@ -560,7 +560,7 @@
+@@ -559,7 +559,7 @@
#size-cells = <0>;
};
compatible = "fsl,fman-memac-mdio";
reg = <0x0 0x8c0b000 0x0 0x1000>;
device_type = "mdio";
-@@ -570,7 +570,7 @@
+@@ -569,7 +569,7 @@
#size-cells = <0>;
};
compatible = "fsl,fman-memac-mdio";
reg = <0x0 0x8c0f000 0x0 0x1000>;
device_type = "mdio";
-@@ -580,7 +580,7 @@
+@@ -579,7 +579,7 @@
#size-cells = <0>;
};
compatible = "fsl,fman-memac-mdio";
reg = <0x0 0x8c13000 0x0 0x1000>;
device_type = "mdio";
-@@ -590,7 +590,7 @@
+@@ -589,7 +589,7 @@
#size-cells = <0>;
};
status = "disabled";
compatible = "fsl,fman-memac-mdio";
reg = <0x0 0x8c17000 0x0 0x1000>;
-@@ -601,7 +601,7 @@
+@@ -600,7 +600,7 @@
#size-cells = <0>;
};
status = "disabled";
compatible = "fsl,fman-memac-mdio";
reg = <0x0 0x8c1b000 0x0 0x1000>;
-@@ -612,7 +612,7 @@
+@@ -611,7 +611,7 @@
#size-cells = <0>;
};
status = "disabled";
compatible = "fsl,fman-memac-mdio";
reg = <0x0 0x8c1f000 0x0 0x1000>;
-@@ -623,7 +623,7 @@
+@@ -622,7 +622,7 @@
#size-cells = <0>;
};
phy-handle = <&mdio0_phy12>;
--- a/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
-@@ -550,90 +550,6 @@
+@@ -549,90 +549,6 @@
#size-cells = <0>;
};
i2c0: i2c@2000000 {
status = "disabled";
compatible = "fsl,vf610-i2c", "fsl,ls208xa-vf610-i2c";
-@@ -835,12 +751,6 @@
+@@ -834,12 +750,6 @@
snps,host-vbus-glitches;
};
};
cpu: cpus {
-@@ -757,9 +758,16 @@
+@@ -756,9 +757,16 @@
interrupts = <0 12 4>;
};
ftm_alarm0: timer@2800000 {
--- a/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
-@@ -762,6 +762,7 @@
+@@ -761,6 +761,7 @@
compatible = "fsl,ls208xa-rcpm", "fsl,qoriq-rcpm-2.1+";
reg = <0x0 0x1e34040 0x0 0x18>;
#fsl,rcpm-wakeup-cells = <6>;
dr_mode = "host";
--- a/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
-@@ -730,7 +730,7 @@
+@@ -729,7 +729,7 @@
usb0: usb3@3100000 {
status = "disabled";
reg = <0x0 0x3100000 0x0 0x10000>;
interrupts = <0 80 0x4>; /* Level high type */
dr_mode = "host";
-@@ -742,7 +742,7 @@
+@@ -741,7 +741,7 @@
usb1: usb3@3110000 {
status = "disabled";
--- a/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
-@@ -738,6 +738,7 @@
+@@ -737,6 +737,7 @@
snps,dis_rxdet_inp3_quirk;
snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
snps,host-vbus-glitches;
};
usb1: usb3@3110000 {
-@@ -750,6 +751,7 @@
+@@ -749,6 +750,7 @@
snps,dis_rxdet_inp3_quirk;
snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
snps,host-vbus-glitches;
};
--- a/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
-@@ -610,16 +610,16 @@
+@@ -609,16 +609,16 @@
};
qspi: spi@20c0000 {
--- a/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
-@@ -738,7 +738,6 @@
+@@ -737,7 +737,6 @@
snps,dis_rxdet_inp3_quirk;
snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
snps,host-vbus-glitches;
};
usb1: usb3@3110000 {
-@@ -751,7 +750,6 @@
+@@ -750,7 +749,6 @@
snps,dis_rxdet_inp3_quirk;
snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
snps,host-vbus-glitches;
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
-@@ -2523,6 +2523,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VI
+@@ -2524,6 +2524,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VI
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3364, quirk_disable_all_msi);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8380_0, quirk_disable_all_msi);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SI, 0x0761, quirk_disable_all_msi);
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
-@@ -1356,6 +1356,10 @@ DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_VENDOR
+@@ -1357,6 +1357,10 @@ DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_VENDOR
occur when mode detecting */
DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_VENDOR_ID_VIA, PCI_ANY_ID,
PCI_CLASS_STORAGE_IDE, 8, quirk_no_ata_d3);
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
-@@ -2529,6 +2529,9 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VI
+@@ -2530,6 +2530,9 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VI
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SI, 0x0761, quirk_disable_all_msi);
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_BROADCOM, 0x43ec, quirk_disable_all_msi);
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_BROADCOM, 0x43ef, quirk_disable_all_msi);
#include <linux/serial_core.h>
#include <linux/slab.h>
#include <linux/tty_flip.h>
-@@ -2391,6 +2393,54 @@ static struct uart_driver lpuart_reg = {
+@@ -2394,6 +2396,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,
-@@ -2428,6 +2478,10 @@ static int lpuart_probe(struct platform_
+@@ -2431,6 +2481,10 @@ static int lpuart_probe(struct platform_
sport->port.rs485_config = lpuart_config_rs485;
--- a/drivers/tty/serial/fsl_lpuart.c
+++ b/drivers/tty/serial/fsl_lpuart.c
-@@ -2476,7 +2476,7 @@ static int lpuart_probe(struct platform_
+@@ -2479,7 +2479,7 @@ static int lpuart_probe(struct platform_
return PTR_ERR(sport->port.membase);
sport->port.membase += sdata->reg_off;
lpuart_dma_rx_free(&sport->port);
}
-@@ -2480,6 +2636,10 @@ static int lpuart_probe(struct platform_
+@@ -2483,6 +2639,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;
-@@ -2642,7 +2802,7 @@ static int lpuart_suspend(struct device
+@@ -2645,7 +2805,7 @@ static int lpuart_suspend(struct device
* Rx DMA path before suspend and start Rx DMA path on resume.
*/
if (irq_wake) {
static void lpuart_stop_tx(struct uart_port *port)
{
unsigned char temp;
-@@ -2728,6 +2770,10 @@ static int lpuart_probe(struct platform_
+@@ -2731,6 +2773,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)
-@@ -2751,6 +2797,8 @@ static int lpuart_probe(struct platform_
+@@ -2754,6 +2800,8 @@ static int lpuart_probe(struct platform_
return 0;
.set_termios = lpuart32_set_termios,
.type = lpuart_type,
.request_port = lpuart_request_port,
-@@ -2766,6 +2783,11 @@ static int lpuart_probe(struct platform_
+@@ -2769,6 +2786,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;
-@@ -2800,6 +2822,9 @@ static int lpuart_probe(struct platform_
+@@ -2803,6 +2825,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:
-@@ -2826,15 +2851,41 @@ static int lpuart_remove(struct platform
+@@ -2829,15 +2854,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 */
-@@ -2848,10 +2899,14 @@ static int lpuart_suspend(struct device
+@@ -2851,10 +2902,14 @@ static int lpuart_suspend(struct device
writeb(temp, sport->port.membase + UARTCR2);
}
if (sport->lpuart_dma_rx_use) {
/*
-@@ -2882,9 +2937,6 @@ static int lpuart_suspend(struct device
+@@ -2885,9 +2940,6 @@ static int lpuart_suspend(struct device
dmaengine_terminate_all(sport->dma_tx_chan);
}
return 0;
}
-@@ -2892,9 +2944,11 @@ static int lpuart_resume(struct device *
+@@ -2895,9 +2947,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);
-@@ -2915,13 +2969,23 @@ static int lpuart_resume(struct device *
+@@ -2918,13 +2972,23 @@ static int lpuart_resume(struct device *
if (lpuart_is_32(sport))
lpuart32_configure(sport);
static struct platform_driver lpuart_driver = {
.probe = lpuart_probe,
-@@ -2929,7 +2993,7 @@ static struct platform_driver lpuart_dri
+@@ -2932,7 +2996,7 @@ static struct platform_driver lpuart_dri
.driver = {
.name = "fsl-lpuart",
.of_match_table = lpuart_dt_ids,
return 0;
}
-@@ -2876,108 +2890,205 @@ static int lpuart_runtime_resume(struct
+@@ -2879,108 +2893,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
-@@ -2614,7 +2614,9 @@ static int __init lpuart32_early_console
+@@ -2617,7 +2617,9 @@ static int __init lpuart32_early_console
if (!device->port.membase)
return -ENODEV;
retval = xhci_enter_test_mode(xhci, test_mode, wIndex,
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
-@@ -3592,6 +3592,129 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
+@@ -3624,6 +3624,129 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
return 0;
}
void xhci_init_driver(struct hc_driver *drv,
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -2150,6 +2150,16 @@ int xhci_find_raw_port_number(struct usb
+@@ -2151,6 +2151,16 @@ int xhci_find_raw_port_number(struct usb
struct xhci_hub *xhci_get_rhub(struct usb_hcd *hcd);
void xhci_hc_died(struct xhci_hcd *xhci);
ret = xhci_handshake(&xhci->op_regs->command,
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1873,6 +1873,7 @@ struct xhci_hcd {
+@@ -1874,6 +1874,7 @@ struct xhci_hcd {
#define XHCI_DEFAULT_PM_RUNTIME_ALLOW BIT_ULL(33)
#define XHCI_RESET_PLL_ON_DISCONNECT BIT_ULL(34)
#define XHCI_SNPS_BROKEN_SUSPEND BIT_ULL(35)
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
-@@ -2058,12 +2058,9 @@ static int process_ctrl_td(struct xhci_h
+@@ -2091,12 +2091,9 @@ static int process_ctrl_td(struct xhci_h
switch (trb_comp_code) {
case COMP_SUCCESS:
EXPORT_SYMBOL_GPL(xhci_init_driver);
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1916,6 +1916,7 @@ struct xhci_driver_overrides {
+@@ -1917,6 +1917,7 @@ struct xhci_driver_overrides {
int (*start)(struct usb_hcd *hcd);
int (*check_bandwidth)(struct usb_hcd *, struct usb_device *);
void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *);
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
-@@ -4731,7 +4731,8 @@ hub_port_init(struct usb_hub *hub, struc
+@@ -4779,7 +4779,8 @@ hub_port_init(struct usb_hub *hub, struc
}
if (r) {
if (r != -ENODEV)
--- a/drivers/usb/host/xhci-hub.c
+++ b/drivers/usb/host/xhci-hub.c
-@@ -1737,7 +1737,8 @@ static bool xhci_port_missing_cas_quirk(
+@@ -1738,7 +1738,8 @@ static bool xhci_port_missing_cas_quirk(
return false;
if (((portsc & PORT_PLS_MASK) != XDEV_POLLING) &&
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
-@@ -338,6 +338,14 @@ static void advk_pcie_setup_hw(struct ad
+@@ -349,6 +349,14 @@ static void advk_pcie_setup_hw(struct ad
reg |= PIO_CTRL_ADDR_WIN_DISABLE;
advk_writel(pcie, reg, PIO_CTRL);
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
-@@ -300,11 +300,6 @@ static void advk_pcie_setup_hw(struct ad
+@@ -311,11 +311,6 @@ static void advk_pcie_setup_hw(struct ad
reg |= LANE_COUNT_1;
advk_writel(pcie, reg, PCIE_CORE_CTRL0_REG);
/* Enable MSI */
reg = advk_readl(pcie, PCIE_CORE_CTRL2_REG);
reg |= PCIE_CORE_CTRL2_MSI_ENABLE;
-@@ -346,7 +341,15 @@ static void advk_pcie_setup_hw(struct ad
+@@ -357,7 +352,15 @@ static void advk_pcie_setup_hw(struct ad
*/
msleep(PCI_PM_D3COLD_WAIT);
#define PCIE_CORE_LINK_WIDTH_SHIFT 20
#define PCIE_CORE_ERR_CAPCTL_REG 0x118
#define PCIE_CORE_ERR_CAPCTL_ECRC_CHK_TX BIT(5)
-@@ -201,6 +202,7 @@ struct advk_pcie {
+@@ -202,6 +203,7 @@ struct advk_pcie {
struct mutex msi_used_lock;
u16 msi_msg;
int root_bus_nr;
struct pci_bridge_emul bridge;
};
-@@ -225,20 +227,16 @@ static int advk_pcie_link_up(struct advk
+@@ -226,20 +228,16 @@ static int advk_pcie_link_up(struct advk
static int advk_pcie_wait_for_link(struct advk_pcie *pcie)
{
return -ETIMEDOUT;
}
-@@ -253,6 +251,85 @@ static void advk_pcie_wait_for_retrain(s
+@@ -254,6 +252,85 @@ static void advk_pcie_wait_for_retrain(s
}
}
static void advk_pcie_setup_hw(struct advk_pcie *pcie)
{
u32 reg;
-@@ -288,12 +365,6 @@ static void advk_pcie_setup_hw(struct ad
+@@ -299,12 +376,6 @@ static void advk_pcie_setup_hw(struct ad
PCIE_CORE_CTRL2_TD_ENABLE;
advk_writel(pcie, reg, PCIE_CORE_CTRL2_REG);
/* Set lane X1 */
reg = advk_readl(pcie, PCIE_CORE_CTRL0_REG);
reg &= ~LANE_CNT_MSK;
-@@ -341,20 +412,7 @@ static void advk_pcie_setup_hw(struct ad
+@@ -352,20 +423,7 @@ static void advk_pcie_setup_hw(struct ad
*/
msleep(PCI_PM_D3COLD_WAIT);
reg = advk_readl(pcie, PCIE_CORE_CMD_STATUS_REG);
reg |= PCIE_CORE_CMD_MEM_ACCESS_EN |
-@@ -1066,6 +1124,12 @@ static int advk_pcie_probe(struct platfo
+@@ -1077,6 +1135,12 @@ static int advk_pcie_probe(struct platfo
return ret;
}
#include <linux/of_pci.h>
#include "../pci.h"
-@@ -204,6 +206,7 @@ struct advk_pcie {
+@@ -205,6 +207,7 @@ struct advk_pcie {
int root_bus_nr;
int link_gen;
struct pci_bridge_emul bridge;
};
static inline void advk_writel(struct advk_pcie *pcie, u32 val, u64 reg)
-@@ -330,10 +333,31 @@ err:
+@@ -331,10 +334,31 @@ err:
dev_err(dev, "link never came up\n");
}
/* Set to Direct mode */
reg = advk_readl(pcie, CTRL_CONFIG_REG);
reg &= ~(CTRL_MODE_MASK << CTRL_MODE_SHIFT);
-@@ -406,7 +430,8 @@ static void advk_pcie_setup_hw(struct ad
+@@ -417,7 +441,8 @@ static void advk_pcie_setup_hw(struct ad
/*
* PERST# signal could have been asserted by pinctrl subsystem before
* fundamental reset. As required by PCI Express spec a delay for at
* least 100ms after such a reset before link training is needed.
*/
-@@ -1124,6 +1149,22 @@ static int advk_pcie_probe(struct platfo
+@@ -1135,6 +1160,22 @@ static int advk_pcie_probe(struct platfo
return ret;
}
#define PCIE_MSG_LOG_REG (CONTROL_BASE_ADDR + 0x30)
#define PCIE_ISR0_REG (CONTROL_BASE_ADDR + 0x40)
#define PCIE_MSG_PM_PME_MASK BIT(7)
-@@ -207,6 +210,7 @@ struct advk_pcie {
+@@ -208,6 +211,7 @@ struct advk_pcie {
int link_gen;
struct pci_bridge_emul bridge;
struct gpio_desc *reset_gpio;
};
static inline void advk_writel(struct advk_pcie *pcie, u32 val, u64 reg)
-@@ -358,6 +362,11 @@ static void advk_pcie_setup_hw(struct ad
+@@ -359,6 +363,11 @@ static void advk_pcie_setup_hw(struct ad
advk_pcie_issue_perst(pcie);
/* Set to Direct mode */
reg = advk_readl(pcie, CTRL_CONFIG_REG);
reg &= ~(CTRL_MODE_MASK << CTRL_MODE_SHIFT);
-@@ -1114,6 +1123,62 @@ out_release_res:
+@@ -1125,6 +1134,62 @@ out_release_res:
return err;
}
static int advk_pcie_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
-@@ -1171,6 +1236,10 @@ static int advk_pcie_probe(struct platfo
+@@ -1182,6 +1247,10 @@ static int advk_pcie_probe(struct platfo
else
pcie->link_gen = ret;
/* J6 */
--- a/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
+++ b/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
-@@ -120,10 +120,6 @@
+@@ -126,10 +126,6 @@
};
};
reset-gpios = <&gpiosb 3 GPIO_ACTIVE_LOW>;
--- a/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
+++ b/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
-@@ -126,7 +126,6 @@
+@@ -132,7 +132,6 @@
status = "okay";
max-link-speed = <2>;
reset-gpios = <&gpiosb 3 GPIO_ACTIVE_LOW>;
--- a/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
+++ b/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
-@@ -124,7 +124,6 @@
+@@ -130,7 +130,6 @@
pinctrl-names = "default";
pinctrl-0 = <&pcie_reset_pins &pcie_clkreq_pins>;
status = "okay";
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
-@@ -639,6 +639,13 @@ static bool advk_pcie_valid_device(struc
+@@ -650,6 +650,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
-@@ -1154,7 +1154,9 @@ static int advk_pcie_enable_phy(struct a
+@@ -1165,7 +1165,9 @@ static int advk_pcie_enable_phy(struct a
}
ret = phy_power_on(pcie->phy);
+#include <linux/of.h>
#include <linux/platform_data/x86/apple.h>
#include <linux/pm_runtime.h>
- #include <linux/switchtec.h>
-@@ -5714,3 +5715,34 @@ static void apex_pci_fixup_class(struct
+ #include <linux/suspend.h>
+@@ -5727,3 +5728,34 @@ static void apex_pci_fixup_class(struct
}
DECLARE_PCI_FIXUP_CLASS_HEADER(0x1ac1, 0x089a,
PCI_CLASS_NOT_DEFINED, 8, apex_pci_fixup_class);
#include <media/v4l2-common.h>
-@@ -1156,9 +1161,149 @@ static void uvc_video_decode_data(struct
+@@ -1183,9 +1188,149 @@ static void uvc_video_decode_data(struct
uvc_urb->async_operations++;
}
/* Mark the buffer as done if the EOF marker is set. */
if (data[1] & UVC_STREAM_EOF && buf->bytesused != 0) {
uvc_trace(UVC_TRACE_FRAME, "Frame complete (EOF found).\n");
-@@ -1715,6 +1860,8 @@ static int uvc_init_video_isoc(struct uv
+@@ -1742,6 +1887,8 @@ static int uvc_init_video_isoc(struct uv
if (npackets == 0)
return -ENOMEM;