kernel: bump 6.12 to 6.12.75

Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.75

Removed upstream:
  bcm27xx/patches-6.12/950-0225-media-i2c-ov5647-Correct-pixel-array-offset.patch[1]
  bcm27xx/patches-6.12/950-0226-media-i2c-ov5647-Correct-minimum-VBLANK-value.patch[2]
  bcm27xx/patches-6.12/950-0248-media-i2c-ov5647-Sensor-should-report-RAW-color-spac.patch[3]
  qualcommax/patches-6.12/0074-v6.20-clk-qcom-gcc-ipq5018-flag-sleep-clock-as-critical.patch[4]

Manually rebased:
  bcm27xx/patches-6.12/950-0262-mfd-simple-mfd-i2c-Add-configuration-for-RPi-POE-HAT.patch
  bcm27xx/patches-6.12/950-0071-drivers-mfd-sensehat-Add-Raspberry-Pi-Sense-HAT-to-s.patch
  bcm27xx/patches-6.12/950-0516-media-i2c-ov5647-Add-V4L2_CID_LINK_FREQUENCY-control.patch
  lantiq/patches-6.12/101-find_active_root.patch

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.75&id=58f1767ad5c9eda3dd0befddc1843259d46d64fa
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.75&id=ff65571ffae52b65577121e7696bf22156e1928a
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.75&id=fbf2a108ed5eb1c896d3f354bd05314c2e22e78f
4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.75&id=b109dd4970a0fc89d54b1198b163f86125dd2977

Build system: x86/64
Build-tested: flogic/glinet_gl-mt6000
Run-tested: flogic/glinet_gl-mt6000

Co-authored-by: Shiji Yang <yangshiji66@outlook.com>
Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/22276
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit d0784a69ddf878639ca4b45005e359d59b65a1b6)
Link: https://github.com/openwrt/openwrt/pull/22699
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
John Audia 2026-03-04 17:10:07 -05:00 committed by Hauke Mehrtens
parent 34f5713863
commit 3efb676eaa
98 changed files with 185 additions and 305 deletions

View File

