summaryrefslogtreecommitdiff
path: root/target
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2014-07-05 12:13:56 +0000
committerHauke Mehrtens <hauke@hauke-m.de>2014-07-05 12:13:56 +0000
commit286ff7e322389e8f04326bd81a2a22e62ee64613 (patch)
treed83646b694b0e8cd126ef4abe54e5b6bc6b94dcb /target
parent069e862ad5a119d345d3e55ad3182f41b6950be8 (diff)
downloadmtk-20170518-286ff7e322389e8f04326bd81a2a22e62ee64613.zip
mtk-20170518-286ff7e322389e8f04326bd81a2a22e62ee64613.tar.gz
mtk-20170518-286ff7e322389e8f04326bd81a2a22e62ee64613.tar.bz2
adm6996: the GPIO interface for the adm6996l does not support switch statistics.
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
Diffstat (limited to 'target')
-rw-r--r--target/linux/generic/files/drivers/net/phy/adm6996.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/target/linux/generic/files/drivers/net/phy/adm6996.c b/target/linux/generic/files/drivers/net/phy/adm6996.c
index 7e47f3d..cbb3e85 100644
--- a/target/linux/generic/files/drivers/net/phy/adm6996.c
+++ b/target/linux/generic/files/drivers/net/phy/adm6996.c
@@ -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;