Re: [PATCH 4/9] efi: register EFI rtc platform device only when available

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 19/02/2020 18:19:02+0100, Ard Biesheuvel wrote:
> Drop the separate driver that registers the EFI rtc on all EFI
> systems that have runtime services available, and instead, move
> the registration into the core EFI code, and make it conditional
> on whether the actual time related services are available.
> 
> Cc: Alessandro Zummo <a.zummo@xxxxxxxxxxxx>
> Cc: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxx>
> Cc: linux-rtc@xxxxxxxxxxxxxxx
> Signed-off-by: Ard Biesheuvel <ardb@xxxxxxxxxx>
Acked-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxx>

> ---
>  drivers/firmware/efi/efi.c     |  3 ++
>  drivers/rtc/Makefile           |  4 ---
>  drivers/rtc/rtc-efi-platform.c | 35 --------------------
>  3 files changed, 3 insertions(+), 39 deletions(-)
> 
> diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c
> index abf4c02e0201..69a585106d30 100644
> --- a/drivers/firmware/efi/efi.c
> +++ b/drivers/firmware/efi/efi.c
> @@ -321,6 +321,9 @@ static int __init efisubsys_init(void)
>  		}
>  	}
>  
> +	if (efi_rt_services_supported(EFI_RT_SUPPORTED_TIME_SERVICES))
> +		platform_device_register_simple("rtc-efi", 0, NULL, 0);
> +
>  	/* We register the efi directory at /sys/firmware/efi */
>  	efi_kobj = kobject_create_and_add("efi", firmware_kobj);
>  	if (!efi_kobj) {
> diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile
> index 4ac8f19fb631..24c7dfa1bd7d 100644
> --- a/drivers/rtc/Makefile
> +++ b/drivers/rtc/Makefile
> @@ -12,10 +12,6 @@ obj-$(CONFIG_RTC_CLASS)		+= rtc-core.o
>  obj-$(CONFIG_RTC_MC146818_LIB)	+= rtc-mc146818-lib.o
>  rtc-core-y			:= class.o interface.o
>  
> -ifdef CONFIG_RTC_DRV_EFI
> -rtc-core-y			+= rtc-efi-platform.o
> -endif
> -
>  rtc-core-$(CONFIG_RTC_NVMEM)		+= nvmem.o
>  rtc-core-$(CONFIG_RTC_INTF_DEV)		+= dev.o
>  rtc-core-$(CONFIG_RTC_INTF_PROC)	+= proc.o
> diff --git a/drivers/rtc/rtc-efi-platform.c b/drivers/rtc/rtc-efi-platform.c
> deleted file mode 100644
> index 6c037dc4e3dc..000000000000
> --- a/drivers/rtc/rtc-efi-platform.c
> +++ /dev/null
> @@ -1,35 +0,0 @@
> -// SPDX-License-Identifier: GPL-2.0
> -/*
> - * Moved from arch/ia64/kernel/time.c
> - *
> - * Copyright (C) 1998-2003 Hewlett-Packard Co
> - *	Stephane Eranian <eranian@xxxxxxxxxx>
> - *	David Mosberger <davidm@xxxxxxxxxx>
> - * Copyright (C) 1999 Don Dugger <don.dugger@xxxxxxxxx>
> - * Copyright (C) 1999-2000 VA Linux Systems
> - * Copyright (C) 1999-2000 Walt Drummond <drummond@xxxxxxxxxxx>
> - */
> -
> -#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
> -
> -#include <linux/init.h>
> -#include <linux/kernel.h>
> -#include <linux/module.h>
> -#include <linux/efi.h>
> -#include <linux/platform_device.h>
> -
> -static struct platform_device rtc_efi_dev = {
> -	.name = "rtc-efi",
> -	.id = -1,
> -};
> -
> -static int __init rtc_init(void)
> -{
> -	if (efi_enabled(EFI_RUNTIME_SERVICES))
> -		if (platform_device_register(&rtc_efi_dev) < 0)
> -			pr_err("unable to register rtc device...\n");
> -
> -	/* not necessarily an error */
> -	return 0;
> -}
> -module_init(rtc_init);
> -- 
> 2.17.1
> 

-- 
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux