Skip to content

Commit 0a1a679

Browse files
committed
Merge tag 'drm-intel-next-fixes-2020-04-02' of git://anongit.freedesktop.org/drm/drm-intel into drm-next
Only gvt fixes on this round: - Fix non-privilege access warning (Tina) - Fix display port type (Tina) - BDW cmd parser missed SWTESS_BASE_ADDRESS (Yan) - Bypass length check of LRI (Yan) - Fix one klocwork warning (Tina) Signed-off-by: Dave Airlie <[email protected]> From: Rodrigo Vivi <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2 parents 0e7e619 + 17d0c10 commit 0a1a679

File tree

4 files changed

+15
-19
lines changed

4 files changed

+15
-19
lines changed

drivers/gpu/drm/i915/gvt/cmd_parser.c

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ struct decode_info {
164164
#define OP_STATE_BASE_ADDRESS OP_3D_MEDIA(0x0, 0x1, 0x01)
165165
#define OP_STATE_SIP OP_3D_MEDIA(0x0, 0x1, 0x02)
166166
#define OP_3D_MEDIA_0_1_4 OP_3D_MEDIA(0x0, 0x1, 0x04)
167+
#define OP_SWTESS_BASE_ADDRESS OP_3D_MEDIA(0x0, 0x1, 0x03)
167168

168169
#define OP_3DSTATE_VF_STATISTICS_GM45 OP_3D_MEDIA(0x1, 0x0, 0x0B)
169170

@@ -967,18 +968,6 @@ static int cmd_handler_lri(struct parser_exec_state *s)
967968
{
968969
int i, ret = 0;
969970
int cmd_len = cmd_length(s);
970-
u32 valid_len = CMD_LEN(1);
971-
972-
/*
973-
* Official intel docs are somewhat sloppy , check the definition of
974-
* MI_LOAD_REGISTER_IMM.
975-
*/
976-
#define MAX_VALID_LEN 127
977-
if ((cmd_len < valid_len) || (cmd_len > MAX_VALID_LEN)) {
978-
gvt_err("len is not valid: len=%u valid_len=%u\n",
979-
cmd_len, valid_len);
980-
return -EFAULT;
981-
}
982971

983972
for (i = 1; i < cmd_len; i += 2) {
984973
if (IS_BROADWELL(s->engine->i915) && s->engine->id != RCS0) {
@@ -2485,6 +2474,9 @@ static const struct cmd_info cmd_info[] = {
24852474
{"OP_3D_MEDIA_0_1_4", OP_3D_MEDIA_0_1_4, F_LEN_VAR, R_RCS, D_ALL,
24862475
ADDR_FIX_1(1), 8, NULL},
24872476

2477+
{"OP_SWTESS_BASE_ADDRESS", OP_SWTESS_BASE_ADDRESS,
2478+
F_LEN_VAR, R_RCS, D_ALL, ADDR_FIX_2(1, 2), 3, NULL},
2479+
24882480
{"3DSTATE_VS", OP_3DSTATE_VS, F_LEN_VAR, R_RCS, D_ALL, 0, 8, NULL},
24892481

24902482
{"3DSTATE_SF", OP_3DSTATE_SF, F_LEN_VAR, R_RCS, D_ALL, 0, 8, NULL},

drivers/gpu/drm/i915/gvt/display.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ static void emulate_monitor_status_change(struct intel_vgpu *vgpu)
221221
~(TRANS_DDI_BPC_MASK | TRANS_DDI_MODE_SELECT_MASK |
222222
TRANS_DDI_PORT_MASK);
223223
vgpu_vreg_t(vgpu, TRANS_DDI_FUNC_CTL(TRANSCODER_A)) |=
224-
(TRANS_DDI_BPC_8 | TRANS_DDI_MODE_SELECT_DVI |
224+
(TRANS_DDI_BPC_8 | TRANS_DDI_MODE_SELECT_DP_SST |
225225
(PORT_B << TRANS_DDI_PORT_SHIFT) |
226226
TRANS_DDI_FUNC_ENABLE);
227227
if (IS_BROADWELL(dev_priv)) {
@@ -241,7 +241,7 @@ static void emulate_monitor_status_change(struct intel_vgpu *vgpu)
241241
~(TRANS_DDI_BPC_MASK | TRANS_DDI_MODE_SELECT_MASK |
242242
TRANS_DDI_PORT_MASK);
243243
vgpu_vreg_t(vgpu, TRANS_DDI_FUNC_CTL(TRANSCODER_A)) |=
244-
(TRANS_DDI_BPC_8 | TRANS_DDI_MODE_SELECT_DVI |
244+
(TRANS_DDI_BPC_8 | TRANS_DDI_MODE_SELECT_DP_SST |
245245
(PORT_C << TRANS_DDI_PORT_SHIFT) |
246246
TRANS_DDI_FUNC_ENABLE);
247247
if (IS_BROADWELL(dev_priv)) {
@@ -261,7 +261,7 @@ static void emulate_monitor_status_change(struct intel_vgpu *vgpu)
261261
~(TRANS_DDI_BPC_MASK | TRANS_DDI_MODE_SELECT_MASK |
262262
TRANS_DDI_PORT_MASK);
263263
vgpu_vreg_t(vgpu, TRANS_DDI_FUNC_CTL(TRANSCODER_A)) |=
264-
(TRANS_DDI_BPC_8 | TRANS_DDI_MODE_SELECT_DVI |
264+
(TRANS_DDI_BPC_8 | TRANS_DDI_MODE_SELECT_DP_SST |
265265
(PORT_D << TRANS_DDI_PORT_SHIFT) |
266266
TRANS_DDI_FUNC_ENABLE);
267267
if (IS_BROADWELL(dev_priv)) {

drivers/gpu/drm/i915/gvt/handlers.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -462,11 +462,14 @@ static int pipeconf_mmio_write(struct intel_vgpu *vgpu, unsigned int offset,
462462
return 0;
463463
}
464464

465-
/* ascendingly sorted */
465+
/* sorted in ascending order */
466466
static i915_reg_t force_nonpriv_white_list[] = {
467+
_MMIO(0xd80),
467468
GEN9_CS_DEBUG_MODE1, //_MMIO(0x20ec)
468469
GEN9_CTX_PREEMPT_REG,//_MMIO(0x2248)
469-
PS_INVOCATION_COUNT,//_MMIO(0x2348)
470+
CL_PRIMITIVES_COUNT, //_MMIO(0x2340)
471+
PS_INVOCATION_COUNT, //_MMIO(0x2348)
472+
PS_DEPTH_COUNT, //_MMIO(0x2350)
470473
GEN8_CS_CHICKEN1,//_MMIO(0x2580)
471474
_MMIO(0x2690),
472475
_MMIO(0x2694),
@@ -491,6 +494,7 @@ static i915_reg_t force_nonpriv_white_list[] = {
491494
_MMIO(0xe18c),
492495
_MMIO(0xe48c),
493496
_MMIO(0xe5f4),
497+
_MMIO(0x64844),
494498
};
495499

496500
/* a simple bsearch */

drivers/gpu/drm/i915/gvt/scheduler.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -296,8 +296,8 @@ shadow_context_descriptor_update(struct intel_context *ce,
296296
* Update bits 0-11 of the context descriptor which includes flags
297297
* like GEN8_CTX_* cached in desc_template
298298
*/
299-
desc &= ~(0x3 << GEN8_CTX_ADDRESSING_MODE_SHIFT);
300-
desc |= workload->ctx_desc.addressing_mode <<
299+
desc &= ~(0x3ull << GEN8_CTX_ADDRESSING_MODE_SHIFT);
300+
desc |= (u64)workload->ctx_desc.addressing_mode <<
301301
GEN8_CTX_ADDRESSING_MODE_SHIFT;
302302

303303
ce->lrc_desc = desc;

0 commit comments

Comments
 (0)