* [PATCH net-next] net: phy: marvell: add LED support for 88E1116R PHY
@ 2026-10-09 6:08 Konstantin Meshkov
2026-10-09 12:15 ` Andrew Lunn
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Konstantin Meshkov @ 2026-10-09 6:08 UTC (permalink / raw)
To: netdev
Cc: Andrew Lunn, Heiner Kallweit, Russell King,
Aleksander Jan Bajkowski, Christian Marangi, linux-kernel
The Marvell 88E1116R PHY (used on the D-Link DNS-325) exposes its LEDs
through the same page 3 register 0x10 LED control layout as the 88E1318S.
Wire up the existing 88E1318S LED handlers in the 88E1116R driver entry
so the PHY LEDs can be described in the device tree and driven through
the LED trigger API with hardware offload.
The LED polarity is configured through the led_polarity_set() callback
shared with the 88E1318S family.
Signed-off-by: Konstantin Meshkov <skyline@mail.ru>
---
This patch depends on:
[PATCH net-next v2] net: phy: marvell: add support for PHY LEDs polarity modes
https://patchwork.kernel.org/project/netdevbpf/patch/20260923204614.471409-1-olek2@wp.pl/
drivers/net/phy/marvell.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c
index d57fcab..3b6c504 100644
--- a/drivers/net/phy/marvell.c
+++ b/drivers/net/phy/marvell.c
@@ -3949,6 +3949,12 @@ static struct phy_driver marvell_drivers[] = {
.get_stats = marvell_get_stats,
.get_tunable = m88e1011_get_tunable,
.set_tunable = m88e1011_set_tunable,
+ .led_polarity_set = m88e1318_led_polarity_set,
+ .led_brightness_set = m88e1318_led_brightness_set,
+ .led_blink_set = m88e1318_led_blink_set,
+ .led_hw_is_supported = m88e1318_led_hw_is_supported,
+ .led_hw_control_set = m88e1318_led_hw_control_set,
+ .led_hw_control_get = m88e1318_led_hw_control_get,
},
{
.phy_id = MARVELL_PHY_ID_88E1510,
--
2.39.5
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH net-next] net: phy: marvell: add LED support for 88E1116R PHY
2026-10-09 6:08 [PATCH net-next] net: phy: marvell: add LED support for 88E1116R PHY Konstantin Meshkov
@ 2026-10-09 12:15 ` Andrew Lunn
2026-10-09 20:40 ` Aleksander Jan Bajkowski
2026-10-09 20:51 ` kernel test robot
2026-10-09 20:51 ` kernel test robot
2 siblings, 1 reply; 5+ messages in thread
From: Andrew Lunn @ 2026-10-09 12:15 UTC (permalink / raw)
To: Konstantin Meshkov
Cc: netdev, Heiner Kallweit, Russell King, Aleksander Jan Bajkowski,
Christian Marangi, linux-kernel
On Fri, Oct 09, 2026 at 09:08:29AM +0300, Konstantin Meshkov wrote:
> The Marvell 88E1116R PHY (used on the D-Link DNS-325) exposes its LEDs
> through the same page 3 register 0x10 LED control layout as the 88E1318S.
> Wire up the existing 88E1318S LED handlers in the 88E1116R driver entry
> so the PHY LEDs can be described in the device tree and driven through
> the LED trigger API with hardware offload.
>
> The LED polarity is configured through the led_polarity_set() callback
> shared with the 88E1318S family.
>
> Signed-off-by: Konstantin Meshkov <skyline@mail.ru>
> ---
> This patch depends on:
> [PATCH net-next v2] net: phy: marvell: add support for PHY LEDs polarity modes
I've not be tracking. Is this merged already? If not, please resubmit
once it has been.
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Andrew
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH net-next] net: phy: marvell: add LED support for 88E1116R PHY
2026-10-09 12:15 ` Andrew Lunn
@ 2026-10-09 20:40 ` Aleksander Jan Bajkowski
0 siblings, 0 replies; 5+ messages in thread
From: Aleksander Jan Bajkowski @ 2026-10-09 20:40 UTC (permalink / raw)
To: Andrew Lunn, Konstantin Meshkov
Cc: netdev, Heiner Kallweit, Russell King, Christian Marangi, linux-kernel
Hi Andrew,
On 09/10/2026 14:15, Andrew Lunn wrote:
> On Fri, Oct 09, 2026 at 09:08:29AM +0300, Konstantin Meshkov wrote:
>> The Marvell 88E1116R PHY (used on the D-Link DNS-325) exposes its LEDs
>> through the same page 3 register 0x10 LED control layout as the 88E1318S.
>> Wire up the existing 88E1318S LED handlers in the 88E1116R driver entry
>> so the PHY LEDs can be described in the device tree and driven through
>> the LED trigger API with hardware offload.
>>
>> The LED polarity is configured through the led_polarity_set() callback
>> shared with the 88E1318S family.
>>
>> Signed-off-by: Konstantin Meshkov <skyline@mail.ru>
>> ---
>> This patch depends on:
>> [PATCH net-next v2] net: phy: marvell: add support for PHY LEDs polarity modes
> I've not be tracking. Is this merged already? If not, please resubmit
> once it has been.
I was expecting that Konstantin will send a patch that only adds support
for LED triggers. This patch should be simple and I expect it to be quickly
merged. Then I'm planning to include LED polarity settings for the 88e1116r
in the next iteration of my patch.
Best regards,
Aleksander
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH net-next] net: phy: marvell: add LED support for 88E1116R PHY
2026-10-09 6:08 [PATCH net-next] net: phy: marvell: add LED support for 88E1116R PHY Konstantin Meshkov
2026-10-09 12:15 ` Andrew Lunn
@ 2026-10-09 20:51 ` kernel test robot
2026-10-09 20:51 ` kernel test robot
2 siblings, 0 replies; 5+ messages in thread
From: kernel test robot @ 2026-10-09 20:51 UTC (permalink / raw)
To: Konstantin Meshkov, netdev
Cc: llvm, oe-kbuild-all, Andrew Lunn, Heiner Kallweit, Russell King,
Aleksander Jan Bajkowski, Christian Marangi, linux-kernel
Hi Konstantin,
kernel test robot noticed the following build errors:
[auto build test ERROR on net-next/main]
url: https://github.com/intel-lab-lkp/linux/commits/Konstantin-Meshkov/net-phy-marvell-add-LED-support-for-88E1116R-PHY/20261009-090829
base: net-next/main
patch link: https://lore.kernel.org/r/179152610952.2918676.6625057760354797023%40mail.ru
patch subject: [PATCH net-next] net: phy: marvell: add LED support for 88E1116R PHY
config: arm-defconfig (https://download.01.org/0day-ci/archive/20261010/202610100452.oJWOdesg-lkp@intel.com/config)
compiler: clang version 24.0.0git (https://github.com/llvm/llvm-project 242243a5814307de825db3428662d67b064e2cbc)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20261010/202610100452.oJWOdesg-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202610100452.oJWOdesg-lkp@intel.com/
All errors (new ones prefixed by >>):
>> drivers/net/phy/marvell.c:3916:23: error: use of undeclared identifier 'm88e1318_led_polarity_set'; did you mean 'm88e1318_led_blink_set'?
3916 | .led_polarity_set = m88e1318_led_polarity_set,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
| m88e1318_led_blink_set
drivers/net/phy/marvell.c:3293:12: note: 'm88e1318_led_blink_set' declared here
3293 | static int m88e1318_led_blink_set(struct phy_device *phydev, u8 index,
| ^
>> drivers/net/phy/marvell.c:3916:23: error: incompatible function pointer types initializing 'int (*)(struct phy_device *, int, unsigned long)' with an expression of type 'int (struct phy_device *, u8, unsigned long *, unsigned long *)' (aka 'int (struct phy_device *, unsigned char, unsigned long *, unsigned long *)') [-Wincompatible-function-pointer-types]
3916 | .led_polarity_set = m88e1318_led_polarity_set,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
2 errors generated.
vim +3916 drivers/net/phy/marvell.c
3666
3667 static struct phy_driver marvell_drivers[] = {
3668 {
3669 .phy_id = MARVELL_PHY_ID_88E1101,
3670 .phy_id_mask = MARVELL_PHY_ID_MASK,
3671 .name = "Marvell 88E1101",
3672 /* PHY_GBIT_FEATURES */
3673 .probe = marvell_probe,
3674 .config_init = marvell_config_init,
3675 .config_aneg = m88e1101_config_aneg,
3676 .config_intr = marvell_config_intr,
3677 .handle_interrupt = marvell_handle_interrupt,
3678 .resume = genphy_resume,
3679 .suspend = genphy_suspend,
3680 .read_page = marvell_read_page,
3681 .write_page = marvell_write_page,
3682 .get_sset_count = marvell_get_sset_count,
3683 .get_strings = marvell_get_strings,
3684 .get_stats = marvell_get_stats,
3685 },
3686 {
3687 .phy_id = MARVELL_PHY_ID_88E3082,
3688 .phy_id_mask = MARVELL_PHY_ID_MASK,
3689 .name = "Marvell 88E308X/88E609X Family",
3690 /* PHY_BASIC_FEATURES */
3691 .probe = marvell_probe,
3692 .config_init = marvell_config_init,
3693 .aneg_done = marvell_aneg_done,
3694 .read_status = marvell_read_status,
3695 .resume = genphy_resume,
3696 .suspend = genphy_suspend,
3697 .cable_test_start = m88e3082_vct_cable_test_start,
3698 .cable_test_get_status = m88e3082_vct_cable_test_get_status,
3699 },
3700 {
3701 .phy_id = MARVELL_PHY_ID_88E1112,
3702 .phy_id_mask = MARVELL_PHY_ID_MASK,
3703 .name = "Marvell 88E1112",
3704 /* PHY_GBIT_FEATURES */
3705 .probe = marvell_probe,
3706 .inband_caps = m88e1111_inband_caps,
3707 .config_inband = m88e1111_config_inband,
3708 .config_init = m88e1112_config_init,
3709 .config_aneg = marvell_config_aneg,
3710 .config_intr = marvell_config_intr,
3711 .handle_interrupt = marvell_handle_interrupt,
3712 .resume = genphy_resume,
3713 .suspend = genphy_suspend,
3714 .read_page = marvell_read_page,
3715 .write_page = marvell_write_page,
3716 .get_sset_count = marvell_get_sset_count,
3717 .get_strings = marvell_get_strings,
3718 .get_stats = marvell_get_stats,
3719 .get_tunable = m88e1011_get_tunable,
3720 .set_tunable = m88e1011_set_tunable,
3721 },
3722 {
3723 .phy_id = MARVELL_PHY_ID_88E1111,
3724 .phy_id_mask = MARVELL_PHY_ID_MASK,
3725 .name = "Marvell 88E1111",
3726 /* PHY_GBIT_FEATURES */
3727 .flags = PHY_POLL_CABLE_TEST,
3728 .probe = marvell_probe,
3729 .inband_caps = m88e1111_inband_caps,
3730 .config_inband = m88e1111_config_inband,
3731 .config_init = m88e1111gbe_config_init,
3732 .config_aneg = m88e1111_config_aneg,
3733 .read_status = marvell_read_status,
3734 .config_intr = marvell_config_intr,
3735 .handle_interrupt = marvell_handle_interrupt,
3736 .resume = genphy_resume,
3737 .suspend = genphy_suspend,
3738 .read_page = marvell_read_page,
3739 .write_page = marvell_write_page,
3740 .get_sset_count = marvell_get_sset_count,
3741 .get_strings = marvell_get_strings,
3742 .get_stats = marvell_get_stats,
3743 .get_tunable = m88e1111_get_tunable,
3744 .set_tunable = m88e1111_set_tunable,
3745 .cable_test_start = m88e1111_vct_cable_test_start,
3746 .cable_test_get_status = m88e1111_vct_cable_test_get_status,
3747 },
3748 {
3749 .phy_id = MARVELL_PHY_ID_88E1111_FINISAR,
3750 .phy_id_mask = MARVELL_PHY_ID_MASK,
3751 .name = "Marvell 88E1111 (Finisar)",
3752 /* PHY_GBIT_FEATURES */
3753 .probe = marvell_probe,
3754 .inband_caps = m88e1111_inband_caps,
3755 .config_inband = m88e1111_config_inband,
3756 .config_init = m88e1111gbe_config_init,
3757 .config_aneg = m88e1111_config_aneg,
3758 .read_status = marvell_read_status,
3759 .config_intr = marvell_config_intr,
3760 .handle_interrupt = marvell_handle_interrupt,
3761 .resume = genphy_resume,
3762 .suspend = genphy_suspend,
3763 .read_page = marvell_read_page,
3764 .write_page = marvell_write_page,
3765 .get_sset_count = marvell_get_sset_count,
3766 .get_strings = marvell_get_strings,
3767 .get_stats = marvell_get_stats,
3768 .get_tunable = m88e1111_get_tunable,
3769 .set_tunable = m88e1111_set_tunable,
3770 },
3771 {
3772 .phy_id = MARVELL_PHY_ID_88E1118,
3773 .phy_id_mask = MARVELL_PHY_ID_MASK,
3774 .name = "Marvell 88E1118",
3775 /* PHY_GBIT_FEATURES */
3776 .probe = marvell_probe,
3777 .config_init = m88e1118_config_init,
3778 .config_aneg = m88e1118_config_aneg,
3779 .config_intr = marvell_config_intr,
3780 .handle_interrupt = marvell_handle_interrupt,
3781 .resume = genphy_resume,
3782 .suspend = genphy_suspend,
3783 .read_page = marvell_read_page,
3784 .write_page = marvell_write_page,
3785 .get_sset_count = marvell_get_sset_count,
3786 .get_strings = marvell_get_strings,
3787 .get_stats = marvell_get_stats,
3788 },
3789 {
3790 .phy_id = MARVELL_PHY_ID_88E1121R,
3791 .phy_id_mask = MARVELL_PHY_ID_MASK,
3792 .name = "Marvell 88E1121R",
3793 .driver_data = DEF_MARVELL_HWMON_OPS(m88e1121_hwmon_ops),
3794 /* PHY_GBIT_FEATURES */
3795 .probe = marvell_probe,
3796 .config_init = marvell_1011gbe_config_init,
3797 .config_aneg = m88e1121_config_aneg,
3798 .read_status = marvell_read_status,
3799 .config_intr = marvell_config_intr,
3800 .handle_interrupt = marvell_handle_interrupt,
3801 .resume = genphy_resume,
3802 .suspend = genphy_suspend,
3803 .read_page = marvell_read_page,
3804 .write_page = marvell_write_page,
3805 .get_sset_count = marvell_get_sset_count,
3806 .get_strings = marvell_get_strings,
3807 .get_stats = marvell_get_stats,
3808 .get_tunable = m88e1011_get_tunable,
3809 .set_tunable = m88e1011_set_tunable,
3810 },
3811 {
3812 .phy_id = MARVELL_PHY_ID_88E1318S,
3813 .phy_id_mask = MARVELL_PHY_ID_MASK,
3814 .name = "Marvell 88E1318S",
3815 /* PHY_GBIT_FEATURES */
3816 .probe = marvell_probe,
3817 .config_init = m88e1318_config_init,
3818 .config_aneg = m88e1318_config_aneg,
3819 .read_status = marvell_read_status,
3820 .config_intr = marvell_config_intr,
3821 .handle_interrupt = marvell_handle_interrupt,
3822 .get_wol = m88e1318_get_wol,
3823 .set_wol = m88e1318_set_wol,
3824 .resume = genphy_resume,
3825 .suspend = genphy_suspend,
3826 .read_page = marvell_read_page,
3827 .write_page = marvell_write_page,
3828 .get_sset_count = marvell_get_sset_count,
3829 .get_strings = marvell_get_strings,
3830 .get_stats = marvell_get_stats,
3831 .led_brightness_set = m88e1318_led_brightness_set,
3832 .led_blink_set = m88e1318_led_blink_set,
3833 .led_hw_is_supported = m88e1318_led_hw_is_supported,
3834 .led_hw_control_set = m88e1318_led_hw_control_set,
3835 .led_hw_control_get = m88e1318_led_hw_control_get,
3836 },
3837 {
3838 .phy_id = MARVELL_PHY_ID_88E1145,
3839 .phy_id_mask = MARVELL_PHY_ID_MASK,
3840 .name = "Marvell 88E1145",
3841 /* PHY_GBIT_FEATURES */
3842 .flags = PHY_POLL_CABLE_TEST,
3843 .probe = marvell_probe,
3844 .config_init = m88e1145_config_init,
3845 .config_aneg = m88e1101_config_aneg,
3846 .config_intr = marvell_config_intr,
3847 .handle_interrupt = marvell_handle_interrupt,
3848 .resume = genphy_resume,
3849 .suspend = genphy_suspend,
3850 .read_page = marvell_read_page,
3851 .write_page = marvell_write_page,
3852 .get_sset_count = marvell_get_sset_count,
3853 .get_strings = marvell_get_strings,
3854 .get_stats = marvell_get_stats,
3855 .get_tunable = m88e1111_get_tunable,
3856 .set_tunable = m88e1111_set_tunable,
3857 .cable_test_start = m88e1111_vct_cable_test_start,
3858 .cable_test_get_status = m88e1111_vct_cable_test_get_status,
3859 },
3860 {
3861 .phy_id = MARVELL_PHY_ID_88E1149R,
3862 .phy_id_mask = MARVELL_PHY_ID_MASK,
3863 .name = "Marvell 88E1149R",
3864 /* PHY_GBIT_FEATURES */
3865 .probe = marvell_probe,
3866 .config_init = m88e1149_config_init,
3867 .config_aneg = m88e1118_config_aneg,
3868 .config_intr = marvell_config_intr,
3869 .handle_interrupt = marvell_handle_interrupt,
3870 .resume = genphy_resume,
3871 .suspend = genphy_suspend,
3872 .read_page = marvell_read_page,
3873 .write_page = marvell_write_page,
3874 .get_sset_count = marvell_get_sset_count,
3875 .get_strings = marvell_get_strings,
3876 .get_stats = marvell_get_stats,
3877 },
3878 {
3879 .phy_id = MARVELL_PHY_ID_88E1240,
3880 .phy_id_mask = MARVELL_PHY_ID_MASK,
3881 .name = "Marvell 88E1240",
3882 /* PHY_GBIT_FEATURES */
3883 .probe = marvell_probe,
3884 .config_init = m88e1112_config_init,
3885 .config_aneg = marvell_config_aneg,
3886 .config_intr = marvell_config_intr,
3887 .handle_interrupt = marvell_handle_interrupt,
3888 .resume = genphy_resume,
3889 .suspend = genphy_suspend,
3890 .read_page = marvell_read_page,
3891 .write_page = marvell_write_page,
3892 .get_sset_count = marvell_get_sset_count,
3893 .get_strings = marvell_get_strings,
3894 .get_stats = marvell_get_stats,
3895 .get_tunable = m88e1011_get_tunable,
3896 .set_tunable = m88e1011_set_tunable,
3897 },
3898 {
3899 .phy_id = MARVELL_PHY_ID_88E1116R,
3900 .phy_id_mask = MARVELL_PHY_ID_MASK,
3901 .name = "Marvell 88E1116R",
3902 /* PHY_GBIT_FEATURES */
3903 .probe = marvell_probe,
3904 .config_init = m88e1116r_config_init,
3905 .config_intr = marvell_config_intr,
3906 .handle_interrupt = marvell_handle_interrupt,
3907 .resume = genphy_resume,
3908 .suspend = genphy_suspend,
3909 .read_page = marvell_read_page,
3910 .write_page = marvell_write_page,
3911 .get_sset_count = marvell_get_sset_count,
3912 .get_strings = marvell_get_strings,
3913 .get_stats = marvell_get_stats,
3914 .get_tunable = m88e1011_get_tunable,
3915 .set_tunable = m88e1011_set_tunable,
> 3916 .led_polarity_set = m88e1318_led_polarity_set,
3917 .led_brightness_set = m88e1318_led_brightness_set,
3918 .led_blink_set = m88e1318_led_blink_set,
3919 .led_hw_is_supported = m88e1318_led_hw_is_supported,
3920 .led_hw_control_set = m88e1318_led_hw_control_set,
3921 .led_hw_control_get = m88e1318_led_hw_control_get,
3922 },
3923 {
3924 .phy_id = MARVELL_PHY_ID_88E1510,
3925 .phy_id_mask = MARVELL_PHY_ID_MASK,
3926 .name = "Marvell 88E1510",
3927 .driver_data = DEF_MARVELL_HWMON_OPS(m88e1510_hwmon_ops),
3928 .features = PHY_GBIT_FIBRE_FEATURES,
3929 .flags = PHY_POLL_CABLE_TEST,
3930 .probe = marvell_probe,
3931 .config_init = m88e1510_config_init,
3932 .config_aneg = m88e1510_config_aneg,
3933 .read_status = marvell_read_status,
3934 .config_intr = marvell_config_intr,
3935 .handle_interrupt = marvell_handle_interrupt,
3936 .get_wol = m88e1318_get_wol,
3937 .set_wol = m88e1318_set_wol,
3938 .resume = m88e1510_resume,
3939 .suspend = marvell_suspend,
3940 .read_page = marvell_read_page,
3941 .write_page = marvell_write_page,
3942 .get_sset_count = marvell_get_sset_count,
3943 .get_strings = marvell_get_strings,
3944 .get_stats = marvell_get_stats,
3945 .set_loopback = m88e1510_loopback,
3946 .get_tunable = m88e1011_get_tunable,
3947 .set_tunable = m88e1011_set_tunable,
3948 .cable_test_start = marvell_vct7_cable_test_start,
3949 .cable_test_tdr_start = marvell_vct5_cable_test_tdr_start,
3950 .cable_test_get_status = marvell_vct7_cable_test_get_status,
3951 .led_brightness_set = m88e1318_led_brightness_set,
3952 .led_blink_set = m88e1318_led_blink_set,
3953 .led_hw_is_supported = m88e1318_led_hw_is_supported,
3954 .led_hw_control_set = m88e1318_led_hw_control_set,
3955 .led_hw_control_get = m88e1318_led_hw_control_get,
3956 .attach_mii_port = m88e1510_attach_mii_port,
3957 },
3958 {
3959 .phy_id = MARVELL_PHY_ID_88E1540,
3960 .phy_id_mask = MARVELL_PHY_ID_MASK,
3961 .name = "Marvell 88E1540",
3962 .driver_data = DEF_MARVELL_HWMON_OPS(m88e1510_hwmon_ops),
3963 /* PHY_GBIT_FEATURES */
3964 .flags = PHY_POLL_CABLE_TEST,
3965 .probe = marvell_probe,
3966 .config_init = marvell_1011gbe_config_init,
3967 .config_aneg = m88e1510_config_aneg,
3968 .read_status = marvell_read_status,
3969 .config_intr = marvell_config_intr,
3970 .handle_interrupt = marvell_handle_interrupt,
3971 .resume = genphy_resume,
3972 .suspend = genphy_suspend,
3973 .read_page = marvell_read_page,
3974 .write_page = marvell_write_page,
3975 .get_sset_count = marvell_get_sset_count,
3976 .get_strings = marvell_get_strings,
3977 .get_stats = marvell_get_stats,
3978 .get_tunable = m88e1540_get_tunable,
3979 .set_tunable = m88e1540_set_tunable,
3980 .cable_test_start = marvell_vct7_cable_test_start,
3981 .cable_test_tdr_start = marvell_vct5_cable_test_tdr_start,
3982 .cable_test_get_status = marvell_vct7_cable_test_get_status,
3983 .led_brightness_set = m88e1318_led_brightness_set,
3984 .led_blink_set = m88e1318_led_blink_set,
3985 .led_hw_is_supported = m88e1318_led_hw_is_supported,
3986 .led_hw_control_set = m88e1318_led_hw_control_set,
3987 .led_hw_control_get = m88e1318_led_hw_control_get,
3988 },
3989 {
3990 .phy_id = MARVELL_PHY_ID_88E1545,
3991 .phy_id_mask = MARVELL_PHY_ID_MASK,
3992 .name = "Marvell 88E1545",
3993 .driver_data = DEF_MARVELL_HWMON_OPS(m88e1510_hwmon_ops),
3994 .probe = marvell_probe,
3995 /* PHY_GBIT_FEATURES */
3996 .flags = PHY_POLL_CABLE_TEST,
3997 .config_init = marvell_1011gbe_config_init,
3998 .config_aneg = m88e1510_config_aneg,
3999 .read_status = marvell_read_status,
4000 .config_intr = marvell_config_intr,
4001 .handle_interrupt = marvell_handle_interrupt,
4002 .resume = genphy_resume,
4003 .suspend = genphy_suspend,
4004 .read_page = marvell_read_page,
4005 .write_page = marvell_write_page,
4006 .get_sset_count = marvell_get_sset_count,
4007 .get_strings = marvell_get_strings,
4008 .get_stats = marvell_get_stats,
4009 .get_tunable = m88e1540_get_tunable,
4010 .set_tunable = m88e1540_set_tunable,
4011 .cable_test_start = marvell_vct7_cable_test_start,
4012 .cable_test_tdr_start = marvell_vct5_cable_test_tdr_start,
4013 .cable_test_get_status = marvell_vct7_cable_test_get_status,
4014 .led_brightness_set = m88e1318_led_brightness_set,
4015 .led_blink_set = m88e1318_led_blink_set,
4016 .led_hw_is_supported = m88e1318_led_hw_is_supported,
4017 .led_hw_control_set = m88e1318_led_hw_control_set,
4018 .led_hw_control_get = m88e1318_led_hw_control_get,
4019 },
4020 {
4021 .phy_id = MARVELL_PHY_ID_88E3016,
4022 .phy_id_mask = MARVELL_PHY_ID_MASK,
4023 .name = "Marvell 88E3016",
4024 /* PHY_BASIC_FEATURES */
4025 .probe = marvell_probe,
4026 .config_init = m88e3016_config_init,
4027 .aneg_done = marvell_aneg_done,
4028 .read_status = marvell_read_status,
4029 .config_intr = marvell_config_intr,
4030 .handle_interrupt = marvell_handle_interrupt,
4031 .resume = genphy_resume,
4032 .suspend = genphy_suspend,
4033 .read_page = marvell_read_page,
4034 .write_page = marvell_write_page,
4035 .get_sset_count = marvell_get_sset_count,
4036 .get_strings = marvell_get_strings,
4037 .get_stats = marvell_get_stats,
4038 },
4039 {
4040 .phy_id = MARVELL_PHY_ID_88E6250_FAMILY,
4041 .phy_id_mask = MARVELL_PHY_ID_MASK,
4042 .name = "Marvell 88E6250 Family",
4043 /* PHY_BASIC_FEATURES */
4044 .probe = marvell_probe,
4045 .aneg_done = marvell_aneg_done,
4046 .config_intr = marvell_config_intr,
4047 .handle_interrupt = marvell_handle_interrupt,
4048 .resume = genphy_resume,
4049 .suspend = genphy_suspend,
4050 .get_sset_count = marvell_get_sset_count_simple,
4051 .get_strings = marvell_get_strings_simple,
4052 .get_stats = marvell_get_stats_simple,
4053 },
4054 {
4055 .phy_id = MARVELL_PHY_ID_88E6341_FAMILY,
4056 .phy_id_mask = MARVELL_PHY_ID_MASK,
4057 .name = "Marvell 88E6341 Family",
4058 .driver_data = DEF_MARVELL_HWMON_OPS(m88e1510_hwmon_ops),
4059 /* PHY_GBIT_FEATURES */
4060 .flags = PHY_POLL_CABLE_TEST,
4061 .probe = marvell_probe,
4062 .config_init = marvell_1011gbe_config_init,
4063 .config_aneg = m88e6390_config_aneg,
4064 .read_status = marvell_read_status,
4065 .config_intr = marvell_config_intr,
4066 .handle_interrupt = marvell_handle_interrupt,
4067 .resume = genphy_resume,
4068 .suspend = genphy_suspend,
4069 .read_page = marvell_read_page,
4070 .write_page = marvell_write_page,
4071 .get_sset_count = marvell_get_sset_count,
4072 .get_strings = marvell_get_strings,
4073 .get_stats = marvell_get_stats,
4074 .get_tunable = m88e1540_get_tunable,
4075 .set_tunable = m88e1540_set_tunable,
4076 .cable_test_start = marvell_vct7_cable_test_start,
4077 .cable_test_tdr_start = marvell_vct5_cable_test_tdr_start,
4078 .cable_test_get_status = marvell_vct7_cable_test_get_status,
4079 },
4080 {
4081 .phy_id = MARVELL_PHY_ID_88E6390_FAMILY,
4082 .phy_id_mask = MARVELL_PHY_ID_MASK,
4083 .name = "Marvell 88E6390 Family",
4084 .driver_data = DEF_MARVELL_HWMON_OPS(m88e6390_hwmon_ops),
4085 /* PHY_GBIT_FEATURES */
4086 .flags = PHY_POLL_CABLE_TEST,
4087 .probe = marvell_probe,
4088 .config_init = marvell_1011gbe_config_init,
4089 .config_aneg = m88e6390_config_aneg,
4090 .read_status = marvell_read_status,
4091 .config_intr = marvell_config_intr,
4092 .handle_interrupt = marvell_handle_interrupt,
4093 .resume = genphy_resume,
4094 .suspend = genphy_suspend,
4095 .read_page = marvell_read_page,
4096 .write_page = marvell_write_page,
4097 .get_sset_count = marvell_get_sset_count,
4098 .get_strings = marvell_get_strings,
4099 .get_stats = marvell_get_stats,
4100 .get_tunable = m88e1540_get_tunable,
4101 .set_tunable = m88e1540_set_tunable,
4102 .cable_test_start = marvell_vct7_cable_test_start,
4103 .cable_test_tdr_start = marvell_vct5_cable_test_tdr_start,
4104 .cable_test_get_status = marvell_vct7_cable_test_get_status,
4105 },
4106 {
4107 .phy_id = MARVELL_PHY_ID_88E6393_FAMILY,
4108 .phy_id_mask = MARVELL_PHY_ID_MASK,
4109 .name = "Marvell 88E6393 Family",
4110 .driver_data = DEF_MARVELL_HWMON_OPS(m88e6393_hwmon_ops),
4111 /* PHY_GBIT_FEATURES */
4112 .flags = PHY_POLL_CABLE_TEST,
4113 .probe = marvell_probe,
4114 .config_init = marvell_1011gbe_config_init,
4115 .config_aneg = m88e1510_config_aneg,
4116 .read_status = marvell_read_status,
4117 .config_intr = marvell_config_intr,
4118 .handle_interrupt = marvell_handle_interrupt,
4119 .resume = genphy_resume,
4120 .suspend = genphy_suspend,
4121 .read_page = marvell_read_page,
4122 .write_page = marvell_write_page,
4123 .get_sset_count = marvell_get_sset_count,
4124 .get_strings = marvell_get_strings,
4125 .get_stats = marvell_get_stats,
4126 .get_tunable = m88e1540_get_tunable,
4127 .set_tunable = m88e1540_set_tunable,
4128 .cable_test_start = marvell_vct7_cable_test_start,
4129 .cable_test_tdr_start = marvell_vct5_cable_test_tdr_start,
4130 .cable_test_get_status = marvell_vct7_cable_test_get_status,
4131 },
4132 {
4133 .phy_id = MARVELL_PHY_ID_88E1340S,
4134 .phy_id_mask = MARVELL_PHY_ID_MASK,
4135 .name = "Marvell 88E1340S",
4136 .driver_data = DEF_MARVELL_HWMON_OPS(m88e1510_hwmon_ops),
4137 .probe = marvell_probe,
4138 /* PHY_GBIT_FEATURES */
4139 .config_init = marvell_1011gbe_config_init,
4140 .config_aneg = m88e1510_config_aneg,
4141 .read_status = marvell_read_status,
4142 .config_intr = marvell_config_intr,
4143 .handle_interrupt = marvell_handle_interrupt,
4144 .resume = genphy_resume,
4145 .suspend = genphy_suspend,
4146 .read_page = marvell_read_page,
4147 .write_page = marvell_write_page,
4148 .get_sset_count = marvell_get_sset_count,
4149 .get_strings = marvell_get_strings,
4150 .get_stats = marvell_get_stats,
4151 .get_tunable = m88e1540_get_tunable,
4152 .set_tunable = m88e1540_set_tunable,
4153 },
4154 {
4155 .phy_id = MARVELL_PHY_ID_88E1548P,
4156 .phy_id_mask = MARVELL_PHY_ID_MASK,
4157 .name = "Marvell 88E1548P",
4158 .driver_data = DEF_MARVELL_HWMON_OPS(m88e1510_hwmon_ops),
4159 .probe = marvell_probe,
4160 .features = PHY_GBIT_FIBRE_FEATURES,
4161 .config_init = marvell_1011gbe_config_init,
4162 .config_aneg = m88e1510_config_aneg,
4163 .read_status = marvell_read_status,
4164 .config_intr = marvell_config_intr,
4165 .handle_interrupt = marvell_handle_interrupt,
4166 .resume = genphy_resume,
4167 .suspend = genphy_suspend,
4168 .read_page = marvell_read_page,
4169 .write_page = marvell_write_page,
4170 .get_sset_count = marvell_get_sset_count,
4171 .get_strings = marvell_get_strings,
4172 .get_stats = marvell_get_stats,
4173 .get_tunable = m88e1540_get_tunable,
4174 .set_tunable = m88e1540_set_tunable,
4175 .led_brightness_set = m88e1318_led_brightness_set,
4176 .led_blink_set = m88e1318_led_blink_set,
4177 .led_hw_is_supported = m88e1318_led_hw_is_supported,
4178 .led_hw_control_set = m88e1318_led_hw_control_set,
4179 .led_hw_control_get = m88e1318_led_hw_control_get,
4180 },
4181 };
4182
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH net-next] net: phy: marvell: add LED support for 88E1116R PHY
2026-10-09 6:08 [PATCH net-next] net: phy: marvell: add LED support for 88E1116R PHY Konstantin Meshkov
2026-10-09 12:15 ` Andrew Lunn
2026-10-09 20:51 ` kernel test robot
@ 2026-10-09 20:51 ` kernel test robot
2 siblings, 0 replies; 5+ messages in thread
From: kernel test robot @ 2026-10-09 20:51 UTC (permalink / raw)
To: Konstantin Meshkov, netdev
Cc: oe-kbuild-all, Andrew Lunn, Heiner Kallweit, Russell King,
Aleksander Jan Bajkowski, Christian Marangi, linux-kernel
Hi Konstantin,
kernel test robot noticed the following build errors:
[auto build test ERROR on net-next/main]
url: https://github.com/intel-lab-lkp/linux/commits/Konstantin-Meshkov/net-phy-marvell-add-LED-support-for-88E1116R-PHY/20261009-090829
base: net-next/main
patch link: https://lore.kernel.org/r/179152610952.2918676.6625057760354797023%40mail.ru
patch subject: [PATCH net-next] net: phy: marvell: add LED support for 88E1116R PHY
config: nios2-defconfig (https://download.01.org/0day-ci/archive/20261010/202610100412.3inKNHop-lkp@intel.com/config)
compiler: nios2-linux-gcc (GCC) 11.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20261010/202610100412.3inKNHop-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202610100412.3inKNHop-lkp@intel.com/
All errors (new ones prefixed by >>):
>> drivers/net/phy/marvell.c:3916:37: error: 'm88e1318_led_polarity_set' undeclared here (not in a function); did you mean 'm88e1318_led_blink_set'?
3916 | .led_polarity_set = m88e1318_led_polarity_set,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
| m88e1318_led_blink_set
vim +3916 drivers/net/phy/marvell.c
3666
3667 static struct phy_driver marvell_drivers[] = {
3668 {
3669 .phy_id = MARVELL_PHY_ID_88E1101,
3670 .phy_id_mask = MARVELL_PHY_ID_MASK,
3671 .name = "Marvell 88E1101",
3672 /* PHY_GBIT_FEATURES */
3673 .probe = marvell_probe,
3674 .config_init = marvell_config_init,
3675 .config_aneg = m88e1101_config_aneg,
3676 .config_intr = marvell_config_intr,
3677 .handle_interrupt = marvell_handle_interrupt,
3678 .resume = genphy_resume,
3679 .suspend = genphy_suspend,
3680 .read_page = marvell_read_page,
3681 .write_page = marvell_write_page,
3682 .get_sset_count = marvell_get_sset_count,
3683 .get_strings = marvell_get_strings,
3684 .get_stats = marvell_get_stats,
3685 },
3686 {
3687 .phy_id = MARVELL_PHY_ID_88E3082,
3688 .phy_id_mask = MARVELL_PHY_ID_MASK,
3689 .name = "Marvell 88E308X/88E609X Family",
3690 /* PHY_BASIC_FEATURES */
3691 .probe = marvell_probe,
3692 .config_init = marvell_config_init,
3693 .aneg_done = marvell_aneg_done,
3694 .read_status = marvell_read_status,
3695 .resume = genphy_resume,
3696 .suspend = genphy_suspend,
3697 .cable_test_start = m88e3082_vct_cable_test_start,
3698 .cable_test_get_status = m88e3082_vct_cable_test_get_status,
3699 },
3700 {
3701 .phy_id = MARVELL_PHY_ID_88E1112,
3702 .phy_id_mask = MARVELL_PHY_ID_MASK,
3703 .name = "Marvell 88E1112",
3704 /* PHY_GBIT_FEATURES */
3705 .probe = marvell_probe,
3706 .inband_caps = m88e1111_inband_caps,
3707 .config_inband = m88e1111_config_inband,
3708 .config_init = m88e1112_config_init,
3709 .config_aneg = marvell_config_aneg,
3710 .config_intr = marvell_config_intr,
3711 .handle_interrupt = marvell_handle_interrupt,
3712 .resume = genphy_resume,
3713 .suspend = genphy_suspend,
3714 .read_page = marvell_read_page,
3715 .write_page = marvell_write_page,
3716 .get_sset_count = marvell_get_sset_count,
3717 .get_strings = marvell_get_strings,
3718 .get_stats = marvell_get_stats,
3719 .get_tunable = m88e1011_get_tunable,
3720 .set_tunable = m88e1011_set_tunable,
3721 },
3722 {
3723 .phy_id = MARVELL_PHY_ID_88E1111,
3724 .phy_id_mask = MARVELL_PHY_ID_MASK,
3725 .name = "Marvell 88E1111",
3726 /* PHY_GBIT_FEATURES */
3727 .flags = PHY_POLL_CABLE_TEST,
3728 .probe = marvell_probe,
3729 .inband_caps = m88e1111_inband_caps,
3730 .config_inband = m88e1111_config_inband,
3731 .config_init = m88e1111gbe_config_init,
3732 .config_aneg = m88e1111_config_aneg,
3733 .read_status = marvell_read_status,
3734 .config_intr = marvell_config_intr,
3735 .handle_interrupt = marvell_handle_interrupt,
3736 .resume = genphy_resume,
3737 .suspend = genphy_suspend,
3738 .read_page = marvell_read_page,
3739 .write_page = marvell_write_page,
3740 .get_sset_count = marvell_get_sset_count,
3741 .get_strings = marvell_get_strings,
3742 .get_stats = marvell_get_stats,
3743 .get_tunable = m88e1111_get_tunable,
3744 .set_tunable = m88e1111_set_tunable,
3745 .cable_test_start = m88e1111_vct_cable_test_start,
3746 .cable_test_get_status = m88e1111_vct_cable_test_get_status,
3747 },
3748 {
3749 .phy_id = MARVELL_PHY_ID_88E1111_FINISAR,
3750 .phy_id_mask = MARVELL_PHY_ID_MASK,
3751 .name = "Marvell 88E1111 (Finisar)",
3752 /* PHY_GBIT_FEATURES */
3753 .probe = marvell_probe,
3754 .inband_caps = m88e1111_inband_caps,
3755 .config_inband = m88e1111_config_inband,
3756 .config_init = m88e1111gbe_config_init,
3757 .config_aneg = m88e1111_config_aneg,
3758 .read_status = marvell_read_status,
3759 .config_intr = marvell_config_intr,
3760 .handle_interrupt = marvell_handle_interrupt,
3761 .resume = genphy_resume,
3762 .suspend = genphy_suspend,
3763 .read_page = marvell_read_page,
3764 .write_page = marvell_write_page,
3765 .get_sset_count = marvell_get_sset_count,
3766 .get_strings = marvell_get_strings,
3767 .get_stats = marvell_get_stats,
3768 .get_tunable = m88e1111_get_tunable,
3769 .set_tunable = m88e1111_set_tunable,
3770 },
3771 {
3772 .phy_id = MARVELL_PHY_ID_88E1118,
3773 .phy_id_mask = MARVELL_PHY_ID_MASK,
3774 .name = "Marvell 88E1118",
3775 /* PHY_GBIT_FEATURES */
3776 .probe = marvell_probe,
3777 .config_init = m88e1118_config_init,
3778 .config_aneg = m88e1118_config_aneg,
3779 .config_intr = marvell_config_intr,
3780 .handle_interrupt = marvell_handle_interrupt,
3781 .resume = genphy_resume,
3782 .suspend = genphy_suspend,
3783 .read_page = marvell_read_page,
3784 .write_page = marvell_write_page,
3785 .get_sset_count = marvell_get_sset_count,
3786 .get_strings = marvell_get_strings,
3787 .get_stats = marvell_get_stats,
3788 },
3789 {
3790 .phy_id = MARVELL_PHY_ID_88E1121R,
3791 .phy_id_mask = MARVELL_PHY_ID_MASK,
3792 .name = "Marvell 88E1121R",
3793 .driver_data = DEF_MARVELL_HWMON_OPS(m88e1121_hwmon_ops),
3794 /* PHY_GBIT_FEATURES */
3795 .probe = marvell_probe,
3796 .config_init = marvell_1011gbe_config_init,
3797 .config_aneg = m88e1121_config_aneg,
3798 .read_status = marvell_read_status,
3799 .config_intr = marvell_config_intr,
3800 .handle_interrupt = marvell_handle_interrupt,
3801 .resume = genphy_resume,
3802 .suspend = genphy_suspend,
3803 .read_page = marvell_read_page,
3804 .write_page = marvell_write_page,
3805 .get_sset_count = marvell_get_sset_count,
3806 .get_strings = marvell_get_strings,
3807 .get_stats = marvell_get_stats,
3808 .get_tunable = m88e1011_get_tunable,
3809 .set_tunable = m88e1011_set_tunable,
3810 },
3811 {
3812 .phy_id = MARVELL_PHY_ID_88E1318S,
3813 .phy_id_mask = MARVELL_PHY_ID_MASK,
3814 .name = "Marvell 88E1318S",
3815 /* PHY_GBIT_FEATURES */
3816 .probe = marvell_probe,
3817 .config_init = m88e1318_config_init,
3818 .config_aneg = m88e1318_config_aneg,
3819 .read_status = marvell_read_status,
3820 .config_intr = marvell_config_intr,
3821 .handle_interrupt = marvell_handle_interrupt,
3822 .get_wol = m88e1318_get_wol,
3823 .set_wol = m88e1318_set_wol,
3824 .resume = genphy_resume,
3825 .suspend = genphy_suspend,
3826 .read_page = marvell_read_page,
3827 .write_page = marvell_write_page,
3828 .get_sset_count = marvell_get_sset_count,
3829 .get_strings = marvell_get_strings,
3830 .get_stats = marvell_get_stats,
3831 .led_brightness_set = m88e1318_led_brightness_set,
3832 .led_blink_set = m88e1318_led_blink_set,
3833 .led_hw_is_supported = m88e1318_led_hw_is_supported,
3834 .led_hw_control_set = m88e1318_led_hw_control_set,
3835 .led_hw_control_get = m88e1318_led_hw_control_get,
3836 },
3837 {
3838 .phy_id = MARVELL_PHY_ID_88E1145,
3839 .phy_id_mask = MARVELL_PHY_ID_MASK,
3840 .name = "Marvell 88E1145",
3841 /* PHY_GBIT_FEATURES */
3842 .flags = PHY_POLL_CABLE_TEST,
3843 .probe = marvell_probe,
3844 .config_init = m88e1145_config_init,
3845 .config_aneg = m88e1101_config_aneg,
3846 .config_intr = marvell_config_intr,
3847 .handle_interrupt = marvell_handle_interrupt,
3848 .resume = genphy_resume,
3849 .suspend = genphy_suspend,
3850 .read_page = marvell_read_page,
3851 .write_page = marvell_write_page,
3852 .get_sset_count = marvell_get_sset_count,
3853 .get_strings = marvell_get_strings,
3854 .get_stats = marvell_get_stats,
3855 .get_tunable = m88e1111_get_tunable,
3856 .set_tunable = m88e1111_set_tunable,
3857 .cable_test_start = m88e1111_vct_cable_test_start,
3858 .cable_test_get_status = m88e1111_vct_cable_test_get_status,
3859 },
3860 {
3861 .phy_id = MARVELL_PHY_ID_88E1149R,
3862 .phy_id_mask = MARVELL_PHY_ID_MASK,
3863 .name = "Marvell 88E1149R",
3864 /* PHY_GBIT_FEATURES */
3865 .probe = marvell_probe,
3866 .config_init = m88e1149_config_init,
3867 .config_aneg = m88e1118_config_aneg,
3868 .config_intr = marvell_config_intr,
3869 .handle_interrupt = marvell_handle_interrupt,
3870 .resume = genphy_resume,
3871 .suspend = genphy_suspend,
3872 .read_page = marvell_read_page,
3873 .write_page = marvell_write_page,
3874 .get_sset_count = marvell_get_sset_count,
3875 .get_strings = marvell_get_strings,
3876 .get_stats = marvell_get_stats,
3877 },
3878 {
3879 .phy_id = MARVELL_PHY_ID_88E1240,
3880 .phy_id_mask = MARVELL_PHY_ID_MASK,
3881 .name = "Marvell 88E1240",
3882 /* PHY_GBIT_FEATURES */
3883 .probe = marvell_probe,
3884 .config_init = m88e1112_config_init,
3885 .config_aneg = marvell_config_aneg,
3886 .config_intr = marvell_config_intr,
3887 .handle_interrupt = marvell_handle_interrupt,
3888 .resume = genphy_resume,
3889 .suspend = genphy_suspend,
3890 .read_page = marvell_read_page,
3891 .write_page = marvell_write_page,
3892 .get_sset_count = marvell_get_sset_count,
3893 .get_strings = marvell_get_strings,
3894 .get_stats = marvell_get_stats,
3895 .get_tunable = m88e1011_get_tunable,
3896 .set_tunable = m88e1011_set_tunable,
3897 },
3898 {
3899 .phy_id = MARVELL_PHY_ID_88E1116R,
3900 .phy_id_mask = MARVELL_PHY_ID_MASK,
3901 .name = "Marvell 88E1116R",
3902 /* PHY_GBIT_FEATURES */
3903 .probe = marvell_probe,
3904 .config_init = m88e1116r_config_init,
3905 .config_intr = marvell_config_intr,
3906 .handle_interrupt = marvell_handle_interrupt,
3907 .resume = genphy_resume,
3908 .suspend = genphy_suspend,
3909 .read_page = marvell_read_page,
3910 .write_page = marvell_write_page,
3911 .get_sset_count = marvell_get_sset_count,
3912 .get_strings = marvell_get_strings,
3913 .get_stats = marvell_get_stats,
3914 .get_tunable = m88e1011_get_tunable,
3915 .set_tunable = m88e1011_set_tunable,
> 3916 .led_polarity_set = m88e1318_led_polarity_set,
3917 .led_brightness_set = m88e1318_led_brightness_set,
3918 .led_blink_set = m88e1318_led_blink_set,
3919 .led_hw_is_supported = m88e1318_led_hw_is_supported,
3920 .led_hw_control_set = m88e1318_led_hw_control_set,
3921 .led_hw_control_get = m88e1318_led_hw_control_get,
3922 },
3923 {
3924 .phy_id = MARVELL_PHY_ID_88E1510,
3925 .phy_id_mask = MARVELL_PHY_ID_MASK,
3926 .name = "Marvell 88E1510",
3927 .driver_data = DEF_MARVELL_HWMON_OPS(m88e1510_hwmon_ops),
3928 .features = PHY_GBIT_FIBRE_FEATURES,
3929 .flags = PHY_POLL_CABLE_TEST,
3930 .probe = marvell_probe,
3931 .config_init = m88e1510_config_init,
3932 .config_aneg = m88e1510_config_aneg,
3933 .read_status = marvell_read_status,
3934 .config_intr = marvell_config_intr,
3935 .handle_interrupt = marvell_handle_interrupt,
3936 .get_wol = m88e1318_get_wol,
3937 .set_wol = m88e1318_set_wol,
3938 .resume = m88e1510_resume,
3939 .suspend = marvell_suspend,
3940 .read_page = marvell_read_page,
3941 .write_page = marvell_write_page,
3942 .get_sset_count = marvell_get_sset_count,
3943 .get_strings = marvell_get_strings,
3944 .get_stats = marvell_get_stats,
3945 .set_loopback = m88e1510_loopback,
3946 .get_tunable = m88e1011_get_tunable,
3947 .set_tunable = m88e1011_set_tunable,
3948 .cable_test_start = marvell_vct7_cable_test_start,
3949 .cable_test_tdr_start = marvell_vct5_cable_test_tdr_start,
3950 .cable_test_get_status = marvell_vct7_cable_test_get_status,
3951 .led_brightness_set = m88e1318_led_brightness_set,
3952 .led_blink_set = m88e1318_led_blink_set,
3953 .led_hw_is_supported = m88e1318_led_hw_is_supported,
3954 .led_hw_control_set = m88e1318_led_hw_control_set,
3955 .led_hw_control_get = m88e1318_led_hw_control_get,
3956 .attach_mii_port = m88e1510_attach_mii_port,
3957 },
3958 {
3959 .phy_id = MARVELL_PHY_ID_88E1540,
3960 .phy_id_mask = MARVELL_PHY_ID_MASK,
3961 .name = "Marvell 88E1540",
3962 .driver_data = DEF_MARVELL_HWMON_OPS(m88e1510_hwmon_ops),
3963 /* PHY_GBIT_FEATURES */
3964 .flags = PHY_POLL_CABLE_TEST,
3965 .probe = marvell_probe,
3966 .config_init = marvell_1011gbe_config_init,
3967 .config_aneg = m88e1510_config_aneg,
3968 .read_status = marvell_read_status,
3969 .config_intr = marvell_config_intr,
3970 .handle_interrupt = marvell_handle_interrupt,
3971 .resume = genphy_resume,
3972 .suspend = genphy_suspend,
3973 .read_page = marvell_read_page,
3974 .write_page = marvell_write_page,
3975 .get_sset_count = marvell_get_sset_count,
3976 .get_strings = marvell_get_strings,
3977 .get_stats = marvell_get_stats,
3978 .get_tunable = m88e1540_get_tunable,
3979 .set_tunable = m88e1540_set_tunable,
3980 .cable_test_start = marvell_vct7_cable_test_start,
3981 .cable_test_tdr_start = marvell_vct5_cable_test_tdr_start,
3982 .cable_test_get_status = marvell_vct7_cable_test_get_status,
3983 .led_brightness_set = m88e1318_led_brightness_set,
3984 .led_blink_set = m88e1318_led_blink_set,
3985 .led_hw_is_supported = m88e1318_led_hw_is_supported,
3986 .led_hw_control_set = m88e1318_led_hw_control_set,
3987 .led_hw_control_get = m88e1318_led_hw_control_get,
3988 },
3989 {
3990 .phy_id = MARVELL_PHY_ID_88E1545,
3991 .phy_id_mask = MARVELL_PHY_ID_MASK,
3992 .name = "Marvell 88E1545",
3993 .driver_data = DEF_MARVELL_HWMON_OPS(m88e1510_hwmon_ops),
3994 .probe = marvell_probe,
3995 /* PHY_GBIT_FEATURES */
3996 .flags = PHY_POLL_CABLE_TEST,
3997 .config_init = marvell_1011gbe_config_init,
3998 .config_aneg = m88e1510_config_aneg,
3999 .read_status = marvell_read_status,
4000 .config_intr = marvell_config_intr,
4001 .handle_interrupt = marvell_handle_interrupt,
4002 .resume = genphy_resume,
4003 .suspend = genphy_suspend,
4004 .read_page = marvell_read_page,
4005 .write_page = marvell_write_page,
4006 .get_sset_count = marvell_get_sset_count,
4007 .get_strings = marvell_get_strings,
4008 .get_stats = marvell_get_stats,
4009 .get_tunable = m88e1540_get_tunable,
4010 .set_tunable = m88e1540_set_tunable,
4011 .cable_test_start = marvell_vct7_cable_test_start,
4012 .cable_test_tdr_start = marvell_vct5_cable_test_tdr_start,
4013 .cable_test_get_status = marvell_vct7_cable_test_get_status,
4014 .led_brightness_set = m88e1318_led_brightness_set,
4015 .led_blink_set = m88e1318_led_blink_set,
4016 .led_hw_is_supported = m88e1318_led_hw_is_supported,
4017 .led_hw_control_set = m88e1318_led_hw_control_set,
4018 .led_hw_control_get = m88e1318_led_hw_control_get,
4019 },
4020 {
4021 .phy_id = MARVELL_PHY_ID_88E3016,
4022 .phy_id_mask = MARVELL_PHY_ID_MASK,
4023 .name = "Marvell 88E3016",
4024 /* PHY_BASIC_FEATURES */
4025 .probe = marvell_probe,
4026 .config_init = m88e3016_config_init,
4027 .aneg_done = marvell_aneg_done,
4028 .read_status = marvell_read_status,
4029 .config_intr = marvell_config_intr,
4030 .handle_interrupt = marvell_handle_interrupt,
4031 .resume = genphy_resume,
4032 .suspend = genphy_suspend,
4033 .read_page = marvell_read_page,
4034 .write_page = marvell_write_page,
4035 .get_sset_count = marvell_get_sset_count,
4036 .get_strings = marvell_get_strings,
4037 .get_stats = marvell_get_stats,
4038 },
4039 {
4040 .phy_id = MARVELL_PHY_ID_88E6250_FAMILY,
4041 .phy_id_mask = MARVELL_PHY_ID_MASK,
4042 .name = "Marvell 88E6250 Family",
4043 /* PHY_BASIC_FEATURES */
4044 .probe = marvell_probe,
4045 .aneg_done = marvell_aneg_done,
4046 .config_intr = marvell_config_intr,
4047 .handle_interrupt = marvell_handle_interrupt,
4048 .resume = genphy_resume,
4049 .suspend = genphy_suspend,
4050 .get_sset_count = marvell_get_sset_count_simple,
4051 .get_strings = marvell_get_strings_simple,
4052 .get_stats = marvell_get_stats_simple,
4053 },
4054 {
4055 .phy_id = MARVELL_PHY_ID_88E6341_FAMILY,
4056 .phy_id_mask = MARVELL_PHY_ID_MASK,
4057 .name = "Marvell 88E6341 Family",
4058 .driver_data = DEF_MARVELL_HWMON_OPS(m88e1510_hwmon_ops),
4059 /* PHY_GBIT_FEATURES */
4060 .flags = PHY_POLL_CABLE_TEST,
4061 .probe = marvell_probe,
4062 .config_init = marvell_1011gbe_config_init,
4063 .config_aneg = m88e6390_config_aneg,
4064 .read_status = marvell_read_status,
4065 .config_intr = marvell_config_intr,
4066 .handle_interrupt = marvell_handle_interrupt,
4067 .resume = genphy_resume,
4068 .suspend = genphy_suspend,
4069 .read_page = marvell_read_page,
4070 .write_page = marvell_write_page,
4071 .get_sset_count = marvell_get_sset_count,
4072 .get_strings = marvell_get_strings,
4073 .get_stats = marvell_get_stats,
4074 .get_tunable = m88e1540_get_tunable,
4075 .set_tunable = m88e1540_set_tunable,
4076 .cable_test_start = marvell_vct7_cable_test_start,
4077 .cable_test_tdr_start = marvell_vct5_cable_test_tdr_start,
4078 .cable_test_get_status = marvell_vct7_cable_test_get_status,
4079 },
4080 {
4081 .phy_id = MARVELL_PHY_ID_88E6390_FAMILY,
4082 .phy_id_mask = MARVELL_PHY_ID_MASK,
4083 .name = "Marvell 88E6390 Family",
4084 .driver_data = DEF_MARVELL_HWMON_OPS(m88e6390_hwmon_ops),
4085 /* PHY_GBIT_FEATURES */
4086 .flags = PHY_POLL_CABLE_TEST,
4087 .probe = marvell_probe,
4088 .config_init = marvell_1011gbe_config_init,
4089 .config_aneg = m88e6390_config_aneg,
4090 .read_status = marvell_read_status,
4091 .config_intr = marvell_config_intr,
4092 .handle_interrupt = marvell_handle_interrupt,
4093 .resume = genphy_resume,
4094 .suspend = genphy_suspend,
4095 .read_page = marvell_read_page,
4096 .write_page = marvell_write_page,
4097 .get_sset_count = marvell_get_sset_count,
4098 .get_strings = marvell_get_strings,
4099 .get_stats = marvell_get_stats,
4100 .get_tunable = m88e1540_get_tunable,
4101 .set_tunable = m88e1540_set_tunable,
4102 .cable_test_start = marvell_vct7_cable_test_start,
4103 .cable_test_tdr_start = marvell_vct5_cable_test_tdr_start,
4104 .cable_test_get_status = marvell_vct7_cable_test_get_status,
4105 },
4106 {
4107 .phy_id = MARVELL_PHY_ID_88E6393_FAMILY,
4108 .phy_id_mask = MARVELL_PHY_ID_MASK,
4109 .name = "Marvell 88E6393 Family",
4110 .driver_data = DEF_MARVELL_HWMON_OPS(m88e6393_hwmon_ops),
4111 /* PHY_GBIT_FEATURES */
4112 .flags = PHY_POLL_CABLE_TEST,
4113 .probe = marvell_probe,
4114 .config_init = marvell_1011gbe_config_init,
4115 .config_aneg = m88e1510_config_aneg,
4116 .read_status = marvell_read_status,
4117 .config_intr = marvell_config_intr,
4118 .handle_interrupt = marvell_handle_interrupt,
4119 .resume = genphy_resume,
4120 .suspend = genphy_suspend,
4121 .read_page = marvell_read_page,
4122 .write_page = marvell_write_page,
4123 .get_sset_count = marvell_get_sset_count,
4124 .get_strings = marvell_get_strings,
4125 .get_stats = marvell_get_stats,
4126 .get_tunable = m88e1540_get_tunable,
4127 .set_tunable = m88e1540_set_tunable,
4128 .cable_test_start = marvell_vct7_cable_test_start,
4129 .cable_test_tdr_start = marvell_vct5_cable_test_tdr_start,
4130 .cable_test_get_status = marvell_vct7_cable_test_get_status,
4131 },
4132 {
4133 .phy_id = MARVELL_PHY_ID_88E1340S,
4134 .phy_id_mask = MARVELL_PHY_ID_MASK,
4135 .name = "Marvell 88E1340S",
4136 .driver_data = DEF_MARVELL_HWMON_OPS(m88e1510_hwmon_ops),
4137 .probe = marvell_probe,
4138 /* PHY_GBIT_FEATURES */
4139 .config_init = marvell_1011gbe_config_init,
4140 .config_aneg = m88e1510_config_aneg,
4141 .read_status = marvell_read_status,
4142 .config_intr = marvell_config_intr,
4143 .handle_interrupt = marvell_handle_interrupt,
4144 .resume = genphy_resume,
4145 .suspend = genphy_suspend,
4146 .read_page = marvell_read_page,
4147 .write_page = marvell_write_page,
4148 .get_sset_count = marvell_get_sset_count,
4149 .get_strings = marvell_get_strings,
4150 .get_stats = marvell_get_stats,
4151 .get_tunable = m88e1540_get_tunable,
4152 .set_tunable = m88e1540_set_tunable,
4153 },
4154 {
4155 .phy_id = MARVELL_PHY_ID_88E1548P,
4156 .phy_id_mask = MARVELL_PHY_ID_MASK,
4157 .name = "Marvell 88E1548P",
4158 .driver_data = DEF_MARVELL_HWMON_OPS(m88e1510_hwmon_ops),
4159 .probe = marvell_probe,
4160 .features = PHY_GBIT_FIBRE_FEATURES,
4161 .config_init = marvell_1011gbe_config_init,
4162 .config_aneg = m88e1510_config_aneg,
4163 .read_status = marvell_read_status,
4164 .config_intr = marvell_config_intr,
4165 .handle_interrupt = marvell_handle_interrupt,
4166 .resume = genphy_resume,
4167 .suspend = genphy_suspend,
4168 .read_page = marvell_read_page,
4169 .write_page = marvell_write_page,
4170 .get_sset_count = marvell_get_sset_count,
4171 .get_strings = marvell_get_strings,
4172 .get_stats = marvell_get_stats,
4173 .get_tunable = m88e1540_get_tunable,
4174 .set_tunable = m88e1540_set_tunable,
4175 .led_brightness_set = m88e1318_led_brightness_set,
4176 .led_blink_set = m88e1318_led_blink_set,
4177 .led_hw_is_supported = m88e1318_led_hw_is_supported,
4178 .led_hw_control_set = m88e1318_led_hw_control_set,
4179 .led_hw_control_get = m88e1318_led_hw_control_get,
4180 },
4181 };
4182
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-10-09 20:51 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-09 6:08 [PATCH net-next] net: phy: marvell: add LED support for 88E1116R PHY Konstantin Meshkov
2026-10-09 12:15 ` Andrew Lunn
2026-10-09 20:40 ` Aleksander Jan Bajkowski
2026-10-09 20:51 ` kernel test robot
2026-10-09 20:51 ` kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®