diff mbox

drm/i915: Add MI_SET_APPID cmd to cmd parser tables

Message ID 1416591336-3999-1-git-send-email-michael.h.nguyen@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Michael H. Nguyen Nov. 21, 2014, 5:35 p.m. UTC
From: "Michael H. Nguyen" <michael.h.nguyen@intel.com>

Was missing

Issue: VIZ-4701
Signed-off-by: Michael H. Nguyen <michael.h.nguyen@intel.com>
---
 drivers/gpu/drm/i915/i915_cmd_parser.c | 14 +++++++++++---
 drivers/gpu/drm/i915/i915_reg.h        |  3 +++
 2 files changed, 14 insertions(+), 3 deletions(-)

Comments

Shuang He Nov. 23, 2014, 6:01 a.m. UTC | #1
Tested-By: PRC QA PRTS (Patch Regression Test System Contact: shuang.he@intel.com)
-------------------------------------Summary-------------------------------------
Platform          Delta          drm-intel-nightly          Series Applied
PNV                                  367/367              367/367
ILK                 -4              373/375              369/375
SNB                                  450/450              450/450
IVB                 -1              502/503              501/503
BYT                                  289/289              289/289
HSW                 -3              567/567              564/567
BDW                                  417/417              417/417
-------------------------------------Detailed-------------------------------------
Platform  Test                                drm-intel-nightly          Series Applied
ILK  igt_kms_flip_rcs-flip-vs-panning-interruptible      DMESG_WARN(1, M26)PASS(1, M37)      DMESG_WARN(1, M26)
ILK  igt_kms_flip_wf_vblank-ts-check-interruptible      DMESG_WARN(1, M26)PASS(3, M37M26)      DMESG_WARN(1, M26)
ILK  igt_kms_render_direct-render      PASS(2, M37M26)      DMESG_WARN(1, M26)
ILK  igt_kms_setmode_invalid-clone-exclusive-crtc      DMESG_WARN(1, M26)PASS(1, M37)      DMESG_WARN(1, M26)
IVB  igt_gem_bad_reloc_negative-reloc-lut      NSPT(3, M21M34M4)PASS(1, M21)      NSPT(1, M4)
HSW  igt_gem_bad_reloc_negative-reloc-lut      NSPT(10, M40M20)PASS(1, M20)      NSPT(1, M20)
HSW  igt_kms_rotation_crc_primary-rotation      PASS(11, M20M40)      DMESG_WARN(1, M20)
HSW  igt_pm_rc6_residency_rc6-accuracy      PASS(11, M20M40)      FAIL(1, M20)
Bloomfield, Jon Dec. 8, 2014, 5:58 p.m. UTC | #2
> -----Original Message-----

> From: Intel-gfx [mailto:intel-gfx-bounces@lists.freedesktop.org] On Behalf

> Of michael.h.nguyen@intel.com

> Sent: Friday, November 21, 2014 5:36 PM

> To: intel-gfx@lists.freedesktop.org

> Cc: Vetter, Daniel; Barnes, Jesse

> Subject: [Intel-gfx] [PATCH] drm/i915: Add MI_SET_APPID cmd to cmd parser

> tables

> 

> From: "Michael H. Nguyen" <michael.h.nguyen@intel.com>

> 

> Was missing

> 

> Issue: VIZ-4701

> Signed-off-by: Michael H. Nguyen <michael.h.nguyen@intel.com>

> ---

>  drivers/gpu/drm/i915/i915_cmd_parser.c | 14 +++++++++++---

>  drivers/gpu/drm/i915/i915_reg.h        |  3 +++

>  2 files changed, 14 insertions(+), 3 deletions(-)

> 

> diff --git a/drivers/gpu/drm/i915/i915_cmd_parser.c

> b/drivers/gpu/drm/i915/i915_cmd_parser.c

> index 22c992a..364aff7 100644

> --- a/drivers/gpu/drm/i915/i915_cmd_parser.c

> +++ b/drivers/gpu/drm/i915/i915_cmd_parser.c

> @@ -152,6 +152,7 @@ static const struct drm_i915_cmd_descriptor

