All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] net: phy: marvell: add 88E1543 support
@ 2022-04-03 17:29 Stijn Tintel
  2022-04-03 18:19 ` Russell King (Oracle)
  2022-04-03 19:34 ` kernel test robot
  0 siblings, 2 replies; 6+ messages in thread
From: Stijn Tintel @ 2022-04-03 17:29 UTC (permalink / raw)
  To: netdev
  Cc: linux-kernel, pali, kabel, pabeni, kuba, davem, linux,
	hkallweit1, andrew

Add support for the Marvell Alaska 88E1543 PHY used in the WatchGuard
Firebox M200 and M300.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
---
 drivers/net/phy/marvell.c   | 27 +++++++++++++++++++++++++++
 include/linux/marvell_phy.h |  1 +
 2 files changed, 28 insertions(+)

diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c
index 2702faf7b0f6..c510eda23069 100644
--- a/drivers/net/phy/marvell.c
+++ b/drivers/net/phy/marvell.c
@@ -3166,6 +3166,32 @@ static struct phy_driver marvell_drivers[] = {
 		.cable_test_tdr_start = marvell_vct5_cable_test_tdr_start,
 		.cable_test_get_status = marvell_vct7_cable_test_get_status,
 	},
+	{
+		.phy_id = MARVELL_PHY_ID_88E1543,
+		.phy_id_mask = MARVELL_PHY_ID_MASK,
+		.name = "Marvell 88E1543",
+		.probe = m88e1510_probe,
+		/* PHY_GBIT_FEATURES */
+		.flags = PHY_POLL_CABLE_TEST,
+		.config_init = marvell_config_init,
+		.config_aneg = m88e1510_config_aneg,
+		.read_status = marvell_read_status,
+		.ack_interrupt = marvell_ack_interrupt,
+		.config_intr = marvell_config_intr,
+		.did_interrupt = m88e1121_did_interrupt,
+		.resume = genphy_resume,
+		.suspend = genphy_suspend,
+		.read_page = marvell_read_page,
+		.write_page = marvell_write_page,
+		.get_sset_count = marvell_get_sset_count,
+		.get_strings = marvell_get_strings,
+		.get_stats = marvell_get_stats,
+		.get_tunable = m88e1540_get_tunable,
+		.set_tunable = m88e1540_set_tunable,
+		.cable_test_start = marvell_vct7_cable_test_start,
+		.cable_test_tdr_start = marvell_vct5_cable_test_tdr_start,
+		.cable_test_get_status = marvell_vct7_cable_test_get_status,
+	},
 	{
 		.phy_id = MARVELL_PHY_ID_88E1545,
 		.phy_id_mask = MARVELL_PHY_ID_MASK,
@@ -3351,6 +3377,7 @@ static struct mdio_device_id __maybe_unused marvell_tbl[] = {
 	{ MARVELL_PHY_ID_88E1116R, MARVELL_PHY_ID_MASK },
 	{ MARVELL_PHY_ID_88E1510, MARVELL_PHY_ID_MASK },
 	{ MARVELL_PHY_ID_88E1540, MARVELL_PHY_ID_MASK },
+	{ MARVELL_PHY_ID_88E1543, MARVELL_PHY_ID_MASK },
 	{ MARVELL_PHY_ID_88E1545, MARVELL_PHY_ID_MASK },
 	{ MARVELL_PHY_ID_88E3016, MARVELL_PHY_ID_MASK },
 	{ MARVELL_PHY_ID_88E6341_FAMILY, MARVELL_PHY_ID_MASK },
diff --git a/include/linux/marvell_phy.h b/include/linux/marvell_phy.h
index 0f06c2287b52..26a77a5b62fc 100644
--- a/include/linux/marvell_phy.h
+++ b/include/linux/marvell_phy.h
@@ -19,6 +19,7 @@
 #define MARVELL_PHY_ID_88E1116R		0x01410e40
 #define MARVELL_PHY_ID_88E1510		0x01410dd0
 #define MARVELL_PHY_ID_88E1540		0x01410eb0
+#define MARVELL_PHY_ID_88E1543		0x01410ea2
 #define MARVELL_PHY_ID_88E1545		0x01410ea0
 #define MARVELL_PHY_ID_88E1548P		0x01410ec0
 #define MARVELL_PHY_ID_88E3016		0x01410e60
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] net: phy: marvell: add 88E1543 support
  2022-04-03 17:29 [PATCH] net: phy: marvell: add 88E1543 support Stijn Tintel
@ 2022-04-03 18:19 ` Russell King (Oracle)
  2022-04-03 18:30   ` Stijn Tintel
  2022-04-03 19:34 ` kernel test robot
  1 sibling, 1 reply; 6+ messages in thread
From: Russell King (Oracle) @ 2022-04-03 18:19 UTC (permalink / raw)
  To: Stijn Tintel
  Cc: netdev, linux-kernel, pali, kabel, pabeni, kuba, davem,
	hkallweit1, andrew

Hi,

On Sun, Apr 03, 2022 at 08:29:36PM +0300, Stijn Tintel wrote:
> Add support for the Marvell Alaska 88E1543 PHY used in the WatchGuard
> Firebox M200 and M300.

Looking at the IDs, this PHY should already be supported - reporting as
an 88E1545. Why do you need this patch?

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] net: phy: marvell: add 88E1543 support
  2022-04-03 18:19 ` Russell King (Oracle)
@ 2022-04-03 18:30   ` Stijn Tintel
  2022-04-03 19:01     ` Russell King (Oracle)
  0 siblings, 1 reply; 6+ messages in thread
From: Stijn Tintel @ 2022-04-03 18:30 UTC (permalink / raw)
  To: Russell King (Oracle)
  Cc: netdev, linux-kernel, pali, kabel, pabeni, kuba, davem,
	hkallweit1, andrew

On 3/04/2022 21:19, Russell King (Oracle) wrote:
> Hi,
>
> On Sun, Apr 03, 2022 at 08:29:36PM +0300, Stijn Tintel wrote:
>> Add support for the Marvell Alaska 88E1543 PHY used in the WatchGuard
>> Firebox M200 and M300.
> Looking at the IDs, this PHY should already be supported - reporting as
> an 88E1545. Why do you need this patch?
>
Thanks for pointing that out, you're right. Please disregard the patch. 
Would it be acceptable to change the name member to "Marvell
88E1543/88E1545" to make this more obvious?

Thanks,
Stijn


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] net: phy: marvell: add 88E1543 support
  2022-04-03 18:30   ` Stijn Tintel
@ 2022-04-03 19:01     ` Russell King (Oracle)
  2022-04-03 19:54       ` Andrew Lunn
  0 siblings, 1 reply; 6+ messages in thread
From: Russell King (Oracle) @ 2022-04-03 19:01 UTC (permalink / raw)
  To: Stijn Tintel
  Cc: netdev, linux-kernel, pali, kabel, pabeni, kuba, davem,
	hkallweit1, andrew

On Sun, Apr 03, 2022 at 09:30:06PM +0300, Stijn Tintel wrote:
> On 3/04/2022 21:19, Russell King (Oracle) wrote:
> > Hi,
> >
> > On Sun, Apr 03, 2022 at 08:29:36PM +0300, Stijn Tintel wrote:
> >> Add support for the Marvell Alaska 88E1543 PHY used in the WatchGuard
> >> Firebox M200 and M300.
> > Looking at the IDs, this PHY should already be supported - reporting as
> > an 88E1545. Why do you need this patch?
> >
> Thanks for pointing that out, you're right. Please disregard the patch. 
> Would it be acceptable to change the name member to "Marvell
> 88E1543/88E1545" to make this more obvious?

Unfortuantely not, the driver name is used in sysfs, and as I'm sure
you're aware, "/" is a pathname element separator and thus can't be
used.

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] net: phy: marvell: add 88E1543 support
  2022-04-03 17:29 [PATCH] net: phy: marvell: add 88E1543 support Stijn Tintel
  2022-04-03 18:19 ` Russell King (Oracle)
