From 8411b9517da0d5198e04c7630b54dc73b847aac0 Mon Sep 17 00:00:00 2001 From: Luke Hinds <7058938+lukehinds@users.noreply.github.com> Date: Wed, 22 Jan 2020 16:03:00 +0000 Subject: [PATCH 173/552] Initialise rpi-firmware before clk-bcm2835 The IMA (Integrity Measurement Architecture) looks for a TPM (Trusted Platform Module) having been registered when it initialises; otherwise it assumes there is no TPM. It has been observed on BCM2835 that IMA is initialised before TPM, and that initialising the BCM2835 clock driver before the firmware driver has the effect of reversing this order. Change the firmware driver to initialise at core_initcall, delaying the BCM2835 clock driver to postcore_initcall. See: https://github.com/raspberrypi/linux/issues/3291 https://github.com/raspberrypi/linux/pull/3297 Signed-off-by: Luke Hinds Co-authored-by: Phil Elwell --- drivers/clk/bcm/clk-bcm2835.c | 2 +- drivers/firmware/raspberrypi.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c index 84f24244d1b5..20155bb28e3c 100644 --- a/drivers/clk/bcm/clk-bcm2835.c +++ b/drivers/clk/bcm/clk-bcm2835.c @@ -2429,7 +2429,7 @@ static int __init __bcm2835_clk_driver_init(void) { return platform_driver_register(&bcm2835_clk_driver); } -core_initcall(__bcm2835_clk_driver_init); +postcore_initcall(__bcm2835_clk_driver_init); MODULE_AUTHOR("Eric Anholt "); MODULE_DESCRIPTION("BCM2835 clock driver"); diff --git a/drivers/firmware/raspberrypi.c b/drivers/firmware/raspberrypi.c index 4b9df9c31d22..f31b782fb3ba 100644 --- a/drivers/firmware/raspberrypi.c +++ b/drivers/firmware/raspberrypi.c @@ -492,7 +492,7 @@ static int __init rpi_firmware_init(void) out1: return ret; } -subsys_initcall(rpi_firmware_init); +core_initcall(rpi_firmware_init); static void __init rpi_firmware_exit(void) { -- 2.33.0