platform/chrome: cros_ec_lpc: Move mec_init to device probe
authorBrian Norris <briannorris@chromium.org>
Tue, 1 Nov 2022 22:22:06 +0000 (15:22 -0700)
committerTzung-Bi Shih <tzungbi@kernel.org>
Wed, 2 Nov 2022 04:28:47 +0000 (12:28 +0800)
Disregarding the weird global state hiding in this cros_ec_lpc_mec_*()
stuff, it belongs in device probe. We shouldn't assume we can access
hardware resources when the device isn't attached to the driver.

Signed-off-by: Brian Norris <briannorris@chromium.org>
Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
Link: https://lore.kernel.org/r/20221101152132.v2.1.I0728421299079b104710c202d5d7095b2674fd8c@changeid
drivers/platform/chrome/cros_ec_lpc.c

index 6ef5e5d..4830218 100644 (file)
@@ -354,6 +354,9 @@ static int cros_ec_lpc_probe(struct platform_device *pdev)
                return -EBUSY;
        }
 
+       cros_ec_lpc_mec_init(EC_HOST_CMD_REGION0,
+                            EC_LPC_ADDR_MEMMAP + EC_MEMMAP_SIZE);
+
        /*
         * Read the mapped ID twice, the first one is assuming the
         * EC is a Microchip Embedded Controller (MEC) variant, if the
@@ -586,9 +589,6 @@ static int __init cros_ec_lpc_init(void)
                return -ENODEV;
        }
 
-       cros_ec_lpc_mec_init(EC_HOST_CMD_REGION0,
-                            EC_LPC_ADDR_MEMMAP + EC_MEMMAP_SIZE);
-
        /* Register the driver */
        ret = platform_driver_register(&cros_ec_lpc_driver);
        if (ret) {