[Intel-gfx] [PATCH] drm/i915: Clean up device info structure definitions
Daniel Vetter
daniel at ffwll.ch
Fri Dec 4 02:24:39 PST 2015
On Wed, Dec 02, 2015 at 01:28:14PM -0800, Wayne Boyer wrote:
> Beginning with gen7, newer devices repetitively redefine values
> for the device info structure members. This patch simplifies the
> structure definitions by grouping member value definitions into the
> existing GEN7_FEATURES #define and into the new GEN7_LP_FEATURES
> and HSW_FEATURES #defines.
>
> Specifically, GEN_DEFAULT_PIPEOFFSETS and IVB_CURSOR_OFFSETS are
> added to GEN7_FEATURES and subsequent IVB definitions are simplified.
>
> VLV_FEATURES is defined to differentiate and simplify the
> gen7 low power (LP) devices.
>
> HSW_FEATURES is defined and used to simplify all HSW+ devices
> except for LP.
>
> v2: Use VLV_FEATURES for the gen7 low power devices. (Jani)
>
> Cc: Rodrigo Vivi <rodrigo.vivi at intel.com>
> Signed-off-by: Wayne Boyer <wayne.boyer at intel.com>
Queued for -next, thanks for the patch.
-Daniel
> ---
> drivers/gpu/drm/i915/i915_drv.c | 137 ++++++++++------------------------------
> 1 file changed, 35 insertions(+), 102 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index 90faa8e..d2d7e24 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -226,125 +226,87 @@ static const struct intel_device_info intel_sandybridge_m_info = {
> #define GEN7_FEATURES \
> .gen = 7, .num_pipes = 3, \
> .need_gfx_hws = 1, .has_hotplug = 1, \
> .has_fbc = 1, \
> .ring_mask = RENDER_RING | BSD_RING | BLT_RING, \
> - .has_llc = 1
> + .has_llc = 1, \
> + GEN_DEFAULT_PIPEOFFSETS, \
> + IVB_CURSOR_OFFSETS
>
> static const struct intel_device_info intel_ivybridge_d_info = {
> GEN7_FEATURES,
> .is_ivybridge = 1,
> - GEN_DEFAULT_PIPEOFFSETS,
> - IVB_CURSOR_OFFSETS,
> };
>
> static const struct intel_device_info intel_ivybridge_m_info = {
> GEN7_FEATURES,
> .is_ivybridge = 1,
> .is_mobile = 1,
> - GEN_DEFAULT_PIPEOFFSETS,
> - IVB_CURSOR_OFFSETS,
> };
>
> static const struct intel_device_info intel_ivybridge_q_info = {
> GEN7_FEATURES,
> .is_ivybridge = 1,
> .num_pipes = 0, /* legal, last one wins */
> - GEN_DEFAULT_PIPEOFFSETS,
> - IVB_CURSOR_OFFSETS,
> };
>
> +#define VLV_FEATURES \
> + .gen = 7, .num_pipes = 2, \
> + .need_gfx_hws = 1, .has_hotplug = 1, \
> + .ring_mask = RENDER_RING | BSD_RING | BLT_RING, \
> + .display_mmio_offset = VLV_DISPLAY_BASE, \
> + GEN_DEFAULT_PIPEOFFSETS, \
> + CURSOR_OFFSETS
> +
> static const struct intel_device_info intel_valleyview_m_info = {
> - GEN7_FEATURES,
> - .is_mobile = 1,
> - .num_pipes = 2,
> + VLV_FEATURES,
> .is_valleyview = 1,
> - .display_mmio_offset = VLV_DISPLAY_BASE,
> - .has_fbc = 0, /* legal, last one wins */
> - .has_llc = 0, /* legal, last one wins */
> - GEN_DEFAULT_PIPEOFFSETS,
> - CURSOR_OFFSETS,
> + .is_mobile = 1,
> };
>
> static const struct intel_device_info intel_valleyview_d_info = {
> - GEN7_FEATURES,
> - .num_pipes = 2,
> + VLV_FEATURES,
> .is_valleyview = 1,
> - .display_mmio_offset = VLV_DISPLAY_BASE,
> - .has_fbc = 0, /* legal, last one wins */
> - .has_llc = 0, /* legal, last one wins */
> - GEN_DEFAULT_PIPEOFFSETS,
> - CURSOR_OFFSETS,
> };
>
> +#define HSW_FEATURES \
> + GEN7_FEATURES, \
> + .ring_mask = RENDER_RING | BSD_RING | BLT_RING | VEBOX_RING, \
> + .has_ddi = 1, \
> + .has_fpga_dbg = 1
> +
> static const struct intel_device_info intel_haswell_d_info = {
> - GEN7_FEATURES,
> + HSW_FEATURES,
> .is_haswell = 1,
> - .has_ddi = 1,
> - .has_fpga_dbg = 1,
> - .ring_mask = RENDER_RING | BSD_RING | BLT_RING | VEBOX_RING,
> - GEN_DEFAULT_PIPEOFFSETS,
> - IVB_CURSOR_OFFSETS,
> };
>
> static const struct intel_device_info intel_haswell_m_info = {
> - GEN7_FEATURES,
> + HSW_FEATURES,
> .is_haswell = 1,
> .is_mobile = 1,
> - .has_ddi = 1,
> - .has_fpga_dbg = 1,
> - .ring_mask = RENDER_RING | BSD_RING | BLT_RING | VEBOX_RING,
> - GEN_DEFAULT_PIPEOFFSETS,
> - IVB_CURSOR_OFFSETS,
> };
>
> static const struct intel_device_info intel_broadwell_d_info = {
> - .gen = 8, .num_pipes = 3,
> - .need_gfx_hws = 1, .has_hotplug = 1,
> - .ring_mask = RENDER_RING | BSD_RING | BLT_RING | VEBOX_RING,
> - .has_llc = 1,
> - .has_ddi = 1,
> - .has_fpga_dbg = 1,
> - .has_fbc = 1,
> - GEN_DEFAULT_PIPEOFFSETS,
> - IVB_CURSOR_OFFSETS,
> + HSW_FEATURES,
> + .gen = 8,
> };
>
> static const struct intel_device_info intel_broadwell_m_info = {
> - .gen = 8, .is_mobile = 1, .num_pipes = 3,
> - .need_gfx_hws = 1, .has_hotplug = 1,
> - .ring_mask = RENDER_RING | BSD_RING | BLT_RING | VEBOX_RING,
> - .has_llc = 1,
> - .has_ddi = 1,
> - .has_fpga_dbg = 1,
> - .has_fbc = 1,
> - GEN_DEFAULT_PIPEOFFSETS,
> - IVB_CURSOR_OFFSETS,
> + HSW_FEATURES,
> + .gen = 8, .is_mobile = 1,
> };
>
> static const struct intel_device_info intel_broadwell_gt3d_info = {
> - .gen = 8, .num_pipes = 3,
> - .need_gfx_hws = 1, .has_hotplug = 1,
> + HSW_FEATURES,
> + .gen = 8,
> .ring_mask = RENDER_RING | BSD_RING | BLT_RING | VEBOX_RING | BSD2_RING,
> - .has_llc = 1,
> - .has_ddi = 1,
> - .has_fpga_dbg = 1,
> - .has_fbc = 1,
> - GEN_DEFAULT_PIPEOFFSETS,
> - IVB_CURSOR_OFFSETS,
> };
>
> static const struct intel_device_info intel_broadwell_gt3m_info = {
> - .gen = 8, .is_mobile = 1, .num_pipes = 3,
> - .need_gfx_hws = 1, .has_hotplug = 1,
> + HSW_FEATURES,
> + .gen = 8, .is_mobile = 1,
> .ring_mask = RENDER_RING | BSD_RING | BLT_RING | VEBOX_RING | BSD2_RING,
> - .has_llc = 1,
> - .has_ddi = 1,
> - .has_fpga_dbg = 1,
> - .has_fbc = 1,
> - GEN_DEFAULT_PIPEOFFSETS,
> - IVB_CURSOR_OFFSETS,
> };
>
> static const struct intel_device_info intel_cherryview_info = {
> .gen = 8, .num_pipes = 3,
> .need_gfx_hws = 1, .has_hotplug = 1,
> @@ -354,33 +316,19 @@ static const struct intel_device_info intel_cherryview_info = {
> GEN_CHV_PIPEOFFSETS,
> CURSOR_OFFSETS,
> };
>
> static const struct intel_device_info intel_skylake_info = {
> + HSW_FEATURES,
> .is_skylake = 1,
> - .gen = 9, .num_pipes = 3,
> - .need_gfx_hws = 1, .has_hotplug = 1,
> - .ring_mask = RENDER_RING | BSD_RING | BLT_RING | VEBOX_RING,
> - .has_llc = 1,
> - .has_ddi = 1,
> - .has_fpga_dbg = 1,
> - .has_fbc = 1,
> - GEN_DEFAULT_PIPEOFFSETS,
> - IVB_CURSOR_OFFSETS,
> + .gen = 9,
> };
>
> static const struct intel_device_info intel_skylake_gt3_info = {
> .is_skylake = 1,
> - .gen = 9, .num_pipes = 3,
> - .need_gfx_hws = 1, .has_hotplug = 1,
> + .gen = 9,
> .ring_mask = RENDER_RING | BSD_RING | BLT_RING | VEBOX_RING | BSD2_RING,
> - .has_llc = 1,
> - .has_ddi = 1,
> - .has_fpga_dbg = 1,
> - .has_fbc = 1,
> - GEN_DEFAULT_PIPEOFFSETS,
> - IVB_CURSOR_OFFSETS,
> };
>
> static const struct intel_device_info intel_broxton_info = {
> .is_preliminary = 1,
> .is_broxton = 1,
> @@ -394,37 +342,22 @@ static const struct intel_device_info intel_broxton_info = {
> GEN_DEFAULT_PIPEOFFSETS,
> IVB_CURSOR_OFFSETS,
> };
>
> static const struct intel_device_info intel_kabylake_info = {
> + HSW_FEATURES,
> .is_preliminary = 1,
> .is_kabylake = 1,
> .gen = 9,
> - .num_pipes = 3,
> - .need_gfx_hws = 1, .has_hotplug = 1,
> - .ring_mask = RENDER_RING | BSD_RING | BLT_RING | VEBOX_RING,
> - .has_llc = 1,
> - .has_ddi = 1,
> - .has_fpga_dbg = 1,
> - .has_fbc = 1,
> - GEN_DEFAULT_PIPEOFFSETS,
> - IVB_CURSOR_OFFSETS,
> };
>
> static const struct intel_device_info intel_kabylake_gt3_info = {
> + HSW_FEATURES,
> .is_preliminary = 1,
> .is_kabylake = 1,
> .gen = 9,
> - .num_pipes = 3,
> - .need_gfx_hws = 1, .has_hotplug = 1,
> .ring_mask = RENDER_RING | BSD_RING | BLT_RING | VEBOX_RING | BSD2_RING,
> - .has_llc = 1,
> - .has_ddi = 1,
> - .has_fpga_dbg = 1,
> - .has_fbc = 1,
> - GEN_DEFAULT_PIPEOFFSETS,
> - IVB_CURSOR_OFFSETS,
> };
>
> /*
> * Make sure any device matches here are from most specific to most
> * general. For example, since the Quanta match is based on the subsystem
> --
> 2.6.3
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the Intel-gfx
mailing list