mv88e6060.c (8dd06ef34b6e2f41b29fbf5fc1663780f2524285) | mv88e6060.c (0650bf52b31ff35dc6430fc2e37969c36baba724) |
---|---|
1// SPDX-License-Identifier: GPL-2.0+ 2/* 3 * net/dsa/mv88e6060.c - Driver for Marvell 88e6060 switch chips 4 * Copyright (c) 2008-2009 Marvell Semiconductor 5 */ 6 7#include <linux/delay.h> 8#include <linux/etherdevice.h> --- 276 unchanged lines hidden (view full) --- 285 286 return dsa_register_switch(ds); 287} 288 289static void mv88e6060_remove(struct mdio_device *mdiodev) 290{ 291 struct dsa_switch *ds = dev_get_drvdata(&mdiodev->dev); 292 | 1// SPDX-License-Identifier: GPL-2.0+ 2/* 3 * net/dsa/mv88e6060.c - Driver for Marvell 88e6060 switch chips 4 * Copyright (c) 2008-2009 Marvell Semiconductor 5 */ 6 7#include <linux/delay.h> 8#include <linux/etherdevice.h> --- 276 unchanged lines hidden (view full) --- 285 286 return dsa_register_switch(ds); 287} 288 289static void mv88e6060_remove(struct mdio_device *mdiodev) 290{ 291 struct dsa_switch *ds = dev_get_drvdata(&mdiodev->dev); 292 |
293 if (!ds) 294 return; 295 |
|
293 dsa_unregister_switch(ds); | 296 dsa_unregister_switch(ds); |
297 298 dev_set_drvdata(&mdiodev->dev, NULL); |
|
294} 295 | 299} 300 |
301static void mv88e6060_shutdown(struct mdio_device *mdiodev) 302{ 303 struct dsa_switch *ds = dev_get_drvdata(&mdiodev->dev); 304 305 if (!ds) 306 return; 307 308 dsa_switch_shutdown(ds); 309 310 dev_set_drvdata(&mdiodev->dev, NULL); 311} 312 |
|
296static const struct of_device_id mv88e6060_of_match[] = { 297 { 298 .compatible = "marvell,mv88e6060", 299 }, 300 { /* sentinel */ }, 301}; 302 303static struct mdio_driver mv88e6060_driver = { 304 .probe = mv88e6060_probe, 305 .remove = mv88e6060_remove, | 313static const struct of_device_id mv88e6060_of_match[] = { 314 { 315 .compatible = "marvell,mv88e6060", 316 }, 317 { /* sentinel */ }, 318}; 319 320static struct mdio_driver mv88e6060_driver = { 321 .probe = mv88e6060_probe, 322 .remove = mv88e6060_remove, |
323 .shutdown = mv88e6060_shutdown, |
|
306 .mdiodrv.driver = { 307 .name = "mv88e6060", 308 .of_match_table = mv88e6060_of_match, 309 }, 310}; 311 312mdio_module_driver(mv88e6060_driver); 313 314MODULE_AUTHOR("Lennert Buytenhek <buytenh@wantstofly.org>"); 315MODULE_DESCRIPTION("Driver for Marvell 88E6060 ethernet switch chip"); 316MODULE_LICENSE("GPL"); 317MODULE_ALIAS("platform:mv88e6060"); | 324 .mdiodrv.driver = { 325 .name = "mv88e6060", 326 .of_match_table = mv88e6060_of_match, 327 }, 328}; 329 330mdio_module_driver(mv88e6060_driver); 331 332MODULE_AUTHOR("Lennert Buytenhek <buytenh@wantstofly.org>"); 333MODULE_DESCRIPTION("Driver for Marvell 88E6060 ethernet switch chip"); 334MODULE_LICENSE("GPL"); 335MODULE_ALIAS("platform:mv88e6060"); |