mirror of
git://git.openwrt.org/openwrt/openwrt.git
synced 2024-12-25 08:02:32 +00:00
kernel: bump 5.15 to 5.15.133
Changelog: https://cdn.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.15.133 Removed upstreamed: bcm47xx/patches-5.15/101-v5.18-mtd-rawnand-brcmnand-Allow-SoC-to-provide-I-O-operations.patch[1] Cherry picked build fix.[2] All other patches automatically rebased. 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.133&id=56cf9f446b331414a15ef0e8dedf23583ec2c427 2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git/tree/queue-5.15/fix-up-backport-of-136191703038-interconnect-teach-l.patch Build system: x86_64 Build-tested: ramips/tplink_archer-a6-v3 Run-tested: ramips/tplink_archer-a6-v3 Signed-off-by: John Audia <therealgraysky@proton.me>
This commit is contained in:
parent
8f033569b4
commit
89895937dd
@ -1,2 +1,2 @@
|
||||
LINUX_VERSION-5.15 = .132
|
||||
LINUX_KERNEL_HASH-5.15.132 = 4177b5c4d6e749bb8339ac4aa68eb0932ead9490b956a80d9a597089959618ac
|
||||
LINUX_VERSION-5.15 = .133
|
||||
LINUX_KERNEL_HASH-5.15.133 = ef845e7934897b88e4448378ea9daacac19e07f156fe904844fab0a7d8ff5ddd
|
||||
|
@ -14,15 +14,15 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
|
||||
--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c
|
||||
+++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
|
||||
@@ -3033,6 +3033,7 @@ int brcmnand_probe(struct platform_devic
|
||||
@@ -3059,6 +3059,7 @@ int brcmnand_probe(struct platform_devic
|
||||
|
||||
dev_set_drvdata(dev, ctrl);
|
||||
ctrl->dev = dev;
|
||||
+ ctrl->soc = soc;
|
||||
|
||||
init_completion(&ctrl->done);
|
||||
init_completion(&ctrl->dma_done);
|
||||
@@ -3173,8 +3174,6 @@ int brcmnand_probe(struct platform_devic
|
||||
/* Enable the static key if the soc provides I/O operations indicating
|
||||
* that a non-memory mapped IO access path must be used
|
||||
@@ -3205,8 +3206,6 @@ int brcmnand_probe(struct platform_devic
|
||||
* interesting ways
|
||||
*/
|
||||
if (soc) {
|
||||
|
@ -1,150 +0,0 @@
|
||||
From: Florian Fainelli <f.fainelli@gmail.com>
|
||||
Subject: [PATCH v3 2/9] mtd: rawnand: brcmnand: Allow SoC to provide I/O operations
|
||||
Date: Fri, 07 Jan 2022 10:46:07 -0800
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
|
||||
Allow a brcmnand_soc instance to provide a custom set of I/O operations
|
||||
which we will require when using this driver on a BCMA bus which is not
|
||||
directly memory mapped I/O. Update the nand_{read,write}_reg accordingly
|
||||
to use the SoC operations if provided.
|
||||
|
||||
To minimize the penalty on other SoCs which do support standard MMIO
|
||||
accesses, we use a static key which is disabled by default and gets
|
||||
enabled if a soc implementation does provide I/O operations.
|
||||
|
||||
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
---
|
||||
drivers/mtd/nand/raw/brcmnand/brcmnand.c | 28 +++++++++++++++++++++--
|
||||
drivers/mtd/nand/raw/brcmnand/brcmnand.h | 29 ++++++++++++++++++++++++
|
||||
2 files changed, 55 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c
|
||||
+++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
|
||||
@@ -25,6 +25,7 @@
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/slab.h>
|
||||
+#include <linux/static_key.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/log2.h>
|
||||
|
||||
@@ -207,6 +208,8 @@ enum {
|
||||
|
||||
struct brcmnand_host;
|
||||
|
||||
+static DEFINE_STATIC_KEY_FALSE(brcmnand_soc_has_ops_key);
|
||||
+
|
||||
struct brcmnand_controller {
|
||||
struct device *dev;
|
||||
struct nand_controller controller;
|
||||
@@ -592,15 +595,25 @@ enum {
|
||||
INTFC_CTLR_READY = BIT(31),
|
||||
};
|
||||
|
||||
+static inline bool brcmnand_non_mmio_ops(struct brcmnand_controller *ctrl)
|
||||
+{
|
||||
+ return static_branch_unlikely(&brcmnand_soc_has_ops_key);
|
||||
+}
|
||||
+
|
||||
static inline u32 nand_readreg(struct brcmnand_controller *ctrl, u32 offs)
|
||||
{
|
||||
+ if (brcmnand_non_mmio_ops(ctrl))
|
||||
+ return brcmnand_soc_read(ctrl->soc, offs);
|
||||
return brcmnand_readl(ctrl->nand_base + offs);
|
||||
}
|
||||
|
||||
static inline void nand_writereg(struct brcmnand_controller *ctrl, u32 offs,
|
||||
u32 val)
|
||||
{
|
||||
- brcmnand_writel(val, ctrl->nand_base + offs);
|
||||
+ if (brcmnand_non_mmio_ops(ctrl))
|
||||
+ brcmnand_soc_write(ctrl->soc, val, offs);
|
||||
+ else
|
||||
+ brcmnand_writel(val, ctrl->nand_base + offs);
|
||||
}
|
||||
|
||||
static int brcmnand_revision_init(struct brcmnand_controller *ctrl)
|
||||
@@ -766,13 +779,18 @@ static inline void brcmnand_rmw_reg(stru
|
||||
|
||||
static inline u32 brcmnand_read_fc(struct brcmnand_controller *ctrl, int word)
|
||||
{
|
||||
+ if (brcmnand_non_mmio_ops(ctrl))
|
||||
+ return brcmnand_soc_read(ctrl->soc, BRCMNAND_NON_MMIO_FC_ADDR);
|
||||
return __raw_readl(ctrl->nand_fc + word * 4);
|
||||
}
|
||||
|
||||
static inline void brcmnand_write_fc(struct brcmnand_controller *ctrl,
|
||||
int word, u32 val)
|
||||
{
|
||||
- __raw_writel(val, ctrl->nand_fc + word * 4);
|
||||
+ if (brcmnand_non_mmio_ops(ctrl))
|
||||
+ brcmnand_soc_write(ctrl->soc, val, BRCMNAND_NON_MMIO_FC_ADDR);
|
||||
+ else
|
||||
+ __raw_writel(val, ctrl->nand_fc + word * 4);
|
||||
}
|
||||
|
||||
static inline void edu_writel(struct brcmnand_controller *ctrl,
|
||||
@@ -3035,6 +3053,12 @@ int brcmnand_probe(struct platform_devic
|
||||
ctrl->dev = dev;
|
||||
ctrl->soc = soc;
|
||||
|
||||
+ /* Enable the static key if the soc provides I/O operations indicating
|
||||
+ * that a non-memory mapped IO access path must be used
|
||||
+ */
|
||||
+ if (brcmnand_soc_has_ops(ctrl->soc))
|
||||
+ static_branch_enable(&brcmnand_soc_has_ops_key);
|
||||
+
|
||||
init_completion(&ctrl->done);
|
||||
init_completion(&ctrl->dma_done);
|
||||
init_completion(&ctrl->edu_done);
|
||||
--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.h
|
||||
+++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.h
|
||||
@@ -11,12 +11,25 @@
|
||||
|
||||
struct platform_device;
|
||||
struct dev_pm_ops;
|
||||
+struct brcmnand_io_ops;
|
||||
+
|
||||
+/* Special register offset constant to intercept a non-MMIO access
|
||||
+ * to the flash cache register space. This is intentionally large
|
||||
+ * not to overlap with an existing offset.
|
||||
+ */
|
||||
+#define BRCMNAND_NON_MMIO_FC_ADDR 0xffffffff
|
||||
|
||||
struct brcmnand_soc {
|
||||
bool (*ctlrdy_ack)(struct brcmnand_soc *soc);
|
||||
void (*ctlrdy_set_enabled)(struct brcmnand_soc *soc, bool en);
|
||||
void (*prepare_data_bus)(struct brcmnand_soc *soc, bool prepare,
|
||||
bool is_param);
|
||||
+ const struct brcmnand_io_ops *ops;
|
||||
+};
|
||||
+
|
||||
+struct brcmnand_io_ops {
|
||||
+ u32 (*read_reg)(struct brcmnand_soc *soc, u32 offset);
|
||||
+ void (*write_reg)(struct brcmnand_soc *soc, u32 val, u32 offset);
|
||||
};
|
||||
|
||||
static inline void brcmnand_soc_data_bus_prepare(struct brcmnand_soc *soc,
|
||||
@@ -58,6 +71,22 @@ static inline void brcmnand_writel(u32 v
|
||||
writel_relaxed(val, addr);
|
||||
}
|
||||
|
||||
+static inline bool brcmnand_soc_has_ops(struct brcmnand_soc *soc)
|
||||
+{
|
||||
+ return soc && soc->ops && soc->ops->read_reg && soc->ops->write_reg;
|
||||
+}
|
||||
+
|
||||
+static inline u32 brcmnand_soc_read(struct brcmnand_soc *soc, u32 offset)
|
||||
+{
|
||||
+ return soc->ops->read_reg(soc, offset);
|
||||
+}
|
||||
+
|
||||
+static inline void brcmnand_soc_write(struct brcmnand_soc *soc, u32 val,
|
||||
+ u32 offset)
|
||||
+{
|
||||
+ soc->ops->write_reg(soc, val, offset);
|
||||
+}
|
||||
+
|
||||
int brcmnand_probe(struct platform_device *pdev, struct brcmnand_soc *soc);
|
||||
int brcmnand_remove(struct platform_device *pdev);
|
||||
|
@ -16,7 +16,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
|
||||
--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c
|
||||
+++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
|
||||
@@ -2806,7 +2806,7 @@ static const struct nand_controller_ops
|
||||
@@ -2814,7 +2814,7 @@ static const struct nand_controller_ops
|
||||
static int brcmnand_init_cs(struct brcmnand_host *host, struct device_node *dn)
|
||||
{
|
||||
struct brcmnand_controller *ctrl = host->ctrl;
|
||||
@ -25,7 +25,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
struct mtd_info *mtd;
|
||||
struct nand_chip *chip;
|
||||
int ret;
|
||||
@@ -2814,7 +2814,7 @@ static int brcmnand_init_cs(struct brcmn
|
||||
@@ -2822,7 +2822,7 @@ static int brcmnand_init_cs(struct brcmn
|
||||
|
||||
ret = of_property_read_u32(dn, "reg", &host->cs);
|
||||
if (ret) {
|
||||
@ -34,7 +34,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
return -ENXIO;
|
||||
}
|
||||
|
||||
@@ -2823,13 +2823,13 @@ static int brcmnand_init_cs(struct brcmn
|
||||
@@ -2831,13 +2831,13 @@ static int brcmnand_init_cs(struct brcmn
|
||||
|
||||
nand_set_flash_node(chip, dn);
|
||||
nand_set_controller_data(chip, host);
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
|
||||
--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c
|
||||
+++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
|
||||
@@ -2803,7 +2803,7 @@ static const struct nand_controller_ops
|
||||
@@ -2811,7 +2811,7 @@ static const struct nand_controller_ops
|
||||
.attach_chip = brcmnand_attach_chip,
|
||||
};
|
||||
|
||||
@ -26,7 +26,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
{
|
||||
struct brcmnand_controller *ctrl = host->ctrl;
|
||||
struct device *dev = ctrl->dev;
|
||||
@@ -2812,16 +2812,9 @@ static int brcmnand_init_cs(struct brcmn
|
||||
@@ -2820,16 +2820,9 @@ static int brcmnand_init_cs(struct brcmn
|
||||
int ret;
|
||||
u16 cfg_offs;
|
||||
|
||||
@ -43,7 +43,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
nand_set_controller_data(chip, host);
|
||||
mtd->name = devm_kasprintf(dev, GFP_KERNEL, "brcmnand.%d",
|
||||
host->cs);
|
||||
@@ -3228,7 +3221,16 @@ int brcmnand_probe(struct platform_devic
|
||||
@@ -3236,7 +3229,16 @@ int brcmnand_probe(struct platform_devic
|
||||
host->pdev = pdev;
|
||||
host->ctrl = ctrl;
|
||||
|
||||
|
@ -23,7 +23,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
unsigned int dma_irq;
|
||||
int nand_version;
|
||||
|
||||
@@ -1642,7 +1642,7 @@ static bool brcmstb_nand_wait_for_comple
|
||||
@@ -1650,7 +1650,7 @@ static bool brcmstb_nand_wait_for_comple
|
||||
bool err = false;
|
||||
int sts;
|
||||
|
||||
@ -32,7 +32,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
/* switch to interrupt polling and PIO mode */
|
||||
disable_ctrl_irqs(ctrl);
|
||||
sts = bcmnand_ctrl_poll_status(ctrl, NAND_CTRL_RDY,
|
||||
@@ -3179,33 +3179,29 @@ int brcmnand_probe(struct platform_devic
|
||||
@@ -3187,33 +3187,29 @@ int brcmnand_probe(struct platform_devic
|
||||
}
|
||||
|
||||
/* IRQ */
|
||||
|
@ -23,7 +23,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
#include <linux/err.h>
|
||||
#include <linux/completion.h>
|
||||
#include <linux/interrupt.h>
|
||||
@@ -2803,7 +2804,8 @@ static const struct nand_controller_ops
|
||||
@@ -2811,7 +2812,8 @@ static const struct nand_controller_ops
|
||||
.attach_chip = brcmnand_attach_chip,
|
||||
};
|
||||
|
||||
@ -33,7 +33,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
{
|
||||
struct brcmnand_controller *ctrl = host->ctrl;
|
||||
struct device *dev = ctrl->dev;
|
||||
@@ -2856,7 +2858,7 @@ static int brcmnand_init_cs(struct brcmn
|
||||
@@ -2864,7 +2866,7 @@ static int brcmnand_init_cs(struct brcmn
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@ -42,7 +42,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
if (ret)
|
||||
nand_cleanup(chip);
|
||||
|
||||
@@ -3025,17 +3027,15 @@ static int brcmnand_edu_setup(struct pla
|
||||
@@ -3033,17 +3035,15 @@ static int brcmnand_edu_setup(struct pla
|
||||
|
||||
int brcmnand_probe(struct platform_device *pdev, struct brcmnand_soc *soc)
|
||||
{
|
||||
@ -63,7 +63,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
return -ENODEV;
|
||||
|
||||
ctrl = devm_kzalloc(dev, sizeof(*ctrl), GFP_KERNEL);
|
||||
@@ -3062,7 +3062,7 @@ int brcmnand_probe(struct platform_devic
|
||||
@@ -3070,7 +3070,7 @@ int brcmnand_probe(struct platform_devic
|
||||
/* NAND register range */
|
||||
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
ctrl->nand_base = devm_ioremap_resource(dev, res);
|
||||
@ -72,7 +72,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
return PTR_ERR(ctrl->nand_base);
|
||||
|
||||
/* Enable clock before using NAND registers */
|
||||
@@ -3206,7 +3206,6 @@ int brcmnand_probe(struct platform_devic
|
||||
@@ -3214,7 +3214,6 @@ int brcmnand_probe(struct platform_devic
|
||||
|
||||
for_each_available_child_of_node(dn, child) {
|
||||
if (of_device_is_compatible(child, "brcm,nandcs")) {
|
||||
@ -80,7 +80,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
|
||||
host = devm_kzalloc(dev, sizeof(*host), GFP_KERNEL);
|
||||
if (!host) {
|
||||
@@ -3226,7 +3225,7 @@ int brcmnand_probe(struct platform_devic
|
||||
@@ -3234,7 +3233,7 @@ int brcmnand_probe(struct platform_devic
|
||||
|
||||
nand_set_flash_node(&host->chip, child);
|
||||
|
||||
@ -89,7 +89,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
if (ret) {
|
||||
devm_kfree(dev, host);
|
||||
continue; /* Try all chip-selects */
|
||||
@@ -3236,6 +3235,32 @@ int brcmnand_probe(struct platform_devic
|
||||
@@ -3244,6 +3243,32 @@ int brcmnand_probe(struct platform_devic
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -14,7 +14,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
|
||||
--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c
|
||||
+++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
|
||||
@@ -916,6 +916,12 @@ static void brcmnand_wr_corr_thresh(stru
|
||||
@@ -951,6 +951,12 @@ static void brcmnand_wr_corr_thresh(stru
|
||||
|
||||
static inline int brcmnand_cmd_shift(struct brcmnand_controller *ctrl)
|
||||
{
|
||||
|
@ -187,7 +187,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
+MODULE_DESCRIPTION("NAND controller driver glue for BCMA chips");
|
||||
--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c
|
||||
+++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
|
||||
@@ -598,7 +598,11 @@ enum {
|
||||
@@ -627,7 +627,11 @@ enum {
|
||||
|
||||
static inline bool brcmnand_non_mmio_ops(struct brcmnand_controller *ctrl)
|
||||
{
|
||||
|
@ -20,7 +20,7 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
|
||||
--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c
|
||||
+++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
|
||||
@@ -37,7 +37,11 @@
|
||||
@@ -38,7 +38,11 @@
|
||||
* 1: NAND_WP is set by default, cleared for erase/write operations
|
||||
* 2: NAND_WP is always cleared
|
||||
*/
|
||||
|
@ -382,7 +382,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
|
||||
}
|
||||
--- a/kernel/fork.c
|
||||
+++ b/kernel/fork.c
|
||||
@@ -1083,6 +1083,7 @@ static struct mm_struct *mm_init(struct
|
||||
@@ -1091,6 +1091,7 @@ static struct mm_struct *mm_init(struct
|
||||
goto fail_nocontext;
|
||||
|
||||
mm->user_ns = get_user_ns(user_ns);
|
||||
@ -390,7 +390,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
|
||||
return mm;
|
||||
|
||||
fail_nocontext:
|
||||
@@ -1125,6 +1126,7 @@ static inline void __mmput(struct mm_str
|
||||
@@ -1133,6 +1134,7 @@ static inline void __mmput(struct mm_str
|
||||
}
|
||||
if (mm->binfmt)
|
||||
module_put(mm->binfmt->module);
|
||||
@ -398,7 +398,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
|
||||
mmdrop(mm);
|
||||
}
|
||||
|
||||
@@ -2617,6 +2619,13 @@ pid_t kernel_clone(struct kernel_clone_a
|
||||
@@ -2625,6 +2627,13 @@ pid_t kernel_clone(struct kernel_clone_a
|
||||
get_task_struct(p);
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,31 @@
|
||||
From 16c572ef0646f8b0fa19fbf81b302de8a03127f2 Mon Sep 17 00:00:00 2001
|
||||
From: Sasha Levin <sashal@kernel.org>
|
||||
Date: Sun, 24 Sep 2023 14:30:44 -0400
|
||||
Subject: Fix up backport of 136191703038 ("interconnect: Teach lockdep about
|
||||
icc_bw_lock order")
|
||||
|
||||
Add a missing include to fix the following build error:
|
||||
|
||||
drivers/interconnect/core.c: In function 'icc_init':
|
||||
drivers/interconnect/core.c:1148:9: error: implicit declaration of function 'fs_reclaim_acquire' [-Werror=implicit-function-declaration]
|
||||
1148 | fs_reclaim_acquire(GFP_KERNEL);
|
||||
| ^~~~~~~~~~~~~~~~~~
|
||||
drivers/interconnect/core.c:1150:9: error: implicit declaration of function 'fs_reclaim_release' [-Werror=implicit-function-declaration]
|
||||
1150 | fs_reclaim_release(GFP_KERNEL);
|
||||
| ^~~~~~~~~~~~~~~~~~
|
||||
|
||||
Signed-off-by: Sasha Levin <sashal@kernel.org>
|
||||
---
|
||||
drivers/interconnect/core.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/drivers/interconnect/core.c
|
||||
+++ b/drivers/interconnect/core.c
|
||||
@@ -13,6 +13,7 @@
|
||||
#include <linux/interconnect.h>
|
||||
#include <linux/interconnect-provider.h>
|
||||
#include <linux/list.h>
|
||||
+#include <linux/sched/mm.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/slab.h>
|
@ -134,7 +134,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
|
||||
/*
|
||||
* Define if arch has non-standard setup. This is a _PCI_ standard
|
||||
@@ -894,6 +897,12 @@ struct ata_port {
|
||||
@@ -898,6 +901,12 @@ struct ata_port {
|
||||
#ifdef CONFIG_ATA_ACPI
|
||||
struct ata_acpi_gtm __acpi_init_gtm; /* use ata_acpi_init_gtm() */
|
||||
#endif
|
||||
|
@ -72,7 +72,7 @@ Signed-off-by: Wolfram Sang <wsa@kernel.org>
|
||||
idev->adapter.dev.parent = &pdev->dev;
|
||||
--- a/drivers/i2c/busses/i2c-aspeed.c
|
||||
+++ b/drivers/i2c/busses/i2c-aspeed.c
|
||||
@@ -1024,7 +1024,7 @@ static int aspeed_i2c_probe_bus(struct p
|
||||
@@ -1027,7 +1027,7 @@ static int aspeed_i2c_probe_bus(struct p
|
||||
bus->adap.algo = &aspeed_i2c_algo;
|
||||
bus->adap.dev.parent = &pdev->dev;
|
||||
bus->adap.dev.of_node = pdev->dev.of_node;
|
||||
|
@ -36,7 +36,7 @@
|
||||
|
||||
--- a/include/linux/libata.h
|
||||
+++ b/include/linux/libata.h
|
||||
@@ -923,6 +923,8 @@ struct ata_port_operations {
|
||||
@@ -927,6 +927,8 @@ struct ata_port_operations {
|
||||
enum ata_completion_errors (*qc_prep)(struct ata_queued_cmd *qc);
|
||||
unsigned int (*qc_issue)(struct ata_queued_cmd *qc);
|
||||
bool (*qc_fill_rtf)(struct ata_queued_cmd *qc);
|
||||
@ -45,7 +45,7 @@
|
||||
|
||||
/*
|
||||
* Configuration and exception handling
|
||||
@@ -1013,6 +1015,9 @@ struct ata_port_operations {
|
||||
@@ -1017,6 +1019,9 @@ struct ata_port_operations {
|
||||
void (*phy_reset)(struct ata_port *ap);
|
||||
void (*eng_timeout)(struct ata_port *ap);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user