staging: dpaa2-ethsw: store version information of the DPSW object
authorIoana Ciornei <ioana.ciornei@nxp.com>
Tue, 14 Jul 2020 13:34:30 +0000 (16:34 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 15 Jul 2020 14:22:36 +0000 (16:22 +0200)
Store the major and minor versions of the DPSW object in the ethsw
structure. This will be used in a subsequent patch to make sure some
commands are only called on the appropriate version of object.

Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Link: https://lore.kernel.org/r/20200714133431.17532-6-ioana.ciornei@nxp.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/fsl-dpaa2/ethsw/ethsw.c
drivers/staging/fsl-dpaa2/ethsw/ethsw.h

index f283ce195c1ea45cb76532ef71f4cb59ebdbe6cf..a8fc9bcf3b8ac864c922cf8e4e9bdeccc41c5457 100644 (file)
@@ -1368,9 +1368,9 @@ static int ethsw_init(struct fsl_mc_device *sw_dev)
 {
        struct device *dev = &sw_dev->dev;
        struct ethsw_core *ethsw = dev_get_drvdata(dev);
-       u16 version_major, version_minor, i;
        struct dpsw_stp_cfg stp_cfg;
        int err;
+       u16 i;
 
        ethsw->dev_id = sw_dev->obj_desc.id;
 
@@ -1388,20 +1388,20 @@ static int ethsw_init(struct fsl_mc_device *sw_dev)
        }
 
        err = dpsw_get_api_version(ethsw->mc_io, 0,
-                                  &version_major,
-                                  &version_minor);
+                                  &ethsw->major,
+                                  &ethsw->minor);
        if (err) {
                dev_err(dev, "dpsw_get_api_version err %d\n", err);
                goto err_close;
        }
 
        /* Minimum supported DPSW version check */
-       if (version_major < DPSW_MIN_VER_MAJOR ||
-           (version_major == DPSW_MIN_VER_MAJOR &&
-            version_minor < DPSW_MIN_VER_MINOR)) {
+       if (ethsw->major < DPSW_MIN_VER_MAJOR ||
+           (ethsw->major == DPSW_MIN_VER_MAJOR &&
+            ethsw->minor < DPSW_MIN_VER_MINOR)) {
                dev_err(dev, "DPSW version %d:%d not supported. Use %d.%d or greater.\n",
-                       version_major,
-                       version_minor,
+                       ethsw->major,
+                       ethsw->minor,
                        DPSW_MIN_VER_MAJOR, DPSW_MIN_VER_MINOR);
                err = -ENOTSUPP;
                goto err_close;
index a0244f7d50034d05dd684d65c508f3b5a83d1bc2..0e520fd94dbc7b1afd0ed75e445679a8255713f4 100644 (file)
@@ -61,6 +61,7 @@ struct ethsw_core {
        struct fsl_mc_io                *mc_io;
        u16                             dpsw_handle;
        struct dpsw_attr                sw_attr;
+       u16                             major, minor;
        int                             dev_id;
        struct ethsw_port_priv          **ports;