drm/i915: Clean up device info structure definitions
Subsystems (2)
PATCH 1/1 drm/i915: Clean up device info structure definitions
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.
GEN7_LP_FEATURES is created to differentiate and simplify the gen7 low power (LP) devices.
HSW_FEATURES is created and used to simplify all HSW+ devices except for LP.
--- drivers/gpu/drm/i915/i915_drv.c | 137 ++++++++++------------------------------ 1 file changed, 35 insertions(+), 102 deletions(-)
drivers/gpu/drm/i915/i915_drv.c +35 -102
@@ -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_OFFSETSstatic 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 GEN7_LP_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 , +GEN7_LP_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 , +GEN7_LP_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
Signature · 6 lines
2.6.3 _______________________________________________ Intel-gfx mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Jani Nikula
maintainerQuoted 11 lines · Wayne Boyer
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 newGEN7_LP_FEATURESandHSW_FEATURES#defines.Specifically,
GEN_DEFAULT_PIPEOFFSETSandIVB_CURSOR_OFFSETSare added toGEN7_FEATURESand subsequent IVB definitions are simplified.
GEN7_LP_FEATURESis created to differentiate and simplify the gen7 low power (LP) devices.
Not convinced on this one, maybe just go for VLV_FEATURES.
Otherwise seems fine.
BR,
Jani.
Quoted 247 lines
HSW_FEATURESis created and used to simplify all HSW+ devices except for LP.Cc Rodrigo Vivi <[email protected]>Signed-off-by Wayne Boyer <[email protected]>--- drivers/gpu/drm/i915/i915_drv.c | 137 ++++++++++------------------------------ 1 file changed, 35 insertions(+), 102 deletions(-)drivers/gpu/drm/i915/i915_drv.c +35
-102@@ -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_OFFSETSstatic 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 GEN7_LP_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 , +GEN7_LP_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 , +GEN7_LP_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
Signature · 5 lines
Jani Nikula, Intel Open Source Technology Center _______________________________________________ Intel-gfx mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/intel-gfx
PATCH 1/1 drm/i915: Clean up device info structure definitions
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)
--- drivers/gpu/drm/i915/i915_drv.c | 137 ++++++++++------------------------------ 1 file changed, 35 insertions(+), 102 deletions(-)
drivers/gpu/drm/i915/i915_drv.c +35 -102
@@ -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_OFFSETSstatic 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
Signature · 6 lines
2.6.3 _______________________________________________ Intel-gfx mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Daniel Vetter
AppliedQuoted 12 lines · Wayne Boyer
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 newGEN7_LP_FEATURESandHSW_FEATURES#defines.Specifically,
GEN_DEFAULT_PIPEOFFSETSandIVB_CURSOR_OFFSETSare added toGEN7_FEATURESand subsequent IVB definitions are simplified.
VLV_FEATURESis defined to differentiate and simplify the gen7 low power (LP) devices.
Quoted 7 lines
HSW_FEATURESis defined and used to simplify all HSW+ devices except for LP.v2: Use
VLV_FEATURESfor the gen7 low power devices. (Jani)Cc Rodrigo Vivi <[email protected]>Signed-off-by Wayne Boyer <[email protected]>
Queued for -next, thanks for the patch.
-Daniel
Quoted 248 lines
--- drivers/gpu/drm/i915/i915_drv.c | 137 ++++++++++------------------------------ 1 file changed, 35 insertions(+), 102 deletions(-)drivers/gpu/drm/i915/i915_drv.c +35
-102@@ -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_OFFSETSstatic 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 Signature · 6 lines
2.6.3 _______________________________________________ Intel-gfx mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Signature · 7 lines
Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Quoted 38 lines · Daniel Vetter
Quoted 12 lines · Wayne Boyer
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 newGEN7_LP_FEATURESandHSW_FEATURES#defines.Specifically,
GEN_DEFAULT_PIPEOFFSETSandIVB_CURSOR_OFFSETSare added toGEN7_FEATURESand subsequent IVB definitions are simplified.
VLV_FEATURESis defined to differentiate and simplify the gen7 low power (LP) devices.Quoted 7 lines
HSW_FEATURESis defined and used to simplify all HSW+ devices except for LP.v2: Use
VLV_FEATURESfor the gen7 low power devices. (Jani)Cc Rodrigo Vivi <[email protected]>Signed-off-by Wayne Boyer <[email protected]>Queued for -next, thanks for the patch.
Quoted 15 lines
static const struct
intel_device_infointel_skylake_info= {drivers/gpu/drm/i915/i915_drv.c +2
-9+ 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, };
Quoted 13 lines
drivers/gpu/drm/i915/i915_drv.c static const struct intel_device_info intel_cherryview_info = { · line 330
Quoted 13 lines
static const struct
intel_device_infointel_skylake_gt3_info= {drivers/gpu/drm/i915/i915_drv.c +1
-8.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, };
Ooops.
-Chris
Signature · 5 lines
Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/intel-gfx
PATCH 1/1 drm/i915: Clean up device info structure definitions
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)
v3: Include HSW_FEATURES definition in intel_skylake_gt3_info. (Chris)
--- drivers/gpu/drm/i915/i915_drv.c | 138 +++++++++++----------------------------- 1 file changed, 36 insertions(+), 102 deletions(-)
drivers/gpu/drm/i915/i915_drv.c +36 -102
@@ -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_OFFSETSstatic 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,20 @@ 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 = { +HSW_FEATURES , .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 +343,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
Signature · 6 lines
2.6.3 _______________________________________________ Intel-gfx mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/intel-gfx
PATCH 1/1 drm/i915: Clean up device info structure definitions
In reply to Wayne BoyerBeginning 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 VLV_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)
v3: Include HSW_FEATURES definition in intel_skylake_gt3_info. (Chris)
v4: Fix commit message.
--- drivers/gpu/drm/i915/i915_drv.c | 138 +++++++++++----------------------------- 1 file changed, 36 insertions(+), 102 deletions(-)
drivers/gpu/drm/i915/i915_drv.c +36 -102
@@ -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_OFFSETSstatic 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,20 @@ 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 = { +HSW_FEATURES , .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 +343,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
Signature · 6 lines
2.6.3 _______________________________________________ Intel-gfx mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/intel-gfx