Merge drm/drm-next into drm-intel-next
authorRodrigo Vivi <rodrigo.vivi@intel.com>
Mon, 14 Nov 2022 19:32:34 +0000 (14:32 -0500)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Mon, 14 Nov 2022 19:32:34 +0000 (14:32 -0500)
Catch up on 6.1-rc cycle in order to solve the intel_backlight
conflict on linux-next.

Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
26 files changed:
1  2 
drivers/gpu/drm/i915/display/intel_backlight.c
drivers/gpu/drm/i915/display/intel_display.c
drivers/gpu/drm/i915/display/intel_display.h
drivers/gpu/drm/i915/display/intel_display_types.h
drivers/gpu/drm/i915/display/intel_hdmi.c
drivers/gpu/drm/i915/display/intel_lpe_audio.c
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
drivers/gpu/drm/i915/gt/intel_engine_cs.c
drivers/gpu/drm/i915/gt/intel_execlists_submission.c
drivers/gpu/drm/i915/gt/intel_gt.c
drivers/gpu/drm/i915/gt/intel_gt_regs.h
drivers/gpu/drm/i915/gt/intel_gtt.c
drivers/gpu/drm/i915/gt/intel_workarounds.c
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
drivers/gpu/drm/i915/gvt/handlers.c
drivers/gpu/drm/i915/gvt/mmio_context.c
drivers/gpu/drm/i915/i915_gpu_error.c
drivers/gpu/drm/i915/i915_irq.c
drivers/gpu/drm/i915/i915_perf.c
drivers/gpu/drm/i915/i915_reg.h
drivers/gpu/drm/i915/i915_reg_defs.h
drivers/gpu/drm/i915/i915_trace.h
drivers/gpu/drm/i915/intel_gvt_mmio_table.c
drivers/gpu/drm/i915/intel_pm.c
drivers/gpu/drm/i915/intel_uncore.c

@@@ -8,7 -8,8 +8,9 @@@
  #include <linux/pwm.h>
  #include <linux/string_helpers.h>
  
+ #include <acpi/video.h>
 +#include "i915_reg.h"
  #include "intel_backlight.h"
  #include "intel_backlight_regs.h"
  #include "intel_connector.h"
Simple merge
@@@ -7,8 -7,20 +7,21 @@@
  #define __INTEL_GT_REGS__
  
  #include "i915_reg_defs.h"
 +#include "display/intel_display_reg_defs.h"   /* VLV_DISPLAY_BASE */
  
+ #define MCR_REG(offset)       ((const i915_mcr_reg_t){ .reg = (offset) })
+ /*
+  * The perf control registers are technically multicast registers, but the
+  * driver never needs to read/write them directly; we only use them to build
+  * lists of registers (where they're mixed in with other non-MCR registers)
+  * and then operate on the offset directly.  For now we'll just define them
+  * as non-multicast so we can place them on the same list, but we may want
+  * to try to come up with a better way to handle heterogeneous lists of
+  * registers in the future.
+  */
+ #define PERF_REG(offset)                      _MMIO(offset)
  /* RPM unit config (Gen8+) */
  #define RPM_CONFIG0                           _MMIO(0xd00)
  #define   GEN9_RPM_CONFIG0_CRYSTAL_CLOCK_FREQ_SHIFT   3
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -132,21 -104,22 +132,20 @@@ typedef struct 
  
  #define _MMIO(r) ((const i915_reg_t){ .reg = (r) })
  
- #define INVALID_MMIO_REG _MMIO(0)
- static __always_inline u32 i915_mmio_reg_offset(i915_reg_t reg)
- {
-       return reg.reg;
- }
+ typedef struct {
+       u32 reg;
+ } i915_mcr_reg_t;
  
- static inline bool i915_mmio_reg_equal(i915_reg_t a, i915_reg_t b)
- {
-       return i915_mmio_reg_offset(a) == i915_mmio_reg_offset(b);
- }
+ #define INVALID_MMIO_REG _MMIO(0)
  
- static inline bool i915_mmio_reg_valid(i915_reg_t reg)
- {
-       return !i915_mmio_reg_equal(reg, INVALID_MMIO_REG);
- }
+ /*
+  * These macros can be used on either i915_reg_t or i915_mcr_reg_t since they're
+  * simply operations on the register's offset and don't care about the MCR vs
+  * non-MCR nature of the register.
+  */
+ #define i915_mmio_reg_offset(r) \
+       _Generic((r), i915_reg_t: (r).reg, i915_mcr_reg_t: (r).reg)
+ #define i915_mmio_reg_equal(a, b) (i915_mmio_reg_offset(a) == i915_mmio_reg_offset(b))
+ #define i915_mmio_reg_valid(r) (!i915_mmio_reg_equal(r, INVALID_MMIO_REG))
  
 -#define VLV_DISPLAY_BASE              0x180000
 -
  #endif /* __I915_REG_DEFS__ */
Simple merge
Simple merge
Simple merge