net: dsa: sja1105: allow the TTEthernet configuration in the static config for SJA1110
authorVladimir Oltean <vladimir.oltean@nxp.com>
Fri, 18 Jun 2021 13:44:00 +0000 (16:44 +0300)
committerDavid S. Miller <davem@davemloft.net>
Fri, 18 Jun 2021 19:26:17 +0000 (12:26 -0700)
Currently sja1105_static_config_check_valid() is coded up to detect
whether TTEthernet is supported based on device ID, and this check was
not updated to cover SJA1110.

However, it is desirable to have as few checks for the device ID as
possible, so the driver core is more generic. So what we can do is look
at the static config table operations implemented by that specific
switch family (populated by sja1105_static_config_init) whether the
schedule table has a non-zero maximum entry count (meaning that it is
supported) or not.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/sja1105/sja1105_static_config.c

index 1491b72008f3c333e8042555ee820ce838ee43a8..7a422ef4deb6f29c4a1a3d65001f59535af0ab40 100644 (file)
@@ -1052,8 +1052,7 @@ sja1105_static_config_check_valid(const struct sja1105_static_config *config,
        (tables[blk_idx].entry_count == tables[blk_idx].ops->max_entry_count)
 
        if (tables[BLK_IDX_SCHEDULE].entry_count) {
-               if (config->device_id != SJA1105T_DEVICE_ID &&
-                   config->device_id != SJA1105QS_DEVICE_ID)
+               if (!tables[BLK_IDX_SCHEDULE].ops->max_entry_count)
                        return SJA1105_TTETHERNET_NOT_SUPPORTED;
 
                if (tables[BLK_IDX_SCHEDULE_ENTRY_POINTS].entry_count == 0)