@ 2022-04-03 19:34 ` kernel test robot
  1 sibling, 0 replies; 6+ messages in thread
From: kernel test robot @ 2022-04-03 19:34 UTC (permalink / raw)
  To: Stijn Tintel, netdev
  Cc: llvm, kbuild-all, linux-kernel, pali, kabel, pabeni, kuba, davem,
	linux, hkallweit1, andrew

Hi Stijn,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on net/master]
[also build test ERROR on net-next/master horms-ipvs/master linus/master v5.17 next-20220401]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/intel-lab-lkp/linux/commits/Stijn-Tintel/net-phy-marvell-add-88E1543-support/20220404-013014
base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git 692930cc435099580a4b9e32fa781b0688c18439
config: i386-randconfig-a013 (https://download.01.org/0day-ci/archive/20220404/202204040323.maY1Ox99-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project c4a1b07d0979e7ff20d7d541af666d822d66b566)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/intel-lab-lkp/linux/commit/347a5d3810df9aea60a8ab28f6ca2060fce76830
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Stijn-Tintel/net-phy-marvell-add-88E1543-support/20220404-013014
        git checkout 347a5d3810df9aea60a8ab28f6ca2060fce76830
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/net/phy/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

>> drivers/net/phy/marvell.c:3181:20: error: use of undeclared identifier 'm88e1121_did_interrupt'
                   .did_interrupt = m88e1121_did_interrupt,
                                    ^
>> drivers/net/phy/marvell.c:3364:1: error: invalid application of 'sizeof' to an incomplete type 'struct phy_driver[]'
   module_phy_driver(marvell_drivers);
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/phy.h:1827:35: note: expanded from macro 'module_phy_driver'
           phy_module_driver(__phy_drivers, ARRAY_SIZE(__phy_drivers))
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/kernel.h:55:32: note: expanded from macro 'ARRAY_SIZE'
   #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
                                  ^
   include/linux/phy.h:1817:45: note: expanded from macro 'phy_module_driver'
           return phy_drivers_register(__phy_drivers, __count, THIS_MODULE); \
                                                      ^~~~~~~
>> drivers/net/phy/marvell.c:3364:1: error: invalid application of 'sizeof' to an incomplete type 'struct phy_driver[]'
   module_phy_driver(marvell_drivers);
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/phy.h:1827:35: note: expanded from macro 'module_phy_driver'
           phy_module_driver(__phy_drivers, ARRAY_SIZE(__phy_drivers))
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/kernel.h:55:32: note: expanded from macro 'ARRAY_SIZE'
   #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
                                  ^
   include/linux/phy.h:1822:40: note: expanded from macro 'phy_module_driver'
           phy_drivers_unregister(__phy_drivers, __count);                 \
                                                 ^~~~~~~
   3 errors generated.


vim +/m88e1121_did_interrupt +3181 drivers/net/phy/marvell.c

  2894	
  2895	static struct phy_driver marvell_drivers[] = {
  2896		{
  2897			.phy_id = MARVELL_PHY_ID_88E1101,
  2898			.phy_id_mask = MARVELL_PHY_ID_MASK,
  2899			.name = "Marvell 88E1101",
  2900			/* PHY_GBIT_FEATURES */
  2901			.probe = marvell_probe,
  2902			.config_init = marvell_config_init,
  2903			.config_aneg = m88e1101_config_aneg,
  2904			.config_intr = marvell_config_intr,
  2905			.handle_interrupt = marvell_handle_interrupt,
  2906			.resume = genphy_resume,
  2907			.suspend = genphy_suspend,
  2908			.read_page = marvell_read_page,
  2909			.write_page = marvell_write_page,
  2910			.get_sset_count = marvell_get_sset_count,
  2911			.get_strings = marvell_get_strings,
  2912			.get_stats = marvell_get_stats,
  2913		},
  2914		{
  2915			.phy_id = MARVELL_PHY_ID_88E1112,
  2916			.phy_id_mask = MARVELL_PHY_ID_MASK,
  2917			.name = "Marvell 88E1112",
  2918			/* PHY_GBIT_FEATURES */
  2919			.probe = marvell_probe,
  2920			.config_init = m88e1112_config_init,
  2921			.config_aneg = marvell_config_aneg,
  2922			.config_intr = marvell_config_intr,
  2923			.handle_interrupt = marvell_handle_interrupt,
  2924			.resume = genphy_resume,
  2925			.suspend = genphy_suspend,
  2926			.read_page = marvell_read_page,
  2927			.write_page = marvell_write_page,
  2928			.get_sset_count = marvell_get_sset_count,
  2929			.get_strings = marvell_get_strings,
  2930			.get_stats = marvell_get_stats,
  2931			.get_tunable = m88e1011_get_tunable,
  2932			.set_tunable = m88e1011_set_tunable,
  2933		},
  2934		{
  2935			.phy_id = MARVELL_PHY_ID_88E1111,
  2936			.phy_id_mask = MARVELL_PHY_ID_MASK,
  2937			.name = "Marvell 88E1111",
  2938			/* PHY_GBIT_FEATURES */
  2939			.probe = marvell_probe,
  2940			.config_init = m88e1111gbe_config_init,
  2941			.config_aneg = m88e1111_config_aneg,
  2942			.read_status = marvell_read_status,
  2943			.config_intr = marvell_config_intr,
  2944			.handle_interrupt = marvell_handle_interrupt,
  2945			.resume = genphy_resume,
  2946			.suspend = genphy_suspend,
  2947			.read_page = marvell_read_page,
  2948			.write_page = marvell_write_page,
  2949			.get_sset_count = marvell_get_sset_count,
  2950			.get_strings = marvell_get_strings,
  2951			.get_stats = marvell_get_stats,
  2952			.get_tunable = m88e1111_get_tunable,
  2953			.set_tunable = m88e1111_set_tunable,
  2954		},
  2955		{
  2956			.phy_id = MARVELL_PHY_ID_88E1111_FINISAR,
  2957			.phy_id_mask = MARVELL_PHY_ID_MASK,
  2958			.name = "Marvell 88E1111 (Finisar)",
  2959			/* PHY_GBIT_FEATURES */
  2960			.probe = marvell_probe,
  2961			.config_init = m88e1111gbe_config_init,
  2962			.config_aneg = m88e1111_config_aneg,
  2963			.read_status = marvell_read_status,
  2964			.config_intr = marvell_config_intr,
  2965			.handle_interrupt = marvell_handle_interrupt,
  2966			.resume = genphy_resume,
  2967			.suspend = genphy_suspend,
  2968			.read_page = marvell_read_page,
  2969			.write_page = marvell_write_page,
  2970			.get_sset_count = marvell_get_sset_count,
  2971			.get_strings = marvell_get_strings,
  2972			.get_stats = marvell_get_stats,
  2973			.get_tunable = m88e1111_get_tunable,
  2974			.set_tunable = m88e1111_set_tunable,
  2975		},
  2976		{
  2977			.phy_id = MARVELL_PHY_ID_88E1118,
  2978			.phy_id_mask = MARVELL_PHY_ID_MASK,
  2979			.name = "Marvell 88E1118",
  2980			/* PHY_GBIT_FEATURES */
  2981			.probe = marvell_probe,
  2982			.config_init = m88e1118_config_init,
  2983			.config_aneg = m88e1118_config_aneg,
  2984			.config_intr = marvell_config_intr,
  2985			.handle_interrupt = marvell_handle_interrupt,
  2986			.resume = genphy_resume,
  2987			.suspend = genphy_suspend,
  2988			.read_page = marvell_read_page,
  2989			.write_page = marvell_write_page,
  2990			.get_sset_count = marvell_get_sset_count,
  2991			.get_strings = marvell_get_strings,
  2992			.get_stats = marvell_get_stats,
  2993		},
  2994		{
  2995			.phy_id = MARVELL_PHY_ID_88E1121R,
  2996			.phy_id_mask = MARVELL_PHY_ID_MASK,
  2997			.name = "Marvell 88E1121R",
  2998			.driver_data = DEF_MARVELL_HWMON_OPS(m88e1121_hwmon_ops),
  2999			/* PHY_GBIT_FEATURES */
  3000			.probe = marvell_probe,
  3001			.config_init = marvell_1011gbe_config_init,
  3002			.config_aneg = m88e1121_config_aneg,
  3003			.read_status = marvell_read_status,
  3004			.config_intr = marvell_config_intr,
  3005			.handle_interrupt = marvell_handle_interrupt,
  3006			.resume = genphy_resume,
  3007			.suspend = genphy_suspend,
  3008			.read_page = marvell_read_page,
  3009			.write_page = marvell_write_page,
  3010			.get_sset_count = marvell_get_sset_count,
  3011			.get_strings = marvell_get_strings,
  3012			.get_stats = marvell_get_stats,
  3013			.get_tunable = m88e1011_get_tunable,
  3014			.set_tunable = m88e1011_set_tunable,
  3015		},
  3016		{
  3017			.phy_id = MARVELL_PHY_ID_88E1318S,
  3018			.phy_id_mask = MARVELL_PHY_ID_MASK,
  3019			.name = "Marvell 88E1318S",
  3020			/* PHY_GBIT_FEATURES */
  3021			.probe = marvell_probe,
  3022			.config_init = m88e1318_config_init,
  3023			.config_aneg = m88e1318_config_aneg,
  3024			.read_status = marvell_read_status,
  3025			.config_intr = marvell_config_intr,
  3026			.handle_interrupt = marvell_handle_interrupt,
  3027			.get_wol = m88e1318_get_wol,
  3028			.set_wol = m88e1318_set_wol,
  3029			.resume = genphy_resume,
  3030			.suspend = genphy_suspend,
  3031			.read_page = marvell_read_page,
  3032			.write_page = marvell_write_page,
  3033			.get_sset_count = marvell_get_sset_count,
  3034			.get_strings = marvell_get_strings,
  3035			.get_stats = marvell_get_stats,
  3036		},
  3037		{
  3038			.phy_id = MARVELL_PHY_ID_88E1145,
  3039			.phy_id_mask = MARVELL_PHY_ID_MASK,
  3040			.name = "Marvell 88E1145",
  3041			/* PHY_GBIT_FEATURES */
  3042			.probe = marvell_probe,
  3043			.config_init = m88e1145_config_init,
  3044			.config_aneg = m88e1101_config_aneg,
  3045			.config_intr = marvell_config_intr,
  3046			.handle_interrupt = marvell_handle_interrupt,
  3047			.resume = genphy_resume,
  3048			.suspend = genphy_suspend,
  3049			.read_page = marvell_read_page,
  3050			.write_page = marvell_write_page,
  3051			.get_sset_count = marvell_get_sset_count,
  3052			.get_strings = marvell_get_strings,
  3053			.get_stats = marvell_get_stats,
  3054			.get_tunable = m88e1111_get_tunable,
  3055			.set_tunable = m88e1111_set_tunable,
  3056		},
  3057		{
  3058			.phy_id = MARVELL_PHY_ID_88E1149R,
  3059			.phy_id_mask = MARVELL_PHY_ID_MASK,
  3060			.name = "Marvell 88E1149R",
  3061			/* PHY_GBIT_FEATURES */
  3062			.probe = marvell_probe,
  3063			.config_init = m88e1149_config_init,
  3064			.config_aneg = m88e1118_config_aneg,
  3065			.config_intr = marvell_config_intr,
  3066			.handle_interrupt = marvell_handle_interrupt,
  3067			.resume = genphy_resume,
  3068			.suspend = genphy_suspend,
  3069			.read_page = marvell_read_page,
  3070			.write_page = marvell_write_page,
  3071			.get_sset_count = marvell_get_sset_count,
  3072			.get_strings = marvell_get_strings,
  3073			.get_stats = marvell_get_stats,
  3074		},
  3075		{
  3076			.phy_id = MARVELL_PHY_ID_88E1240,
  3077			.phy_id_mask = MARVELL_PHY_ID_MASK,
  3078			.name = "Marvell 88E1240",
  3079			/* PHY_GBIT_FEATURES */
  3080			.probe = marvell_probe,
  3081			.config_init = m88e1112_config_init,
  3082			.config_aneg = marvell_config_aneg,
  3083			.config_intr = marvell_config_intr,
  3084			.handle_interrupt = marvell_handle_interrupt,
  3085			.resume = genphy_resume,
  3086			.suspend = genphy_suspend,
  3087			.read_page = marvell_read_page,
  3088			.write_page = marvell_write_page,
  3089			.get_sset_count = marvell_get_sset_count,
  3090			.get_strings = marvell_get_strings,
  3091			.get_stats = marvell_get_stats,
  3092			.get_tunable = m88e1011_get_tunable,
  3093			.set_tunable = m88e1011_set_tunable,
  3094		},
  3095		{
  3096			.phy_id = MARVELL_PHY_ID_88E1116R,
  3097			.phy_id_mask = MARVELL_PHY_ID_MASK,
  3098			.name = "Marvell 88E1116R",
  3099			/* PHY_GBIT_FEATURES */
  3100			.probe = marvell_probe,
  3101			.config_init = m88e1116r_config_init,
  3102			.config_intr = marvell_config_intr,
  3103			.handle_interrupt = marvell_handle_interrupt,
  3104			.resume = genphy_resume,
  3105			.suspend = genphy_suspend,
  3106			.read_page = marvell_read_page,
  3107			.write_page = marvell_write_page,
  3108			.get_sset_count = marvell_get_sset_count,
  3109			.get_strings = marvell_get_strings,
  3110			.get_stats = marvell_get_stats,
  3111			.get_tunable = m88e1011_get_tunable,
  3112			.set_tunable = m88e1011_set_tunable,
  3113		},
  3114		{
  3115			.phy_id = MARVELL_PHY_ID_88E1510,
  3116			.phy_id_mask = MARVELL_PHY_ID_MASK,
  3117			.name = "Marvell 88E1510",
  3118			.driver_data = DEF_MARVELL_HWMON_OPS(m88e1510_hwmon_ops),
  3119			.features = PHY_GBIT_FIBRE_FEATURES,
  3120			.flags = PHY_POLL_CABLE_TEST,
  3121			.probe = m88e1510_probe,
  3122			.config_init = m88e1510_config_init,
  3123			.config_aneg = m88e1510_config_aneg,
  3124			.read_status = marvell_read_status,
  3125			.config_intr = marvell_config_intr,
  3126			.handle_interrupt = marvell_handle_interrupt,
  3127			.get_wol = m88e1318_get_wol,
  3128			.set_wol = m88e1318_set_wol,
  3129			.resume = marvell_resume,
  3130			.suspend = marvell_suspend,
  3131			.read_page = marvell_read_page,
  3132			.write_page = marvell_write_page,
  3133			.get_sset_count = marvell_get_sset_count,
  3134			.get_strings = marvell_get_strings,
  3135			.get_stats = marvell_get_stats,
  3136			.set_loopback = m88e1510_loopback,
  3137			.get_tunable = m88e1011_get_tunable,
  3138			.set_tunable = m88e1011_set_tunable,
  3139			.cable_test_start = marvell_vct7_cable_test_start,
  3140			.cable_test_tdr_start = marvell_vct5_cable_test_tdr_start,
  3141			.cable_test_get_status = marvell_vct7_cable_test_get_status,
  3142		},
  3143		{
  3144			.phy_id = MARVELL_PHY_ID_88E1540,
  3145			.phy_id_mask = MARVELL_PHY_ID_MASK,
  3146			.name = "Marvell 88E1540",
  3147			.driver_data = DEF_MARVELL_HWMON_OPS(m88e1510_hwmon_ops),
  3148			/* PHY_GBIT_FEATURES */
  3149			.flags = PHY_POLL_CABLE_TEST,
  3150			.probe = marvell_probe,
  3151			.config_init = marvell_1011gbe_config_init,
  3152			.config_aneg = m88e1510_config_aneg,
  3153			.read_status = marvell_read_status,
  3154			.config_intr = marvell_config_intr,
  3155			.handle_interrupt = marvell_handle_interrupt,
  3156			.resume = genphy_resume,
  3157			.suspend = genphy_suspend,
  3158			.read_page = marvell_read_page,
  3159			.write_page = marvell_write_page,
  3160			.get_sset_count = marvell_get_sset_count,
  3161			.get_strings = marvell_get_strings,
  3162			.get_stats = marvell_get_stats,
  3163			.get_tunable = m88e1540_get_tunable,
  3164			.set_tunable = m88e1540_set_tunable,
  3165			.cable_test_start = marvell_vct7_cable_test_start,
  3166			.cable_test_tdr_start = marvell_vct5_cable_test_tdr_start,
  3167			.cable_test_get_status = marvell_vct7_cable_test_get_status,
  3168		},
  3169		{
  3170			.phy_id = MARVELL_PHY_ID_88E1543,
  3171			.phy_id_mask = MARVELL_PHY_ID_MASK,
  3172			.name = "Marvell 88E1543",
  3173			.probe = m88e1510_probe,
  3174			/* PHY_GBIT_FEATURES */
  3175			.flags = PHY_POLL_CABLE_TEST,
  3176			.config_init = marvell_config_init,
  3177			.config_aneg = m88e1510_config_aneg,
  3178			.read_status = marvell_read_status,
  3179			.ack_interrupt = marvell_ack_interrupt,
  3180			.config_intr = marvell_config_intr,
> 3181			.did_interrupt = m88e1121_did_interrupt,
  3182			.resume = genphy_resume,
  3183			.suspend = genphy_suspend,
  3184			.read_page = marvell_read_page,
  3185			.write_page = marvell_write_page,
  3186			.get_sset_count = marvell_get_sset_count,
  3187			.get_strings = marvell_get_strings,
  3188			.get_stats = marvell_get_stats,
  3189			.get_tunable = m88e1540_get_tunable,
  3190			.set_tunable = m88e1540_set_tunable,
  3191			.cable_test_start = marvell_vct7_cable_test_start,
  3192			.cable_test_tdr_start = marvell_vct5_cable_test_tdr_start,
  3193			.cable_test_get_status = marvell_vct7_cable_test_get_status,
  3194		},
  3195		{
  3196			.phy_id = MARVELL_PHY_ID_88E1545,
  3197			.phy_id_mask = MARVELL_PHY_ID_MASK,
  3198			.name = "Marvell 88E1545",
  3199			.driver_data = DEF_MARVELL_HWMON_OPS(m88e1510_hwmon_ops),
  3200			.probe = marvell_probe,
  3201			/* PHY_GBIT_FEATURES */
  3202			.flags = PHY_POLL_CABLE_TEST,
  3203			.config_init = marvell_1011gbe_config_init,
  3204			.config_aneg = m88e1510_config_aneg,
  3205			.read_status = marvell_read_status,
  3206			.config_intr = marvell_config_intr,
  3207			.handle_interrupt = marvell_handle_interrupt,
  3208			.resume = genphy_resume,
  3209			.suspend = genphy_suspend,
  3210			.read_page = marvell_read_page,
  3211			.write_page = marvell_write_page,
  3212			.get_sset_count = marvell_get_sset_count,
  3213			.get_strings = marvell_get_strings,
  3214			.get_stats = marvell_get_stats,
  3215			.get_tunable = m88e1540_get_tunable,
  3216			.set_tunable = m88e1540_set_tunable,
  3217			.cable_test_start = marvell_vct7_cable_test_start,
  3218			.cable_test_tdr_start = marvell_vct5_cable_test_tdr_start,
  3219			.cable_test_get_status = marvell_vct7_cable_test_get_status,
  3220		},
  3221		{
  3222			.phy_id = MARVELL_PHY_ID_88E3016,
  3223			.phy_id_mask = MARVELL_PHY_ID_MASK,
  3224			.name = "Marvell 88E3016",
  3225			/* PHY_BASIC_FEATURES */
  3226			.probe = marvell_probe,
  3227			.config_init = m88e3016_config_init,
  3228			.aneg_done = marvell_aneg_done,
  3229			.read_status = marvell_read_status,
  3230			.config_intr = marvell_config_intr,
  3231			.handle_interrupt = marvell_handle_interrupt,
  3232			.resume = genphy_resume,
  3233			.suspend = genphy_suspend,
  3234			.read_page = marvell_read_page,
  3235			.write_page = marvell_write_page,
  3236			.get_sset_count = marvell_get_sset_count,
  3237			.get_strings = marvell_get_strings,
  3238			.get_stats = marvell_get_stats,
  3239		},
  3240		{
  3241			.phy_id = MARVELL_PHY_ID_88E6341_FAMILY,
  3242			.phy_id_mask = MARVELL_PHY_ID_MASK,
  3243			.name = "Marvell 88E6341 Family",
  3244			.driver_data = DEF_MARVELL_HWMON_OPS(m88e1510_hwmon_ops),
  3245			/* PHY_GBIT_FEATURES */
  3246			.flags = PHY_POLL_CABLE_TEST,
  3247			.probe = marvell_probe,
  3248			.config_init = marvell_1011gbe_config_init,
  3249			.config_aneg = m88e6390_config_aneg,
  3250			.read_status = marvell_read_status,
  3251			.config_intr = marvell_config_intr,
  3252			.handle_interrupt = marvell_handle_interrupt,
  3253			.resume = genphy_resume,
  3254			.suspend = genphy_suspend,
  3255			.read_page = marvell_read_page,
  3256			.write_page = marvell_write_page,
  3257			.get_sset_count = marvell_get_sset_count,
  3258			.get_strings = marvell_get_strings,
  3259			.get_stats = marvell_get_stats,
  3260			.get_tunable = m88e1540_get_tunable,
  3261			.set_tunable = m88e1540_set_tunable,
  3262			.cable_test_start = marvell_vct7_cable_test_start,
  3263			.cable_test_tdr_start = marvell_vct5_cable_test_tdr_start,
  3264			.cable_test_get_status = marvell_vct7_cable_test_get_status,
  3265		},
  3266		{
  3267			.phy_id = MARVELL_PHY_ID_88E6390_FAMILY,
  3268			.phy_id_mask = MARVELL_PHY_ID_MASK,
  3269			.name = "Marvell 88E6390 Family",
  3270			.driver_data = DEF_MARVELL_HWMON_OPS(m88e6390_hwmon_ops),
  3271			/* PHY_GBIT_FEATURES */
  3272			.flags = PHY_POLL_CABLE_TEST,
  3273			.probe = marvell_probe,
  3274			.config_init = marvell_1011gbe_config_init,
  3275			.config_aneg = m88e6390_config_aneg,
  3276			.read_status = marvell_read_status,
  3277			.config_intr = marvell_config_intr,
  3278			.handle_interrupt = marvell_handle_interrupt,
  3279			.resume = genphy_resume,
  3280			.suspend = genphy_suspend,
  3281			.read_page = marvell_read_page,
  3282			.write_page = marvell_write_page,
  3283			.get_sset_count = marvell_get_sset_count,
  3284			.get_strings = marvell_get_strings,
  3285			.get_stats = marvell_get_stats,
  3286			.get_tunable = m88e1540_get_tunable,
  3287			.set_tunable = m88e1540_set_tunable,
  3288			.cable_test_start = marvell_vct7_cable_test_start,
  3289			.cable_test_tdr_start = marvell_vct5_cable_test_tdr_start,
  3290			.cable_test_get_status = marvell_vct7_cable_test_get_status,
  3291		},
  3292		{
  3293			.phy_id = MARVELL_PHY_ID_88E6393_FAMILY,
  3294			.phy_id_mask = MARVELL_PHY_ID_MASK,
  3295			.name = "Marvell 88E6393 Family",
  3296			.driver_data = DEF_MARVELL_HWMON_OPS(m88e6393_hwmon_ops),
  3297			/* PHY_GBIT_FEATURES */
  3298			.flags = PHY_POLL_CABLE_TEST,
  3299			.probe = marvell_probe,
  3300			.config_init = marvell_1011gbe_config_init,
  3301			.config_aneg = m88e1510_config_aneg,
  3302			.read_status = marvell_read_status,
  3303			.config_intr = marvell_config_intr,
  3304			.handle_interrupt = marvell_handle_interrupt,
  3305			.resume = genphy_resume,
  3306			.suspend = genphy_suspend,
  3307			.read_page = marvell_read_page,
  3308			.write_page = marvell_write_page,
  3309			.get_sset_count = marvell_get_sset_count,
  3310			.get_strings = marvell_get_strings,
  3311			.get_stats = marvell_get_stats,
  3312			.get_tunable = m88e1540_get_tunable,
  3313			.set_tunable = m88e1540_set_tunable,
  3314			.cable_test_start = marvell_vct7_cable_test_start,
  3315			.cable_test_tdr_start = marvell_vct5_cable_test_tdr_start,
  3316			.cable_test_get_status = marvell_vct7_cable_test_get_status,
  3317		},
  3318		{
  3319			.phy_id = MARVELL_PHY_ID_88E1340S,
  3320			.phy_id_mask = MARVELL_PHY_ID_MASK,
  3321			.name = "Marvell 88E1340S",
  3322			.driver_data = DEF_MARVELL_HWMON_OPS(m88e1510_hwmon_ops),
  3323			.probe = marvell_probe,
  3324			/* PHY_GBIT_FEATURES */
  3325			.config_init = marvell_1011gbe_config_init,
  3326			.config_aneg = m88e1510_config_aneg,
  3327			.read_status = marvell_read_status,
  3328			.config_intr = marvell_config_intr,
  3329			.handle_interrupt = marvell_handle_interrupt,
  3330			.resume = genphy_resume,
  3331			.suspend = genphy_suspend,
  3332			.read_page = marvell_read_page,
  3333			.write_page = marvell_write_page,
  3334			.get_sset_count = marvell_get_sset_count,
  3335			.get_strings = marvell_get_strings,
  3336			.get_stats = marvell_get_stats,
  3337			.get_tunable = m88e1540_get_tunable,
  3338			.set_tunable = m88e1540_set_tunable,
  3339		},
  3340		{
  3341			.phy_id = MARVELL_PHY_ID_88E1548P,
  3342			.phy_id_mask = MARVELL_PHY_ID_MASK,
  3343			.name = "Marvell 88E1548P",
  3344			.driver_data = DEF_MARVELL_HWMON_OPS(m88e1510_hwmon_ops),
  3345			.probe = marvell_probe,
  3346			.features = PHY_GBIT_FIBRE_FEATURES,
  3347			.config_init = marvell_1011gbe_config_init,
  3348			.config_aneg = m88e1510_config_aneg,
  3349			.read_status = marvell_read_status,
  3350			.config_intr = marvell_config_intr,
  3351			.handle_interrupt = marvell_handle_interrupt,
  3352			.resume = genphy_resume,
  3353			.suspend = genphy_suspend,
  3354			.read_page = marvell_read_page,
  3355			.write_page = marvell_write_page,
  3356			.get_sset_count = marvell_get_sset_count,
  3357			.get_strings = marvell_get_strings,
  3358			.get_stats = marvell_get_stats,
  3359			.get_tunable = m88e1540_get_tunable,
  3360			.set_tunable = m88e1540_set_tunable,
  3361		},
  3362	};
  3363	
> 3364	module_phy_driver(marvell_drivers);
  3365	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] net: phy: marvell: add 88E1543 support
  2022-04-03 19:01     ` Russell King (Oracle)
