mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 01:55:51 +02:00
drm/i915/de: Add a simple intel_de_read64_2x32()
intel_de_read64_2x32_volatile() is a complex beast because it needs to deal with volatile register values. For simpler cases we can simply do a pair normal intel_de_read()s. My main reason for hating overuse of intel_de_read64_2x32_volatile() is that it makes register tracepoints confusing. It always does three accesses in the somewhat weird udw,ldw,udw order, confusing the reader of the trace. Much more clear if we just observe the two reads in the natural little endian order. We also have no non-volatile use case where the LDW and UDW are stored in non-consecutive registers, so we can just pass along a single register offset. v2: Put the function arguments on one line (Jani) Reviewed-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patch.msgid.link/20260331154259.24600-10-ville.syrjala@linux.intel.com
This commit is contained in:
parent
581feef634
commit
57369c91da
|
|
@ -53,6 +53,18 @@ intel_de_read64_2x32_volatile(struct intel_display *display,
|
|||
return val;
|
||||
}
|
||||
|
||||
static inline u64
|
||||
intel_de_read64_2x32(struct intel_display *display, i915_reg_t reg)
|
||||
{
|
||||
i915_reg_t upper_reg = _MMIO(i915_mmio_reg_offset(reg) + 4);
|
||||
u32 lower, upper;
|
||||
|
||||
lower = intel_de_read(display, reg);
|
||||
upper = intel_de_read(display, upper_reg);
|
||||
|
||||
return (u64)upper << 32 | lower;
|
||||
}
|
||||
|
||||
static inline void
|
||||
intel_de_posting_read(struct intel_display *display, i915_reg_t reg)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user