@ -107,7 +107,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
module_phy_driver(as21xxx_drivers);
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -2074,7 +2074,8 @@ void phy_detach(struct phy_device *phyde
@@ -2069,7 +2069,8 @@ void phy_detach(struct phy_device *phyde
device_release_driver(&phydev->mdio.dev);
/* Assert the reset signal */

View File

@ -8,7 +8,7 @@
static int spinand_read_reg_op(struct spinand_device *spinand, u8 reg, u8 *val)
{
@@ -1577,6 +1578,7 @@ static int spinand_probe(struct spi_mem
@@ -1585,6 +1586,7 @@ static int spinand_probe(struct spi_mem
if (ret)
return ret;
@ -16,7 +16,7 @@
ret = mtd_device_register(mtd, NULL, 0);
if (ret)
goto err_spinand_cleanup;
@@ -1584,6 +1586,7 @@ static int spinand_probe(struct spi_mem
@@ -1592,6 +1594,7 @@ static int spinand_probe(struct spi_mem
return 0;
err_spinand_cleanup:
@ -24,7 +24,7 @@
spinand_cleanup(spinand);
return ret;
@@ -1602,6 +1605,7 @@ static int spinand_remove(struct spi_mem
@@ -1610,6 +1613,7 @@ static int spinand_remove(struct spi_mem
if (ret)
return ret;

View File

@ -13,7 +13,7 @@ to the PCIe controller driver to manage directly via the NP_SCU regmap.
Signed-off-by: Ryan Chen <rchen14b@gmail.com>
--- a/drivers/clk/clk-en7523.c
+++ b/drivers/clk/clk-en7523.c
@@ -961,9 +961,11 @@ static int en7581_pci_enable(struct clk_
@@ -960,9 +960,11 @@ static int en7581_pci_enable(struct clk_
struct regmap *map = cg->map;
u32 mask;
@ -28,7 +28,7 @@ Signed-off-by: Ryan Chen <rchen14b@gmail.com>
regmap_set_bits(map, REG_PCI_CONTROL, mask);
return 0;
@@ -975,9 +977,8 @@ static void en7581_pci_disable(struct cl
@@ -974,9 +976,8 @@ static void en7581_pci_disable(struct cl
struct regmap *map = cg->map;
u32 mask;

View File

@ -312,7 +312,7 @@ SVN-Revision: 35130
case IPV6_2292HOPOPTS:
--- a/net/ipv6/exthdrs.c
+++ b/net/ipv6/exthdrs.c
@@ -980,7 +980,7 @@ static bool ipv6_hop_jumbo(struct sk_buf
@@ -986,7 +986,7 @@ static bool ipv6_hop_jumbo(struct sk_buf
goto drop;
}

View File

@ -45,7 +45,7 @@ Submitted-by: Christopher Hill <ch6574@gmail.com>
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -2330,6 +2330,14 @@ config RAVE_SP_CORE
@@ -2354,6 +2354,14 @@ config RAVE_SP_CORE
Select this to get support for the Supervisory Processor
device found on several devices in RAVE line of hardware.

View File

@ -11,7 +11,7 @@ This reverts commit 83b2a8fe43bda0c11981ad6afa5dd0104d78be28.
--- a/drivers/spi/spidev.c
+++ b/drivers/spi/spidev.c
@@ -428,7 +428,7 @@ spidev_ioctl(struct file *filp, unsigned
@@ -415,7 +415,7 @@ spidev_ioctl(struct file *filp, unsigned
}
if (ctlr->use_gpio_descriptors && spi_get_csgpiod(spi, 0))

View File

@ -13,7 +13,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/drivers/spi/spidev.c
+++ b/drivers/spi/spidev.c
@@ -721,7 +721,7 @@ MODULE_DEVICE_TABLE(spi, spidev_spi_ids)
@@ -703,7 +703,7 @@ MODULE_DEVICE_TABLE(spi, spidev_spi_ids)
*/
static int spidev_of_check(struct device *dev)
{

View File

@ -19,10 +19,10 @@ Signed-off-by: Charles Mirabile <cmirabil@redhat.com>
--- a/drivers/mfd/simple-mfd-i2c.c
+++ b/drivers/mfd/simple-mfd-i2c.c
@@ -88,6 +88,7 @@ static const struct of_device_id simple_
@@ -119,6 +119,7 @@ static const struct of_device_id simple_
{ .compatible = "maxim,max77705-battery", .data = &maxim_mon_max77705},
{ .compatible = "silergy,sy7636a", .data = &silergy_sy7636a},
{ .compatible = "maxim,max5970", .data = &maxim_max5970},
{ .compatible = "maxim,max5978", .data = &maxim_max5970},
{ .compatible = "spacemit,p1", .data = &spacemit_p1, },
+ { .compatible = "raspberrypi,sensehat" },
{}
};

View File

@ -18626,7 +18626,7 @@ Signed-off-by: j-schambacher <joerg@hifiberry.com>
* For devices with more than one control interface, we assume the
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -2393,6 +2393,8 @@ static const struct usb_audio_quirk_flag
@@ -2395,6 +2395,8 @@ static const struct usb_audio_quirk_flag
QUIRK_FLAG_ALIGN_TRANSFER),
DEVICE_FLG(0x534d, 0x2109, /* MacroSilicon MS2109 */
QUIRK_FLAG_ALIGN_TRANSFER),

View File

@ -37,7 +37,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
static int lan78xx_read_reg(struct lan78xx_net *dev, u32 index, u32 *data)
{
u32 *buf;
@@ -3464,8 +3473,14 @@ static int lan78xx_bind(struct lan78xx_n
@@ -3462,8 +3471,14 @@ static int lan78xx_bind(struct lan78xx_n
if (DEFAULT_RX_CSUM_ENABLE)
dev->net->features |= NETIF_F_RXCSUM;

View File

@ -28,7 +28,7 @@ See: https://github.com/raspberrypi/linux/issues/2447
static int lan78xx_read_reg(struct lan78xx_net *dev, u32 index, u32 *data)
{
u32 *buf;
@@ -4448,7 +4453,13 @@ static int lan78xx_probe(struct usb_inte
@@ -4446,7 +4451,13 @@ static int lan78xx_probe(struct usb_inte
if (ret < 0)
goto out4;

View File

@ -14,7 +14,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
@@ -2915,6 +2915,11 @@ static int lan78xx_reset(struct lan78xx_
@@ -2913,6 +2913,11 @@ static int lan78xx_reset(struct lan78xx_
int ret;
u32 buf;
u8 sig;
@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
ret = lan78xx_read_reg(dev, HW_CFG, &buf);
if (ret < 0)
@@ -2983,6 +2988,10 @@ static int lan78xx_reset(struct lan78xx_
@@ -2981,6 +2986,10 @@ static int lan78xx_reset(struct lan78xx_
buf |= HW_CFG_CLK125_EN_;
buf |= HW_CFG_REFCLK25_EN_;
@ -37,7 +37,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
ret = lan78xx_write_reg(dev, HW_CFG, buf);
if (ret < 0)
return ret;
@@ -3085,6 +3094,9 @@ static int lan78xx_reset(struct lan78xx_
@@ -3083,6 +3092,9 @@ static int lan78xx_reset(struct lan78xx_
buf |= MAC_CR_AUTO_DUPLEX_ | MAC_CR_AUTO_SPEED_;
}
}

View File

@ -16,7 +16,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
--- a/drivers/media/i2c/adv7180.c
+++ b/drivers/media/i2c/adv7180.c
@@ -1352,6 +1352,7 @@ static const struct adv7180_chip_info ad
@@ -1359,6 +1359,7 @@ static const struct adv7180_chip_info ad
static int init_device(struct adv7180_state *state)
{
int ret;
@ -24,7 +24,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
mutex_lock(&state->mutex);
@@ -1399,6 +1400,18 @@ static int init_device(struct adv7180_st
@@ -1406,6 +1407,18 @@ static int init_device(struct adv7180_st
goto out_unlock;
}

View File

@ -14,7 +14,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
--- a/drivers/media/i2c/adv7180.c
+++ b/drivers/media/i2c/adv7180.c
@@ -1341,6 +1341,7 @@ static const struct adv7180_chip_info ad
@@ -1348,6 +1348,7 @@ static const struct adv7180_chip_info ad
BIT(ADV7182_INPUT_SVIDEO_AIN1_AIN2) |
BIT(ADV7182_INPUT_SVIDEO_AIN3_AIN4) |
BIT(ADV7182_INPUT_SVIDEO_AIN7_AIN8) |

View File

@ -37,7 +37,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
--- a/drivers/gpu/drm/v3d/v3d_drv.c
+++ b/drivers/gpu/drm/v3d/v3d_drv.c
@@ -331,6 +331,21 @@ static int v3d_platform_drm_probe(struct
@@ -333,6 +333,21 @@ static int v3d_platform_drm_probe(struct
}
}
@ -59,7 +59,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
if (v3d->ver < 41) {
ret = map_regs(v3d, &v3d->gca_regs, "gca");
if (ret)
@@ -360,6 +375,8 @@ static int v3d_platform_drm_probe(struct
@@ -362,6 +377,8 @@ static int v3d_platform_drm_probe(struct
ret = v3d_sysfs_init(dev);
if (ret)
goto drm_unregister;

View File

@ -41,7 +41,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
struct drm_device *drm;
struct v3d_dev *v3d;
int ret;
@@ -337,7 +343,20 @@ static int v3d_platform_drm_probe(struct
@@ -339,7 +345,20 @@ static int v3d_platform_drm_probe(struct
dev_err(dev, "Failed to get clock (%ld)\n", PTR_ERR(v3d->clk));
return PTR_ERR(v3d->clk);
}
@ -63,7 +63,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
/* For downclocking, drop it to the minimum frequency we can get from
* the CPRMAN clock generator dividing off our parent. The divider is
* 4 bits, but ask for just higher than that so that rounding doesn't
@@ -375,7 +394,7 @@ static int v3d_platform_drm_probe(struct
@@ -377,7 +396,7 @@ static int v3d_platform_drm_probe(struct
ret = v3d_sysfs_init(dev);
if (ret)
goto drm_unregister;

View File

@ -32,7 +32,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
#define USB_VENDOR_ID_BELKIN 0x050d
#define USB_DEVICE_ID_FLIP_KVM 0x3201
@@ -1475,6 +1478,9 @@
@@ -1479,6 +1482,9 @@
#define USB_VENDOR_ID_XIAOMI 0x2717
#define USB_DEVICE_ID_MI_SILENT_MOUSE 0x5014

View File

@ -26,7 +26,7 @@ Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
v4l2_ctrl_handler_init(&sensor->ctrls, 9);
@@ -1351,6 +1352,11 @@ static int ov5647_init_controls(struct o
@@ -1353,6 +1354,11 @@ static int ov5647_init_controls(struct o
ARRAY_SIZE(ov5647_test_pattern_menu) - 1,
0, 0, ov5647_test_pattern_menu);
@ -38,9 +38,9 @@ Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
if (sensor->ctrls.error)
goto handler_free;
@@ -1434,7 +1440,7 @@ static int ov5647_probe(struct i2c_clien
sensor->mode = OV5647_DEFAULT_MODE;
@@ -1441,7 +1447,7 @@ static int ov5647_probe(struct i2c_clien
sd->internal_ops = &ov5647_subdev_internal_ops;
sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE | V4L2_SUBDEV_FL_HAS_EVENTS;
- ret = ov5647_init_controls(sensor);
+ ret = ov5647_init_controls(sensor, dev);

View File

@ -1,25 +0,0 @@
From 70c32664e555b0641cc187eebf0d738eb10a33a0 Mon Sep 17 00:00:00 2001
From: David Plowman <david.plowman@raspberrypi.com>
Date: Tue, 11 May 2021 12:52:26 +0100
Subject: [PATCH] media: i2c: ov5647: Correct pixel array offset
The top offset in the pixel array is actually 6 (see page 3-1 of the
OV5647 data sheet).
Fixes: f2f7ad5ce5e52 ("media: i2c: ov5647: Selection compliance fixes")
Signed-off-by: David Plowman <david.plowman@raspberrypi.com>
---
drivers/media/i2c/ov5647.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/media/i2c/ov5647.c
+++ b/drivers/media/i2c/ov5647.c
@@ -69,7 +69,7 @@
#define OV5647_NATIVE_HEIGHT 1956U
#define OV5647_PIXEL_ARRAY_LEFT 16U
-#define OV5647_PIXEL_ARRAY_TOP 16U
+#define OV5647_PIXEL_ARRAY_TOP 6U
#define OV5647_PIXEL_ARRAY_WIDTH 2592U
#define OV5647_PIXEL_ARRAY_HEIGHT 1944U

View File

@ -1,26 +0,0 @@
From 3a415d5da89b4a2d83f5590820fa649293eef6ba Mon Sep 17 00:00:00 2001
From: David Plowman <david.plowman@raspberrypi.com>
Date: Tue, 11 May 2021 12:57:22 +0100
Subject: [PATCH] media: i2c: ov5647: Correct minimum VBLANK value
Trial and error reveals that the minimum vblank value appears to be 24
(the OV5647 data sheet does not give any clues). This fixes streaming
lock-ups in full resolution mode.
Fixes: 9b5a5ebedc303 ("media: i2c: ov5647: Add support for V4L2_CID_VBLANK")
Signed-off-by: David Plowman <david.plowman@raspberrypi.com>
---
drivers/media/i2c/ov5647.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/media/i2c/ov5647.c
+++ b/drivers/media/i2c/ov5647.c
@@ -73,7 +73,7 @@
#define OV5647_PIXEL_ARRAY_WIDTH 2592U
#define OV5647_PIXEL_ARRAY_HEIGHT 1944U
-#define OV5647_VBLANK_MIN 4
+#define OV5647_VBLANK_MIN 24
#define OV5647_VTS_MAX 32767
#define OV5647_EXPOSURE_MIN 4

View File

@ -1,50 +0,0 @@
From 2469a06f61b88939d92fd8e61a32afd5566c0be0 Mon Sep 17 00:00:00 2001
From: David Plowman <david.plowman@raspberrypi.com>
Date: Thu, 21 Oct 2021 14:47:00 +0100
Subject: [PATCH] media: i2c: ov5647: Sensor should report RAW color space
Tested on Raspberry Pi running libcamera.
Signed-off-by: David Plowman <david.plowman@raspberrypi.com>
---
drivers/media/i2c/ov5647.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
--- a/drivers/media/i2c/ov5647.c
+++ b/drivers/media/i2c/ov5647.c
@@ -508,7 +508,7 @@ static const struct ov5647_mode ov5647_m
{
.format = {
.code = MEDIA_BUS_FMT_SBGGR10_1X10,
- .colorspace = V4L2_COLORSPACE_SRGB,
+ .colorspace = V4L2_COLORSPACE_RAW,
.field = V4L2_FIELD_NONE,
.width = 2592,
.height = 1944
@@ -529,7 +529,7 @@ static const struct ov5647_mode ov5647_m
{
.format = {
.code = MEDIA_BUS_FMT_SBGGR10_1X10,
- .colorspace = V4L2_COLORSPACE_SRGB,
+ .colorspace = V4L2_COLORSPACE_RAW,
.field = V4L2_FIELD_NONE,
.width = 1920,
.height = 1080
@@ -550,7 +550,7 @@ static const struct ov5647_mode ov5647_m
{
.format = {
.code = MEDIA_BUS_FMT_SBGGR10_1X10,
- .colorspace = V4L2_COLORSPACE_SRGB,
+ .colorspace = V4L2_COLORSPACE_RAW,
.field = V4L2_FIELD_NONE,
.width = 1296,
.height = 972
@@ -571,7 +571,7 @@ static const struct ov5647_mode ov5647_m
{
.format = {
.code = MEDIA_BUS_FMT_SBGGR10_1X10,
- .colorspace = V4L2_COLORSPACE_SRGB,
+ .colorspace = V4L2_COLORSPACE_RAW,
.field = V4L2_FIELD_NONE,
.width = 640,
.height = 480

View File

@ -170,7 +170,7 @@ Signed-off-by: David Plowman <david.plowman@raspberrypi.com>
default:
dev_info(&client->dev,
"Control (id:0x%x, val:0x%x) not supported\n",
@@ -1354,6 +1408,16 @@ static int ov5647_init_controls(struct o
@@ -1356,6 +1410,16 @@ static int ov5647_init_controls(struct o
ARRAY_SIZE(ov5647_test_pattern_menu) - 1,
0, 0, ov5647_test_pattern_menu);

View File

@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
--- a/drivers/spi/spidev.c
+++ b/drivers/spi/spidev.c
@@ -711,6 +711,7 @@ static const struct spi_device_id spidev
@@ -693,6 +693,7 @@ static const struct spi_device_id spidev
{ .name = "spi-authenta" },
{ .name = "em3581" },
{ .name = "si3210" },

View File

@ -95,7 +95,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
static int ov5647_init_controls(struct ov5647 *sensor, struct device *dev)
{
struct i2c_client *client = v4l2_get_subdevdata(&sensor->sd);
@@ -1502,6 +1533,12 @@ static int ov5647_probe(struct i2c_clien
@@ -1504,6 +1535,12 @@ static int ov5647_probe(struct i2c_clien
return -EINVAL;
}

View File

@ -17,7 +17,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -1186,6 +1186,16 @@ config MFD_SY7636A
@@ -1210,6 +1210,16 @@ config MFD_SY7636A
To enable support for building sub-devices as modules,
choose M here.
@ -52,10 +52,10 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
static int simple_mfd_i2c_probe(struct i2c_client *i2c)
{
const struct simple_mfd_data *simple_mfd_data;
@@ -88,6 +97,7 @@ static const struct of_device_id simple_
@@ -119,6 +128,7 @@ static const struct of_device_id simple_
{ .compatible = "maxim,max77705-battery", .data = &maxim_mon_max77705},
{ .compatible = "silergy,sy7636a", .data = &silergy_sy7636a},
{ .compatible = "maxim,max5970", .data = &maxim_max5970},
{ .compatible = "maxim,max5978", .data = &maxim_max5970},
{ .compatible = "spacemit,p1", .data = &spacemit_p1, },
+ { .compatible = "raspberrypi,poe-core", &rpi_poe_core },
{ .compatible = "raspberrypi,sensehat" },
{}

View File

@ -15,7 +15,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
--- a/drivers/media/i2c/ov5647.c
+++ b/drivers/media/i2c/ov5647.c
@@ -1566,7 +1566,7 @@ static int ov5647_probe(struct i2c_clien
@@ -1568,7 +1568,7 @@ static int ov5647_probe(struct i2c_clien
if (ret < 0)
goto power_off;

View File

@ -68,7 +68,7 @@ Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
--- a/drivers/char/random.c
+++ b/drivers/char/random.c
@@ -867,6 +867,14 @@ void __init random_init_early(const char
@@ -857,6 +857,14 @@ void __init random_init_early(const char
unsigned long entropy[BLAKE2S_BLOCK_SIZE / sizeof(long)];
size_t i, longs, arch_bits;

View File

@ -78,7 +78,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
*norm = state->curr_norm;
return 0;
@@ -890,6 +914,8 @@ static int adv7180_s_stream(struct v4l2_
@@ -897,6 +921,8 @@ static int adv7180_s_stream(struct v4l2_
return 0;
}

View File

@ -191,7 +191,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
static void macb_init_buffers(struct macb *bp)
{
struct macb_queue *queue;
@@ -976,6 +992,7 @@ static int macb_mii_init(struct macb *bp
@@ -974,6 +990,7 @@ static int macb_mii_init(struct macb *bp
bp->mii_bus->write = &macb_mdio_write_c22;
bp->mii_bus->read_c45 = &macb_mdio_read_c45;
bp->mii_bus->write_c45 = &macb_mdio_write_c45;
@ -199,7 +199,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
snprintf(bp->mii_bus->id, MII_BUS_ID_SIZE, "%s-%x",
bp->pdev->name, bp->pdev->id);
bp->mii_bus->priv = bp;
@@ -1641,6 +1658,11 @@ static int macb_rx(struct macb_queue *qu
@@ -1639,6 +1656,11 @@ static int macb_rx(struct macb_queue *qu
macb_init_rx_ring(queue);
queue_writel(queue, RBQP, queue->rx_ring_dma);
@ -211,7 +211,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
macb_writel(bp, NCR, ctrl | MACB_BIT(RE));
@@ -1943,8 +1965,9 @@ static irqreturn_t macb_interrupt(int ir
@@ -1941,8 +1963,9 @@ static irqreturn_t macb_interrupt(int ir
queue_writel(queue, ISR, MACB_BIT(TCOMP) |
MACB_BIT(TXUBR));
@ -222,7 +222,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
wmb(); // ensure softirq can see update
}
@@ -2400,6 +2423,11 @@ static netdev_tx_t macb_start_xmit(struc
@@ -2398,6 +2421,11 @@ static netdev_tx_t macb_start_xmit(struc
skb_tx_timestamp(skb);
spin_lock(&bp->lock);
@ -234,7 +234,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
macb_writel(bp, NCR, macb_readl(bp, NCR) | MACB_BIT(TSTART));
spin_unlock(&bp->lock);
@@ -2806,6 +2834,37 @@ static void macb_configure_dma(struct ma
@@ -2804,6 +2832,37 @@ static void macb_configure_dma(struct ma
}
}
@ -272,7 +272,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
static void macb_init_hw(struct macb *bp)
{
u32 config;
@@ -2834,6 +2893,11 @@ static void macb_init_hw(struct macb *bp
@@ -2832,6 +2891,11 @@ static void macb_init_hw(struct macb *bp
if (bp->caps & MACB_CAPS_JUMBO)
bp->rx_frm_len_mask = MACB_RX_JFRMLEN_MASK;
@ -284,7 +284,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
macb_configure_dma(bp);
/* Enable RX partial store and forward and set watermark */
@@ -3200,6 +3264,52 @@ static void gem_get_ethtool_strings(stru
@@ -3199,6 +3263,52 @@ static void gem_get_ethtool_strings(stru
}
}
@ -337,7 +337,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
static struct net_device_stats *macb_get_stats(struct net_device *dev)
{
struct macb *bp = netdev_priv(dev);
@@ -3784,6 +3894,8 @@ static const struct ethtool_ops macb_eth
@@ -3783,6 +3893,8 @@ static const struct ethtool_ops macb_eth
};
static const struct ethtool_ops gem_ethtool_ops = {
@ -346,7 +346,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
.get_regs_len = macb_get_regs_len,
.get_regs = macb_get_regs,
.get_wol = macb_get_wol,
@@ -3793,6 +3905,8 @@ static const struct ethtool_ops gem_etht
@@ -3792,6 +3904,8 @@ static const struct ethtool_ops gem_etht
.get_ethtool_stats = gem_get_ethtool_stats,
.get_strings = gem_get_ethtool_strings,
.get_sset_count = gem_get_sset_count,
@ -355,7 +355,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
.get_link_ksettings = macb_get_link_ksettings,
.set_link_ksettings = macb_set_link_ksettings,
.get_ringparam = macb_get_ringparam,
@@ -5114,6 +5228,11 @@ static int macb_probe(struct platform_de
@@ -5113,6 +5227,11 @@ static int macb_probe(struct platform_de
}
}
}
@ -367,7 +367,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
spin_lock_init(&bp->lock);
spin_lock_init(&bp->stats_lock);
@@ -5174,6 +5293,21 @@ static int macb_probe(struct platform_de
@@ -5173,6 +5292,21 @@ static int macb_probe(struct platform_de
else
bp->phy_interface = interface;
@ -389,7 +389,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
/* IP specific init */
err = init(pdev);
if (err)
@@ -5245,6 +5379,19 @@ static void macb_remove(struct platform_
@@ -5244,6 +5378,19 @@ static void macb_remove(struct platform_
}
}
@ -409,7 +409,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
static int __maybe_unused macb_suspend(struct device *dev)
{
struct net_device *netdev = dev_get_drvdata(dev);
@@ -5498,6 +5645,7 @@ static const struct dev_pm_ops macb_pm_o
@@ -5497,6 +5644,7 @@ static const struct dev_pm_ops macb_pm_o
static struct platform_driver macb_driver = {
.probe = macb_probe,
.remove_new = macb_remove,

View File

@ -308,7 +308,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
dwc->tx_fifo_resize_max_num = tx_fifo_resize_max_num;
}
@@ -2187,6 +2234,12 @@ static int dwc3_probe(struct platform_de
@@ -2202,6 +2249,12 @@ static int dwc3_probe(struct platform_de
if (IS_ERR(dwc->usb_psy))
return dev_err_probe(dev, PTR_ERR(dwc->usb_psy), "couldn't get usb power supply\n");
@ -333,7 +333,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
/* Global Debug LSP MUX Select */
#define DWC3_GDBGLSPMUX_ENDBC BIT(15) /* Host only */
#define DWC3_GDBGLSPMUX_HOSTSELECT(n) ((n) & 0x3fff)
@@ -1087,6 +1090,7 @@ struct dwc3_scratchpad_array {
@@ -1089,6 +1092,7 @@ struct dwc3_scratchpad_array {
* @tx_max_burst_prd: max periodic ESS transmit burst size
* @tx_fifo_resize_max_num: max number of fifos allocated during txfifo resize
* @clear_stall_protocol: endpoint number that requires a delayed status phase
@ -341,7 +341,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
* @hsphy_interface: "utmi" or "ulpi"
* @connected: true when we're connected to a host, false otherwise
* @softconnect: true when gadget connect is called, false when disconnect runs
@@ -1338,6 +1342,7 @@ struct dwc3 {
@@ -1342,6 +1346,7 @@ struct dwc3 {
u8 tx_max_burst_prd;
u8 tx_fifo_resize_max_num;
u8 clear_stall_protocol;

View File

@ -25,7 +25,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -2384,6 +2384,17 @@ config MFD_INTEL_M10_BMC_PMCI
@@ -2408,6 +2408,17 @@ config MFD_INTEL_M10_BMC_PMCI
additional drivers must be enabled in order to use the functionality
of the device.

View File

@ -17,7 +17,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
--- a/drivers/media/i2c/adv7180.c
+++ b/drivers/media/i2c/adv7180.c
@@ -732,10 +732,15 @@ static int adv7180_enum_mbus_code(struct
@@ -739,10 +739,15 @@ static int adv7180_enum_mbus_code(struct
struct v4l2_subdev_state *sd_state,
struct v4l2_subdev_mbus_code_enum *code)
{
@ -34,7 +34,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
return 0;
}
@@ -745,7 +750,10 @@ static int adv7180_mbus_fmt(struct v4l2_
@@ -752,7 +757,10 @@ static int adv7180_mbus_fmt(struct v4l2_
{
struct adv7180_state *state = to_state(sd);

View File

@ -36,7 +36,7 @@ This reverts commit 00ecb85c58501f8f7ae75fcb069bbbad5542e853.
};
#define to_adv7180_sd(_ctrl) (&container_of(_ctrl->handler, \
struct adv7180_state, \
@@ -625,6 +636,9 @@ static int adv7180_s_ctrl(struct v4l2_ct
@@ -632,6 +643,9 @@ static int adv7180_s_ctrl(struct v4l2_ct
if (ret)
return ret;
@ -46,7 +46,7 @@ This reverts commit 00ecb85c58501f8f7ae75fcb069bbbad5542e853.
val = ctrl->val;
switch (ctrl->id) {
case V4L2_CID_BRIGHTNESS:
@@ -666,6 +680,7 @@ static int adv7180_s_ctrl(struct v4l2_ct
@@ -673,6 +687,7 @@ static int adv7180_s_ctrl(struct v4l2_ct
ret = -EINVAL;
}
@ -54,7 +54,7 @@ This reverts commit 00ecb85c58501f8f7ae75fcb069bbbad5542e853.
mutex_unlock(&state->mutex);
return ret;
}
@@ -686,7 +701,7 @@ static const struct v4l2_ctrl_config adv
@@ -693,7 +708,7 @@ static const struct v4l2_ctrl_config adv
static int adv7180_init_controls(struct adv7180_state *state)
{
@ -63,7 +63,7 @@ This reverts commit 00ecb85c58501f8f7ae75fcb069bbbad5542e853.
v4l2_ctrl_new_std(&state->ctrl_hdl, &adv7180_ctrl_ops,
V4L2_CID_BRIGHTNESS, ADV7180_BRI_MIN,
@@ -712,6 +727,17 @@ static int adv7180_init_controls(struct
@@ -719,6 +734,17 @@ static int adv7180_init_controls(struct
test_pattern_menu);
}
@ -81,7 +81,7 @@ This reverts commit 00ecb85c58501f8f7ae75fcb069bbbad5542e853.
state->sd.ctrl_handler = &state->ctrl_hdl;
if (state->ctrl_hdl.error) {
int err = state->ctrl_hdl.error;
@@ -839,7 +865,16 @@ static int adv7180_set_pad_format(struct
@@ -846,7 +872,16 @@ static int adv7180_set_pad_format(struct
ret = adv7180_mbus_fmt(sd, &format->format);
if (format->which == V4L2_SUBDEV_FORMAT_ACTIVE) {

View File

@ -45,7 +45,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
#define DWC3_GUCTL1_RESUME_OPMODE_HS_HOST BIT(10)
/* Global Status Register */
@@ -1142,10 +1143,12 @@ struct dwc3_scratchpad_array {
@@ -1144,10 +1145,12 @@ struct dwc3_scratchpad_array {
* generation after resume from suspend.
* @ulpi_ext_vbus_drv: Set to confiure the upli chip to drives CPEN pin
* VBUS with an external supply.
@ -62,7 +62,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
* @gfladj_refclk_lpm_sel: set if we need to enable SOF/ITP counter
* running based on ref_clk
* @tx_de_emphasis_quirk: set if we enable Tx de-emphasis quirk
@@ -1386,6 +1389,7 @@ struct dwc3 {
@@ -1390,6 +1393,7 @@ struct dwc3 {
unsigned ulpi_ext_vbus_drv:1;
unsigned parkmode_disable_ss_quirk:1;
unsigned parkmode_disable_hs_quirk:1;

View File

@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
@@ -2440,7 +2440,26 @@ static int lan78xx_phy_init(struct lan78
@@ -2438,7 +2438,26 @@ static int lan78xx_phy_init(struct lan78
mii_adv_to_linkmode_adv_t(fc, mii_adv);
linkmode_or(phydev->advertising, fc, phydev->advertising);

View File

@ -102,7 +102,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
/* Read-only, but we adjust it based on mode. */
break;
@@ -1421,10 +1421,11 @@ static int ov5647_init_controls(struct o
@@ -1423,10 +1423,11 @@ static int ov5647_init_controls(struct o
sensor->mode->pixel_rate, 1,
sensor->mode->pixel_rate);
@ -116,7 +116,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
hblank);
sensor->vblank = v4l2_ctrl_new_std(&sensor->ctrls, &ov5647_ctrl_ops,
@@ -1458,7 +1459,6 @@ static int ov5647_init_controls(struct o
@@ -1460,7 +1461,6 @@ static int ov5647_init_controls(struct o
goto handler_free;
sensor->pixel_rate->flags |= V4L2_CTRL_FLAG_READ_ONLY;

View File

@ -70,7 +70,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
@@ -439,6 +451,7 @@ static const struct ov5647_mode ov5647_m
.height = 1920,
},
.pixel_rate = 55000000,
.pixel_rate = 58333000,
+ .link_freq_index = FREQ_INDEX_VGA,
.hts = 1852,
.vts = 0x1f8,
@ -91,9 +91,9 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
- v4l2_ctrl_handler_init(&sensor->ctrls, 9);
+ v4l2_ctrl_handler_init(&sensor->ctrls, 10);
v4l2_ctrl_new_std(&sensor->ctrls, &ov5647_ctrl_ops,
V4L2_CID_AUTOGAIN, 0, 1, 1, 0);
@@ -1302,6 +1317,14 @@ static int ov5647_init_controls(struct o
sensor->ctrls.lock = &sensor->lock;
@@ -1304,6 +1319,14 @@ static int ov5647_init_controls(struct o
if (sensor->vflip)
sensor->vflip->flags |= V4L2_CTRL_FLAG_MODIFY_LAYOUT;

View File

@ -57,7 +57,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
#define DWC3_GUCTL1_PARKMODE_DISABLE_SS BIT(17)
#define DWC3_GUCTL1_PARKMODE_DISABLE_HS BIT(16)
#define DWC3_GUCTL1_PARKMODE_DISABLE_FSLS BIT(15)
@@ -1143,6 +1145,8 @@ struct dwc3_scratchpad_array {
@@ -1145,6 +1147,8 @@ struct dwc3_scratchpad_array {
* generation after resume from suspend.
* @ulpi_ext_vbus_drv: Set to confiure the upli chip to drives CPEN pin
* VBUS with an external supply.
@ -66,7 +66,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
* @parkmode_disable_ss_quirk: If set, disable park mode feature for all
* Superspeed instances.
* @parkmode_disable_hs_quirk: If set, disable park mode feature for all
@@ -1387,6 +1391,8 @@ struct dwc3 {
@@ -1391,6 +1395,8 @@ struct dwc3 {
unsigned dis_tx_ipgap_linecheck_quirk:1;
unsigned resume_hs_terminations:1;
unsigned ulpi_ext_vbus_drv:1;

View File

@ -15,7 +15,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
--- a/drivers/net/ethernet/cadence/macb_main.c
+++ b/drivers/net/ethernet/cadence/macb_main.c
@@ -5077,6 +5077,17 @@ static const struct macb_config versal_c
@@ -5076,6 +5076,17 @@ static const struct macb_config versal_c
.usrio = &macb_default_usrio,
};
@ -33,7 +33,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
static const struct of_device_id macb_dt_ids[] = {
{ .compatible = "cdns,at91sam9260-macb", .data = &at91sam9260_config },
{ .compatible = "cdns,macb" },
@@ -5097,6 +5108,7 @@ static const struct of_device_id macb_dt
@@ -5096,6 +5107,7 @@ static const struct of_device_id macb_dt
{ .compatible = "microchip,mpfs-macb", .data = &mpfs_config },
{ .compatible = "microchip,sama7g5-gem", .data = &sama7g5_gem_config },
{ .compatible = "microchip,sama7g5-emac", .data = &sama7g5_emac_config },

View File

@ -12,7 +12,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -992,9 +992,6 @@ static int pci_register_host_bridge(stru
@@ -996,9 +996,6 @@ static int pci_register_host_bridge(stru
else
pr_info("PCI host bridge to bus %s\n", name);

View File

@ -301,7 +301,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
mmu_debug = V3D_READ(V3D_MMU_DEBUG_INFO);
mask = DMA_BIT_MASK(30 + V3D_GET_FIELD(mmu_debug, V3D_MMU_PA_WIDTH));
ret = dma_set_mask_and_coherent(dev, mask);
@@ -325,6 +366,11 @@ static int v3d_platform_drm_probe(struct
@@ -327,6 +368,11 @@ static int v3d_platform_drm_probe(struct
ident1 = V3D_READ(V3D_HUB_IDENT1);
v3d->ver = (V3D_GET_FIELD(ident1, V3D_HUB_IDENT1_TVER) * 10 +
V3D_GET_FIELD(ident1, V3D_HUB_IDENT1_REV));
@ -313,7 +313,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
v3d->cores = V3D_GET_FIELD(ident1, V3D_HUB_IDENT1_NCORES);
WARN_ON(v3d->cores > 1); /* multicore not yet implemented */
@@ -377,7 +423,7 @@ static int v3d_platform_drm_probe(struct
@@ -379,7 +425,7 @@ static int v3d_platform_drm_probe(struct
v3d->clk_down_rate =
(clk_get_rate(clk_get_parent(v3d->clk)) / (1 << 4)) + 10000;

View File

@ -29,7 +29,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
--- a/drivers/gpu/drm/v3d/v3d_drv.c
+++ b/drivers/gpu/drm/v3d/v3d_drv.c
@@ -485,6 +485,8 @@ static void v3d_platform_drm_remove(stru
@@ -487,6 +487,8 @@ static void v3d_platform_drm_remove(stru
dma_free_wc(v3d->drm.dev, 4096, v3d->mmu_scratch,
v3d->mmu_scratch_paddr);

View File

@ -18,7 +18,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -6256,6 +6256,22 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
@@ -6283,6 +6283,22 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x56b1, aspm_l1_acceptable_latency);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x56c0, aspm_l1_acceptable_latency);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x56c1, aspm_l1_acceptable_latency);

View File

@ -17,7 +17,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
--- a/drivers/gpu/drm/v3d/v3d_drv.c
+++ b/drivers/gpu/drm/v3d/v3d_drv.c
@@ -395,21 +395,18 @@ static int v3d_platform_drm_probe(struct
@@ -397,21 +397,18 @@ static int v3d_platform_drm_probe(struct
}
}

View File

@ -8,7 +8,7 @@
static int spinand_read_reg_op(struct spinand_device *spinand, u8 reg, u8 *val)
{
@@ -1577,6 +1578,7 @@ static int spinand_probe(struct spi_mem
@@ -1585,6 +1586,7 @@ static int spinand_probe(struct spi_mem
if (ret)
return ret;
@ -16,7 +16,7 @@
ret = mtd_device_register(mtd, NULL, 0);
if (ret)
goto err_spinand_cleanup;
@@ -1584,6 +1586,7 @@ static int spinand_probe(struct spi_mem
@@ -1592,6 +1594,7 @@ static int spinand_probe(struct spi_mem
return 0;
err_spinand_cleanup:
@ -24,7 +24,7 @@
spinand_cleanup(spinand);
return ret;
@@ -1602,6 +1605,7 @@ static int spinand_remove(struct spi_mem
@@ -1610,6 +1613,7 @@ static int spinand_remove(struct spi_mem
if (ret)
return ret;

View File

@ -64,7 +64,7 @@ Signed-off-by: Stephen Boyd <sboyd@kernel.org>
{
--- a/include/linux/clk.h
+++ b/include/linux/clk.h
@@ -496,11 +496,13 @@ int __must_check devm_clk_bulk_get_all(s
@@ -520,11 +520,13 @@ int __must_check devm_clk_bulk_get_all(s
struct clk_bulk_data **clks);
/**
@ -80,7 +80,7 @@ Signed-off-by: Stephen Boyd <sboyd@kernel.org>
*
* This helper function allows drivers to get all clocks of the
* consumer and enables them in one operation with management.
@@ -508,8 +510,8 @@ int __must_check devm_clk_bulk_get_all(s
@@ -532,8 +534,8 @@ int __must_check devm_clk_bulk_get_all(s
* is unbound.
*/
@ -91,7 +91,7 @@ Signed-off-by: Stephen Boyd <sboyd@kernel.org>
/**
* devm_clk_get - lookup and obtain a managed reference to a clock producer.
@@ -1034,7 +1036,7 @@ static inline int __must_check devm_clk_
@@ -1041,7 +1043,7 @@ static inline int __must_check devm_clk_
return 0;
}
@ -100,7 +100,7 @@ Signed-off-by: Stephen Boyd <sboyd@kernel.org>
struct clk_bulk_data **clks)
{
return 0;
@@ -1136,6 +1138,15 @@ static inline void clk_restore_context(v
@@ -1136,6 +1138,15 @@ static inline struct clk *clk_get_sys(co
#endif

View File

@ -27,7 +27,7 @@ Link: https://lore.kernel.org/linux-mtd/20250824170013.3328777-1-cnsztl@gmail.co
obj-$(CONFIG_MTD_SPI_NAND) += spinand.o
--- a/drivers/mtd/nand/spi/core.c
+++ b/drivers/mtd/nand/spi/core.c
@@ -1115,6 +1115,7 @@ static const struct spinand_manufacturer
@@ -1123,6 +1123,7 @@ static const struct spinand_manufacturer
&alliancememory_spinand_manufacturer,
&ato_spinand_manufacturer,
&esmt_c8_spinand_manufacturer,

View File

@ -14,7 +14,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
--- a/drivers/mtd/nand/spi/core.c
+++ b/drivers/mtd/nand/spi/core.c
@@ -1028,18 +1028,13 @@ static int spinand_create_dirmap(struct
@@ -1036,18 +1036,13 @@ static int spinand_create_dirmap(struct
unsigned int plane)
{
struct nand_device *nand = spinand_to_nand(spinand);
@ -35,7 +35,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
info.op_tmpl = *spinand->op_templates.update_cache;
desc = devm_spi_mem_dirmap_create(&spinand->spimem->spi->dev,
spinand->spimem, &info);
@@ -1048,6 +1043,8 @@ static int spinand_create_dirmap(struct
@@ -1056,6 +1051,8 @@ static int spinand_create_dirmap(struct
spinand->dirmaps[plane].wdesc = desc;
@ -44,7 +44,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
info.op_tmpl = *spinand->op_templates.read_cache;
desc = devm_spi_mem_dirmap_create(&spinand->spimem->spi->dev,
spinand->spimem, &info);
@@ -1063,6 +1060,7 @@ static int spinand_create_dirmap(struct
@@ -1071,6 +1068,7 @@ static int spinand_create_dirmap(struct
return 0;
}
@ -52,7 +52,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
info.op_tmpl = *spinand->op_templates.update_cache;
info.op_tmpl.data.ecc = true;
desc = devm_spi_mem_dirmap_create(&spinand->spimem->spi->dev,
@@ -1072,6 +1070,8 @@ static int spinand_create_dirmap(struct
@@ -1080,6 +1078,8 @@ static int spinand_create_dirmap(struct
spinand->dirmaps[plane].wdesc_ecc = desc;

View File

@ -29,7 +29,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
--- a/drivers/mtd/nand/spi/core.c
+++ b/drivers/mtd/nand/spi/core.c
@@ -1024,6 +1024,39 @@ static int spinand_mtd_block_isreserved(
@@ -1032,6 +1032,39 @@ static int spinand_mtd_block_isreserved(
return ret;
}
@ -69,7 +69,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
static int spinand_create_dirmap(struct spinand_device *spinand,
unsigned int plane)
{
@@ -1043,11 +1076,8 @@ static int spinand_create_dirmap(struct
@@ -1051,11 +1084,8 @@ static int spinand_create_dirmap(struct
spinand->dirmaps[plane].wdesc = desc;
@ -82,7 +82,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
if (IS_ERR(desc))
return PTR_ERR(desc);
@@ -1070,12 +1100,9 @@ static int spinand_create_dirmap(struct
@@ -1078,12 +1108,9 @@ static int spinand_create_dirmap(struct
spinand->dirmaps[plane].wdesc_ecc = desc;

View File

@ -40,7 +40,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
}
if (req->datalen)
@@ -841,10 +849,19 @@ static int spinand_mtd_read(struct mtd_i
@@ -849,10 +857,19 @@ static int spinand_mtd_read(struct mtd_i
old_stats = mtd->ecc_stats;

View File

@ -19,7 +19,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
--- a/drivers/mtd/nand/spi/core.c
+++ b/drivers/mtd/nand/spi/core.c
@@ -1158,6 +1158,7 @@ static const struct nand_ops spinand_ops
@@ -1166,6 +1166,7 @@ static const struct nand_ops spinand_ops
static const struct spinand_manufacturer *spinand_manufacturers[] = {
&alliancememory_spinand_manufacturer,
&ato_spinand_manufacturer,

View File

@ -19,7 +19,7 @@ Signed-off-by: Jens Axboe <axboe@kernel.dk>
--- a/block/blk.h
+++ b/block/blk.h
@@ -570,6 +570,7 @@ void blk_free_ext_minor(unsigned int min
@@ -574,6 +574,7 @@ void blk_free_ext_minor(unsigned int min
#define ADDPART_FLAG_NONE 0
#define ADDPART_FLAG_RAID 1
#define ADDPART_FLAG_WHOLEDISK 2

View File

@ -18,7 +18,7 @@ Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
--- a/drivers/base/power/wakeirq.c
+++ b/drivers/base/power/wakeirq.c
@@ -103,6 +103,32 @@ void dev_pm_clear_wake_irq(struct device
@@ -106,6 +106,32 @@ void dev_pm_clear_wake_irq(struct device
}
EXPORT_SYMBOL_GPL(dev_pm_clear_wake_irq);

View File

@ -151,7 +151,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
static const char *argv0_path;
--- a/tools/objtool/Makefile
+++ b/tools/objtool/Makefile
@@ -39,6 +39,8 @@ OBJTOOL_LDFLAGS := $(LIBELF_LIBS) $(LIBS
@@ -41,6 +41,8 @@ OBJTOOL_LDFLAGS := $(LIBELF_LIBS) $(LIBS
elfshdr := $(shell echo '$(pound)include <libelf.h>' | $(HOSTCC) $(OBJTOOL_CFLAGS) -x c -E - | grep elf_getshdr)
OBJTOOL_CFLAGS += $(if $(elfshdr),,-DLIBELF_USE_DEPRECATED)

View File

@ -141,7 +141,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (err)
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -1601,7 +1601,9 @@ static void read_symbols(const char *mod
@@ -1605,7 +1605,9 @@ static void read_symbols(const char *mod
symname = remove_dot(info.strtab + sym->st_name);
handle_symbol(mod, &info, sym, symname);
@ -151,7 +151,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
}
check_sec_ref(mod, &info);
@@ -1758,7 +1760,9 @@ static void add_header(struct buffer *b,
@@ -1762,7 +1764,9 @@ static void add_header(struct buffer *b,
buf_printf(b, "#include <linux/export-internal.h>\n");
buf_printf(b, "#include <linux/compiler.h>\n");
buf_printf(b, "\n");
@ -161,7 +161,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
buf_printf(b, "\n");
buf_printf(b, "__visible struct module __this_module\n");
buf_printf(b, "__section(\".gnu.linkonce.this_module\") = {\n");
@@ -1772,11 +1776,13 @@ static void add_header(struct buffer *b,
@@ -1776,11 +1780,13 @@ static void add_header(struct buffer *b,
buf_printf(b, "\t.arch = MODULE_ARCH_INIT,\n");
buf_printf(b, "};\n");
@ -175,7 +175,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (strstarts(mod->name, "tools/testing"))
buf_printf(b, "\nMODULE_INFO(test, \"Y\");\n");
@@ -1886,11 +1892,13 @@ static void add_depends(struct buffer *b
@@ -1890,11 +1896,13 @@ static void add_depends(struct buffer *b
static void add_srcversion(struct buffer *b, struct module *mod)
{
@ -189,7 +189,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
}
static void write_buf(struct buffer *b, const char *fname)
@@ -1973,7 +1981,9 @@ static void write_mod_c_file(struct modu
@@ -1977,7 +1985,9 @@ static void write_mod_c_file(struct modu
add_exported_symbols(&buf, mod);
add_versions(&buf, mod);
add_depends(&buf, mod);

View File

@ -52,7 +52,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
*/
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -3242,6 +3242,10 @@ static inline int pskb_trim(struct sk_bu
@@ -3274,6 +3274,10 @@ static inline int pskb_trim(struct sk_bu
return (len < skb->len) ? __pskb_trim(skb, len) : 0;
}
@ -63,7 +63,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
/**
* pskb_trim_unique - remove end from a paged unique (not cloned) buffer
* @skb: buffer to alter
@@ -3407,16 +3411,6 @@ static inline struct sk_buff *dev_alloc_
@@ -3439,16 +3443,6 @@ static inline struct sk_buff *dev_alloc_
}

View File

@ -22,7 +22,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
#include <linux/crc32.h>
#include <linux/if_vlan.h>
#include <linux/uaccess.h>
@@ -7047,6 +7048,22 @@ static void rtl_tally_reset(struct r8152
@@ -7049,6 +7050,22 @@ static void rtl_tally_reset(struct r8152
ocp_write_word(tp, MCU_TYPE_PLA, PLA_RSTTALLY, ocp_data);
}
@ -45,7 +45,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
static void r8152b_init(struct r8152 *tp)
{
u32 ocp_data;
@@ -7088,6 +7105,8 @@ static void r8152b_init(struct r8152 *tp
@@ -7090,6 +7107,8 @@ static void r8152b_init(struct r8152 *tp
ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_USB_CTRL);
ocp_data &= ~(RX_AGG_DISABLE | RX_ZERO_EN);
ocp_write_word(tp, MCU_TYPE_USB, USB_USB_CTRL, ocp_data);
@ -54,7 +54,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
}
static void r8153_init(struct r8152 *tp)
@@ -7228,6 +7247,8 @@ static void r8153_init(struct r8152 *tp)
@@ -7230,6 +7249,8 @@ static void r8153_init(struct r8152 *tp)
tp->coalesce = COALESCE_SLOW;
break;
}
@ -63,7 +63,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
}
static void r8153b_init(struct r8152 *tp)
@@ -7310,6 +7331,8 @@ static void r8153b_init(struct r8152 *tp
@@ -7312,6 +7333,8 @@ static void r8153b_init(struct r8152 *tp
rtl_tally_reset(tp);
tp->coalesce = 15000; /* 15 us */

View File

@ -235,7 +235,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (!pe)
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -5071,6 +5071,9 @@ static int vmalloc_info_show(struct seq_
@@ -5079,6 +5079,9 @@ static int vmalloc_info_show(struct seq_
static int __init proc_vmalloc_init(void)
{

View File

@ -1,2 +1,2 @@
LINUX_VERSION-6.12 = .74
LINUX_KERNEL_HASH-6.12.74 = 3b56eeb1dc9a437f189ca56b823be3769994f59a4ea0895b08ec0d20acaca13e
LINUX_VERSION-6.12 = .75
LINUX_KERNEL_HASH-6.12.75 = 06ee7927556ff1aa8810c4826501b0fdb169ebdc180644b882cf7c143ac1c177

View File

@ -49,7 +49,7 @@ Submitted-by: Daniel Danzberger <daniel@dd-wrt.com>
obj-$(CONFIG_MTD_SPI_NAND) += spinand.o
--- a/drivers/mtd/nand/spi/core.c
+++ b/drivers/mtd/nand/spi/core.c
@@ -1160,6 +1160,7 @@ static const struct spinand_manufacturer
@@ -1168,6 +1168,7 @@ static const struct spinand_manufacturer
&ato_spinand_manufacturer,
&esmt_8c_spinand_manufacturer,
&esmt_c8_spinand_manufacturer,

View File

@ -145,5 +145,5 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
- sfp_fixup_ignore_tx_fault),
+ sfp_fixup_ignore_tx_fault_and_los),
// Lantech 8330-262D-E can operate at 2500base-X, but incorrectly report
// 2500MBd NRZ in their EEPROM
// Lantech 8330-262D-E and 8330-265D can operate at 2500base-X, but
// incorrectly report 2500MBd NRZ in their EEPROM.

View File

@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -3209,7 +3209,7 @@ static inline int pskb_network_may_pull(
@@ -3241,7 +3241,7 @@ static inline int pskb_network_may_pull(
* NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
*/
#ifndef NET_SKB_PAD

View File

@ -18,7 +18,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
@@ -8718,7 +8718,7 @@ static int nft_register_flowtable_net_ho
@@ -8724,7 +8724,7 @@ static int nft_register_flowtable_net_ho
err = flowtable->data.type->setup(&flowtable->data,
hook->ops.dev,
FLOW_BLOCK_BIND);

View File

@ -63,7 +63,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
/**
* ata_build_rw_tf - Build ATA taskfile for given read/write request
* @qc: Metadata associated with the taskfile to build
@@ -4800,6 +4811,9 @@ void __ata_qc_complete(struct ata_queued
@@ -4818,6 +4829,9 @@ void __ata_qc_complete(struct ata_queued
link->active_tag = ATA_TAG_POISON;
ap->nr_active_links--;
}
@ -73,7 +73,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
/* clear exclusive status */
if (unlikely(qc->flags & ATA_QCFLAG_CLEAR_EXCL &&
@@ -5522,6 +5536,9 @@ struct ata_port *ata_port_alloc(struct a
@@ -5546,6 +5560,9 @@ struct ata_port *ata_port_alloc(struct a
ap->stats.unhandled_irq = 1;
ap->stats.idle_irq = 1;
#endif
@ -83,7 +83,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
ata_sff_port_init(ap);
ata_force_pflags(ap);
@@ -5538,6 +5555,12 @@ void ata_port_free(struct ata_port *ap)
@@ -5562,6 +5579,12 @@ void ata_port_free(struct ata_port *ap)
kfree(ap->pmp_link);
kfree(ap->slave_link);
ida_free(&ata_ida, ap->print_id);
@ -96,7 +96,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
kfree(ap);
}
EXPORT_SYMBOL_GPL(ata_port_free);
@@ -5942,7 +5965,23 @@ int ata_host_register(struct ata_host *h
@@ -5966,7 +5989,23 @@ int ata_host_register(struct ata_host *h
WARN_ON(1);
return -EINVAL;
}

View File

@ -93,7 +93,7 @@ Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
+#endif
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -4818,6 +4818,9 @@ enum skb_ext_id {
@@ -4850,6 +4850,9 @@ enum skb_ext_id {
#if IS_ENABLED(CONFIG_MCTP_FLOWS)
SKB_EXT_MCTP,
#endif

View File

@ -18,7 +18,7 @@ Signed-off-by: Florian Maurer <f.maurer@outlook.com>
--- a/drivers/pci/controller/dwc/pcie-qcom.c
+++ b/drivers/pci/controller/dwc/pcie-qcom.c
@@ -207,11 +207,24 @@ struct qcom_pcie_resources_2_3_3 {
@@ -206,11 +206,24 @@ struct qcom_pcie_resources_2_3_3 {
};
#define QCOM_PCIE_2_4_0_MAX_RESETS 12
@ -43,7 +43,7 @@ Signed-off-by: Florian Maurer <f.maurer@outlook.com>
};
#define QCOM_PCIE_2_7_0_MAX_SUPPLIES 2
@@ -711,12 +724,65 @@ static int qcom_pcie_post_init_2_3_2(str
@@ -710,12 +723,65 @@ static int qcom_pcie_post_init_2_3_2(str
return 0;
}
@ -110,7 +110,7 @@ Signed-off-by: Florian Maurer <f.maurer@outlook.com>
int ret;
res->num_clks = devm_clk_bulk_get_all(dev, &res->clks);
@@ -755,6 +821,17 @@ static void qcom_pcie_deinit_2_4_0(struc
@@ -754,6 +820,17 @@ static void qcom_pcie_deinit_2_4_0(struc
clk_bulk_disable_unprepare(res->num_clks, res->clks);
}
@ -128,7 +128,7 @@ Signed-off-by: Florian Maurer <f.maurer@outlook.com>
static int qcom_pcie_init_2_4_0(struct qcom_pcie *pcie)
{
struct qcom_pcie_resources_2_4_0 *res = &pcie->res.v2_4_0;
@@ -1337,6 +1414,16 @@ static const struct qcom_pcie_ops ops_2_
@@ -1336,6 +1413,16 @@ static const struct qcom_pcie_ops ops_2_
.ltssm_enable = qcom_pcie_2_3_2_ltssm_enable,
};
@ -145,7 +145,7 @@ Signed-off-by: Florian Maurer <f.maurer@outlook.com>
/* Qcom IP rev.: 2.3.3 Synopsys IP rev.: 4.30a */
static const struct qcom_pcie_ops ops_2_3_3 = {
.get_resources = qcom_pcie_get_resources_2_3_3,
@@ -1405,6 +1492,10 @@ static const struct qcom_pcie_cfg cfg_2_
@@ -1404,6 +1491,10 @@ static const struct qcom_pcie_cfg cfg_2_
.ops = &ops_2_4_0,
};
@ -156,7 +156,7 @@ Signed-off-by: Florian Maurer <f.maurer@outlook.com>
static const struct qcom_pcie_cfg cfg_2_7_0 = {
.ops = &ops_2_7_0,
};
@@ -1829,6 +1920,7 @@ static const struct of_device_id qcom_pc
@@ -1827,6 +1918,7 @@ static const struct of_device_id qcom_pc
{ .compatible = "qcom,pcie-apq8064", .data = &cfg_2_1_0 },
{ .compatible = "qcom,pcie-apq8084", .data = &cfg_1_0_0 },
{ .compatible = "qcom,pcie-ipq4019", .data = &cfg_2_4_0 },

View File

@ -22,7 +22,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
const char *partname;
struct device_node *pp;
int nr_parts, i, ret = 0;
@@ -152,9 +155,15 @@ static int parse_fixed_partitions(struct
@@ -159,9 +162,15 @@ static int parse_fixed_partitions(struct
parts[i].size = of_read_number(reg + a_cells, s_cells);
parts[i].of_node = pp;
@ -41,7 +41,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
parts[i].name = partname;
if (of_property_read_bool(pp, "read-only"))
@@ -271,6 +280,18 @@ static int __init ofpart_parser_init(voi
@@ -283,6 +292,18 @@ static int __init ofpart_parser_init(voi
return 0;
}

View File

@ -58,9 +58,9 @@ Signed-off-by: Mathias Kresin <openwrt@kresin.me>
/* Pull of_node from the master device node */
mtd_node = mtd_get_of_node(master);
@@ -98,6 +132,14 @@ static int parse_fixed_partitions(struct
if (!parts)
@@ -105,6 +139,14 @@ static int parse_fixed_partitions(struct
return -ENOMEM;
}
+ part_nodes = kcalloc(nr_parts, sizeof(*part_nodes), GFP_KERNEL);
+ if (!part_nodes) {
@ -73,7 +73,7 @@ Signed-off-by: Mathias Kresin <openwrt@kresin.me>
i = 0;
for_each_child_of_node(ofpart_node, pp) {
const __be32 *reg;
@@ -166,6 +208,11 @@ static int parse_fixed_partitions(struct
@@ -173,6 +215,11 @@ static int parse_fixed_partitions(struct
if (of_property_read_bool(pp, "slc-mode"))
parts[i].add_flags |= MTD_SLC_ON_MLC_EMULATION;
@ -85,9 +85,9 @@ Signed-off-by: Mathias Kresin <openwrt@kresin.me>
i++;
}
@@ -175,6 +222,11 @@ static int parse_fixed_partitions(struct
if (quirks && quirks->post_parse)
quirks->post_parse(master, parts, nr_parts);
@@ -185,6 +232,11 @@ static int parse_fixed_partitions(struct
if (dedicated)
of_node_put(ofpart_node);
+ if (proot_id)
+ brnboot_set_active_root_part(parts, part_nodes, nr_parts, proot_id);
@ -97,8 +97,8 @@ Signed-off-by: Mathias Kresin <openwrt@kresin.me>
*pparts = parts;
return nr_parts;
@@ -185,6 +237,7 @@ ofpart_fail:
ofpart_none:
@@ -197,6 +249,7 @@ ofpart_none:
of_node_put(ofpart_node);
of_node_put(pp);
kfree(parts);
+ kfree(part_nodes);

View File

@ -1,6 +1,6 @@
--- a/drivers/mtd/nand/spi/core.c
+++ b/drivers/mtd/nand/spi/core.c
@@ -913,7 +913,7 @@ static int spinand_mtd_write(struct mtd_
@@ -921,7 +921,7 @@ static int spinand_mtd_write(struct mtd_
static bool spinand_isbad(struct nand_device *nand, const struct nand_pos *pos)
{
struct spinand_device *spinand = nand_to_spinand(nand);
@ -9,7 +9,7 @@
struct nand_page_io_req req = {
.pos = *pos,
.ooblen = sizeof(marker),
@@ -924,7 +924,7 @@ static bool spinand_isbad(struct nand_de
@@ -932,7 +932,7 @@ static bool spinand_isbad(struct nand_de
spinand_select_target(spinand, pos->target);
spinand_read_page(spinand, &req);

View File

@ -8,7 +8,7 @@
static int spinand_read_reg_op(struct spinand_device *spinand, u8 reg, u8 *val)
{
@@ -1577,6 +1578,7 @@ static int spinand_probe(struct spi_mem
@@ -1585,6 +1586,7 @@ static int spinand_probe(struct spi_mem
if (ret)
return ret;
@ -16,7 +16,7 @@
ret = mtd_device_register(mtd, NULL, 0);
if (ret)
goto err_spinand_cleanup;
@@ -1584,6 +1586,7 @@ static int spinand_probe(struct spi_mem
@@ -1592,6 +1594,7 @@ static int spinand_probe(struct spi_mem
return 0;
err_spinand_cleanup:
@ -24,7 +24,7 @@
spinand_cleanup(spinand);
return ret;
@@ -1602,6 +1605,7 @@ static int spinand_remove(struct spi_mem
@@ -1610,6 +1613,7 @@ static int spinand_remove(struct spi_mem
if (ret)
return ret;

View File

@ -24,7 +24,7 @@ Signed-off-by: Davide Fioravanti <pantanastyle@gmail.com>
obj-$(CONFIG_MTD_SPI_NAND) += spinand.o
--- a/drivers/mtd/nand/spi/core.c
+++ b/drivers/mtd/nand/spi/core.c
@@ -1163,6 +1163,7 @@ static const struct spinand_manufacturer
@@ -1171,6 +1171,7 @@ static const struct spinand_manufacturer
&esmt_c8_spinand_manufacturer,
&etron_spinand_manufacturer,
&fmsh_spinand_manufacturer,

View File

@ -11,7 +11,7 @@ Signed-off-by: SkyLake.Huang <skylake.huang@mediatek.com>
--- a/drivers/spi/spi-mem.c
+++ b/drivers/spi/spi-mem.c
@@ -486,6 +486,14 @@ int spi_mem_exec_op(struct spi_mem *mem,
@@ -497,6 +497,14 @@ int spi_mem_exec_op(struct spi_mem *mem,
}
EXPORT_SYMBOL_GPL(spi_mem_exec_op);

View File

@ -11,7 +11,7 @@ Signed-off-by: SkyLake.Huang <skylake.huang@mediatek.com>
--- a/drivers/mtd/nand/spi/core.c
+++ b/drivers/mtd/nand/spi/core.c
@@ -1201,6 +1201,56 @@ static int spinand_manufacturer_match(st
@@ -1209,6 +1209,56 @@ static int spinand_manufacturer_match(st
return -EOPNOTSUPP;
}
@ -68,7 +68,7 @@ Signed-off-by: SkyLake.Huang <skylake.huang@mediatek.com>
static int spinand_id_detect(struct spinand_device *spinand)
{
u8 *id = spinand->id.data;
@@ -1454,6 +1504,10 @@ static int spinand_init(struct spinand_d
@@ -1462,6 +1512,10 @@ static int spinand_init(struct spinand_d
if (!spinand->scratchbuf)
return -ENOMEM;

View File

@ -12,7 +12,7 @@ Signed-off-by: SkyLake.Huang <skylake.huang@mediatek.com>
--- a/drivers/mtd/nand/spi/core.c
+++ b/drivers/mtd/nand/spi/core.c
@@ -1242,7 +1242,10 @@ static int spinand_cal_read(void *priv,
@@ -1250,7 +1250,10 @@ static int spinand_cal_read(void *priv,
if (ret)
return ret;

View File

@ -18,7 +18,7 @@ Acked-by: Pali Rohár <pali@kernel.org>
--- a/drivers/pci/controller/pcie-mediatek.c
+++ b/drivers/pci/controller/pcie-mediatek.c
@@ -700,6 +700,13 @@ static int mtk_pcie_startup_port_v2(stru
@@ -702,6 +702,13 @@ static int mtk_pcie_startup_port_v2(stru
*/
msleep(100);

View File

@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/drivers/pci/controller/pcie-mediatek.c
+++ b/drivers/pci/controller/pcie-mediatek.c
@@ -599,9 +599,9 @@ static void mtk_pcie_intr_handler(struct
@@ -601,9 +601,9 @@ static void mtk_pcie_intr_handler(struct
if (status & INTX_MASK) {
for_each_set_bit_from(bit, &status, PCI_NUM_INTX + INTX_SHIFT) {
/* Clear the INTx */

View File

@ -61,7 +61,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
struct mtk_pcie_port;
/**
@@ -1052,6 +1058,27 @@ static int mtk_pcie_setup(struct mtk_pci
@@ -1054,6 +1060,27 @@ static int mtk_pcie_setup(struct mtk_pci
struct mtk_pcie_port *port, *tmp;
int err, slot;

View File

@ -37,7 +37,7 @@
* CONFIG_CMDLINE is meant to be a default in case nothing else
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -2381,6 +2381,14 @@ config CMDLINE_FORCE
@@ -2382,6 +2382,14 @@ config CMDLINE_FORCE
endchoice

View File

@ -29,7 +29,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
--- a/drivers/mtd/nand/spi/core.c
+++ b/drivers/mtd/nand/spi/core.c
@@ -1671,6 +1671,7 @@ static int spinand_remove(struct spi_mem
@@ -1679,6 +1679,7 @@ static int spinand_remove(struct spi_mem
static const struct spi_device_id spinand_ids[] = {
{ .name = "spi-nand" },
@ -37,7 +37,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
{ /* sentinel */ },
};
MODULE_DEVICE_TABLE(spi, spinand_ids);
@@ -1678,6 +1679,7 @@ MODULE_DEVICE_TABLE(spi, spinand_ids);
@@ -1686,6 +1687,7 @@ MODULE_DEVICE_TABLE(spi, spinand_ids);
#ifdef CONFIG_OF
static const struct of_device_id spinand_of_ids[] = {
{ .compatible = "spi-nand" },

View File

@ -22,7 +22,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
struct device_node *pp;
int nr_parts, i, ret = 0;
bool dedicated = true;
@@ -152,9 +155,13 @@ static int parse_fixed_partitions(struct
@@ -159,9 +162,13 @@ static int parse_fixed_partitions(struct
parts[i].size = of_read_number(reg + a_cells, s_cells);
parts[i].of_node = pp;
@ -39,7 +39,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
parts[i].name = partname;
if (of_property_read_bool(pp, "read-only"))
@@ -271,6 +278,18 @@ static int __init ofpart_parser_init(voi
@@ -283,6 +290,18 @@ static int __init ofpart_parser_init(voi
return 0;
}

View File

@ -26,7 +26,7 @@ Cc: Robert Marko <robert.marko@sartura.hr>
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -2343,6 +2343,15 @@ config SGI_MFD_IOC3
@@ -2367,6 +2367,15 @@ config SGI_MFD_IOC3
If you have an SGI Origin, Octane, or a PCI IOC3 card,
then say Y. Otherwise say N.

View File

@ -10,7 +10,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
--- a/drivers/spi/spi-mem.c
+++ b/drivers/spi/spi-mem.c
@@ -930,7 +930,9 @@ static int spi_mem_probe(struct spi_devi
@@ -950,7 +950,9 @@ static int spi_mem_probe(struct spi_devi
{
struct spi_mem_driver *memdrv = to_spi_mem_drv(spi->dev.driver);
struct spi_controller *ctlr = spi->controller;
@ -20,7 +20,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
mem = devm_kzalloc(&spi->dev, sizeof(*mem), GFP_KERNEL);
if (!mem)
@@ -938,10 +940,15 @@ static int spi_mem_probe(struct spi_devi
@@ -958,10 +960,15 @@ static int spi_mem_probe(struct spi_devi
mem->spi = spi;

View File

@ -21,7 +21,7 @@ Link: https://patch.msgid.link/20250326-ipq5018-pcie-v7-4-e1828fef06c9@outlook.c
--- a/drivers/pci/controller/dwc/pcie-qcom.c
+++ b/drivers/pci/controller/dwc/pcie-qcom.c
@@ -1829,6 +1829,7 @@ static const struct of_device_id qcom_pc
@@ -1827,6 +1827,7 @@ static const struct of_device_id qcom_pc
{ .compatible = "qcom,pcie-apq8064", .data = &cfg_2_1_0 },
{ .compatible = "qcom,pcie-apq8084", .data = &cfg_1_0_0 },
{ .compatible = "qcom,pcie-ipq4019", .data = &cfg_2_4_0 },

View File

@ -22,7 +22,7 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
--- a/drivers/clk/qcom/gcc-ipq5018.c
+++ b/drivers/clk/qcom/gcc-ipq5018.c
@@ -3660,7 +3660,7 @@ static const struct qcom_reset_map gcc_i
@@ -3661,7 +3661,7 @@ static const struct qcom_reset_map gcc_i
[GCC_WCSS_AXI_S_ARES] = { 0x59008, 6 },
[GCC_WCSS_Q6_BCR] = { 0x18004, 0 },
[GCC_WCSSAON_RESET] = { 0x59010, 0},

View File

@ -1,19 +0,0 @@
From: George Moussalem <george.moussalem@outlook.com>
Date: Tue, 21 Oct 2025 15:15:23 +0400
Subject: [PATCH] clk: qcom: gcc-ipq5018: flag sleep clock as critical
The sleep clock never be disabled. To avoid the kernel trying to disable
it and keep it always on, flag it as critical.
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
---
--- a/drivers/clk/qcom/gcc-ipq5018.c
+++ b/drivers/clk/qcom/gcc-ipq5018.c
@@ -1340,6 +1340,7 @@ static struct clk_branch gcc_sleep_clk_s
.name = "gcc_sleep_clk_src",
.parent_data = gcc_sleep_clk_data,
.num_parents = ARRAY_SIZE(gcc_sleep_clk_data),
+ .flags = CLK_IS_CRITICAL,
.ops = &clk_branch2_ops,
},
},

View File

@ -31,7 +31,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
ifdef CONFIG_MDIO_DEVICE
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -1783,243 +1783,6 @@ bool phy_driver_is_genphy_10g(struct phy
@@ -1781,243 +1781,6 @@ bool phy_driver_is_genphy_10g(struct phy
EXPORT_SYMBOL_GPL(phy_driver_is_genphy_10g);
/**

View File

@ -208,7 +208,7 @@ Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
-TIMER_OF_DECLARE(systick, "ralink,cevt-systick", ralink_systick_init);
--- a/drivers/clocksource/Kconfig
+++ b/drivers/clocksource/Kconfig
@@ -754,4 +754,13 @@ config EP93XX_TIMER
@@ -755,4 +755,13 @@ config EP93XX_TIMER
Enables support for the Cirrus Logic timer block
EP93XX.

View File

@ -96,7 +96,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
}
--- a/drivers/clocksource/Kconfig
+++ b/drivers/clocksource/Kconfig
@@ -753,10 +753,15 @@ config EP93XX_TIMER
@@ -754,10 +754,15 @@ config EP93XX_TIMER
help
Enables support for the Cirrus Logic timer block
EP93XX.

View File

@ -214,7 +214,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
/* Mark the buffer as done if the EOF marker is set. */
if (data[1] & UVC_STREAM_EOF && buf->bytesused != 0) {
uvc_dbg(stream->dev, FRAME, "Frame complete (EOF found)\n");
@@ -1937,6 +2082,8 @@ static int uvc_init_video_isoc(struct uv
@@ -1938,6 +2083,8 @@ static int uvc_init_video_isoc(struct uv
if (npackets == 0)
return -ENOMEM;

View File

@ -10,7 +10,7 @@ Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
--- a/drivers/net/phy/sfp.c
+++ b/drivers/net/phy/sfp.c
@@ -724,10 +724,64 @@ static int sfp_i2c_write(struct sfp *sfp
@@ -728,10 +728,64 @@ static int sfp_i2c_write(struct sfp *sfp
return ret == ARRAY_SIZE(msgs) ? len : 0;
}
@ -77,7 +77,7 @@ Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
sfp->i2c = i2c;
sfp->read = sfp_i2c_read;
@@ -759,6 +813,29 @@ static int sfp_i2c_mdiobus_create(struct
@@ -763,6 +817,29 @@ static int sfp_i2c_mdiobus_create(struct
return 0;
}
@ -107,7 +107,7 @@ Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
static void sfp_i2c_mdiobus_destroy(struct sfp *sfp)
{
mdiobus_unregister(sfp->i2c_mii);
@@ -1933,9 +2010,15 @@ static void sfp_sm_fault(struct sfp *sfp
@@ -1937,9 +2014,15 @@ static void sfp_sm_fault(struct sfp *sfp
static int sfp_sm_add_mdio_bus(struct sfp *sfp)
{

View File

@ -32,7 +32,7 @@ Signed-off-by: Sander Vanheule <sander@svanheule.net>
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -1195,6 +1195,15 @@ config MFD_RDC321X
@@ -1219,6 +1219,15 @@ config MFD_RDC321X
southbridge which provides access to GPIOs and Watchdog using the
southbridge PCI device configuration space.

View File

@ -35,7 +35,7 @@ Link: https://lore.kernel.org/all/20250216221634.364158-2-dmitry.osipenko@collab
+----------------+-----------------+-----------------+-----------------------------+
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -1296,6 +1296,15 @@ config NVIDIA_CARMEL_CNP_ERRATUM
@@ -1297,6 +1297,15 @@ config NVIDIA_CARMEL_CNP_ERRATUM
If unsure, say Y.

View File

@ -55,9 +55,9 @@ Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
{
--- a/include/ufs/ufshcd.h
+++ b/include/ufs/ufshcd.h
@@ -1368,6 +1368,8 @@ extern int ufshcd_system_thaw(struct dev
@@ -1364,6 +1364,8 @@ extern int ufshcd_system_freeze(struct d
extern int ufshcd_system_thaw(struct device *dev);
extern int ufshcd_system_restore(struct device *dev);
#endif
+extern int ufshcd_dme_reset(struct ufs_hba *hba);
+extern int ufshcd_dme_enable(struct ufs_hba *hba);

View File

@ -34,7 +34,7 @@ Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
--- a/drivers/ufs/host/Kconfig
+++ b/drivers/ufs/host/Kconfig
@@ -142,3 +142,15 @@ config SCSI_UFS_SPRD
@@ -143,3 +143,15 @@ config SCSI_UFS_SPRD
Select this if you have UFS controller on Unisoc chipset.
If unsure, say N.

View File

@ -18,7 +18,7 @@ Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
--- a/drivers/spi/spi-mem.c
+++ b/drivers/spi/spi-mem.c
@@ -384,13 +384,19 @@ int spi_mem_exec_op(struct spi_mem *mem,
@@ -395,13 +395,19 @@ int spi_mem_exec_op(struct spi_mem *mem,
if (!spi_mem_internal_supports_op(mem, op))
return -EOPNOTSUPP;

View File

@ -15,7 +15,7 @@ Signed-off-by: Xingyu Wu <xingyu.wu@starfivetech.com>
--- a/drivers/clocksource/Kconfig
+++ b/drivers/clocksource/Kconfig
@@ -652,6 +652,17 @@ config RISCV_TIMER
@@ -653,6 +653,17 @@ config RISCV_TIMER
is accessed via both the SBI and the rdcycle instruction. This is
required for all RISC-V systems.

View File

@ -21,9 +21,9 @@ Signed-off-by: William Qiu <william.qiu@starfivetech.com>
clk_disable_unprepare(data->clk);
clk_disable_unprepare(data->pclk);
@@ -727,6 +729,8 @@ static int dw8250_runtime_resume(struct
clk_prepare_enable(data->clk);
@@ -734,6 +736,8 @@ static int dw8250_runtime_resume(struct
return ret;
}
+ reset_control_deassert(data->rst);
+

View File

@ -15,7 +15,7 @@ Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
--- a/drivers/tty/serial/8250/8250_dw.c
+++ b/drivers/tty/serial/8250/8250_dw.c
@@ -770,6 +770,7 @@ static const struct of_device_id dw8250_
@@ -777,6 +777,7 @@ static const struct of_device_id dw8250_
{ .compatible = "marvell,armada-38x-uart", .data = &dw8250_armada_38x_data },
{ .compatible = "renesas,rzn1-uart", .data = &dw8250_renesas_rzn1_data },
{ .compatible = "sophgo,sg2044-uart", .data = &dw8250_skip_set_rate_data },