|
@@ -2519,6 +2519,7 @@ static int sh_eth_drv_probe(struct platform_device *pdev)
|
|
|
struct net_device *ndev = NULL;
|
|
|
struct sh_eth_private *mdp = NULL;
|
|
|
struct sh_eth_plat_data *pd = pdev->dev.platform_data;
|
|
|
+ const struct platform_device_id *id = platform_get_device_id(pdev);
|
|
|
|
|
|
/* get base addr */
|
|
|
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
|
@@ -2582,6 +2583,8 @@ static int sh_eth_drv_probe(struct platform_device *pdev)
|
|
|
#else
|
|
|
mdp->cd = &sh_eth_my_cpu_data;
|
|
|
#endif
|
|
|
+ if (id->driver_data)
|
|
|
+ mdp->cd = (struct sh_eth_cpu_data *)id->driver_data;
|
|
|
sh_eth_set_default_cpu_data(mdp->cd);
|
|
|
|
|
|
/* set function */
|
|
@@ -2696,9 +2699,16 @@ static const struct dev_pm_ops sh_eth_dev_pm_ops = {
|
|
|
#define SH_ETH_PM_OPS NULL
|
|
|
#endif
|
|
|
|
|
|
+static struct platform_device_id sh_eth_id_table[] = {
|
|
|
+ { CARDNAME },
|
|
|
+ { }
|
|
|
+};
|
|
|
+MODULE_DEVICE_TABLE(platform, sh_eth_id_table);
|
|
|
+
|
|
|
static struct platform_driver sh_eth_driver = {
|
|
|
.probe = sh_eth_drv_probe,
|
|
|
.remove = sh_eth_drv_remove,
|
|
|
+ .id_table = sh_eth_id_table,
|
|
|
.driver = {
|
|
|
.name = CARDNAME,
|
|
|
.pm = SH_ETH_PM_OPS,
|