net: smc91x: ACPI Enable lan91x adapters
authorJeremy Linton <jeremy.linton@arm.com>
Mon, 11 Jul 2016 15:28:40 +0000 (10:28 -0500)
committerDavid S. Miller <davem@davemloft.net>
Mon, 11 Jul 2016 20:50:03 +0000 (13:50 -0700)
Enable lan91x adapters in some ARM machines and models
when booted with an ACPI kernel.

Signed-off-by: Jeremy Linton <jeremy.linton@arm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/smsc/smc91x.c

index 18ac52ded6965a5f5dbe811aa33d6ba11b19686a..726b80f4590660f2d08b919320deac3bb54a82ea 100644 (file)
@@ -2195,6 +2195,12 @@ static void smc_release_datacs(struct platform_device *pdev, struct net_device *
        }
 }
 
+static const struct acpi_device_id smc91x_acpi_match[] = {
+       { "LNRO0003", 0 },
+       { }
+};
+MODULE_DEVICE_TABLE(acpi, smc91x_acpi_match);
+
 #if IS_BUILTIN(CONFIG_OF)
 static const struct of_device_id smc91x_match[] = {
        { .compatible = "smsc,lan91c94", },
@@ -2274,7 +2280,6 @@ static int smc_drv_probe(struct platform_device *pdev)
 #if IS_BUILTIN(CONFIG_OF)
        match = of_match_device(of_match_ptr(smc91x_match), &pdev->dev);
        if (match) {
-               struct device_node *np = pdev->dev.of_node;
                u32 val;
 
                /* Optional pwrdwn GPIO configured? */
@@ -2300,7 +2305,8 @@ static int smc_drv_probe(struct platform_device *pdev)
                        usleep_range(750, 1000);
 
                /* Combination of IO widths supported, default to 16-bit */
-               if (!of_property_read_u32(np, "reg-io-width", &val)) {
+               if (!device_property_read_u32(&pdev->dev, "reg-io-width",
+                                             &val)) {
                        if (val & 1)
                                lp->cfg.flags |= SMC91X_USE_8BIT;
                        if ((val == 0) || (val & 2))
@@ -2478,7 +2484,8 @@ static struct platform_driver smc_driver = {
        .driver         = {
                .name   = CARDNAME,
                .pm     = &smc_drv_pm_ops,
-               .of_match_table = of_match_ptr(smc91x_match),
+               .of_match_table   = of_match_ptr(smc91x_match),
+               .acpi_match_table = smc91x_acpi_match,
        },
 };