@ 2022-04-03 19:54       ` Andrew Lunn
  0 siblings, 0 replies; 6+ messages in thread
From: Andrew Lunn @ 2022-04-03 19:54 UTC (permalink / raw)
  To: Russell King (Oracle)
  Cc: Stijn Tintel, netdev, linux-kernel, pali, kabel, pabeni, kuba,
	davem, hkallweit1

On Sun, Apr 03, 2022 at 08:01:33PM +0100, Russell King (Oracle) wrote:
> On Sun, Apr 03, 2022 at 09:30:06PM +0300, Stijn Tintel wrote:
> > On 3/04/2022 21:19, Russell King (Oracle) wrote:
> > > Hi,
> > >
> > > On Sun, Apr 03, 2022 at 08:29:36PM +0300, Stijn Tintel wrote:
> > >> Add support for the Marvell Alaska 88E1543 PHY used in the WatchGuard
> > >> Firebox M200 and M300.
> > > Looking at the IDs, this PHY should already be supported - reporting as
> > > an 88E1545. Why do you need this patch?
> > >
> > Thanks for pointing that out, you're right. Please disregard the patch. 
> > Would it be acceptable to change the name member to "Marvell
> > 88E1543/88E1545" to make this more obvious?
> 
> Unfortuantely not, the driver name is used in sysfs, and as I'm sure
> you're aware, "/" is a pathname element separator and thus can't be
> used.

The name is however reasonably free text. For example:

micrel.c:	.name		= "Micrel KSZ8021 or KSZ8031",

	Andrew

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-04-03 19:54 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-03 17:29 [PATCH] net: phy: marvell: add 88E1543 support Stijn Tintel
2022-04-03 18:19 ` Russell King (Oracle)
2022-04-03 18:30   ` Stijn Tintel
2022-04-03 19:01     ` Russell King (Oracle)
2022-04-03 19:54       ` Andrew Lunn
2022-04-03 19:34 ` kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.