efi_loader: Kconfig entries for GetTime(), SetTime()

The GetTime() and the SetTime() runtime services are not obligatory. So
let's make them customizable.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
diff --git a/lib/efi_selftest/Makefile b/lib/efi_selftest/Makefile
index cfbb40c..b032154 100644
--- a/lib/efi_selftest/Makefile
+++ b/lib/efi_selftest/Makefile
@@ -27,7 +27,6 @@
 efi_selftest_manageprotocols.o \
 efi_selftest_memory.o \
 efi_selftest_register_notify.o \
-efi_selftest_rtc.o \
 efi_selftest_snp.o \
 efi_selftest_textinput.o \
 efi_selftest_textinputex.o \
@@ -43,6 +42,7 @@
 
 obj-$(CONFIG_CPU_V7) += efi_selftest_unaligned.o
 obj-$(CONFIG_EFI_LOADER_HII) += efi_selftest_hii.o
+obj-$(CONFIG_EFI_GET_TIME) += efi_selftest_rtc.o
 
 ifeq ($(CONFIG_GENERATE_ACPI_TABLE),)
 obj-y += efi_selftest_fdt.o
diff --git a/lib/efi_selftest/efi_selftest_rtc.c b/lib/efi_selftest/efi_selftest_rtc.c
index 9eb29ad..6f7035d 100644
--- a/lib/efi_selftest/efi_selftest_rtc.c
+++ b/lib/efi_selftest/efi_selftest_rtc.c
@@ -40,7 +40,9 @@
 static int execute(void)
 {
 	efi_status_t ret;
-	struct efi_time tm, tm_old, tm_new = {
+	struct efi_time tm_old;
+#ifdef CONFIG_EFI_SET_TIME
+	struct efi_time tm, tm_new = {
 		.year = 2017,
 		.month = 5,
 		.day = 19,
@@ -48,31 +50,23 @@
 		.minute = 47,
 		.second = 53,
 	};
+#endif
 
 	/* Display current time */
 	ret = runtime->get_time(&tm_old, NULL);
 	if (ret != EFI_SUCCESS) {
-#ifdef CONFIG_CMD_DATE
 		efi_st_error(EFI_ST_NO_RTC);
 		return EFI_ST_FAILURE;
-#else
-		efi_st_todo(EFI_ST_NO_RTC);
-		return EFI_ST_SUCCESS;
-#endif
 	}
 	efi_st_printf("Time according to real time clock: "
 		      "%.4u-%.2u-%.2u %.2u:%.2u:%.2u\n",
 		      tm_old.year, tm_old.month, tm_old.day,
 		      tm_old.hour, tm_old.minute, tm_old.second);
+#ifdef CONFIG_EFI_SET_TIME
 	ret = runtime->set_time(&tm_new);
 	if (ret != EFI_SUCCESS) {
-#ifdef CONFIG_CMD_DATE
 		efi_st_error(EFI_ST_NO_RTC_SET);
 		return EFI_ST_FAILURE;
-#else
-		efi_st_todo(EFI_ST_NO_RTC_SET);
-		return EFI_ST_SUCCESS;
-#endif
 	}
 	ret = runtime->get_time(&tm, NULL);
 	if (ret != EFI_SUCCESS) {
@@ -95,6 +89,7 @@
 		efi_st_error(EFI_ST_NO_RTC_SET);
 		return EFI_ST_FAILURE;
 	}
+#endif
 
 	return EFI_ST_SUCCESS;
 }