powernv: Remove get/set_rtc_time when they are not present

Currently we continue to poll get/set_rtc_time even when we know they
are not working.

This changes it so that if it fails at boot time we remove the ppc_md
get/set_rtc_time hooks so that we don't end up polling known broken
calls.

Signed-off-by: Michael Neuling <mikey@neuling.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
Michael Neuling 2013-11-29 14:22:48 +11:00 committed by Benjamin Herrenschmidt
parent 0150a3dd92
commit 2c49195b6a
1 changed files with 5 additions and 1 deletions

View File

@ -18,6 +18,7 @@
#include <asm/opal.h>
#include <asm/firmware.h>
#include <asm/machdep.h>
static void opal_to_tm(u32 y_m_d, u64 h_m_s_ms, struct rtc_time *tm)
{
@ -48,8 +49,11 @@ unsigned long __init opal_get_boot_time(void)
else
mdelay(10);
}
if (rc != OPAL_SUCCESS)
if (rc != OPAL_SUCCESS) {
ppc_md.get_rtc_time = NULL;
ppc_md.set_rtc_time = NULL;
return 0;
}
y_m_d = be32_to_cpu(__y_m_d);
h_m_s_ms = be64_to_cpu(__h_m_s_ms);
opal_to_tm(y_m_d, h_m_s_ms, &tm);