net: sntp: remove CONFIG_TIMESTAMP constraint

CONFIG_TIMESTAMP is not related to the RTC drivers. It does not make any
sense to let the updating of the RTC by the sntp command depend on it.

Drop the CONFIG_TIMESTAMP checks.

Furthermore function dm_rtc_set() is enabled by CONFIG_DM_RTC. There is no
reason to require CONFIG_CMD_DATE when using a driver model RTC. The UEFI
sub-system can consume the RTC functions even if there is not date command.

Only check CONFIG_CMD_DATE when using a non-driver model RTC.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
This commit is contained in:
Heinrich Schuchardt 2020-10-23 12:58:27 +02:00 committed by Tom Rini
parent 2c02152a8e
commit e1864db60d

View File

@ -57,18 +57,15 @@ static void sntp_timeout_handler(void)
static void sntp_handler(uchar *pkt, unsigned dest, struct in_addr sip, static void sntp_handler(uchar *pkt, unsigned dest, struct in_addr sip,
unsigned src, unsigned len) unsigned src, unsigned len)
{ {
#ifdef CONFIG_TIMESTAMP
struct sntp_pkt_t *rpktp = (struct sntp_pkt_t *)pkt; struct sntp_pkt_t *rpktp = (struct sntp_pkt_t *)pkt;
struct rtc_time tm; struct rtc_time tm;
ulong seconds; ulong seconds;
#endif
debug("%s\n", __func__); debug("%s\n", __func__);
if (dest != sntp_our_port) if (dest != sntp_our_port)
return; return;
#ifdef CONFIG_TIMESTAMP
/* /*
* As the RTC's used in U-Boot support second resolution only * As the RTC's used in U-Boot support second resolution only
* we simply ignore the sub-second field. * we simply ignore the sub-second field.
@ -76,8 +73,7 @@ static void sntp_handler(uchar *pkt, unsigned dest, struct in_addr sip,
memcpy(&seconds, &rpktp->transmit_timestamp, sizeof(ulong)); memcpy(&seconds, &rpktp->transmit_timestamp, sizeof(ulong));
rtc_to_tm(ntohl(seconds) - 2208988800UL + net_ntp_time_offset, &tm); rtc_to_tm(ntohl(seconds) - 2208988800UL + net_ntp_time_offset, &tm);
#if defined(CONFIG_CMD_DATE) #ifdef CONFIG_DM_RTC
# ifdef CONFIG_DM_RTC
struct udevice *dev; struct udevice *dev;
int ret; int ret;
@ -86,14 +82,12 @@ static void sntp_handler(uchar *pkt, unsigned dest, struct in_addr sip,
printf("SNTP: cannot find RTC: err=%d\n", ret); printf("SNTP: cannot find RTC: err=%d\n", ret);
else else
dm_rtc_set(dev, &tm); dm_rtc_set(dev, &tm);
# else #elif defined(CONFIG_CMD_DATE)
rtc_set(&tm); rtc_set(&tm);
# endif
#endif #endif
printf("Date: %4d-%02d-%02d Time: %2d:%02d:%02d\n", printf("Date: %4d-%02d-%02d Time: %2d:%02d:%02d\n",
tm.tm_year, tm.tm_mon, tm.tm_mday, tm.tm_year, tm.tm_mon, tm.tm_mday,
tm.tm_hour, tm.tm_min, tm.tm_sec); tm.tm_hour, tm.tm_min, tm.tm_sec);
#endif
net_set_state(NETLOOP_SUCCESS); net_set_state(NETLOOP_SUCCESS);
} }