firmware: arm_sdei: Fix DT platform device creation
authorJames Morse <james.morse@arm.com>
Fri, 21 Dec 2018 19:25:19 +0000 (19:25 +0000)
committerWill Deacon <will.deacon@arm.com>
Thu, 3 Jan 2019 18:03:54 +0000 (18:03 +0000)
It turns out the dt-probing part of this wasn't tested properly after it
was merged. commit 3aa0582fdb82 ("of: platform: populate /firmware/ node
from of_platform_default_populate_init()") changed the core-code to
generate the platform devices, meaning the driver's attempt fails, and it
bails out.

Fix this by removing the manual platform-device creation for DT systems,
core code has always done this for us.

CC: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Signed-off-by: James Morse <james.morse@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
drivers/firmware/arm_sdei.c

index dffb47c6b48011034e9dffd188b585213f88cb8b..c64c7da738297453ee05f173c1a6c0d4c0fadbe9 100644 (file)
@@ -1009,7 +1009,6 @@ static struct platform_driver sdei_driver = {
 
 static bool __init sdei_present_dt(void)
 {
-       struct platform_device *pdev;
        struct device_node *np, *fw_np;
 
        fw_np = of_find_node_by_name(NULL, "firmware");
@@ -1019,11 +1018,7 @@ static bool __init sdei_present_dt(void)
        np = of_find_matching_node(fw_np, sdei_of_match);
        if (!np)
                return false;
-
-       pdev = of_platform_device_create(np, sdei_driver.driver.name, NULL);
        of_node_put(np);
-       if (!pdev)
-               return false;
 
        return true;
 }