> render_cmds[] = {

>  	CMD(  MI_PREDICATE,                     SMI,    F,  1,      S  ),

>  	CMD(  MI_TOPOLOGY_FILTER,               SMI,    F,  1,      S  ),

>  	CMD(  MI_DISPLAY_FLIP,                  SMI,   !F,  0xFF,   R  ),

> +	CMD(  MI_SET_APPID,                     SMI,    F,  1,      S  ),

>  	CMD(  MI_SET_CONTEXT,                   SMI,   !F,  0xFF,   R  ),

>  	CMD(  MI_URB_CLEAR,                     SMI,   !F,  0xFF,   S  ),

>  	CMD(  MI_STORE_DWORD_IMM,               SMI,   !F,  0x3F,   B,

> @@ -210,6 +211,7 @@ static const struct drm_i915_cmd_descriptor

> hsw_render_cmds[] = {

>  	CMD(  MI_SET_PREDICATE,                 SMI,    F,  1,      S  ),

>  	CMD(  MI_RS_CONTROL,                    SMI,    F,  1,      S  ),

>  	CMD(  MI_URB_ATOMIC_ALLOC,              SMI,    F,  1,      S  ),

> +	CMD(  MI_SET_APPID,                     SMI,    F,  1,      S  ),

>  	CMD(  MI_RS_CONTEXT,                    SMI,    F,  1,      S  ),

>  	CMD(  MI_LOAD_SCAN_LINES_INCL,          SMI,   !F,  0x3F,   M  ),

>  	CMD(  MI_LOAD_SCAN_LINES_EXCL,          SMI,   !F,  0x3F,   R  ),

> @@ -229,6 +231,7 @@ static const struct drm_i915_cmd_descriptor

> hsw_render_cmds[] = {

> 

>  static const struct drm_i915_cmd_descriptor video_cmds[] = {

>  	CMD(  MI_ARB_ON_OFF,                    SMI,    F,  1,      R  ),

> +	CMD(  MI_SET_APPID,                     SMI,    F,  1,      S  ),

>  	CMD(  MI_STORE_DWORD_IMM,               SMI,   !F,  0xFF,   B,

>  	      .bits = {{

>  			.offset = 0,

> @@ -272,6 +275,7 @@ static const struct drm_i915_cmd_descriptor

> video_cmds[] = {

> 

>  static const struct drm_i915_cmd_descriptor vecs_cmds[] = {

>  	CMD(  MI_ARB_ON_OFF,                    SMI,    F,  1,      R  ),

> +	CMD(  MI_SET_APPID,                     SMI,    F,  1,      S  ),

>  	CMD(  MI_STORE_DWORD_IMM,               SMI,   !F,  0xFF,   B,

>  	      .bits = {{

>  			.offset = 0,

> @@ -481,13 +485,17 @@ static u32 gen7_bsd_get_cmd_length_mask(u32

> cmd_header)

>  	u32 client = (cmd_header & INSTR_CLIENT_MASK) >>

> INSTR_CLIENT_SHIFT;

>  	u32 subclient =

>  		(cmd_header & INSTR_SUBCLIENT_MASK) >>

> INSTR_SUBCLIENT_SHIFT;

> +	u32 op = (cmd_header & INSTR_26_TO_24_MASK) >>

> INSTR_26_TO_24_SHIFT;

> 

>  	if (client == INSTR_MI_CLIENT)

>  		return 0x3F;

>  	else if (client == INSTR_RC_CLIENT) {

> -		if (subclient == INSTR_MEDIA_SUBCLIENT)

> -			return 0xFFF;

> -		else

> +		if (subclient == INSTR_MEDIA_SUBCLIENT) {

> +			if (op == 6)

> +				return 0xFFFF;

> +			else

> +				return 0xFFF;

> +		} else

>  			return 0xFF;

>  	}

> 

> diff --git a/drivers/gpu/drm/i915/i915_reg.h

> b/drivers/gpu/drm/i915/i915_reg.h index 7a77cd5..c881d88 100644

> --- a/drivers/gpu/drm/i915/i915_reg.h

> +++ b/drivers/gpu/drm/i915/i915_reg.h

> @@ -204,6 +204,8 @@

>  #define INSTR_SUBCLIENT_SHIFT   27

>  #define INSTR_SUBCLIENT_MASK    0x18000000

>  #define   INSTR_MEDIA_SUBCLIENT 0x2

> +#define INSTR_26_TO_24_MASK	0x7000000

> +#define   INSTR_26_TO_24_SHIFT	24

> 

>  /*

>   * Memory interface instructions used by the kernel @@ -233,6 +235,7 @@

>  #define MI_BATCH_BUFFER_END	MI_INSTR(0x0a, 0)

>  #define MI_SUSPEND_FLUSH	MI_INSTR(0x0b, 0)

>  #define   MI_SUSPEND_FLUSH_EN	(1<<0)

> +#define MI_SET_APPID		MI_INSTR(0x0e, 0)

>  #define MI_OVERLAY_FLIP		MI_INSTR(0x11, 0)

>  #define   MI_OVERLAY_CONTINUE	(0x0<<21)

>  #define   MI_OVERLAY_ON		(0x1<<21)


Reviewed-by: Jon Bloomfield <jon.bloomfield@intel.com>


> --

> 1.9.1

> 

> _______________________________________________

> Intel-gfx mailing list

> Intel-gfx@lists.freedesktop.org

> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Daniel Vetter Dec. 8, 2014, 6:14 p.m. UTC | #3
On Mon, Dec 08, 2014 at 05:58:45PM +0000, Bloomfield, Jon wrote:
> > -----Original Message-----
> > From: Intel-gfx [mailto:intel-gfx-bounces@lists.freedesktop.org] On Behalf
> > Of michael.h.nguyen@intel.com
> > Sent: Friday, November 21, 2014 5:36 PM
> > To: intel-gfx@lists.freedesktop.org
> > Cc: Vetter, Daniel; Barnes, Jesse
> > Subject: [Intel-gfx] [PATCH] drm/i915: Add MI_SET_APPID cmd to cmd parser
> > tables
> > 
> > From: "Michael H. Nguyen" <michael.h.nguyen@intel.com>
> > 
> > Was missing
> > 
> > Issue: VIZ-4701
> > Signed-off-by: Michael H. Nguyen <michael.h.nguyen@intel.com>
> > ---
> >  drivers/gpu/drm/i915/i915_cmd_parser.c | 14 +++++++++++---
> >  drivers/gpu/drm/i915/i915_reg.h        |  3 +++
> >  2 files changed, 14 insertions(+), 3 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_cmd_parser.c
> > b/drivers/gpu/drm/i915/i915_cmd_parser.c
> > index 22c992a..364aff7 100644
> > --- a/drivers/gpu/drm/i915/i915_cmd_parser.c
> > +++ b/drivers/gpu/drm/i915/i915_cmd_parser.c
> > @@ -152,6 +152,7 @@ static const struct drm_i915_cmd_descriptor
> > render_cmds[] = {
> >  	CMD(  MI_PREDICATE,                     SMI,    F,  1,      S  ),
> >  	CMD(  MI_TOPOLOGY_FILTER,               SMI,    F,  1,      S  ),
> >  	CMD(  MI_DISPLAY_FLIP,                  SMI,   !F,  0xFF,   R  ),
> > +	CMD(  MI_SET_APPID,                     SMI,    F,  1,      S  ),
> >  	CMD(  MI_SET_CONTEXT,                   SMI,   !F,  0xFF,   R  ),
> >  	CMD(  MI_URB_CLEAR,                     SMI,   !F,  0xFF,   S  ),
> >  	CMD(  MI_STORE_DWORD_IMM,               SMI,   !F,  0x3F,   B,
> > @@ -210,6 +211,7 @@ static const struct drm_i915_cmd_descriptor
> > hsw_render_cmds[] = {
> >  	CMD(  MI_SET_PREDICATE,                 SMI,    F,  1,      S  ),
> >  	CMD(  MI_RS_CONTROL,                    SMI,    F,  1,      S  ),
> >  	CMD(  MI_URB_ATOMIC_ALLOC,              SMI,    F,  1,      S  ),
> > +	CMD(  MI_SET_APPID,                     SMI,    F,  1,      S  ),
> >  	CMD(  MI_RS_CONTEXT,                    SMI,    F,  1,      S  ),
> >  	CMD(  MI_LOAD_SCAN_LINES_INCL,          SMI,   !F,  0x3F,   M  ),
> >  	CMD(  MI_LOAD_SCAN_LINES_EXCL,          SMI,   !F,  0x3F,   R  ),
> > @@ -229,6 +231,7 @@ static const struct drm_i915_cmd_descriptor
> > hsw_render_cmds[] = {
> > 
> >  static const struct drm_i915_cmd_descriptor video_cmds[] = {
> >  	CMD(  MI_ARB_ON_OFF,                    SMI,    F,  1,      R  ),
> > +	CMD(  MI_SET_APPID,                     SMI,    F,  1,      S  ),
> >  	CMD(  MI_STORE_DWORD_IMM,               SMI,   !F,  0xFF,   B,
> >  	      .bits = {{
> >  			.offset = 0,
> > @@ -272,6 +275,7 @@ static const struct drm_i915_cmd_descriptor
> > video_cmds[] = {
> > 
> >  static const struct drm_i915_cmd_descriptor vecs_cmds[] = {
> >  	CMD(  MI_ARB_ON_OFF,                    SMI,    F,  1,      R  ),
> > +	CMD(  MI_SET_APPID,                     SMI,    F,  1,      S  ),
> >  	CMD(  MI_STORE_DWORD_IMM,               SMI,   !F,  0xFF,   B,
> >  	      .bits = {{
> >  			.offset = 0,
> > @@ -481,13 +485,17 @@ static u32 gen7_bsd_get_cmd_length_mask(u32
> > cmd_header)
> >  	u32 client = (cmd_header & INSTR_CLIENT_MASK) >>
> > INSTR_CLIENT_SHIFT;
> >  	u32 subclient =
> >  		(cmd_header & INSTR_SUBCLIENT_MASK) >>
> > INSTR_SUBCLIENT_SHIFT;
> > +	u32 op = (cmd_header & INSTR_26_TO_24_MASK) >>
> > INSTR_26_TO_24_SHIFT;
> > 
> >  	if (client == INSTR_MI_CLIENT)
> >  		return 0x3F;
> >  	else if (client == INSTR_RC_CLIENT) {
> > -		if (subclient == INSTR_MEDIA_SUBCLIENT)
> > -			return 0xFFF;
> > -		else
> > +		if (subclient == INSTR_MEDIA_SUBCLIENT) {
> > +			if (op == 6)
> > +				return 0xFFFF;
> > +			else
> > +				return 0xFFF;
> > +		} else
> >  			return 0xFF;
> >  	}
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_reg.h
> > b/drivers/gpu/drm/i915/i915_reg.h index 7a77cd5..c881d88 100644
> > --- a/drivers/gpu/drm/i915/i915_reg.h
> > +++ b/drivers/gpu/drm/i915/i915_reg.h
> > @@ -204,6 +204,8 @@
> >  #define INSTR_SUBCLIENT_SHIFT   27
> >  #define INSTR_SUBCLIENT_MASK    0x18000000
> >  #define   INSTR_MEDIA_SUBCLIENT 0x2
> > +#define INSTR_26_TO_24_MASK	0x7000000
> > +#define   INSTR_26_TO_24_SHIFT	24
> > 
> >  /*
> >   * Memory interface instructions used by the kernel @@ -233,6 +235,7 @@
> >  #define MI_BATCH_BUFFER_END	MI_INSTR(0x0a, 0)
> >  #define MI_SUSPEND_FLUSH	MI_INSTR(0x0b, 0)
> >  #define   MI_SUSPEND_FLUSH_EN	(1<<0)
> > +#define MI_SET_APPID		MI_INSTR(0x0e, 0)
> >  #define MI_OVERLAY_FLIP		MI_INSTR(0x11, 0)
> >  #define   MI_OVERLAY_CONTINUE	(0x0<<21)
> >  #define   MI_OVERLAY_ON		(0x1<<21)
> 
> Reviewed-by: Jon Bloomfield <jon.bloomfield@intel.com>

Queued for -next, thanks for the patch.
-Daniel
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/i915_cmd_parser.c b/drivers/gpu/drm/i915/i915_cmd_parser.c
index 22c992a..364aff7 100644
--- a/drivers/gpu/drm/i915/i915_cmd_parser.c
+++ b/drivers/gpu/drm/i915/i915_cmd_parser.c
@@ -152,6 +152,7 @@  static const struct drm_i915_cmd_descriptor render_cmds[] = {
 	CMD(  MI_PREDICATE,                     SMI,    F,  1,      S  ),
 	CMD(  MI_TOPOLOGY_FILTER,               SMI,    F,  1,      S  ),
 	CMD(  MI_DISPLAY_FLIP,                  SMI,   !F,  0xFF,   R  ),
+	CMD(  MI_SET_APPID,                     SMI,    F,  1,      S  ),
 	CMD(  MI_SET_CONTEXT,                   SMI,   !F,  0xFF,   R  ),
 	CMD(  MI_URB_CLEAR,                     SMI,   !F,  0xFF,   S  ),
 	CMD(  MI_STORE_DWORD_IMM,               SMI,   !F,  0x3F,   B,
@@ -210,6 +211,7 @@  static const struct drm_i915_cmd_descriptor hsw_render_cmds[] = {
 	CMD(  MI_SET_PREDICATE,                 SMI,    F,  1,      S  ),
 	CMD(  MI_RS_CONTROL,                    SMI,    F,  1,      S  ),
 	CMD(  MI_URB_ATOMIC_ALLOC,              SMI,    F,  1,      S  ),
+	CMD(  MI_SET_APPID,                     SMI,    F,  1,      S  ),
 	CMD(  MI_RS_CONTEXT,                    SMI,    F,  1,      S  ),
 	CMD(  MI_LOAD_SCAN_LINES_INCL,          SMI,   !F,  0x3F,   M  ),
 	CMD(  MI_LOAD_SCAN_LINES_EXCL,          SMI,   !F,  0x3F,   R  ),
@@ -229,6 +231,7 @@  static const struct drm_i915_cmd_descriptor hsw_render_cmds[] = {
 
 static const struct drm_i915_cmd_descriptor video_cmds[] = {
 	CMD(  MI_ARB_ON_OFF,                    SMI,    F,  1,      R  ),
+	CMD(  MI_SET_APPID,                     SMI,    F,  1,      S  ),
 	CMD(  MI_STORE_DWORD_IMM,               SMI,   !F,  0xFF,   B,
 	      .bits = {{
 			.offset = 0,
@@ -272,6 +275,7 @@  static const struct drm_i915_cmd_descriptor video_cmds[] = {
 
 static const struct drm_i915_cmd_descriptor vecs_cmds[] = {
 	CMD(  MI_ARB_ON_OFF,                    SMI,    F,  1,      R  ),
+	CMD(  MI_SET_APPID,                     SMI,    F,  1,      S  ),
 	CMD(  MI_STORE_DWORD_IMM,               SMI,   !F,  0xFF,   B,
 	      .bits = {{
 			.offset = 0,
@@ -481,13 +485,17 @@  static u32 gen7_bsd_get_cmd_length_mask(u32 cmd_header)
 	u32 client = (cmd_header & INSTR_CLIENT_MASK) >> INSTR_CLIENT_SHIFT;
 	u32 subclient =
 		(cmd_header & INSTR_SUBCLIENT_MASK) >> INSTR_SUBCLIENT_SHIFT;
+	u32 op = (cmd_header & INSTR_26_TO_24_MASK) >> INSTR_26_TO_24_SHIFT;
 
 	if (client == INSTR_MI_CLIENT)
 		return 0x3F;
 	else if (client == INSTR_RC_CLIENT) {
-		if (subclient == INSTR_MEDIA_SUBCLIENT)
-			return 0xFFF;
-		else
+		if (subclient == INSTR_MEDIA_SUBCLIENT) {
+			if (op == 6)
+				return 0xFFFF;
+			else
+				return 0xFFF;
+		} else
 			return 0xFF;
 	}
 
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 7a77cd5..c881d88 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -204,6 +204,8 @@ 
 #define INSTR_SUBCLIENT_SHIFT   27
 #define INSTR_SUBCLIENT_MASK    0x18000000
 #define   INSTR_MEDIA_SUBCLIENT 0x2
+#define INSTR_26_TO_24_MASK	0x7000000
+#define   INSTR_26_TO_24_SHIFT	24
 
 /*
  * Memory interface instructions used by the kernel
@@ -233,6 +235,7 @@ 
 #define MI_BATCH_BUFFER_END	MI_INSTR(0x0a, 0)
 #define MI_SUSPEND_FLUSH	MI_INSTR(0x0b, 0)
 #define   MI_SUSPEND_FLUSH_EN	(1<<0)
+#define MI_SET_APPID		MI_INSTR(0x0e, 0)
 #define MI_OVERLAY_FLIP		MI_INSTR(0x11, 0)
 #define   MI_OVERLAY_CONTINUE	(0x0<<21)
 #define   MI_OVERLAY_ON		(0x1<<21)