kernel: bump 5.10 to 5.10.92

Patches automatically rebased.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
This commit is contained in:
Rui Salvaterra 2022-01-16 12:53:21 +00:00 committed by Hauke Mehrtens
parent 7229981994
commit 61e58f7cec
53 changed files with 185 additions and 415 deletions

View File

@ -1,2 +1,2 @@
LINUX_VERSION-5.10 = .91
LINUX_KERNEL_HASH-5.10.91 = 62cefb84c1c63a048520ff74eca4b16ce375956c351c8227bf9e4869cd8595d1
LINUX_VERSION-5.10 = .92
LINUX_KERNEL_HASH-5.10.92 = d5750380a51d3f1d7ab1dd64451752e321c987e0b0099bcd452187d9a76ebb52

View File

@ -27,7 +27,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
--- a/drivers/usb/core/hcd.c
+++ b/drivers/usb/core/hcd.c
@@ -1945,6 +1945,16 @@ reset:
@@ -1952,6 +1952,16 @@ reset:
return ret;
}

View File

@ -19,7 +19,7 @@ it on BCM4708 family.
--- a/drivers/usb/host/xhci-plat.c
+++ b/drivers/usb/host/xhci-plat.c
@@ -87,6 +87,8 @@ static int xhci_priv_resume_quirk(struct
@@ -77,6 +77,8 @@ static int xhci_priv_resume_quirk(struct
static void xhci_plat_quirks(struct device *dev, struct xhci_hcd *xhci)
{
struct xhci_plat_priv *priv = xhci_to_priv(xhci);
@ -28,7 +28,7 @@ it on BCM4708 family.
/*
* As of now platform drivers don't provide MSI support so we ensure
@@ -94,6 +96,9 @@ static void xhci_plat_quirks(struct devi
@@ -84,6 +86,9 @@ static void xhci_plat_quirks(struct devi
* dev struct in order to setup MSI
*/
xhci->quirks |= XHCI_PLAT | priv->quirks;

View File

@ -27,11 +27,9 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
drivers/pci/pci-bridge-emul.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/pci/pci-bridge-emul.c b/drivers/pci/pci-bridge-emul.c
index db97cddfc85e..a4af1a533d71 100644
--- a/drivers/pci/pci-bridge-emul.c
+++ b/drivers/pci/pci-bridge-emul.c
@@ -265,7 +265,11 @@ int pci_bridge_emul_init(struct pci_bridge_emul *bridge,
@@ -265,7 +265,11 @@ int pci_bridge_emul_init(struct pci_brid
{
BUILD_BUG_ON(sizeof(bridge->conf) != PCI_BRIDGE_CONF_END);
@ -44,6 +42,3 @@ index db97cddfc85e..a4af1a533d71 100644
bridge->conf.header_type = PCI_HEADER_TYPE_BRIDGE;
bridge->conf.cache_line_size = 0x10;
bridge->conf.status = cpu_to_le16(PCI_STATUS_CAP_LIST);
--
2.34.1

View File

@ -19,11 +19,9 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
drivers/pci/pci-bridge-emul.c | 43 +++++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)
diff --git a/drivers/pci/pci-bridge-emul.c b/drivers/pci/pci-bridge-emul.c
index a4af1a533d71..0d1177e52a43 100644
--- a/drivers/pci/pci-bridge-emul.c
+++ b/drivers/pci/pci-bridge-emul.c
@@ -251,6 +251,49 @@ struct pci_bridge_reg_behavior pcie_cap_regs_behavior[PCI_CAP_PCIE_SIZEOF / 4] =
@@ -251,6 +251,49 @@ struct pci_bridge_reg_behavior pcie_cap_
.ro = GENMASK(15, 0) | PCI_EXP_RTSTA_PENDING,
.w1c = PCI_EXP_RTSTA_PME,
},
@ -73,6 +71,3 @@ index a4af1a533d71..0d1177e52a43 100644
};
/*
--
2.34.1

View File

@ -19,11 +19,9 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
drivers/pci/controller/pci-aardvark.c | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index c5300d49807a..25af189a1052 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -884,8 +884,13 @@ advk_pci_bridge_emul_pcie_conf_read(struct pci_bridge_emul *bridge,
@@ -882,8 +882,13 @@ advk_pci_bridge_emul_pcie_conf_read(stru
case PCI_CAP_LIST_ID:
case PCI_EXP_DEVCAP:
case PCI_EXP_DEVCTL:
@ -37,7 +35,7 @@ index c5300d49807a..25af189a1052 100644
default:
return PCI_BRIDGE_EMUL_NOT_HANDLED;
}
@@ -899,10 +904,6 @@ advk_pci_bridge_emul_pcie_conf_write(struct pci_bridge_emul *bridge,
@@ -897,10 +902,6 @@ advk_pci_bridge_emul_pcie_conf_write(str
struct advk_pcie *pcie = bridge->data;
switch (reg) {
@ -48,7 +46,7 @@ index c5300d49807a..25af189a1052 100644
case PCI_EXP_LNKCTL:
advk_writel(pcie, new, PCIE_CORE_PCIEXP_CAP + reg);
if (new & PCI_EXP_LNKCTL_RL)
@@ -924,6 +925,12 @@ advk_pci_bridge_emul_pcie_conf_write(struct pci_bridge_emul *bridge,
@@ -922,6 +923,12 @@ advk_pci_bridge_emul_pcie_conf_write(str
advk_writel(pcie, new, PCIE_ISR0_REG);
break;
@ -61,6 +59,3 @@ index c5300d49807a..25af189a1052 100644
default:
break;
}
--
2.34.1

View File

@ -21,11 +21,9 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
drivers/pci/controller/pci-aardvark.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index 25af189a1052..71ce9f02d596 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -116,6 +116,7 @@
@@ -114,6 +114,7 @@
#define PCIE_MSI_ADDR_HIGH_REG (CONTROL_BASE_ADDR + 0x54)
#define PCIE_MSI_STATUS_REG (CONTROL_BASE_ADDR + 0x58)
#define PCIE_MSI_MASK_REG (CONTROL_BASE_ADDR + 0x5C)
@ -33,7 +31,7 @@ index 25af189a1052..71ce9f02d596 100644
#define PCIE_MSI_PAYLOAD_REG (CONTROL_BASE_ADDR + 0x9C)
#define PCIE_MSI_DATA_MASK GENMASK(15, 0)
@@ -571,6 +572,7 @@ static void advk_pcie_setup_hw(struct advk_pcie *pcie)
@@ -577,6 +578,7 @@ static void advk_pcie_setup_hw(struct ad
advk_writel(pcie, reg, PCIE_CORE_CTRL2_REG);
/* Clear all interrupts */
@ -41,7 +39,7 @@ index 25af189a1052..71ce9f02d596 100644
advk_writel(pcie, PCIE_ISR0_ALL_MASK, PCIE_ISR0_REG);
advk_writel(pcie, PCIE_ISR1_ALL_MASK, PCIE_ISR1_REG);
advk_writel(pcie, PCIE_IRQ_ALL_MASK, HOST_CTRL_INT_STATUS_REG);
@@ -583,7 +585,7 @@ static void advk_pcie_setup_hw(struct advk_pcie *pcie)
@@ -589,7 +591,7 @@ static void advk_pcie_setup_hw(struct ad
advk_writel(pcie, PCIE_ISR1_ALL_MASK, PCIE_ISR1_MASK_REG);
/* Unmask all MSIs */
@ -50,7 +48,7 @@ index 25af189a1052..71ce9f02d596 100644
/* Enable summary interrupt for GIC SPI source */
reg = PCIE_IRQ_ALL_MASK & (~PCIE_IRQ_ENABLE_INTS_MASK);
@@ -1399,7 +1401,7 @@ static void advk_pcie_handle_msi(struct advk_pcie *pcie)
@@ -1397,7 +1399,7 @@ static void advk_pcie_handle_msi(struct
msi_mask = advk_readl(pcie, PCIE_MSI_MASK_REG);
msi_val = advk_readl(pcie, PCIE_MSI_STATUS_REG);
@ -59,6 +57,3 @@ index 25af189a1052..71ce9f02d596 100644
for (msi_idx = 0; msi_idx < MSI_IRQ_NUM; msi_idx++) {
if (!(BIT(msi_idx) & msi_status))
--
2.34.1

View File

@ -16,11 +16,9 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
drivers/pci/controller/pci-aardvark.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index 71ce9f02d596..6348584c33be 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -1697,11 +1697,13 @@ static int advk_pcie_remove(struct platform_device *pdev)
@@ -1696,11 +1696,13 @@ static int advk_pcie_remove(struct platf
struct pci_host_bridge *bridge = pci_host_bridge_from_priv(pcie);
int i;
@ -34,6 +32,3 @@ index 71ce9f02d596..6348584c33be 100644
advk_pcie_remove_msi_irq_domain(pcie);
advk_pcie_remove_irq_domain(pcie);
--
2.34.1

View File

@ -17,11 +17,9 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
drivers/pci/controller/pci-aardvark.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index 6348584c33be..12eae05f3d10 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -1695,6 +1695,7 @@ static int advk_pcie_remove(struct platform_device *pdev)
@@ -1694,6 +1694,7 @@ static int advk_pcie_remove(struct platf
{
struct advk_pcie *pcie = platform_get_drvdata(pdev);
struct pci_host_bridge *bridge = pci_host_bridge_from_priv(pcie);
@ -29,7 +27,7 @@ index 6348584c33be..12eae05f3d10 100644
int i;
/* Remove PCI bus with all devices */
@@ -1703,6 +1704,11 @@ static int advk_pcie_remove(struct platform_device *pdev)
@@ -1702,6 +1703,11 @@ static int advk_pcie_remove(struct platf
pci_remove_root_bus(bridge->bus);
pci_unlock_rescan_remove();
@ -41,6 +39,3 @@ index 6348584c33be..12eae05f3d10 100644
/* Remove IRQ domains */
advk_pcie_remove_msi_irq_domain(pcie);
advk_pcie_remove_irq_domain(pcie);
--
2.34.1

View File

@ -16,11 +16,9 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
drivers/pci/controller/pci-aardvark.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index 12eae05f3d10..08b34accfe2f 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -1709,6 +1709,27 @@ static int advk_pcie_remove(struct platform_device *pdev)
@@ -1708,6 +1708,27 @@ static int advk_pcie_remove(struct platf
val &= ~(PCI_COMMAND_IO | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER);
advk_writel(pcie, val, PCIE_CORE_CMD_STATUS_REG);
@ -48,6 +46,3 @@ index 12eae05f3d10..08b34accfe2f 100644
/* Remove IRQ domains */
advk_pcie_remove_msi_irq_domain(pcie);
advk_pcie_remove_irq_domain(pcie);
--
2.34.1

View File

@ -19,11 +19,9 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
drivers/pci/controller/pci-aardvark.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index 08b34accfe2f..b3d89cb449b6 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -1734,6 +1734,9 @@ static int advk_pcie_remove(struct platform_device *pdev)
@@ -1733,6 +1733,9 @@ static int advk_pcie_remove(struct platf
advk_pcie_remove_msi_irq_domain(pcie);
advk_pcie_remove_irq_domain(pcie);
@ -33,6 +31,3 @@ index 08b34accfe2f..b3d89cb449b6 100644
/* Disable outbound address windows mapping */
for (i = 0; i < OB_WIN_COUNT; i++)
advk_pcie_disable_ob_win(pcie, i);
--
2.34.1

View File

@ -18,11 +18,9 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
drivers/pci/controller/pci-aardvark.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index b3d89cb449b6..271ebecee965 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -1737,6 +1737,10 @@ static int advk_pcie_remove(struct platform_device *pdev)
@@ -1736,6 +1736,10 @@ static int advk_pcie_remove(struct platf
/* Free config space for emulated root bridge */
pci_bridge_emul_cleanup(&pcie->bridge);
@ -33,6 +31,3 @@ index b3d89cb449b6..271ebecee965 100644
/* Disable outbound address windows mapping */
for (i = 0; i < OB_WIN_COUNT; i++)
advk_pcie_disable_ob_win(pcie, i);
--
2.34.1

View File

@ -18,11 +18,9 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
drivers/pci/controller/pci-aardvark.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index 271ebecee965..e5c88f1c177b 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -1741,6 +1741,11 @@ static int advk_pcie_remove(struct platform_device *pdev)
@@ -1740,6 +1740,11 @@ static int advk_pcie_remove(struct platf
if (pcie->reset_gpio)
gpiod_set_value_cansleep(pcie->reset_gpio, 1);
@ -34,6 +32,3 @@ index 271ebecee965..e5c88f1c177b 100644
/* Disable outbound address windows mapping */
for (i = 0; i < OB_WIN_COUNT; i++)
advk_pcie_disable_ob_win(pcie, i);
--
2.34.1

View File

@ -16,11 +16,9 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
drivers/pci/controller/pci-aardvark.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index e5c88f1c177b..2a82c4652c28 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -1750,6 +1750,9 @@ static int advk_pcie_remove(struct platform_device *pdev)
@@ -1749,6 +1749,9 @@ static int advk_pcie_remove(struct platf
for (i = 0; i < OB_WIN_COUNT; i++)
advk_pcie_disable_ob_win(pcie, i);
@ -30,6 +28,3 @@ index e5c88f1c177b..2a82c4652c28 100644
return 0;
}
--
2.34.1

View File

@ -19,8 +19,6 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/phy/marvell/phy-mvebu-a3700-comphy.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/phy/marvell/phy-mvebu-a3700-comphy.c b/drivers/phy/marvell/phy-mvebu-a3700-comphy.c
index 810f25a47632..cc534a5c4b3b 100644
--- a/drivers/phy/marvell/phy-mvebu-a3700-comphy.c
+++ b/drivers/phy/marvell/phy-mvebu-a3700-comphy.c
@@ -29,7 +29,7 @@
@ -41,7 +39,7 @@ index 810f25a47632..cc534a5c4b3b 100644
#define COMPHY_FW_SPEED_5G 3
#define COMPHY_FW_SPEED_5_15625G 4 /* XFI 5G */
#define COMPHY_FW_SPEED_6G 5
@@ -84,14 +84,14 @@ static const struct mvebu_a3700_comphy_conf mvebu_a3700_comphy_modes[] = {
@@ -84,14 +84,14 @@ static const struct mvebu_a3700_comphy_c
MVEBU_A3700_COMPHY_CONF_ETH(0, PHY_INTERFACE_MODE_SGMII, 1,
COMPHY_FW_MODE_SGMII),
MVEBU_A3700_COMPHY_CONF_ETH(0, PHY_INTERFACE_MODE_2500BASEX, 1,
@ -58,7 +56,7 @@ index 810f25a47632..cc534a5c4b3b 100644
/* lane 2 */
MVEBU_A3700_COMPHY_CONF_GEN(2, PHY_MODE_SATA, 0,
COMPHY_FW_MODE_SATA),
@@ -205,7 +205,7 @@ static int mvebu_a3700_comphy_power_on(struct phy *phy)
@@ -205,7 +205,7 @@ static int mvebu_a3700_comphy_power_on(s
COMPHY_FW_SPEED_1_25G);
break;
case PHY_INTERFACE_MODE_2500BASEX:
@ -67,6 +65,3 @@ index 810f25a47632..cc534a5c4b3b 100644
lane->id);
fw_param = COMPHY_FW_NET(fw_mode, lane->port,
COMPHY_FW_SPEED_3_125G);
--
2.34.1

View File

@ -17,8 +17,6 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/phy/marvell/phy-mvebu-a3700-comphy.c | 6 ------
1 file changed, 6 deletions(-)
diff --git a/drivers/phy/marvell/phy-mvebu-a3700-comphy.c b/drivers/phy/marvell/phy-mvebu-a3700-comphy.c
index cc534a5c4b3b..6781488cfc58 100644
--- a/drivers/phy/marvell/phy-mvebu-a3700-comphy.c
+++ b/drivers/phy/marvell/phy-mvebu-a3700-comphy.c
@@ -33,18 +33,12 @@
@ -40,6 +38,3 @@ index cc534a5c4b3b..6781488cfc58 100644
#define COMPHY_FW_SPEED_MAX 0x3F
#define COMPHY_FW_MODE(mode) ((mode) << 12)
--
2.34.1

View File

@ -214,11 +214,9 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
include/linux/mtd/mtd.h | 2 ++
4 files changed, 60 insertions(+), 14 deletions(-)
diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c
index 665fd9020b76..fe7626b5020e 100644
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
@@ -38,10 +38,11 @@ static struct mtd_info *allocate_partition(struct mtd_info *parent,
@@ -40,10 +40,11 @@ static struct mtd_info *allocate_partiti
struct mtd_info *master = mtd_get_master(parent);
int wr_alignment = (parent->flags & MTD_NO_ERASE) ?
master->writesize : master->erasesize;
@ -231,7 +229,7 @@ index 665fd9020b76..fe7626b5020e 100644
char *name;
u64 tmp;
@@ -143,6 +144,7 @@ static struct mtd_info *allocate_partition(struct mtd_info *parent,
@@ -145,6 +146,7 @@ static struct mtd_info *allocate_partiti
int i, max = parent->numeraseregions;
u64 end = child->part.offset + child->part.size;
struct mtd_erase_region_info *regions = parent->eraseregions;
@ -239,7 +237,7 @@ index 665fd9020b76..fe7626b5020e 100644
/* Find the first erase regions which is part of this
* partition. */
@@ -153,15 +155,24 @@ static struct mtd_info *allocate_partition(struct mtd_info *parent,
@@ -155,15 +157,24 @@ static struct mtd_info *allocate_partiti
if (i > 0)
i--;
@ -265,7 +263,7 @@ index 665fd9020b76..fe7626b5020e 100644
}
/*
@@ -169,26 +180,43 @@ static struct mtd_info *allocate_partition(struct mtd_info *parent,
@@ -171,26 +182,43 @@ static struct mtd_info *allocate_partiti
* exposes several regions with different erasesize. Adjust
* wr_alignment accordingly.
*/
@ -319,8 +317,6 @@ index 665fd9020b76..fe7626b5020e 100644
}
child->size = child->part.size;
diff --git a/drivers/mtd/spi-nor/Kconfig b/drivers/mtd/spi-nor/Kconfig
index 24cd25de2b8b..09df9f1a8127 100644
--- a/drivers/mtd/spi-nor/Kconfig
+++ b/drivers/mtd/spi-nor/Kconfig
@@ -10,6 +10,16 @@ menuconfig MTD_SPI_NOR
@ -340,11 +336,9 @@ index 24cd25de2b8b..09df9f1a8127 100644
config MTD_SPI_NOR_USE_4K_SECTORS
bool "Use small 4096 B erase sectors"
default y
diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c
index bd2c7717eb10..43d9b54e7edd 100644
--- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c
@@ -1262,6 +1262,8 @@ static u8 spi_nor_convert_3to4_erase(u8 opcode)
@@ -1075,6 +1075,8 @@ static u8 spi_nor_convert_3to4_erase(u8
static bool spi_nor_has_uniform_erase(const struct spi_nor *nor)
{
@ -353,7 +347,7 @@ index bd2c7717eb10..43d9b54e7edd 100644
return !!nor->params->erase_map.uniform_erase_type;
}
@@ -2381,6 +2383,7 @@ static int spi_nor_select_erase(struct spi_nor *nor)
@@ -2560,6 +2562,7 @@ static int spi_nor_select_erase(struct s
{
struct spi_nor_erase_map *map = &nor->params->erase_map;
const struct spi_nor_erase_type *erase = NULL;
@ -361,7 +355,7 @@ index bd2c7717eb10..43d9b54e7edd 100644
struct mtd_info *mtd = &nor->mtd;
u32 wanted_size = nor->info->sector_size;
int i;
@@ -2413,8 +2416,9 @@ static int spi_nor_select_erase(struct spi_nor *nor)
@@ -2592,8 +2595,9 @@ static int spi_nor_select_erase(struct s
*/
for (i = SNOR_ERASE_TYPE_MAX - 1; i >= 0; i--) {
if (map->erase_type[i].size) {
@ -373,7 +367,7 @@ index bd2c7717eb10..43d9b54e7edd 100644
}
}
@@ -2422,6 +2426,8 @@ static int spi_nor_select_erase(struct spi_nor *nor)
@@ -2601,6 +2605,8 @@ static int spi_nor_select_erase(struct s
return -EINVAL;
mtd->erasesize = erase->size;
@ -382,11 +376,9 @@ index bd2c7717eb10..43d9b54e7edd 100644
return 0;
}
diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h
index a89955f3cbc8..33eafa27da50 100644
--- a/include/linux/mtd/mtd.h
+++ b/include/linux/mtd/mtd.h
@@ -243,6 +243,8 @@ struct mtd_info {
@@ -242,6 +242,8 @@ struct mtd_info {
* information below if they desire
*/
uint32_t erasesize;

View File

@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/drivers/mtd/spi-nor/Kconfig
+++ b/drivers/mtd/spi-nor/Kconfig
@@ -24,6 +24,17 @@ config MTD_SPI_NOR_USE_4K_SECTORS
@@ -34,6 +34,17 @@ config MTD_SPI_NOR_USE_4K_SECTORS
Please note that some tools/drivers/filesystems may not work with
4096 B erase size (e.g. UBIFS requires 15 KiB as a minimum).
@ -39,7 +39,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
endif # MTD_SPI_NOR
--- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c
@@ -2786,6 +2786,21 @@ static void spi_nor_info_init_params(str
@@ -2792,6 +2792,21 @@ static void spi_nor_info_init_params(str
*/
erase_mask = 0;
i = 0;
@ -61,7 +61,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (info->flags & SECT_4K_PMC) {
erase_mask |= BIT(i);
spi_nor_set_erase_type(&map->erase_type[i], 4096u,
@@ -2797,6 +2812,7 @@ static void spi_nor_info_init_params(str
@@ -2803,6 +2818,7 @@ static void spi_nor_info_init_params(str
SPINOR_OP_BE_4K);
i++;
}

View File

@ -59,7 +59,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+};
--- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c
@@ -2026,6 +2026,7 @@ static const struct spi_nor_manufacturer
@@ -2028,6 +2028,7 @@ static const struct spi_nor_manufacturer
&spi_nor_winbond,
&spi_nor_xilinx,
&spi_nor_xmc,

View File

@ -19,7 +19,7 @@ Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
--- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c
@@ -1447,6 +1447,23 @@ destroy_erase_cmd_list:
@@ -1449,6 +1449,23 @@ destroy_erase_cmd_list:
return ret;
}
@ -43,7 +43,7 @@ Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
/*
* Erase an address range on the nor chip. The address range may extend
* one or more erase sectors. Return an error is there is a problem erasing.
@@ -1474,6 +1491,10 @@ static int spi_nor_erase(struct mtd_info
@@ -1476,6 +1493,10 @@ static int spi_nor_erase(struct mtd_info
if (ret)
return ret;
@ -54,7 +54,7 @@ Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
/* whole-chip erase? */
if (len == mtd->size && !(nor->flags & SNOR_F_NO_OP_CHIP_ERASE)) {
unsigned long timeout;
@@ -1533,6 +1554,7 @@ static int spi_nor_erase(struct mtd_info
@@ -1535,6 +1556,7 @@ static int spi_nor_erase(struct mtd_info
ret = spi_nor_write_disable(nor);
erase_err:
@ -62,7 +62,7 @@ Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
spi_nor_unlock_and_unprep(nor);
return ret;
@@ -1872,7 +1894,9 @@ static int spi_nor_lock(struct mtd_info
@@ -1874,7 +1896,9 @@ static int spi_nor_lock(struct mtd_info
if (ret)
return ret;
@ -72,7 +72,7 @@ Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
spi_nor_unlock_and_unprep(nor);
return ret;
@@ -1887,7 +1911,9 @@ static int spi_nor_unlock(struct mtd_inf
@@ -1889,7 +1913,9 @@ static int spi_nor_unlock(struct mtd_inf
if (ret)
return ret;
@ -82,7 +82,7 @@ Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
spi_nor_unlock_and_unprep(nor);
return ret;
@@ -1902,7 +1928,9 @@ static int spi_nor_is_locked(struct mtd_
@@ -1904,7 +1930,9 @@ static int spi_nor_is_locked(struct mtd_
if (ret)
return ret;
@ -92,7 +92,7 @@ Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
spi_nor_unlock_and_unprep(nor);
return ret;
@@ -2095,6 +2123,10 @@ static int spi_nor_read(struct mtd_info
@@ -2097,6 +2125,10 @@ static int spi_nor_read(struct mtd_info
if (ret)
return ret;
@ -103,7 +103,7 @@ Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
while (len) {
loff_t addr = from;
@@ -2118,6 +2150,7 @@ static int spi_nor_read(struct mtd_info
@@ -2120,6 +2152,7 @@ static int spi_nor_read(struct mtd_info
ret = 0;
read_err:
@ -111,7 +111,7 @@ Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
spi_nor_unlock_and_unprep(nor);
return ret;
}
@@ -2140,6 +2173,10 @@ static int spi_nor_write(struct mtd_info
@@ -2142,6 +2175,10 @@ static int spi_nor_write(struct mtd_info
if (ret)
return ret;
@ -122,7 +122,7 @@ Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
for (i = 0; i < len; ) {
ssize_t written;
loff_t addr = to + i;
@@ -2182,6 +2219,7 @@ static int spi_nor_write(struct mtd_info
@@ -2184,6 +2221,7 @@ static int spi_nor_write(struct mtd_info
}
write_err:
@ -130,7 +130,7 @@ Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
spi_nor_unlock_and_unprep(nor);
return ret;
}
@@ -2977,9 +3015,13 @@ static int spi_nor_init(struct spi_nor *
@@ -2983,9 +3021,13 @@ static int spi_nor_init(struct spi_nor *
* reboots (e.g., crashes). Warn the user (or hopefully, system
* designer) that this is bad.
*/

View File

@ -64,7 +64,7 @@ Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
mutex_lock(&mtd_table_mutex);
--- a/include/linux/mtd/mtd.h
+++ b/include/linux/mtd/mtd.h
@@ -696,6 +696,8 @@ extern struct mtd_info *get_mtd_device(s
@@ -698,6 +698,8 @@ extern struct mtd_info *get_mtd_device(s
extern int __get_mtd_device(struct mtd_info *mtd);
extern void __put_mtd_device(struct mtd_info *mtd);
extern struct mtd_info *get_mtd_device_nm(const char *name);

View File

@ -16,8 +16,6 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
drivers/pci/controller/pci-aardvark.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index 226bce2f98f6..a573fc1aa4dd 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -37,10 +37,6 @@
@ -31,7 +29,7 @@ index 226bce2f98f6..a573fc1aa4dd 100644
/* PIO registers base address and register offsets */
#define PIO_BASE_ADDR 0x4000
#define PIO_CTRL (PIO_BASE_ADDR + 0x0)
@@ -967,7 +963,7 @@ static int advk_sw_pci_bridge_init(struct advk_pcie *pcie)
@@ -967,7 +963,7 @@ static int advk_sw_pci_bridge_init(struc
bridge->conf.pref_mem_limit = cpu_to_le16(PCI_PREF_RANGE_TYPE_64);
/* Support interrupt A for MSI feature */
@ -40,6 +38,3 @@ index 226bce2f98f6..a573fc1aa4dd 100644
/* Indicates supports for Completion Retry Status */
bridge->pcie_conf.rootcap = cpu_to_le16(PCI_EXP_RTCAP_CRSVIS);
--
2.34.1

View File

@ -25,11 +25,9 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
drivers/pci/controller/pci-aardvark.c | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index a573fc1aa4dd..1c6980a78975 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -1391,7 +1391,7 @@ static void advk_pcie_remove_irq_domain(struct advk_pcie *pcie)
@@ -1391,7 +1391,7 @@ static void advk_pcie_remove_irq_domain(
static void advk_pcie_handle_msi(struct advk_pcie *pcie)
{
u32 msi_val, msi_mask, msi_status, msi_idx;
@ -38,7 +36,7 @@ index a573fc1aa4dd..1c6980a78975 100644
msi_mask = advk_readl(pcie, PCIE_MSI_MASK_REG);
msi_val = advk_readl(pcie, PCIE_MSI_STATUS_REG);
@@ -1401,13 +1401,12 @@ static void advk_pcie_handle_msi(struct advk_pcie *pcie)
@@ -1401,13 +1401,12 @@ static void advk_pcie_handle_msi(struct
if (!(BIT(msi_idx) & msi_status))
continue;
@ -57,6 +55,3 @@ index a573fc1aa4dd..1c6980a78975 100644
}
advk_writel(pcie, PCIE_ISR0_MSI_INT_PENDING,
--
2.34.1

View File

@ -30,11 +30,9 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
drivers/pci/controller/pci-aardvark.c | 16 ++++++----------
1 file changed, 6 insertions(+), 10 deletions(-)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index 1c6980a78975..e68773527171 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -1187,7 +1187,7 @@ static void advk_msi_irq_compose_msi_msg(struct irq_data *data,
@@ -1187,7 +1187,7 @@ static void advk_msi_irq_compose_msi_msg
msg->address_lo = lower_32_bits(msi_msg);
msg->address_hi = upper_32_bits(msi_msg);
@ -43,7 +41,7 @@ index 1c6980a78975..e68773527171 100644
}
static int advk_msi_set_affinity(struct irq_data *irq_data,
@@ -1204,15 +1204,11 @@ static int advk_msi_irq_domain_alloc(struct irq_domain *domain,
@@ -1204,15 +1204,11 @@ static int advk_msi_irq_domain_alloc(str
int hwirq, i;
mutex_lock(&pcie->msi_used_lock);
@ -63,7 +61,7 @@ index 1c6980a78975..e68773527171 100644
for (i = 0; i < nr_irqs; i++)
irq_domain_set_info(domain, virq + i, hwirq + i,
@@ -1230,7 +1226,7 @@ static void advk_msi_irq_domain_free(struct irq_domain *domain,
@@ -1230,7 +1226,7 @@ static void advk_msi_irq_domain_free(str
struct advk_pcie *pcie = domain->host_data;
mutex_lock(&pcie->msi_used_lock);
@ -72,6 +70,3 @@ index 1c6980a78975..e68773527171 100644
mutex_unlock(&pcie->msi_used_lock);
}
--
2.34.1

View File

@ -21,8 +21,6 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
drivers/pci/controller/pci-aardvark.c | 48 +++++++++++++++------------
1 file changed, 26 insertions(+), 22 deletions(-)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index e68773527171..01dfe70d9c2c 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -275,6 +275,7 @@ struct advk_pcie {
@ -33,7 +31,7 @@ index e68773527171..01dfe70d9c2c 100644
struct irq_domain *irq_domain;
struct irq_chip irq_chip;
raw_spinlock_t irq_lock;
@@ -1440,21 +1441,26 @@ static void advk_pcie_handle_int(struct advk_pcie *pcie)
@@ -1440,21 +1441,26 @@ static void advk_pcie_handle_int(struct
}
}
@ -70,7 +68,7 @@ index e68773527171..01dfe70d9c2c 100644
}
static void __maybe_unused advk_pcie_disable_phy(struct advk_pcie *pcie)
@@ -1521,7 +1527,7 @@ static int advk_pcie_probe(struct platform_device *pdev)
@@ -1521,7 +1527,7 @@ static int advk_pcie_probe(struct platfo
struct advk_pcie *pcie;
struct pci_host_bridge *bridge;
struct resource_entry *entry;
@ -79,7 +77,7 @@ index e68773527171..01dfe70d9c2c 100644
bridge = devm_pci_alloc_host_bridge(dev, sizeof(struct advk_pcie));
if (!bridge)
@@ -1609,17 +1615,9 @@ static int advk_pcie_probe(struct platform_device *pdev)
@@ -1609,17 +1615,9 @@ static int advk_pcie_probe(struct platfo
if (IS_ERR(pcie->base))
return PTR_ERR(pcie->base);
@ -100,7 +98,7 @@ index e68773527171..01dfe70d9c2c 100644
pcie->reset_gpio = devm_gpiod_get_from_of_node(dev, dev->of_node,
"reset-gpios", 0,
@@ -1668,11 +1666,14 @@ static int advk_pcie_probe(struct platform_device *pdev)
@@ -1668,11 +1666,14 @@ static int advk_pcie_probe(struct platfo
return ret;
}
@ -115,7 +113,7 @@ index e68773527171..01dfe70d9c2c 100644
advk_pcie_remove_msi_irq_domain(pcie);
advk_pcie_remove_irq_domain(pcie);
return ret;
@@ -1720,6 +1721,9 @@ static int advk_pcie_remove(struct platform_device *pdev)
@@ -1720,6 +1721,9 @@ static int advk_pcie_remove(struct platf
advk_writel(pcie, PCIE_ISR1_ALL_MASK, PCIE_ISR1_REG);
advk_writel(pcie, PCIE_IRQ_ALL_MASK, HOST_CTRL_INT_STATUS_REG);
@ -125,6 +123,3 @@ index e68773527171..01dfe70d9c2c 100644
/* Remove IRQ domains */
advk_pcie_remove_msi_irq_domain(pcie);
advk_pcie_remove_irq_domain(pcie);
--
2.34.1

View File

@ -16,11 +16,9 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
drivers/pci/controller/pci-aardvark.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index 01dfe70d9c2c..4be05b52d835 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -1437,7 +1437,9 @@ static void advk_pcie_handle_int(struct advk_pcie *pcie)
@@ -1437,7 +1437,9 @@ static void advk_pcie_handle_int(struct
PCIE_ISR1_REG);
virq = irq_find_mapping(pcie->irq_domain, i);
@ -31,6 +29,3 @@ index 01dfe70d9c2c..4be05b52d835 100644
}
}
--
2.34.1

View File

@ -23,8 +23,6 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
drivers/pci/controller/pci-aardvark.c | 26 ++++++++++++--------------
1 file changed, 12 insertions(+), 14 deletions(-)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index 4be05b52d835..c7bd6b123857 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -281,8 +281,6 @@ struct advk_pcie {
@ -36,7 +34,7 @@ index 4be05b52d835..c7bd6b123857 100644
struct msi_domain_info msi_domain_info;
DECLARE_BITMAP(msi_used, MSI_IRQ_NUM);
struct mutex msi_used_lock;
@@ -1197,6 +1195,12 @@ static int advk_msi_set_affinity(struct irq_data *irq_data,
@@ -1197,6 +1195,12 @@ static int advk_msi_set_affinity(struct
return -EINVAL;
}
@ -49,7 +47,7 @@ index 4be05b52d835..c7bd6b123857 100644
static int advk_msi_irq_domain_alloc(struct irq_domain *domain,
unsigned int virq,
unsigned int nr_irqs, void *args)
@@ -1213,7 +1217,7 @@ static int advk_msi_irq_domain_alloc(struct irq_domain *domain,
@@ -1213,7 +1217,7 @@ static int advk_msi_irq_domain_alloc(str
for (i = 0; i < nr_irqs; i++)
irq_domain_set_info(domain, virq + i, hwirq + i,
@ -58,7 +56,7 @@ index 4be05b52d835..c7bd6b123857 100644
domain->host_data, handle_simple_irq,
NULL, NULL);
@@ -1283,29 +1287,23 @@ static const struct irq_domain_ops advk_pcie_irq_domain_ops = {
@@ -1283,29 +1287,23 @@ static const struct irq_domain_ops advk_
.xlate = irq_domain_xlate_onecell,
};
@ -93,6 +91,3 @@ index 4be05b52d835..c7bd6b123857 100644
msi_msg_phys = virt_to_phys(&pcie->msi_msg);
--
2.34.1

View File

@ -15,8 +15,6 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
drivers/pci/controller/pci-aardvark.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index c7bd6b123857..b5e5c922ad0d 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -281,7 +281,6 @@ struct advk_pcie {
@ -27,7 +25,7 @@ index c7bd6b123857..b5e5c922ad0d 100644
DECLARE_BITMAP(msi_used, MSI_IRQ_NUM);
struct mutex msi_used_lock;
u16 msi_msg;
@@ -1291,20 +1290,20 @@ static struct irq_chip advk_msi_irq_chip = {
@@ -1291,20 +1290,20 @@ static struct irq_chip advk_msi_irq_chip
.name = "advk-MSI",
};
@ -54,7 +52,7 @@ index c7bd6b123857..b5e5c922ad0d 100644
msi_msg_phys = virt_to_phys(&pcie->msi_msg);
advk_writel(pcie, lower_32_bits(msi_msg_phys),
@@ -1320,7 +1319,8 @@ static int advk_pcie_init_msi_irq_domain(struct advk_pcie *pcie)
@@ -1320,7 +1319,8 @@ static int advk_pcie_init_msi_irq_domain
pcie->msi_domain =
pci_msi_create_irq_domain(of_node_to_fwnode(node),
@ -64,6 +62,3 @@ index c7bd6b123857..b5e5c922ad0d 100644
if (!pcie->msi_domain) {
irq_domain_remove(pcie->msi_inner_domain);
return -ENOMEM;
--
2.34.1

View File

@ -19,11 +19,9 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
drivers/pci/controller/pci-aardvark.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index b5e5c922ad0d..e641ad566488 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -1299,7 +1299,6 @@ static struct msi_domain_info advk_msi_domain_info = {
@@ -1299,7 +1299,6 @@ static struct msi_domain_info advk_msi_d
static int advk_pcie_init_msi_irq_domain(struct advk_pcie *pcie)
{
struct device *dev = &pcie->pdev->dev;
@ -31,7 +29,7 @@ index b5e5c922ad0d..e641ad566488 100644
phys_addr_t msi_msg_phys;
mutex_init(&pcie->msi_used_lock);
@@ -1318,7 +1317,7 @@ static int advk_pcie_init_msi_irq_domain(struct advk_pcie *pcie)
@@ -1318,7 +1317,7 @@ static int advk_pcie_init_msi_irq_domain
return -ENOMEM;
pcie->msi_domain =
@ -40,6 +38,3 @@ index b5e5c922ad0d..e641ad566488 100644
&advk_msi_domain_info,
pcie->msi_inner_domain);
if (!pcie->msi_domain) {
--
2.34.1

View File

@ -18,11 +18,9 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
drivers/pci/controller/pci-aardvark.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index e641ad566488..5c887772fa97 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -578,15 +578,17 @@ static void advk_pcie_setup_hw(struct advk_pcie *pcie)
@@ -578,15 +578,17 @@ static void advk_pcie_setup_hw(struct ad
advk_writel(pcie, PCIE_IRQ_ALL_MASK, HOST_CTRL_INT_STATUS_REG);
/* Disable All ISR0/1 Sources */
@ -44,6 +42,3 @@ index e641ad566488..5c887772fa97 100644
/* Enable summary interrupt for GIC SPI source */
reg = PCIE_IRQ_ALL_MASK & (~PCIE_IRQ_ENABLE_INTS_MASK);
advk_writel(pcie, reg, HOST_CTRL_INT_MASK_REG);
--
2.34.1

View File

@ -18,8 +18,6 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
drivers/pci/controller/pci-aardvark.c | 54 ++++++++++++++++++++++++---
1 file changed, 49 insertions(+), 5 deletions(-)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index 5c887772fa97..43db884c81a1 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -281,6 +281,7 @@ struct advk_pcie {
@ -30,7 +28,7 @@ index 5c887772fa97..43db884c81a1 100644
DECLARE_BITMAP(msi_used, MSI_IRQ_NUM);
struct mutex msi_used_lock;
u16 msi_msg;
@@ -577,12 +578,10 @@ static void advk_pcie_setup_hw(struct advk_pcie *pcie)
@@ -577,12 +578,10 @@ static void advk_pcie_setup_hw(struct ad
advk_writel(pcie, PCIE_ISR1_ALL_MASK, PCIE_ISR1_REG);
advk_writel(pcie, PCIE_IRQ_ALL_MASK, HOST_CTRL_INT_STATUS_REG);
@ -45,7 +43,7 @@ index 5c887772fa97..43db884c81a1 100644
/* Unmask summary MSI interrupt */
reg = advk_readl(pcie, PCIE_ISR0_MASK_REG);
@@ -1196,10 +1195,52 @@ static int advk_msi_set_affinity(struct irq_data *irq_data,
@@ -1196,10 +1195,52 @@ static int advk_msi_set_affinity(struct
return -EINVAL;
}
@ -98,7 +96,7 @@ index 5c887772fa97..43db884c81a1 100644
};
static int advk_msi_irq_domain_alloc(struct irq_domain *domain,
@@ -1289,7 +1330,9 @@ static const struct irq_domain_ops advk_pcie_irq_domain_ops = {
@@ -1289,7 +1330,9 @@ static const struct irq_domain_ops advk_
};
static struct irq_chip advk_msi_irq_chip = {
@ -109,7 +107,7 @@ index 5c887772fa97..43db884c81a1 100644
};
static struct msi_domain_info advk_msi_domain_info = {
@@ -1303,6 +1346,7 @@ static int advk_pcie_init_msi_irq_domain(struct advk_pcie *pcie)
@@ -1303,6 +1346,7 @@ static int advk_pcie_init_msi_irq_domain
struct device *dev = &pcie->pdev->dev;
phys_addr_t msi_msg_phys;
@ -117,6 +115,3 @@ index 5c887772fa97..43db884c81a1 100644
mutex_init(&pcie->msi_used_lock);
msi_msg_phys = virt_to_phys(&pcie->msi_msg);
--
2.34.1

View File

@ -26,8 +26,6 @@ Cc: stable@vger.kernel.org # f21a8b1b6837 ("PCI: aardvark: Move to MSI handling
drivers/pci/controller/pci-aardvark.c | 21 +++++++++------------
1 file changed, 9 insertions(+), 12 deletions(-)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index 43db884c81a1..76a65c592b5c 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -284,7 +284,6 @@ struct advk_pcie {
@ -38,7 +36,7 @@ index 43db884c81a1..76a65c592b5c 100644
int link_gen;
struct pci_bridge_emul bridge;
struct gpio_desc *reset_gpio;
@@ -479,6 +478,7 @@ static void advk_pcie_disable_ob_win(struct advk_pcie *pcie, u8 win_num)
@@ -479,6 +478,7 @@ static void advk_pcie_disable_ob_win(str
static void advk_pcie_setup_hw(struct advk_pcie *pcie)
{
@ -46,7 +44,7 @@ index 43db884c81a1..76a65c592b5c 100644
u32 reg;
int i;
@@ -567,6 +567,11 @@ static void advk_pcie_setup_hw(struct advk_pcie *pcie)
@@ -567,6 +567,11 @@ static void advk_pcie_setup_hw(struct ad
reg |= LANE_COUNT_1;
advk_writel(pcie, reg, PCIE_CORE_CTRL0_REG);
@ -58,7 +56,7 @@ index 43db884c81a1..76a65c592b5c 100644
/* Enable MSI */
reg = advk_readl(pcie, PCIE_CORE_CTRL2_REG);
reg |= PCIE_CORE_CTRL2_MSI_ENABLE;
@@ -1182,10 +1187,10 @@ static void advk_msi_irq_compose_msi_msg(struct irq_data *data,
@@ -1182,10 +1187,10 @@ static void advk_msi_irq_compose_msi_msg
struct msi_msg *msg)
{
struct advk_pcie *pcie = irq_data_get_irq_chip_data(data);
@ -72,7 +70,7 @@ index 43db884c81a1..76a65c592b5c 100644
msg->data = data->hwirq;
}
@@ -1344,18 +1349,10 @@ static struct msi_domain_info advk_msi_domain_info = {
@@ -1344,18 +1349,10 @@ static struct msi_domain_info advk_msi_d
static int advk_pcie_init_msi_irq_domain(struct advk_pcie *pcie)
{
struct device *dev = &pcie->pdev->dev;
@ -91,6 +89,3 @@ index 43db884c81a1..76a65c592b5c 100644
pcie->msi_inner_domain =
irq_domain_add_linear(NULL, MSI_IRQ_NUM,
&advk_msi_domain_ops, pcie);
--
2.34.1

View File

@ -25,11 +25,9 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
drivers/pci/controller/pci-aardvark.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index 76a65c592b5c..e6cfee3b41a2 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -1342,7 +1342,7 @@ static struct irq_chip advk_msi_irq_chip = {
@@ -1342,7 +1342,7 @@ static struct irq_chip advk_msi_irq_chip
static struct msi_domain_info advk_msi_domain_info = {
.flags = MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS |
@ -38,6 +36,3 @@ index 76a65c592b5c..e6cfee3b41a2 100644
.chip = &advk_msi_irq_chip,
};
--
2.34.1

View File

@ -28,8 +28,6 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
drivers/pci/controller/pci-aardvark.c | 36 ++++++++++++++++++++++++++-
1 file changed, 35 insertions(+), 1 deletion(-)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index e6cfee3b41a2..7956b103d3c7 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -97,6 +97,10 @@
@ -43,7 +41,7 @@ index e6cfee3b41a2..7956b103d3c7 100644
#define PCIE_ISR0_INTX_ASSERT(val) BIT(16 + (val))
#define PCIE_ISR0_INTX_DEASSERT(val) BIT(20 + (val))
#define PCIE_ISR0_ALL_MASK GENMASK(31, 0)
@@ -785,11 +789,15 @@ advk_pci_bridge_emul_base_conf_read(struct pci_bridge_emul *bridge,
@@ -785,11 +789,15 @@ advk_pci_bridge_emul_base_conf_read(stru
case PCI_INTERRUPT_LINE: {
/*
* From the whole 32bit register we support reading from HW only
@ -60,7 +58,7 @@ index e6cfee3b41a2..7956b103d3c7 100644
if (advk_readl(pcie, PCIE_CORE_CTRL1_REG) & HOT_RESET_GEN)
val |= PCI_BRIDGE_CTL_BUS_RESET << 16;
else
@@ -815,6 +823,19 @@ advk_pci_bridge_emul_base_conf_write(struct pci_bridge_emul *bridge,
@@ -815,6 +823,19 @@ advk_pci_bridge_emul_base_conf_write(str
break;
case PCI_INTERRUPT_LINE:
@ -80,7 +78,7 @@ index e6cfee3b41a2..7956b103d3c7 100644
if (mask & (PCI_BRIDGE_CTL_BUS_RESET << 16)) {
u32 val = advk_readl(pcie, PCIE_CORE_CTRL1_REG);
if (new & (PCI_BRIDGE_CTL_BUS_RESET << 16))
@@ -1464,6 +1485,19 @@ static void advk_pcie_handle_int(struct advk_pcie *pcie)
@@ -1464,6 +1485,19 @@ static void advk_pcie_handle_int(struct
isr1_mask = advk_readl(pcie, PCIE_ISR1_MASK_REG);
isr1_status = isr1_val & ((~isr1_mask) & PCIE_ISR1_ALL_MASK);
@ -100,6 +98,3 @@ index e6cfee3b41a2..7956b103d3c7 100644
/* Process MSI interrupts */
if (isr0_status & PCIE_ISR0_MSI_INT_PENDING)
advk_pcie_handle_msi(pcie);
--
2.34.1

View File

@ -29,11 +29,9 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
drivers/pci/controller/pci-aardvark.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index 7956b103d3c7..44d9c8c4d258 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -874,7 +874,9 @@ advk_pci_bridge_emul_pcie_conf_read(struct pci_bridge_emul *bridge,
@@ -874,7 +874,9 @@ advk_pci_bridge_emul_pcie_conf_read(stru
case PCI_EXP_RTSTA: {
u32 isr0 = advk_readl(pcie, PCIE_ISR0_REG);
u32 msglog = advk_readl(pcie, PCIE_MSG_LOG_REG);
@ -44,6 +42,3 @@ index 7956b103d3c7..44d9c8c4d258 100644
return PCI_BRIDGE_EMUL_HANDLED;
}
--
2.34.1

View File

@ -17,11 +17,9 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
drivers/pci/controller/pci-aardvark.c | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index 44d9c8c4d258..efd7e53b5e06 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -933,19 +933,21 @@ advk_pci_bridge_emul_pcie_conf_write(struct pci_bridge_emul *bridge,
@@ -933,19 +933,21 @@ advk_pci_bridge_emul_pcie_conf_write(str
advk_pcie_wait_for_retrain(pcie);
break;
@ -52,6 +50,3 @@ index 44d9c8c4d258..efd7e53b5e06 100644
break;
case PCI_EXP_DEVCTL:
--
2.34.1

View File

@ -23,11 +23,9 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
drivers/pci/controller/pci-aardvark.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index efd7e53b5e06..e2b66b0e8fb3 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -1489,6 +1489,19 @@ static void advk_pcie_handle_int(struct advk_pcie *pcie)
@@ -1489,6 +1489,19 @@ static void advk_pcie_handle_int(struct
isr1_mask = advk_readl(pcie, PCIE_ISR1_MASK_REG);
isr1_status = isr1_val & ((~isr1_mask) & PCIE_ISR1_ALL_MASK);
@ -47,6 +45,3 @@ index efd7e53b5e06..e2b66b0e8fb3 100644
/* Process ERR interrupt */
if (isr0_status & PCIE_ISR0_ERR_MASK) {
advk_writel(pcie, PCIE_ISR0_ERR_MASK, PCIE_ISR0_REG);
--
2.34.1

View File

@ -38,11 +38,9 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
drivers/pci/controller/pci-aardvark.c | 94 +++++++++++++++------------
1 file changed, 52 insertions(+), 42 deletions(-)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index e2b66b0e8fb3..85a632537b70 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -597,6 +597,11 @@ static void advk_pcie_setup_hw(struct advk_pcie *pcie)
@@ -597,6 +597,11 @@ static void advk_pcie_setup_hw(struct ad
reg &= ~PCIE_ISR0_MSI_INT_PENDING;
advk_writel(pcie, reg, PCIE_ISR0_MASK_REG);
@ -54,7 +52,7 @@ index e2b66b0e8fb3..85a632537b70 100644
/* Enable summary interrupt for GIC SPI source */
reg = PCIE_IRQ_ALL_MASK & (~PCIE_IRQ_ENABLE_INTS_MASK);
advk_writel(pcie, reg, HOST_CTRL_INT_MASK_REG);
@@ -863,22 +868,11 @@ advk_pci_bridge_emul_pcie_conf_read(struct pci_bridge_emul *bridge,
@@ -863,22 +868,11 @@ advk_pci_bridge_emul_pcie_conf_read(stru
*value = PCI_EXP_SLTSTA_PDS << 16;
return PCI_BRIDGE_EMUL_HANDLED;
@ -82,7 +80,7 @@ index e2b66b0e8fb3..85a632537b70 100644
case PCI_EXP_LNKCAP: {
u32 val = advk_readl(pcie, PCIE_CORE_PCIEXP_CAP + reg);
@@ -933,22 +927,19 @@ advk_pci_bridge_emul_pcie_conf_write(struct pci_bridge_emul *bridge,
@@ -933,22 +927,19 @@ advk_pci_bridge_emul_pcie_conf_write(str
advk_pcie_wait_for_retrain(pcie);
break;
@ -116,7 +114,7 @@ index e2b66b0e8fb3..85a632537b70 100644
case PCI_EXP_DEVCTL:
case PCI_EXP_DEVCTL2:
@@ -1450,6 +1441,34 @@ static void advk_pcie_remove_irq_domain(struct advk_pcie *pcie)
@@ -1450,6 +1441,34 @@ static void advk_pcie_remove_irq_domain(
irq_domain_remove(pcie->irq_domain);
}
@ -151,7 +149,7 @@ index e2b66b0e8fb3..85a632537b70 100644
static void advk_pcie_handle_msi(struct advk_pcie *pcie)
{
u32 msi_val, msi_mask, msi_status, msi_idx;
@@ -1489,18 +1508,9 @@ static void advk_pcie_handle_int(struct advk_pcie *pcie)
@@ -1489,18 +1508,9 @@ static void advk_pcie_handle_int(struct
isr1_mask = advk_readl(pcie, PCIE_ISR1_MASK_REG);
isr1_status = isr1_val & ((~isr1_mask) & PCIE_ISR1_ALL_MASK);
@ -173,6 +171,3 @@ index e2b66b0e8fb3..85a632537b70 100644
/* Process ERR interrupt */
if (isr0_status & PCIE_ISR0_ERR_MASK) {
--
2.34.1

View File

@ -31,8 +31,6 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
drivers/pci/controller/pci-aardvark.c | 69 ++++++++++++++++++++++++++-
1 file changed, 67 insertions(+), 2 deletions(-)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index 85a632537b70..b6e723c5725c 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -280,6 +280,7 @@ struct advk_pcie {
@ -43,7 +41,7 @@ index 85a632537b70..b6e723c5725c 100644
struct irq_domain *irq_domain;
struct irq_chip irq_chip;
raw_spinlock_t irq_lock;
@@ -1441,6 +1442,44 @@ static void advk_pcie_remove_irq_domain(struct advk_pcie *pcie)
@@ -1441,6 +1442,44 @@ static void advk_pcie_remove_irq_domain(
irq_domain_remove(pcie->irq_domain);
}
@ -88,7 +86,7 @@ index 85a632537b70..b6e723c5725c 100644
static void advk_pcie_handle_pme(struct advk_pcie *pcie)
{
u32 requester = advk_readl(pcie, PCIE_MSG_LOG_REG) >> 16;
@@ -1463,7 +1502,7 @@ static void advk_pcie_handle_pme(struct advk_pcie *pcie)
@@ -1463,7 +1502,7 @@ static void advk_pcie_handle_pme(struct
if (!(le16_to_cpu(pcie->bridge.pcie_conf.rootctl) & PCI_EXP_RTCTL_PMEIE))
return;
@ -97,7 +95,7 @@ index 85a632537b70..b6e723c5725c 100644
if (generic_handle_irq(virq) == -EINVAL)
dev_err_ratelimited(&pcie->pdev->dev, "unhandled PME IRQ\n");
}
@@ -1520,7 +1559,7 @@ static void advk_pcie_handle_int(struct advk_pcie *pcie)
@@ -1520,7 +1559,7 @@ static void advk_pcie_handle_int(struct
* Aardvark HW returns zero for PCI_ERR_ROOT_AER_IRQ, so use
* PCIe interrupt 0
*/
@ -106,7 +104,7 @@ index 85a632537b70..b6e723c5725c 100644
if (generic_handle_irq(virq) == -EINVAL)
dev_err_ratelimited(&pcie->pdev->dev, "unhandled ERR IRQ\n");
}
@@ -1566,6 +1605,21 @@ static void advk_pcie_irq_handler(struct irq_desc *desc)
@@ -1566,6 +1605,21 @@ static void advk_pcie_irq_handler(struct
chained_irq_exit(chip, desc);
}
@ -128,7 +126,7 @@ index 85a632537b70..b6e723c5725c 100644
static void __maybe_unused advk_pcie_disable_phy(struct advk_pcie *pcie)
{
phy_power_off(pcie->phy);
@@ -1769,14 +1823,24 @@ static int advk_pcie_probe(struct platform_device *pdev)
@@ -1769,14 +1823,24 @@ static int advk_pcie_probe(struct platfo
return ret;
}
@ -153,7 +151,7 @@ index 85a632537b70..b6e723c5725c 100644
advk_pcie_remove_msi_irq_domain(pcie);
advk_pcie_remove_irq_domain(pcie);
return ret;
@@ -1828,6 +1892,7 @@ static int advk_pcie_remove(struct platform_device *pdev)
@@ -1828,6 +1892,7 @@ static int advk_pcie_remove(struct platf
irq_set_chained_handler_and_data(pcie->irq, NULL, NULL);
/* Remove IRQ domains */
@ -161,6 +159,3 @@ index 85a632537b70..b6e723c5725c 100644
advk_pcie_remove_msi_irq_domain(pcie);
advk_pcie_remove_irq_domain(pcie);
--
2.34.1

View File

@ -17,11 +17,9 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
drivers/pci/controller/pci-aardvark.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index b6e723c5725c..99469e3dc945 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -1420,7 +1420,6 @@ static int advk_pcie_init_irq_domain(struct advk_pcie *pcie)
@@ -1420,7 +1420,6 @@ static int advk_pcie_init_irq_domain(str
}
irq_chip->irq_mask = advk_pcie_irq_mask;
@ -29,6 +27,3 @@ index b6e723c5725c..99469e3dc945 100644
irq_chip->irq_unmask = advk_pcie_irq_unmask;
pcie->irq_domain =
--
2.34.1

View File

@ -15,11 +15,9 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
drivers/pci/controller/pci-aardvark.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index 99469e3dc945..e090276ef902 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -1337,7 +1337,6 @@ static int advk_pcie_irq_map(struct irq_domain *h,
@@ -1337,7 +1337,6 @@ static int advk_pcie_irq_map(struct irq_
{
struct advk_pcie *pcie = h->host_data;
@ -27,6 +25,3 @@ index 99469e3dc945..e090276ef902 100644
irq_set_status_flags(virq, IRQ_LEVEL);
irq_set_chip_and_handler(virq, &pcie->irq_chip,
handle_level_irq);
--
2.34.1

View File

@ -15,11 +15,9 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
drivers/pci/controller/pci-aardvark.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index e090276ef902..aa5629b8b5c9 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -1618,7 +1618,7 @@ static int advk_pcie_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
@@ -1618,7 +1618,7 @@ static int advk_pcie_map_irq(const struc
return of_irq_parse_and_map_pci(dev, slot, pin);
}
@ -28,6 +26,3 @@ index e090276ef902..aa5629b8b5c9 100644
{
phy_power_off(pcie->phy);
phy_exit(pcie->phy);
--
2.34.1

View File

@ -16,11 +16,9 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
drivers/pci/controller/pci-aardvark.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index aa5629b8b5c9..3c0b6b931061 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -1003,8 +1003,12 @@ static bool advk_pcie_valid_device(struct advk_pcie *pcie, struct pci_bus *bus,
@@ -1003,8 +1003,12 @@ static bool advk_pcie_valid_device(struc
return false;
/*
@ -35,6 +33,3 @@ index aa5629b8b5c9..3c0b6b931061 100644
*/
if (!pci_is_root_bus(bus) && !advk_pcie_link_up(pcie))
return false;
--
2.34.1

View File

@ -31,8 +31,6 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
drivers/pci/controller/pci-aardvark.c | 25 +++++++------------------
1 file changed, 7 insertions(+), 18 deletions(-)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index 3c0b6b931061..319dd830e36e 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -282,7 +282,6 @@ struct advk_pcie {
@ -43,7 +41,7 @@ index 3c0b6b931061..319dd830e36e 100644
raw_spinlock_t irq_lock;
struct irq_domain *msi_domain;
struct irq_domain *msi_inner_domain;
@@ -1336,14 +1335,19 @@ static void advk_pcie_irq_unmask(struct irq_data *d)
@@ -1336,14 +1335,19 @@ static void advk_pcie_irq_unmask(struct
raw_spin_unlock_irqrestore(&pcie->irq_lock, flags);
}
@ -65,7 +63,7 @@ index 3c0b6b931061..319dd830e36e 100644
irq_set_chip_data(virq, pcie);
return 0;
@@ -1402,7 +1406,6 @@ static int advk_pcie_init_irq_domain(struct advk_pcie *pcie)
@@ -1402,7 +1406,6 @@ static int advk_pcie_init_irq_domain(str
struct device *dev = &pcie->pdev->dev;
struct device_node *node = dev->of_node;
struct device_node *pcie_intc_node;
@ -73,7 +71,7 @@ index 3c0b6b931061..319dd830e36e 100644
int ret = 0;
raw_spin_lock_init(&pcie->irq_lock);
@@ -1413,28 +1416,14 @@ static int advk_pcie_init_irq_domain(struct advk_pcie *pcie)
@@ -1413,28 +1416,14 @@ static int advk_pcie_init_irq_domain(str
return -ENODEV;
}
@ -102,6 +100,3 @@ index 3c0b6b931061..319dd830e36e 100644
of_node_put(pcie_intc_node);
return ret;
}
--
2.34.1

View File

@ -29,8 +29,6 @@ Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
drivers/phy/marvell/phy-mvebu-a3700-comphy.c | 62 +++++++++-----------
1 file changed, 29 insertions(+), 33 deletions(-)
diff --git a/drivers/phy/marvell/phy-mvebu-a3700-comphy.c b/drivers/phy/marvell/phy-mvebu-a3700-comphy.c
index 6781488cfc58..dbb2d4308851 100644
--- a/drivers/phy/marvell/phy-mvebu-a3700-comphy.c
+++ b/drivers/phy/marvell/phy-mvebu-a3700-comphy.c
@@ -20,7 +20,6 @@
@ -115,7 +113,7 @@ index 6781488cfc58..dbb2d4308851 100644
};
static int mvebu_a3700_comphy_smc(unsigned long function, unsigned long lane,
@@ -120,7 +114,7 @@ static int mvebu_a3700_comphy_smc(unsigned long function, unsigned long lane,
@@ -120,7 +114,7 @@ static int mvebu_a3700_comphy_smc(unsign
}
}
@ -124,7 +122,7 @@ index 6781488cfc58..dbb2d4308851 100644
enum phy_mode mode,
int submode)
{
@@ -132,7 +126,6 @@ static int mvebu_a3700_comphy_get_fw_mode(int lane, int port,
@@ -132,7 +126,6 @@ static int mvebu_a3700_comphy_get_fw_mod
for (i = 0; i < n; i++) {
if (mvebu_a3700_comphy_modes[i].lane == lane &&
@ -132,7 +130,7 @@ index 6781488cfc58..dbb2d4308851 100644
mvebu_a3700_comphy_modes[i].mode == mode &&
mvebu_a3700_comphy_modes[i].submode == submode)
break;
@@ -153,7 +146,7 @@ static int mvebu_a3700_comphy_set_mode(struct phy *phy, enum phy_mode mode,
@@ -153,7 +146,7 @@ static int mvebu_a3700_comphy_set_mode(s
if (submode == PHY_INTERFACE_MODE_1000BASEX)
submode = PHY_INTERFACE_MODE_SGMII;
@ -141,7 +139,7 @@ index 6781488cfc58..dbb2d4308851 100644
submode);
if (fw_mode < 0) {
dev_err(lane->dev, "invalid COMPHY mode\n");
@@ -172,9 +165,10 @@ static int mvebu_a3700_comphy_power_on(struct phy *phy)
@@ -172,9 +165,10 @@ static int mvebu_a3700_comphy_power_on(s
struct mvebu_a3700_comphy_lane *lane = phy_get_drvdata(phy);
u32 fw_param;
int fw_mode;
@ -153,7 +151,7 @@ index 6781488cfc58..dbb2d4308851 100644
lane->mode, lane->submode);
if (fw_mode < 0) {
dev_err(lane->dev, "invalid COMPHY mode\n");
@@ -191,17 +185,18 @@ static int mvebu_a3700_comphy_power_on(struct phy *phy)
@@ -191,17 +185,18 @@ static int mvebu_a3700_comphy_power_on(s
fw_param = COMPHY_FW_MODE(fw_mode);
break;
case PHY_MODE_ETHERNET:
@ -174,7 +172,7 @@ index 6781488cfc58..dbb2d4308851 100644
COMPHY_FW_SPEED_3_125G);
break;
default:
@@ -212,8 +207,7 @@ static int mvebu_a3700_comphy_power_on(struct phy *phy)
@@ -212,8 +207,7 @@ static int mvebu_a3700_comphy_power_on(s
break;
case PHY_MODE_PCIE:
dev_dbg(lane->dev, "set lane %d to PCIe mode\n", lane->id);
@ -184,7 +182,7 @@ index 6781488cfc58..dbb2d4308851 100644
phy->attrs.bus_width);
break;
default:
@@ -247,17 +241,20 @@ static struct phy *mvebu_a3700_comphy_xlate(struct device *dev,
@@ -247,17 +241,20 @@ static struct phy *mvebu_a3700_comphy_xl
struct of_phandle_args *args)
{
struct mvebu_a3700_comphy_lane *lane;
@ -209,7 +207,7 @@ index 6781488cfc58..dbb2d4308851 100644
return phy;
}
@@ -302,7 +299,6 @@ static int mvebu_a3700_comphy_probe(struct platform_device *pdev)
@@ -302,7 +299,6 @@ static int mvebu_a3700_comphy_probe(stru
lane->mode = PHY_MODE_INVALID;
lane->submode = PHY_INTERFACE_MODE_NA;
lane->id = lane_id;
@ -217,6 +215,3 @@ index 6781488cfc58..dbb2d4308851 100644
phy_set_drvdata(phy, lane);
}
--
2.34.1

View File

@ -57,8 +57,6 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
drivers/phy/marvell/phy-mvebu-a3700-comphy.c | 1351 ++++++++++++++++--
1 file changed, 1234 insertions(+), 117 deletions(-)
diff --git a/drivers/phy/marvell/phy-mvebu-a3700-comphy.c b/drivers/phy/marvell/phy-mvebu-a3700-comphy.c
index dbb2d4308851..cbda47c33b98 100644
--- a/drivers/phy/marvell/phy-mvebu-a3700-comphy.c
+++ b/drivers/phy/marvell/phy-mvebu-a3700-comphy.c
@@ -5,12 +5,16 @@
@ -87,32 +85,6 @@ index dbb2d4308851..cbda47c33b98 100644
+#include <linux/spinlock.h>
-#define MVEBU_A3700_COMPHY_LANES 3
-
-/* COMPHY Fast SMC function identifiers */
-#define COMPHY_SIP_POWER_ON 0x82000001
-#define COMPHY_SIP_POWER_OFF 0x82000002
-#define COMPHY_SIP_PLL_LOCK 0x82000003
-
-#define COMPHY_FW_MODE_SATA 0x1
-#define COMPHY_FW_MODE_SGMII 0x2
-#define COMPHY_FW_MODE_2500BASEX 0x3
-#define COMPHY_FW_MODE_USB3H 0x4
-#define COMPHY_FW_MODE_USB3D 0x5
-#define COMPHY_FW_MODE_PCIE 0x6
-#define COMPHY_FW_MODE_USB3 0xa
-
-#define COMPHY_FW_SPEED_1_25G 0 /* SGMII 1G */
-#define COMPHY_FW_SPEED_2_5G 1
-#define COMPHY_FW_SPEED_3_125G 2 /* 2500BASE-X */
-#define COMPHY_FW_SPEED_5G 3
-#define COMPHY_FW_SPEED_MAX 0x3F
-
-#define COMPHY_FW_MODE(mode) ((mode) << 12)
-#define COMPHY_FW_NET(mode, idx, speed) (COMPHY_FW_MODE(mode) | \
- ((idx) << 8) | \
- ((speed) << 2))
-#define COMPHY_FW_PCIE(mode, speed, width) (COMPHY_FW_NET(mode, 0, speed) | \
- ((width) << 18))
+#define PLL_SET_DELAY_US 600
+#define COMPHY_PLL_SLEEP 1000
+#define COMPHY_PLL_TIMEOUT 150000
@ -267,7 +239,32 @@ index dbb2d4308851..cbda47c33b98 100644
+ */
+#define COMPHY_RESERVED_REG 0x0E
+#define PHYCTRL_FRM_PIN_BIT BIT(13)
+
-/* COMPHY Fast SMC function identifiers */
-#define COMPHY_SIP_POWER_ON 0x82000001
-#define COMPHY_SIP_POWER_OFF 0x82000002
-#define COMPHY_SIP_PLL_LOCK 0x82000003
-
-#define COMPHY_FW_MODE_SATA 0x1
-#define COMPHY_FW_MODE_SGMII 0x2
-#define COMPHY_FW_MODE_2500BASEX 0x3
-#define COMPHY_FW_MODE_USB3H 0x4
-#define COMPHY_FW_MODE_USB3D 0x5
-#define COMPHY_FW_MODE_PCIE 0x6
-#define COMPHY_FW_MODE_USB3 0xa
-
-#define COMPHY_FW_SPEED_1_25G 0 /* SGMII 1G */
-#define COMPHY_FW_SPEED_2_5G 1
-#define COMPHY_FW_SPEED_3_125G 2 /* 2500BASE-X */
-#define COMPHY_FW_SPEED_5G 3
-#define COMPHY_FW_SPEED_MAX 0x3F
-
-#define COMPHY_FW_MODE(mode) ((mode) << 12)
-#define COMPHY_FW_NET(mode, idx, speed) (COMPHY_FW_MODE(mode) | \
- ((idx) << 8) | \
- ((speed) << 2))
-#define COMPHY_FW_PCIE(mode, speed, width) (COMPHY_FW_NET(mode, 0, speed) | \
- ((width) << 18))
+/* South Bridge PHY Configuration Registers */
+#define COMPHY_PHY_REG(lane, reg) (((1 - (lane)) * 0x28) + ((reg) & 0x3f))
+
@ -385,10 +382,8 @@ index dbb2d4308851..cbda47c33b98 100644
+ bool invert_tx;
+ bool invert_rx;
+ bool needs_reset;
};
-static int mvebu_a3700_comphy_smc(unsigned long function, unsigned long lane,
- unsigned long mode)
+};
+
+struct gbe_phy_init_data_fix {
+ u16 addr;
+ u16 value;
@ -405,8 +400,10 @@ index dbb2d4308851..cbda47c33b98 100644
+ { 0x0C3, 0x8000 }, { 0x0E2, 0x5550 }, { 0x0E3, 0x12A4 },
+ { 0x0E4, 0x7D00 }, { 0x0E6, 0x0C83 }, { 0x101, 0xFCC0 },
+ { 0x104, 0x0C10 }
+};
+
};
-static int mvebu_a3700_comphy_smc(unsigned long function, unsigned long lane,
- unsigned long mode)
+/* 40M1G25 mode init data */
+static u16 gbe_phy_init[512] = {
+ /* 0 1 2 3 4 5 6 7 */
@ -479,25 +476,16 @@ index dbb2d4308851..cbda47c33b98 100644
+};
+
+static inline void comphy_reg_set(void __iomem *addr, u32 data, u32 mask)
+{
+ u32 val;
+
+ val = readl(addr);
+ val = (val & ~mask) | (data & mask);
+ writel(val, addr);
+}
+
+static inline void comphy_reg_set16(void __iomem *addr, u16 data, u16 mask)
{
- struct arm_smccc_res res;
- s32 ret;
+ u16 val;
+ u32 val;
- arm_smccc_smc(function, lane, mode, 0, 0, 0, 0, 0, &res);
- ret = res.a0;
+ val = readw(addr);
+ val = readl(addr);
+ val = (val & ~mask) | (data & mask);
+ writew(val, addr);
+ writel(val, addr);
+}
- switch (ret) {
@ -505,6 +493,15 @@ index dbb2d4308851..cbda47c33b98 100644
- return 0;
- case SMCCC_RET_NOT_SUPPORTED:
- return -EOPNOTSUPP;
+static inline void comphy_reg_set16(void __iomem *addr, u16 data, u16 mask)
+{
+ u16 val;
+
+ val = readw(addr);
+ val = (val & ~mask) | (data & mask);
+ writew(val, addr);
+}
+
+/* Used for accessing lane 2 registers (SATA/USB3 PHY) */
+static void comphy_set_indirect(struct mvebu_a3700_comphy_priv *priv,
+ u32 offset, u16 data, u16 mask)
@ -951,8 +948,9 @@ index dbb2d4308851..cbda47c33b98 100644
+ }
+
+ return 0;
+}
+
}
-static int mvebu_a3700_comphy_get_fw_mode(int lane,
+static int
+mvebu_a3700_comphy_usb3_power_on(struct mvebu_a3700_comphy_lane *lane)
+{
@ -1281,14 +1279,13 @@ index dbb2d4308851..cbda47c33b98 100644
+ }
+
+ return 0;
}
-static int mvebu_a3700_comphy_get_fw_mode(int lane,
+}
+
+static bool mvebu_a3700_comphy_check_mode(int lane,
enum phy_mode mode,
int submode)
{
@@ -122,7 +1170,7 @@ static int mvebu_a3700_comphy_get_fw_mode(int lane,
@@ -122,7 +1170,7 @@ static int mvebu_a3700_comphy_get_fw_mod
/* Unused PHY mux value is 0x0 */
if (mode == PHY_MODE_INVALID)
@ -1297,7 +1294,7 @@ index dbb2d4308851..cbda47c33b98 100644
for (i = 0; i < n; i++) {
if (mvebu_a3700_comphy_modes[i].lane == lane &&
@@ -132,27 +1180,30 @@ static int mvebu_a3700_comphy_get_fw_mode(int lane,
@@ -132,27 +1180,30 @@ static int mvebu_a3700_comphy_get_fw_mod
}
if (i == n)
@ -1338,7 +1335,7 @@ index dbb2d4308851..cbda47c33b98 100644
/* Just remember the mode, ->power_on() will do the real setup */
lane->mode = mode;
lane->submode = submode;
@@ -163,76 +1214,68 @@ static int mvebu_a3700_comphy_set_mode(struct phy *phy, enum phy_mode mode,
@@ -163,76 +1214,68 @@ static int mvebu_a3700_comphy_set_mode(s
static int mvebu_a3700_comphy_power_on(struct phy *phy)
{
struct mvebu_a3700_comphy_lane *lane = phy_get_drvdata(phy);
@ -1450,7 +1447,7 @@ index dbb2d4308851..cbda47c33b98 100644
.set_mode = mvebu_a3700_comphy_set_mode,
.owner = THIS_MODULE,
};
@@ -256,13 +1299,75 @@ static struct phy *mvebu_a3700_comphy_xlate(struct device *dev,
@@ -256,13 +1299,75 @@ static struct phy *mvebu_a3700_comphy_xl
return ERR_PTR(-EINVAL);
}
@ -1526,7 +1523,7 @@ index dbb2d4308851..cbda47c33b98 100644
for_each_available_child_of_node(pdev->dev.of_node, child) {
struct mvebu_a3700_comphy_lane *lane;
@@ -277,7 +1382,7 @@ static int mvebu_a3700_comphy_probe(struct platform_device *pdev)
@@ -277,7 +1382,7 @@ static int mvebu_a3700_comphy_probe(stru
continue;
}
@ -1535,7 +1532,7 @@ index dbb2d4308851..cbda47c33b98 100644
dev_err(&pdev->dev, "invalid 'reg' property\n");
continue;
}
@@ -295,11 +1400,21 @@ static int mvebu_a3700_comphy_probe(struct platform_device *pdev)
@@ -295,11 +1400,21 @@ static int mvebu_a3700_comphy_probe(stru
return PTR_ERR(phy);
}
@ -1557,7 +1554,7 @@ index dbb2d4308851..cbda47c33b98 100644
}
provider = devm_of_phy_provider_register(&pdev->dev,
@@ -323,5 +1438,7 @@ static struct platform_driver mvebu_a3700_comphy_driver = {
@@ -323,5 +1438,7 @@ static struct platform_driver mvebu_a370
module_platform_driver(mvebu_a3700_comphy_driver);
MODULE_AUTHOR("Miquèl Raynal <miquel.raynal@bootlin.com>");
@ -1565,6 +1562,3 @@ index dbb2d4308851..cbda47c33b98 100644
+MODULE_AUTHOR("Marek Behún <kabel@kernel.org>");
MODULE_DESCRIPTION("Common PHY driver for A3700");
MODULE_LICENSE("GPL v2");
--
2.34.1

View File

@ -18,11 +18,9 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
arch/arm64/boot/dts/marvell/armada-37xx.dtsi | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
index 2a2015a15362..a7262d2591dc 100644
--- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
@@ -265,6 +265,8 @@ comphy: phy@18300 {
@@ -265,6 +265,8 @@
"lane2_sata_usb3";
#address-cells = <1>;
#size-cells = <0>;
@ -31,6 +29,3 @@ index 2a2015a15362..a7262d2591dc 100644
comphy0: phy@0 {
reg = <0>;
--
2.34.1

View File

@ -26,8 +26,6 @@ Acked-by: Miquel Raynal <miquel.raynal@bootlin.com>
drivers/ata/libahci_platform.c | 2 +-
3 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/ata/ahci.h b/drivers/ata/ahci.h
index d1f284f0c83d..3a3e67350e50 100644
--- a/drivers/ata/ahci.h
+++ b/drivers/ata/ahci.h
@@ -240,8 +240,6 @@ enum {
@ -39,11 +37,9 @@ index d1f284f0c83d..3a3e67350e50 100644
AHCI_HFLAG_NO_SXS = (1 << 28), /* SXS not supported */
/* ap->flags bits */
diff --git a/drivers/ata/ahci_mvebu.c b/drivers/ata/ahci_mvebu.c
index 3ad46d26d9d5..d4bba3ace45d 100644
--- a/drivers/ata/ahci_mvebu.c
+++ b/drivers/ata/ahci_mvebu.c
@@ -227,7 +227,7 @@ static const struct ahci_mvebu_plat_data ahci_mvebu_armada_380_plat_data = {
@@ -227,7 +227,7 @@ static const struct ahci_mvebu_plat_data
static const struct ahci_mvebu_plat_data ahci_mvebu_armada_3700_plat_data = {
.plat_config = ahci_mvebu_armada_3700_config,
@ -52,11 +48,9 @@ index 3ad46d26d9d5..d4bba3ace45d 100644
};
static const struct of_device_id ahci_mvebu_of_match[] = {
diff --git a/drivers/ata/libahci_platform.c b/drivers/ata/libahci_platform.c
index 0910441321f7..250b82e30aa3 100644
--- a/drivers/ata/libahci_platform.c
+++ b/drivers/ata/libahci_platform.c
@@ -59,7 +59,7 @@ int ahci_platform_enable_phys(struct ahci_host_priv *hpriv)
@@ -59,7 +59,7 @@ int ahci_platform_enable_phys(struct ahc
}
rc = phy_power_on(hpriv->phys[i]);
@ -65,6 +59,3 @@ index 0910441321f7..250b82e30aa3 100644
phy_exit(hpriv->phys[i]);
goto disable_phys;
}
--
2.34.1

View File

@ -29,8 +29,6 @@ Acked-by: Miquel Raynal <miquel.raynal@bootlin.com>
drivers/usb/host/xhci-plat.h | 1 -
4 files changed, 1 insertion(+), 68 deletions(-)
diff --git a/drivers/usb/host/xhci-mvebu.c b/drivers/usb/host/xhci-mvebu.c
index 8ca1a235d164..60651a50770f 100644
--- a/drivers/usb/host/xhci-mvebu.c
+++ b/drivers/usb/host/xhci-mvebu.c
@@ -8,7 +8,6 @@
@ -41,10 +39,11 @@ index 8ca1a235d164..60651a50770f 100644
#include <linux/usb.h>
#include <linux/usb/hcd.h>
@@ -75,47 +74,6 @@ int xhci_mvebu_mbus_init_quirk(struct usb_hcd *hcd)
@@ -74,47 +73,6 @@ int xhci_mvebu_mbus_init_quirk(struct us
return 0;
}
-
-int xhci_mvebu_a3700_plat_setup(struct usb_hcd *hcd)
-{
- struct xhci_hcd *xhci = hcd_to_xhci(hcd);
@ -85,15 +84,12 @@ index 8ca1a235d164..60651a50770f 100644
-
- return 0;
-}
-
int xhci_mvebu_a3700_init_quirk(struct usb_hcd *hcd)
{
struct xhci_hcd *xhci = hcd_to_xhci(hcd);
diff --git a/drivers/usb/host/xhci-mvebu.h b/drivers/usb/host/xhci-mvebu.h
index 01bf3fcb3eca..3be021793cc8 100644
--- a/drivers/usb/host/xhci-mvebu.h
+++ b/drivers/usb/host/xhci-mvebu.h
@@ -12,7 +12,6 @@ struct usb_hcd;
@@ -12,18 +12,12 @@ struct usb_hcd;
#if IS_ENABLED(CONFIG_USB_XHCI_MVEBU)
int xhci_mvebu_mbus_init_quirk(struct usb_hcd *hcd);
@ -101,23 +97,20 @@ index 01bf3fcb3eca..3be021793cc8 100644
int xhci_mvebu_a3700_init_quirk(struct usb_hcd *hcd);
#else
static inline int xhci_mvebu_mbus_init_quirk(struct usb_hcd *hcd)
@@ -20,11 +19,6 @@ static inline int xhci_mvebu_mbus_init_quirk(struct usb_hcd *hcd)
{
return 0;
}
-
-static inline int xhci_mvebu_a3700_plat_setup(struct usb_hcd *hcd)
-{
- return 0;
-}
-
static inline int xhci_mvebu_a3700_init_quirk(struct usb_hcd *hcd)
{
return 0;
diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c
index c1edcc9b13ce..4d34f6005381 100644
--- a/drivers/usb/host/xhci-plat.c
+++ b/drivers/usb/host/xhci-plat.c
@@ -44,16 +44,6 @@ static void xhci_priv_plat_start(struct usb_hcd *hcd)
@@ -44,16 +44,6 @@ static void xhci_priv_plat_start(struct
priv->plat_start(hcd);
}
@ -134,7 +127,7 @@ index c1edcc9b13ce..4d34f6005381 100644
static int xhci_priv_init_quirk(struct usb_hcd *hcd)
{
struct xhci_plat_priv *priv = hcd_to_xhci_priv(hcd);
@@ -121,7 +111,6 @@ static const struct xhci_plat_priv xhci_plat_marvell_armada = {
@@ -121,7 +111,6 @@ static const struct xhci_plat_priv xhci_
};
static const struct xhci_plat_priv xhci_plat_marvell_armada3700 = {
@ -142,7 +135,7 @@ index c1edcc9b13ce..4d34f6005381 100644
.init_quirk = xhci_mvebu_a3700_init_quirk,
};
@@ -341,14 +330,7 @@ static int xhci_plat_probe(struct platform_device *pdev)
@@ -341,14 +330,7 @@ static int xhci_plat_probe(struct platfo
hcd->tpl_support = of_usb_host_tpl_support(sysdev->of_node);
xhci->shared_hcd->tpl_support = hcd->tpl_support;
@ -158,8 +151,6 @@ index c1edcc9b13ce..4d34f6005381 100644
hcd->skip_phy_initialization = 1;
if (priv && (priv->quirks & XHCI_SG_TRB_CACHE_SIZE_QUIRK))
diff --git a/drivers/usb/host/xhci-plat.h b/drivers/usb/host/xhci-plat.h
index 561d0b7bce09..1fb149d1fbce 100644
--- a/drivers/usb/host/xhci-plat.h
+++ b/drivers/usb/host/xhci-plat.h
@@ -13,7 +13,6 @@
@ -170,6 +161,3 @@ index 561d0b7bce09..1fb149d1fbce 100644
void (*plat_start)(struct usb_hcd *);
int (*init_quirk)(struct usb_hcd *);
int (*suspend_quirk)(struct usb_hcd *);
--
2.34.1

View File

@ -21,11 +21,9 @@ Acked-by: Miquel Raynal <miquel.raynal@bootlin.com>
drivers/pci/controller/pci-aardvark.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index 319dd830e36e..4e64142b9ec4 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -1635,9 +1635,7 @@ static int advk_pcie_enable_phy(struct advk_pcie *pcie)
@@ -1635,9 +1635,7 @@ static int advk_pcie_enable_phy(struct a
}
ret = phy_power_on(pcie->phy);
@ -36,6 +34,3 @@ index 319dd830e36e..4e64142b9ec4 100644
phy_exit(pcie->phy);
return ret;
}
--
2.34.1

View File

@ -10,7 +10,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
--- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c
@@ -3183,6 +3183,7 @@ int spi_nor_scan(struct spi_nor *nor, co
@@ -3189,6 +3189,7 @@ int spi_nor_scan(struct spi_nor *nor, co
struct device *dev = nor->dev;
struct mtd_info *mtd = &nor->mtd;
struct device_node *np = spi_nor_get_flash_node(nor);
@ -18,7 +18,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
int ret;
int i;
@@ -3237,7 +3238,12 @@ int spi_nor_scan(struct spi_nor *nor, co
@@ -3243,7 +3244,12 @@ int spi_nor_scan(struct spi_nor *nor, co
if (ret)
return ret;

View File

@ -55,7 +55,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
+};
--- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c
@@ -2038,6 +2038,7 @@ int spi_nor_sr2_bit7_quad_enable(struct
@@ -2040,6 +2040,7 @@ int spi_nor_sr2_bit7_quad_enable(struct
static const struct spi_nor_manufacturer *manufacturers[] = {
&spi_nor_atmel,

View File

@ -13,7 +13,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
--- a/drivers/media/usb/uvc/uvc_driver.c
+++ b/drivers/media/usb/uvc/uvc_driver.c
@@ -3009,6 +3009,18 @@ static const struct usb_device_id uvc_id
@@ -3004,6 +3004,18 @@ static const struct usb_device_id uvc_id
.bInterfaceSubClass = 1,
.bInterfaceProtocol = 0,
.driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) },