adm6996: the GPIO interface for the adm6996l does not support switch statistics.
authorHauke Mehrtens <hauke@hauke-m.de>
Sat, 5 Jul 2014 12:13:56 +0000 (12:13 +0000)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 5 Jul 2014 12:13:56 +0000 (12:13 +0000)
This patch deactivates the statistics, adds a missing lock
initialization and fixes a waring.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 41511

target/linux/generic/files/drivers/net/phy/adm6996.c

index 7e47f3dc1a714981d3e6ad796cfbadaf182f28ed..cbb3e85fba58d23fe30ac5654840416dad46273b 100644 (file)
@@ -804,7 +804,6 @@ adm6996_get_port_link(struct switch_dev *dev, int port,
        struct adm6996_priv *priv = to_adm(dev);
        
        u16 reg = 0;
-       u32 speed;
        
        if (port >= ADM_NUM_PORTS)
                return -EINVAL;
@@ -938,7 +937,7 @@ static struct switch_attr adm6996_vlan[] = {
         },
 };
 
-static const struct switch_dev_ops adm6996_ops = {
+static struct switch_dev_ops adm6996_ops = {
        .attr_global = {
                        .attr = adm6996_globals,
                        .n_attr = ARRAY_SIZE(adm6996_globals),
@@ -992,6 +991,13 @@ static int adm6996_switch_init(struct adm6996_priv *priv, const char *alias, str
        swdev->ops = &adm6996_ops;
        swdev->alias = alias;
 
+       /* The ADM6996L connected through GPIOs does not support any switch
+          status calls */
+       if (priv->model == ADM6996L) {
+               adm6996_ops.attr_port.n_attr = 0;
+               adm6996_ops.get_port_link = NULL;
+       }
+
        pr_info ("%s: %s model PHY found.\n", alias, swdev->name);
 
        mutex_lock(&priv->reg_mutex);
@@ -1121,6 +1127,7 @@ static int adm6996_gpio_probe(struct platform_device *pdev)
                return -ENOMEM;
 
        mutex_init(&priv->reg_mutex);
+       mutex_init(&priv->mib_lock);
 
        priv->eecs = pdata->eecs;
        priv->eedi = pdata->eedi;