kernel: bump 5.15 to 5.15.186

Changelog: https://cdn.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.15.186

Manually rebased patch:
  realtek/patches-5.15/800-net-mdio-support-hardware-assisted-indirect-access.patch[1-2]

All other patches are automatically refreshed.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.186&id=694456462ed63a06adbb0b7f2396a2eb5cc153c0
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.186&id=014ad9210373d2104f6ef10e6bb999a7a0a4c50e

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19250
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
Shiji Yang 2025-06-27 23:12:56 +08:00 committed by Hauke Mehrtens
parent ae5488a5cc
commit d4a2742822
33 changed files with 72 additions and 72 deletions

View file

@ -1,2 +1,2 @@
LINUX_VERSION-5.15 = .185
LINUX_KERNEL_HASH-5.15.185 = 3d03eb798910f32929f7fda5a56e4bb1a121f10bde320d6f3063639c009313dc
LINUX_VERSION-5.15 = .186
LINUX_KERNEL_HASH-5.15.186 = 9c4efdd7ee550d524c017b5dae27725374526311e983661850cd880af671cb2a

View file

@ -751,7 +751,7 @@ SVN-Revision: 35130
EXPORT_SYMBOL(xfrm_parse_spi);
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -4236,14 +4236,16 @@ static bool tcp_parse_aligned_timestamp(
@@ -4243,14 +4243,16 @@ static bool tcp_parse_aligned_timestamp(
{
const __be32 *ptr = (const __be32 *)(th + 1);

View file

@ -244,7 +244,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
static int bcm2708_fb_register(struct bcm2708_fb *fb)
--- a/drivers/video/fbdev/core/fbmem.c
+++ b/drivers/video/fbdev/core/fbmem.c
@@ -1097,6 +1097,30 @@ fb_blank(struct fb_info *info, int blank
@@ -1099,6 +1099,30 @@ fb_blank(struct fb_info *info, int blank
}
EXPORT_SYMBOL(fb_blank);
@ -275,7 +275,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
unsigned long arg)
{
@@ -1105,6 +1129,7 @@ static long do_fb_ioctl(struct fb_info *
@@ -1107,6 +1131,7 @@ static long do_fb_ioctl(struct fb_info *
struct fb_fix_screeninfo fix;
struct fb_cmap cmap_from;
struct fb_cmap_user cmap;
@ -283,7 +283,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
void __user *argp = (void __user *)arg;
long ret = 0;
@@ -1184,6 +1209,15 @@ static long do_fb_ioctl(struct fb_info *
@@ -1186,6 +1211,15 @@ static long do_fb_ioctl(struct fb_info *
unlock_fb_info(info);
console_unlock();
break;
@ -299,7 +299,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
default:
lock_fb_info(info);
fb = info->fbops;
@@ -1323,6 +1357,7 @@ static long fb_compat_ioctl(struct file
@@ -1325,6 +1359,7 @@ static long fb_compat_ioctl(struct file
case FBIOPAN_DISPLAY:
case FBIOGET_CON2FBMAP:
case FBIOPUT_CON2FBMAP:

View file

@ -19,7 +19,7 @@ Reduces overhead when using X
module_param_named(mousepoll, hid_mousepoll_interval, uint, 0644);
MODULE_PARM_DESC(mousepoll, "Polling interval of mice");
@@ -1112,7 +1112,9 @@ static int usbhid_start(struct hid_devic
@@ -1115,7 +1115,9 @@ static int usbhid_start(struct hid_devic
*/
switch (hid->collection->usage) {
case HID_GD_MOUSE:

View file

@ -20,7 +20,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
--- a/drivers/media/i2c/tc358743.c
+++ b/drivers/media/i2c/tc358743.c
@@ -1950,7 +1950,7 @@ static int tc358743_probe_of(struct tc35
@@ -1954,7 +1954,7 @@ static int tc358743_probe_of(struct tc35
state->pdata.ddc5v_delay = DDC5V_DELAY_100_MS;
state->pdata.enable_hdcp = false;
/* A FIFO level of 16 should be enough for 2-lane 720p60 at 594 MHz. */

View file

@ -24,7 +24,7 @@ Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
--- a/drivers/media/i2c/tc358743.c
+++ b/drivers/media/i2c/tc358743.c
@@ -1609,11 +1609,20 @@ static int tc358743_get_mbus_config(stru
@@ -1613,11 +1613,20 @@ static int tc358743_get_mbus_config(stru
struct v4l2_mbus_config *cfg)
{
struct tc358743_state *state = to_state(sd);
@ -47,7 +47,7 @@ Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
switch (state->csi_lanes_in_use) {
case 1:
@@ -2056,6 +2065,7 @@ static int tc358743_probe(struct i2c_cli
@@ -2060,6 +2069,7 @@ static int tc358743_probe(struct i2c_cli
if (pdata) {
state->pdata = *pdata;
state->bus.flags = V4L2_MBUS_CSI2_CONTINUOUS_CLOCK;

View file

@ -13,7 +13,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
--- a/drivers/media/i2c/tc358743.c
+++ b/drivers/media/i2c/tc358743.c
@@ -1979,6 +1979,7 @@ static int tc358743_probe_of(struct tc35
@@ -1983,6 +1983,7 @@ static int tc358743_probe_of(struct tc35
/*
* The CSI bps per lane must be between 62.5 Mbps and 1 Gbps.
* The default is 594 Mbps for 4-lane 1080p60 or 2-lane 720p60.
@ -21,7 +21,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
*/
bps_pr_lane = 2 * endpoint.link_frequencies[0];
if (bps_pr_lane < 62500000U || bps_pr_lane > 1000000000U) {
@@ -1992,23 +1993,41 @@ static int tc358743_probe_of(struct tc35
@@ -1996,23 +1997,41 @@ static int tc358743_probe_of(struct tc35
state->pdata.refclk_hz * state->pdata.pll_prd;
/*

View file

@ -78,7 +78,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
static void i2c_wr16(struct v4l2_subdev *sd, u16 reg, u16 val)
{
i2c_wrreg(sd, reg, val, 2);
@@ -2066,6 +2083,7 @@ static int tc358743_probe(struct i2c_cli
@@ -2070,6 +2087,7 @@ static int tc358743_probe(struct i2c_cli
struct tc358743_platform_data *pdata = client->dev.platform_data;
struct v4l2_subdev *sd;
u16 irq_mask = MASK_HDMI_MSK | MASK_CSI_MSK;
@ -86,7 +86,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
int err;
if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_BYTE_DATA))
@@ -2098,7 +2116,8 @@ static int tc358743_probe(struct i2c_cli
@@ -2102,7 +2120,8 @@ static int tc358743_probe(struct i2c_cli
sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE | V4L2_SUBDEV_FL_HAS_EVENTS;
/* i2c access */

View file

@ -26,7 +26,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
--- a/drivers/media/i2c/tc358743.c
+++ b/drivers/media/i2c/tc358743.c
@@ -1691,12 +1691,23 @@ static int tc358743_enum_mbus_code(struc
@@ -1695,12 +1695,23 @@ static int tc358743_enum_mbus_code(struc
return 0;
}
@ -51,7 +51,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
if (format->pad != 0)
return -EINVAL;
@@ -1706,23 +1717,7 @@ static int tc358743_get_fmt(struct v4l2_
@@ -1710,23 +1721,7 @@ static int tc358743_get_fmt(struct v4l2_
format->format.height = state->timings.bt.height;
format->format.field = V4L2_FIELD_NONE;
@ -76,7 +76,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
return 0;
}
@@ -1737,18 +1732,11 @@ static int tc358743_set_fmt(struct v4l2_
@@ -1741,18 +1736,11 @@ static int tc358743_set_fmt(struct v4l2_
int ret = tc358743_get_fmt(sd, sd_state, format);
format->format.code = code;

View file

@ -13,7 +13,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
--- a/drivers/hid/usbhid/hid-core.c
+++ b/drivers/hid/usbhid/hid-core.c
@@ -1126,6 +1126,7 @@ static int usbhid_start(struct hid_devic
@@ -1129,6 +1129,7 @@ static int usbhid_start(struct hid_devic
interval = hid_kbpoll_interval;
break;
}

View file

@ -295,7 +295,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
case V4L2_PIX_FMT_YUV422M: descr = "Planar YUV 4:2:2 (N-C)"; break;
--- a/include/uapi/linux/videodev2.h
+++ b/include/uapi/linux/videodev2.h
@@ -742,6 +742,10 @@ struct v4l2_pix_format {
@@ -750,6 +750,10 @@ struct v4l2_pix_format {
#define V4L2_PIX_FMT_SUNXI_TILED_NV12 v4l2_fourcc('S', 'T', '1', '2') /* Sunxi Tiled NV12 Format */
#define V4L2_PIX_FMT_CNF4 v4l2_fourcc('C', 'N', 'F', '4') /* Intel 4-bit packed depth confidence information */
#define V4L2_PIX_FMT_HI240 v4l2_fourcc('H', 'I', '2', '4') /* BTTV 8-bit dithered RGB */

View file

@ -75,7 +75,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
/* Compressed formats */
--- a/include/uapi/linux/videodev2.h
+++ b/include/uapi/linux/videodev2.h
@@ -775,6 +775,7 @@ struct v4l2_pix_format {
@@ -783,6 +783,7 @@ struct v4l2_pix_format {
#define V4L2_META_FMT_UVC v4l2_fourcc('U', 'V', 'C', 'H') /* UVC Payload Header metadata */
#define V4L2_META_FMT_D4XX v4l2_fourcc('D', '4', 'X', 'X') /* D4XX Payload Header metadata */
#define V4L2_META_FMT_VIVID v4l2_fourcc('V', 'I', 'V', 'D') /* Vivid Metadata */

View file

@ -84,7 +84,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
/* Compressed formats */
--- a/include/uapi/linux/videodev2.h
+++ b/include/uapi/linux/videodev2.h
@@ -776,6 +776,7 @@ struct v4l2_pix_format {
@@ -784,6 +784,7 @@ struct v4l2_pix_format {
#define V4L2_META_FMT_D4XX v4l2_fourcc('D', '4', 'X', 'X') /* D4XX Payload Header metadata */
#define V4L2_META_FMT_VIVID v4l2_fourcc('V', 'I', 'V', 'D') /* Vivid Metadata */
#define V4L2_META_FMT_SENSOR_DATA v4l2_fourcc('S', 'E', 'N', 'S') /* Sensor Ancillary metadata */

View file

@ -10,7 +10,7 @@ Signed-off-by: Jacko Dirks <jdirks.linuxdev@gmail.com>
--- a/drivers/media/i2c/tc358743.c
+++ b/drivers/media/i2c/tc358743.c
@@ -2006,6 +2006,7 @@ static int tc358743_probe_of(struct tc35
@@ -2010,6 +2010,7 @@ static int tc358743_probe_of(struct tc35
switch (bps_pr_lane) {
default:
dev_warn(dev, "untested bps per lane: %u bps\n", bps_pr_lane);

View file

@ -85,7 +85,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
case V4L2_PIX_FMT_Z16: descr = "16-bit Depth"; break;
--- a/include/uapi/linux/videodev2.h
+++ b/include/uapi/linux/videodev2.h
@@ -574,6 +574,7 @@ struct v4l2_pix_format {
@@ -582,6 +582,7 @@ struct v4l2_pix_format {
/* Grey bit-packed formats */
#define V4L2_PIX_FMT_Y10BPACK v4l2_fourcc('Y', '1', '0', 'B') /* 10 Greyscale bit-packed */
#define V4L2_PIX_FMT_Y10P v4l2_fourcc('Y', '1', '0', 'P') /* 10 Greyscale, MIPI RAW10 packed */

View file

@ -94,7 +94,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
case V4L2_PIX_FMT_Z16: descr = "16-bit Depth"; break;
--- a/include/uapi/linux/videodev2.h
+++ b/include/uapi/linux/videodev2.h
@@ -575,6 +575,7 @@ struct v4l2_pix_format {
@@ -583,6 +583,7 @@ struct v4l2_pix_format {
#define V4L2_PIX_FMT_Y10BPACK v4l2_fourcc('Y', '1', '0', 'B') /* 10 Greyscale bit-packed */
#define V4L2_PIX_FMT_Y10P v4l2_fourcc('Y', '1', '0', 'P') /* 10 Greyscale, MIPI RAW10 packed */
#define V4L2_PIX_FMT_Y12P v4l2_fourcc('Y', '1', '2', 'P') /* 12 Greyscale, MIPI RAW12 packed */

View file

@ -15,7 +15,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
--- a/drivers/media/i2c/tc358743.c
+++ b/drivers/media/i2c/tc358743.c
@@ -1731,8 +1731,10 @@ static int tc358743_set_fmt(struct v4l2_
@@ -1735,8 +1735,10 @@ static int tc358743_set_fmt(struct v4l2_
u32 code = format->format.code; /* is overwritten by get_fmt */
int ret = tc358743_get_fmt(sd, sd_state, format);

View file

@ -10,7 +10,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
--- a/drivers/clk/bcm/clk-raspberrypi.c
+++ b/drivers/clk/bcm/clk-raspberrypi.c
@@ -276,6 +276,7 @@ static int raspberrypi_discover_clocks(s
@@ -278,6 +278,7 @@ static int raspberrypi_discover_clocks(s
case RPI_FIRMWARE_CORE_CLK_ID:
case RPI_FIRMWARE_M2MC_CLK_ID:
case RPI_FIRMWARE_V3D_CLK_ID:

View file

@ -13,7 +13,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
--- a/drivers/media/i2c/tc358743.c
+++ b/drivers/media/i2c/tc358743.c
@@ -2008,7 +2008,7 @@ static int tc358743_probe_of(struct tc35
@@ -2012,7 +2012,7 @@ static int tc358743_probe_of(struct tc35
switch (bps_pr_lane) {
default:
dev_warn(dev, "untested bps per lane: %u bps\n", bps_pr_lane);

View file

@ -42,7 +42,7 @@ Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
============
--- a/include/uapi/linux/videodev2.h
+++ b/include/uapi/linux/videodev2.h
@@ -1883,6 +1883,7 @@ struct v4l2_querymenu {
@@ -1891,6 +1891,7 @@ struct v4l2_querymenu {
#define V4L2_CTRL_FLAG_HAS_PAYLOAD 0x0100
#define V4L2_CTRL_FLAG_EXECUTE_ON_WRITE 0x0200
#define V4L2_CTRL_FLAG_MODIFY_LAYOUT 0x0400

View file

@ -26,7 +26,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
};
#define RPI_FIRMWARE_STATE_ENABLE_BIT BIT(0)
@@ -278,6 +280,7 @@ static int raspberrypi_discover_clocks(s
@@ -280,6 +282,7 @@ static int raspberrypi_discover_clocks(s
case RPI_FIRMWARE_V3D_CLK_ID:
case RPI_FIRMWARE_HEVC_CLK_ID:
case RPI_FIRMWARE_PIXEL_BVB_CLK_ID:

View file

@ -16,7 +16,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
--- a/drivers/clk/bcm/clk-raspberrypi.c
+++ b/drivers/clk/bcm/clk-raspberrypi.c
@@ -281,6 +281,7 @@ static int raspberrypi_discover_clocks(s
@@ -283,6 +283,7 @@ static int raspberrypi_discover_clocks(s
case RPI_FIRMWARE_HEVC_CLK_ID:
case RPI_FIRMWARE_PIXEL_BVB_CLK_ID:
case RPI_FIRMWARE_VEC_CLK_ID:

View file

@ -93,7 +93,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
init.name = devm_kasprintf(rpi->dev, GFP_KERNEL,
"fw-clk-%s",
@@ -230,9 +269,9 @@ static struct clk_hw *raspberrypi_clk_re
@@ -232,9 +271,9 @@ static struct clk_hw *raspberrypi_clk_re
clk_hw_set_rate_range(&data->hw, min_rate, max_rate);
@ -105,7 +105,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
if (ret) {
dev_err(rpi->dev, "Failed to initialize clkdev\n");
return ERR_PTR(ret);
@@ -271,30 +310,27 @@ static int raspberrypi_discover_clocks(s
@@ -273,30 +312,27 @@ static int raspberrypi_discover_clocks(s
return ret;
while (clks->id) {

View file

@ -47,7 +47,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
},
[RPI_FIRMWARE_V3D_CLK_ID] = {
.export = true,
@@ -278,6 +291,19 @@ static struct clk_hw *raspberrypi_clk_re
@@ -280,6 +293,19 @@ static struct clk_hw *raspberrypi_clk_re
}
}

View file

@ -11,7 +11,7 @@ This reverts commit 2388f826cdc9af2651991adc0feb79de9bdf2232.
--- a/drivers/video/fbdev/core/fbmem.c
+++ b/drivers/video/fbdev/core/fbmem.c
@@ -1635,14 +1635,7 @@ static void do_remove_conflicting_frameb
@@ -1637,14 +1637,7 @@ static void do_remove_conflicting_frameb
* If it's not a platform device, at least print a warning. A
* fix would add code to remove the device from the system.
*/

View file

@ -20,7 +20,7 @@ This reverts commit c894ac44786cfed383a6c6b20c1bfb12eb96018a.
#include <linux/seq_file.h>
#include <linux/console.h>
#include <linux/kmod.h>
@@ -1612,36 +1611,18 @@ static void do_remove_conflicting_frameb
@@ -1614,36 +1613,18 @@ static void do_remove_conflicting_frameb
/* check all firmware fbs and kick off if the base addr overlaps */
for_each_registered_fb(i) {
struct apertures_struct *gen_aper;
@ -58,7 +58,7 @@ This reverts commit c894ac44786cfed383a6c6b20c1bfb12eb96018a.
}
}
}
@@ -1979,13 +1960,9 @@ EXPORT_SYMBOL(register_framebuffer);
@@ -1981,13 +1962,9 @@ EXPORT_SYMBOL(register_framebuffer);
void
unregister_framebuffer(struct fb_info *fb_info)
{

View file

@ -181,7 +181,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
@@ -580,6 +580,22 @@ struct mm_struct {
@@ -583,6 +583,22 @@ struct mm_struct {
#ifdef CONFIG_IOMMU_SUPPORT
u32 pasid;
#endif
@ -204,7 +204,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
} __randomize_layout;
/*
@@ -606,6 +622,66 @@ static inline cpumask_t *mm_cpumask(stru
@@ -609,6 +625,66 @@ static inline cpumask_t *mm_cpumask(stru
return (struct cpumask *)&mm->cpu_bitmap;
}

View file

@ -396,7 +396,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
}
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -389,6 +389,9 @@ static struct pernet_operations ip_rt_pr
@@ -393,6 +393,9 @@ static struct pernet_operations ip_rt_pr
static int __init ip_rt_proc_init(void)
{

View file

@ -45,7 +45,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (ret < 0)
goto out;
@@ -567,6 +573,17 @@ full_scan:
@@ -569,6 +575,17 @@ full_scan:
return err;
}

View file

@ -19,7 +19,7 @@ Link: https://lore.kernel.org/r/20220706225321.26215-3-ansuelsmth@gmail.com
--- a/arch/arm/boot/dts/qcom-apq8064.dtsi
+++ b/arch/arm/boot/dts/qcom-apq8064.dtsi
@@ -862,6 +862,8 @@
@@ -857,6 +857,8 @@
rpmcc: clock-controller {
compatible = "qcom,rpmcc-apq8064", "qcom,rpmcc";
#clock-cells = <1>;

View file

@ -22,7 +22,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
#include <linux/platform_data/x86/apple.h>
#include <linux/pm_runtime.h>
#include <linux/suspend.h>
@@ -6016,3 +6017,34 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
@@ -6039,3 +6040,34 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0xa73f, dpc_log_size);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0xa76e, dpc_log_size);
#endif

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
@@ -3220,6 +3220,18 @@ static const struct usb_device_id uvc_id
@@ -3231,6 +3231,18 @@ static const struct usb_device_id uvc_id
.bInterfaceSubClass = 1,
.bInterfaceProtocol = 0,
.driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) },

View file

@ -65,19 +65,19 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* __mdiobus_read - Unlocked version of the mdiobus_read function
* @bus: the mii_bus struct
* @addr: the phy address
@@ -757,7 +783,10 @@ int __mdiobus_read(struct mii_bus *bus,
@@ -761,7 +787,10 @@ int __mdiobus_read(struct mii_bus *bus,
return -ENXIO;
lockdep_assert_held_once(&bus->mdio_lock);
if (bus->read)
- retval = bus->read(bus, addr, regnum);
+ if (bus->read_paged)
+ retval = bus->read_paged(bus, addr, bus->selected_page[addr], regnum);
+ else
+ retval = bus->read(bus, addr, regnum);
else
retval = -EOPNOTSUPP;
- retval = bus->read(bus, addr, regnum);
+ if (bus->read_paged)
+ retval = bus->read_paged(bus, addr, bus->selected_page[addr], regnum);
+ else
+ retval = bus->read(bus, addr, regnum);
trace_mdio_access(bus, 1, addr, regnum, retval, retval);
mdiobus_stats_acct(&bus->stats[addr], true, retval);
@@ -767,6 +796,40 @@ int __mdiobus_read(struct mii_bus *bus,
@@ -773,6 +802,40 @@ int __mdiobus_read(struct mii_bus *bus,
EXPORT_SYMBOL(__mdiobus_read);
/**
@ -118,19 +118,19 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* __mdiobus_write - Unlocked version of the mdiobus_write function
* @bus: the mii_bus struct
* @addr: the phy address
@@ -783,7 +846,10 @@ int __mdiobus_write(struct mii_bus *bus,
@@ -793,7 +856,10 @@ int __mdiobus_write(struct mii_bus *bus,
return -ENXIO;
lockdep_assert_held_once(&bus->mdio_lock);
if (bus->write)
- err = bus->write(bus, addr, regnum, val);
+ if (bus->write_paged)
+ err = bus->write_paged(bus, addr, bus->selected_page[addr], regnum, val);
+ else
+ err = bus->write(bus, addr, regnum, val);
else
err = -EOPNOTSUPP;
- err = bus->write(bus, addr, regnum, val);
+ if (bus->write_paged)
+ err = bus->write_paged(bus, addr, bus->selected_page[addr], regnum, val);
+ else
+ err = bus->write(bus, addr, regnum, val);
trace_mdio_access(bus, 0, addr, regnum, val, err);
mdiobus_stats_acct(&bus->stats[addr], false, err);
@@ -793,6 +859,39 @@ int __mdiobus_write(struct mii_bus *bus,
@@ -805,6 +871,39 @@ int __mdiobus_write(struct mii_bus *bus,
EXPORT_SYMBOL(__mdiobus_write);
/**
@ -170,7 +170,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* __mdiobus_modify_changed - Unlocked version of the mdiobus_modify function
* @bus: the mii_bus struct
* @addr: the phy address
@@ -825,6 +924,43 @@ int __mdiobus_modify_changed(struct mii_
@@ -837,6 +936,43 @@ int __mdiobus_modify_changed(struct mii_
EXPORT_SYMBOL_GPL(__mdiobus_modify_changed);
/**
@ -214,7 +214,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mdiobus_read_nested - Nested version of the mdiobus_read function
* @bus: the mii_bus struct
* @addr: the phy address
@@ -850,6 +986,79 @@ int mdiobus_read_nested(struct mii_bus *
@@ -862,6 +998,79 @@ int mdiobus_read_nested(struct mii_bus *
EXPORT_SYMBOL(mdiobus_read_nested);
/**
@ -294,7 +294,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mdiobus_read - Convenience function for reading a given MII mgmt register
* @bus: the mii_bus struct
* @addr: the phy address
@@ -872,6 +1081,29 @@ int mdiobus_read(struct mii_bus *bus, in
@@ -884,6 +1093,29 @@ int mdiobus_read(struct mii_bus *bus, in
EXPORT_SYMBOL(mdiobus_read);
/**
@ -324,7 +324,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mdiobus_write_nested - Nested version of the mdiobus_write function
* @bus: the mii_bus struct
* @addr: the phy address
@@ -898,6 +1130,33 @@ int mdiobus_write_nested(struct mii_bus
@@ -910,6 +1142,33 @@ int mdiobus_write_nested(struct mii_bus
EXPORT_SYMBOL(mdiobus_write_nested);
/**
@ -358,7 +358,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mdiobus_write - Convenience function for writing a given MII mgmt register
* @bus: the mii_bus struct
* @addr: the phy address
@@ -921,6 +1180,30 @@ int mdiobus_write(struct mii_bus *bus, i
@@ -933,6 +1192,30 @@ int mdiobus_write(struct mii_bus *bus, i
EXPORT_SYMBOL(mdiobus_write);
/**
@ -389,7 +389,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mdiobus_modify - Convenience function for modifying a given mdio device
* register
* @bus: the mii_bus struct
@@ -942,6 +1225,51 @@ int mdiobus_modify(struct mii_bus *bus,
@@ -954,6 +1237,51 @@ int mdiobus_modify(struct mii_bus *bus,
EXPORT_SYMBOL_GPL(mdiobus_modify);
/**