diff mbox series

[v2,2/4] net: dsa: microchip: Improve phy mode message

Message ID 20200907101208.1223-3-pbarker@konsulko.com
State Changes Requested
Delegated to: David Miller
Headers show
Series ksz9477 dsa switch driver improvements | expand

Commit Message

Paul Barker Sept. 7, 2020, 10:12 a.m. UTC
Always print the selected phy mode for the CPU port when using the
ksz9477 driver. If the phy mode was changed, also print the previous
mode to aid in debugging.

To make the message more clear, prefix it with the port number which it
applies to and improve the language a little.

Signed-off-by: Paul Barker <pbarker@konsulko.com>
---
 drivers/net/dsa/microchip/ksz9477.c | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

Comments

kernel test robot Sept. 7, 2020, 12:08 p.m. UTC | #1
Hi Paul,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v5.9-rc4 next-20200903]
[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/0day-ci/linux/commits/Paul-Barker/ksz9477-dsa-switch-driver-improvements/20200907-181434
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git f4d51dffc6c01a9e94650d95ce0104964f8ae822
config: mips-randconfig-s031-20200907 (attached as .config)
compiler: mips64-linux-gcc (GCC) 9.3.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.2-191-g10164920-dirty
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=mips 

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


sparse warnings: (new ones prefixed by >>)

>> drivers/net/dsa/microchip/ksz9477.c:1283:43: sparse: sparse: incorrect type in assignment (different modifiers) @@     expected char *prev_mode @@     got char const * @@
>> drivers/net/dsa/microchip/ksz9477.c:1283:43: sparse:     expected char *prev_mode
>> drivers/net/dsa/microchip/ksz9477.c:1283:43: sparse:     got char const *

# https://github.com/0day-ci/linux/commit/1513424eb4a28841a6305ecbbf6a172b4a605014
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Paul-Barker/ksz9477-dsa-switch-driver-improvements/20200907-181434
git checkout 1513424eb4a28841a6305ecbbf6a172b4a605014
vim +1283 drivers/net/dsa/microchip/ksz9477.c

  1256	
  1257	static void ksz9477_config_cpu_port(struct dsa_switch *ds)
  1258	{
  1259		struct ksz_device *dev = ds->priv;
  1260		struct ksz_port *p;
  1261		int i;
  1262	
  1263		ds->num_ports = dev->port_cnt;
  1264	
  1265		for (i = 0; i < dev->port_cnt; i++) {
  1266			if (dsa_is_cpu_port(ds, i) && (dev->cpu_ports & (1 << i))) {
  1267				phy_interface_t interface;
  1268				char *prev_msg, *prev_mode;
  1269	
  1270				dev->cpu_port = i;
  1271				dev->host_mask = (1 << dev->cpu_port);
  1272				dev->port_mask |= dev->host_mask;
  1273	
  1274				/* Read from XMII register to determine host port
  1275				 * interface.  If set specifically in device tree
  1276				 * note the difference to help debugging.
  1277				 */
  1278				interface = ksz9477_get_interface(dev, i);
  1279				if (!dev->interface)
  1280					dev->interface = interface;
  1281				if (interface && interface != dev->interface) {
  1282					prev_msg = " instead of ";
> 1283					prev_mode = phy_modes(interface);
  1284				} else {
  1285					prev_msg = "";
  1286					prev_mode = "";
  1287				}
  1288				dev_info(dev->dev,
  1289					 "Port%d: using phy mode %s%s%s\n",
  1290					 i,
  1291					 phy_modes(dev->interface),
  1292					 prev_msg,
  1293					 prev_mode);
  1294	
  1295				/* enable cpu port */
  1296				ksz9477_port_setup(dev, i, true);
  1297				p = &dev->ports[dev->cpu_port];
  1298				p->vid_member = dev->port_mask;
  1299				p->on = 1;
  1300			}
  1301		}
  1302	
  1303		dev->member = dev->host_mask;
  1304	
  1305		for (i = 0; i < dev->mib_port_cnt; i++) {
  1306			if (i == dev->cpu_port)
  1307				continue;
  1308			p = &dev->ports[i];
  1309	
  1310			/* Initialize to non-zero so that ksz_cfg_port_member() will
  1311			 * be called.
  1312			 */
  1313			p->vid_member = (1 << i);
  1314			p->member = dev->port_mask;
  1315			ksz9477_port_stp_state_set(ds, i, BR_STATE_DISABLED);
  1316			p->on = 1;
  1317			if (i < dev->phy_port_cnt)
  1318				p->phy = 1;
  1319			if (dev->chip_id == 0x00947700 && i == 6) {
  1320				p->sgmii = 1;
  1321	
  1322				/* SGMII PHY detection code is not implemented yet. */
  1323				p->phy = 0;
  1324			}
  1325		}
  1326	}
  1327	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
Florian Fainelli Sept. 8, 2020, 4:11 a.m. UTC | #2
On 9/7/2020 3:12 AM, Paul Barker wrote:
> Always print the selected phy mode for the CPU port when using the
> ksz9477 driver. If the phy mode was changed, also print the previous
> mode to aid in debugging.
> 
> To make the message more clear, prefix it with the port number which it
> applies to and improve the language a little.
> 
> Signed-off-by: Paul Barker <pbarker@konsulko.com>

Once you fix the kbuild robot complaint about prev_mode not being a 
const char *:

Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
diff mbox series

Patch

diff --git a/drivers/net/dsa/microchip/ksz9477.c b/drivers/net/dsa/microchip/ksz9477.c
index df5ecd0261fa..9513af057793 100644
--- a/drivers/net/dsa/microchip/ksz9477.c
+++ b/drivers/net/dsa/microchip/ksz9477.c
@@ -1265,6 +1265,7 @@  static void ksz9477_config_cpu_port(struct dsa_switch *ds)
 	for (i = 0; i < dev->port_cnt; i++) {
 		if (dsa_is_cpu_port(ds, i) && (dev->cpu_ports & (1 << i))) {
 			phy_interface_t interface;
+			char *prev_msg, *prev_mode;
 
 			dev->cpu_port = i;
 			dev->host_mask = (1 << dev->cpu_port);
@@ -1277,11 +1278,19 @@  static void ksz9477_config_cpu_port(struct dsa_switch *ds)
 			interface = ksz9477_get_interface(dev, i);
 			if (!dev->interface)
 				dev->interface = interface;
-			if (interface && interface != dev->interface)
-				dev_info(dev->dev,
-					 "use %s instead of %s\n",
-					  phy_modes(dev->interface),
-					  phy_modes(interface));
+			if (interface && interface != dev->interface) {
+				prev_msg = " instead of ";
+				prev_mode = phy_modes(interface);
+			} else {
+				prev_msg = "";
+				prev_mode = "";
+			}
+			dev_info(dev->dev,
+				 "Port%d: using phy mode %s%s%s\n",
+				 i,
+				 phy_modes(dev->interface),
+				 prev_msg,
+				 prev_mode);
 
 			/* enable cpu port */
 			ksz9477_port_setup(dev, i, true);