You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge tag 'rtc-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux
Pull RTC updates from Alexandre Belloni:
"This contains a few series that have been in preparation for a while
and that will help systems with RTCs that will fail in 2038, 2069 or
2100.
Subsystem:
- Add tracepoints
- Rework of the RTC/nvmem API to allow drivers to discard struct
nvmem_config after registration
- New range API, drivers can now expose the useful range of the RTC
- New offset API the core is now able to add an offset to the RTC
time, modifying the supported range.
- Multiple rtc_time64_to_tm fixes
- Handle time_t overflow on 32 bit platforms in the core instead of
letting drivers do crazy things.
- remove rtc_control API
New driver:
- Intersil ISL12026
Drivers:
- Drivers exposing the RTC non volatile memory have been converted to
use nvmem
- Removed useless time and date validation
- Removed an indirection pattern that was a cargo cult from ancient
drivers
- Removed VLA usage
- Fixed a possible race condition in probe functions
- AB8540 support is dropped from ab8500
- pcf85363 now has alarm support"
* tag 'rtc-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (128 commits)
rtc: snvs: Fix usage of snvs_rtc_enable
rtc: mt7622: fix module autoloading for OF platform drivers
rtc: isl12022: use true and false for boolean values
rtc: ab8500: Drop AB8540 support
rtc: remove a warning during scripts/kernel-doc step
rtc: 88pm860x: remove artificial limitation
rtc: 88pm80x: remove artificial limitation
rtc: st-lpc: remove artificial limitation
rtc: mrst: remove artificial limitation
rtc: mv: remove artificial limitation
rtc: hctosys: Ensure system time doesn't overflow time_t
parisc: time: stop validating rtc_time in .read_time
rtc: pcf85063: fix clearing bits in pcf85063_start_clock
rtc: at91sam9: Set name of regmap_config
rtc: s5m: Remove VLA usage
rtc: s5m: Move enum from rtc.h to rtc-s5m.c
rtc: remove VLA usage
rtc: Add useful timestamp definitions
rtc: Add one offset seconds to expand RTC range
rtc: Factor out the RTC range validation into rtc_valid_range()
...
This commit is contained in:
@@ -0,0 +1,206 @@
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM rtc
|
||||
|
||||
#if !defined(_TRACE_RTC_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define _TRACE_RTC_H
|
||||
|
||||
#include <linux/rtc.h>
|
||||
#include <linux/tracepoint.h>
|
||||
|
||||
DECLARE_EVENT_CLASS(rtc_time_alarm_class,
|
||||
|
||||
TP_PROTO(time64_t secs, int err),
|
||||
|
||||
TP_ARGS(secs, err),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(time64_t, secs)
|
||||
__field(int, err)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->secs = secs;
|
||||
__entry->err = err;
|
||||
),
|
||||
|
||||
TP_printk("UTC (%lld) (%d)",
|
||||
__entry->secs, __entry->err
|
||||
)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(rtc_time_alarm_class, rtc_set_time,
|
||||
|
||||
TP_PROTO(time64_t secs, int err),
|
||||
|
||||
TP_ARGS(secs, err)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(rtc_time_alarm_class, rtc_read_time,
|
||||
|
||||
TP_PROTO(time64_t secs, int err),
|
||||
|
||||
TP_ARGS(secs, err)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(rtc_time_alarm_class, rtc_set_alarm,
|
||||
|
||||
TP_PROTO(time64_t secs, int err),
|
||||
|
||||
TP_ARGS(secs, err)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(rtc_time_alarm_class, rtc_read_alarm,
|
||||
|
||||
TP_PROTO(time64_t secs, int err),
|
||||
|
||||
TP_ARGS(secs, err)
|
||||
);
|
||||
|
||||
TRACE_EVENT(rtc_irq_set_freq,
|
||||
|
||||
TP_PROTO(int freq, int err),
|
||||
|
||||
TP_ARGS(freq, err),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(int, freq)
|
||||
__field(int, err)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->freq = freq;
|
||||
__entry->err = err;
|
||||
),
|
||||
|
||||
TP_printk("set RTC periodic IRQ frequency:%u (%d)",
|
||||
__entry->freq, __entry->err
|
||||
)
|
||||
);
|
||||
|
||||
TRACE_EVENT(rtc_irq_set_state,
|
||||
|
||||
TP_PROTO(int enabled, int err),
|
||||
|
||||
TP_ARGS(enabled, err),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(int, enabled)
|
||||
__field(int, err)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->enabled = enabled;
|
||||
__entry->err = err;
|
||||
),
|
||||
|
||||
TP_printk("%s RTC 2^N Hz periodic IRQs (%d)",
|
||||
__entry->enabled ? "enable" : "disable",
|
||||
__entry->err
|
||||
)
|
||||
);
|
||||
|
||||
TRACE_EVENT(rtc_alarm_irq_enable,
|
||||
|
||||
TP_PROTO(unsigned int enabled, int err),
|
||||
|
||||
TP_ARGS(enabled, err),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(unsigned int, enabled)
|
||||
__field(int, err)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->enabled = enabled;
|
||||
__entry->err = err;
|
||||
),
|
||||
|
||||
TP_printk("%s RTC alarm IRQ (%d)",
|
||||
__entry->enabled ? "enable" : "disable",
|
||||
__entry->err
|
||||
)
|
||||
);
|
||||
|
||||
DECLARE_EVENT_CLASS(rtc_offset_class,
|
||||
|
||||
TP_PROTO(long offset, int err),
|
||||
|
||||
TP_ARGS(offset, err),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(long, offset)
|
||||
__field(int, err)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->offset = offset;
|
||||
__entry->err = err;
|
||||
),
|
||||
|
||||
TP_printk("RTC offset: %ld (%d)",
|
||||
__entry->offset, __entry->err
|
||||
)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(rtc_offset_class, rtc_set_offset,
|
||||
|
||||
TP_PROTO(long offset, int err),
|
||||
|
||||
TP_ARGS(offset, err)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(rtc_offset_class, rtc_read_offset,
|
||||
|
||||
TP_PROTO(long offset, int err),
|
||||
|
||||
TP_ARGS(offset, err)
|
||||
);
|
||||
|
||||
DECLARE_EVENT_CLASS(rtc_timer_class,
|
||||
|
||||
TP_PROTO(struct rtc_timer *timer),
|
||||
|
||||
TP_ARGS(timer),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(struct rtc_timer *, timer)
|
||||
__field(ktime_t, expires)
|
||||
__field(ktime_t, period)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->timer = timer;
|
||||
__entry->expires = timer->node.expires;
|
||||
__entry->period = timer->period;
|
||||
),
|
||||
|
||||
TP_printk("RTC timer:(%p) expires:%lld period:%lld",
|
||||
__entry->timer, __entry->expires, __entry->period
|
||||
)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(rtc_timer_class, rtc_timer_enqueue,
|
||||
|
||||
TP_PROTO(struct rtc_timer *timer),
|
||||
|
||||
TP_ARGS(timer)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(rtc_timer_class, rtc_timer_dequeue,
|
||||
|
||||
TP_PROTO(struct rtc_timer *timer),
|
||||
|
||||
TP_ARGS(timer)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(rtc_timer_class, rtc_timer_fired,
|
||||
|
||||
TP_PROTO(struct rtc_timer *timer),
|
||||
|
||||
TP_ARGS(timer)
|
||||
);
|
||||
|
||||
#endif /* _TRACE_RTC_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <trace/define_trace.h>
|
||||
Reference in New Issue
Block a user