|
@@ -1279,14 +1279,12 @@ static int skl_misc_ctl_write(struct intel_vgpu *vgpu, unsigned int offset,
|
|
case 0x4ddc:
|
|
case 0x4ddc:
|
|
vgpu_vreg(vgpu, offset) = 0x8000003c;
|
|
vgpu_vreg(vgpu, offset) = 0x8000003c;
|
|
/* WaCompressedResourceSamplerPbeMediaNewHashMode:skl */
|
|
/* WaCompressedResourceSamplerPbeMediaNewHashMode:skl */
|
|
- if (IS_SKL_REVID(dev_priv, SKL_REVID_C0, REVID_FOREVER))
|
|
|
|
- I915_WRITE(reg, vgpu_vreg(vgpu, offset));
|
|
|
|
|
|
+ I915_WRITE(reg, vgpu_vreg(vgpu, offset));
|
|
break;
|
|
break;
|
|
case 0x42080:
|
|
case 0x42080:
|
|
vgpu_vreg(vgpu, offset) = 0x8000;
|
|
vgpu_vreg(vgpu, offset) = 0x8000;
|
|
/* WaCompressedResourceDisplayNewHashMode:skl */
|
|
/* WaCompressedResourceDisplayNewHashMode:skl */
|
|
- if (IS_SKL_REVID(dev_priv, SKL_REVID_E0, REVID_FOREVER))
|
|
|
|
- I915_WRITE(reg, vgpu_vreg(vgpu, offset));
|
|
|
|
|
|
+ I915_WRITE(reg, vgpu_vreg(vgpu, offset));
|
|
break;
|
|
break;
|
|
default:
|
|
default:
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
@@ -1372,6 +1370,7 @@ static int gvt_reg_tlb_control_handler(struct intel_vgpu *vgpu,
|
|
unsigned int id = 0;
|
|
unsigned int id = 0;
|
|
|
|
|
|
write_vreg(vgpu, offset, p_data, bytes);
|
|
write_vreg(vgpu, offset, p_data, bytes);
|
|
|
|
+ vgpu_vreg(vgpu, offset) = 0;
|
|
|
|
|
|
switch (offset) {
|
|
switch (offset) {
|
|
case 0x4260:
|
|
case 0x4260:
|
|
@@ -1508,7 +1507,7 @@ static int init_generic_mmio_info(struct intel_gvt *gvt)
|
|
|
|
|
|
MMIO_DFH(GEN7_GT_MODE, D_ALL, F_MODE_MASK, NULL, NULL);
|
|
MMIO_DFH(GEN7_GT_MODE, D_ALL, F_MODE_MASK, NULL, NULL);
|
|
MMIO_DFH(CACHE_MODE_0_GEN7, D_ALL, F_MODE_MASK, NULL, NULL);
|
|
MMIO_DFH(CACHE_MODE_0_GEN7, D_ALL, F_MODE_MASK, NULL, NULL);
|
|
- MMIO_DFH(CACHE_MODE_1, D_ALL, F_MODE_MASK, NULL, NULL);
|
|
|
|
|
|
+ MMIO_DFH(CACHE_MODE_1, D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
|
|
|
|
|
|
MMIO_DFH(0x20dc, D_ALL, F_MODE_MASK, NULL, NULL);
|
|
MMIO_DFH(0x20dc, D_ALL, F_MODE_MASK, NULL, NULL);
|
|
MMIO_DFH(_3D_CHICKEN3, D_ALL, F_MODE_MASK, NULL, NULL);
|
|
MMIO_DFH(_3D_CHICKEN3, D_ALL, F_MODE_MASK, NULL, NULL);
|
|
@@ -1517,7 +1516,7 @@ static int init_generic_mmio_info(struct intel_gvt *gvt)
|
|
MMIO_DFH(0x2470, D_ALL, F_MODE_MASK, NULL, NULL);
|
|
MMIO_DFH(0x2470, D_ALL, F_MODE_MASK, NULL, NULL);
|
|
MMIO_D(GAM_ECOCHK, D_ALL);
|
|
MMIO_D(GAM_ECOCHK, D_ALL);
|
|
MMIO_DFH(GEN7_COMMON_SLICE_CHICKEN1, D_ALL, F_MODE_MASK, NULL, NULL);
|
|
MMIO_DFH(GEN7_COMMON_SLICE_CHICKEN1, D_ALL, F_MODE_MASK, NULL, NULL);
|
|
- MMIO_DFH(COMMON_SLICE_CHICKEN2, D_ALL, F_MODE_MASK, NULL, NULL);
|
|
|
|
|
|
+ MMIO_DFH(COMMON_SLICE_CHICKEN2, D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
|
|
MMIO_D(0x9030, D_ALL);
|
|
MMIO_D(0x9030, D_ALL);
|
|
MMIO_D(0x20a0, D_ALL);
|
|
MMIO_D(0x20a0, D_ALL);
|
|
MMIO_D(0x2420, D_ALL);
|
|
MMIO_D(0x2420, D_ALL);
|
|
@@ -1526,7 +1525,7 @@ static int init_generic_mmio_info(struct intel_gvt *gvt)
|
|
MMIO_D(0x2438, D_ALL);
|
|
MMIO_D(0x2438, D_ALL);
|
|
MMIO_D(0x243c, D_ALL);
|
|
MMIO_D(0x243c, D_ALL);
|
|
MMIO_DFH(0x7018, D_ALL, F_MODE_MASK, NULL, NULL);
|
|
MMIO_DFH(0x7018, D_ALL, F_MODE_MASK, NULL, NULL);
|
|
- MMIO_DFH(0xe184, D_ALL, F_MODE_MASK, NULL, NULL);
|
|
|
|
|
|
+ MMIO_DFH(HALF_SLICE_CHICKEN3, D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
|
|
MMIO_DFH(0xe100, D_ALL, F_MODE_MASK, NULL, NULL);
|
|
MMIO_DFH(0xe100, D_ALL, F_MODE_MASK, NULL, NULL);
|
|
|
|
|
|
/* display */
|
|
/* display */
|
|
@@ -2139,6 +2138,7 @@ static int init_generic_mmio_info(struct intel_gvt *gvt)
|
|
MMIO_D(GEN6_MBCTL, D_ALL);
|
|
MMIO_D(GEN6_MBCTL, D_ALL);
|
|
MMIO_D(0x911c, D_ALL);
|
|
MMIO_D(0x911c, D_ALL);
|
|
MMIO_D(0x9120, D_ALL);
|
|
MMIO_D(0x9120, D_ALL);
|
|
|
|
+ MMIO_DFH(GEN7_UCGCTL4, D_ALL, F_CMD_ACCESS, NULL, NULL);
|
|
|
|
|
|
MMIO_D(GAB_CTL, D_ALL);
|
|
MMIO_D(GAB_CTL, D_ALL);
|
|
MMIO_D(0x48800, D_ALL);
|
|
MMIO_D(0x48800, D_ALL);
|
|
@@ -2377,7 +2377,7 @@ static int init_broadwell_mmio_info(struct intel_gvt *gvt)
|
|
MMIO_RING_GM(RING_HWS_PGA, D_BDW_PLUS, NULL, NULL);
|
|
MMIO_RING_GM(RING_HWS_PGA, D_BDW_PLUS, NULL, NULL);
|
|
MMIO_GM(0x1c080, D_BDW_PLUS, NULL, NULL);
|
|
MMIO_GM(0x1c080, D_BDW_PLUS, NULL, NULL);
|
|
|
|
|
|
- MMIO_DFH(HDC_CHICKEN0, D_BDW_PLUS, F_MODE_MASK, NULL, NULL);
|
|
|
|
|
|
+ MMIO_DFH(HDC_CHICKEN0, D_BDW_PLUS, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
|
|
|
|
|
|
MMIO_D(CHICKEN_PIPESL_1(PIPE_A), D_BDW);
|
|
MMIO_D(CHICKEN_PIPESL_1(PIPE_A), D_BDW);
|
|
MMIO_D(CHICKEN_PIPESL_1(PIPE_B), D_BDW);
|
|
MMIO_D(CHICKEN_PIPESL_1(PIPE_B), D_BDW);
|
|
@@ -2396,7 +2396,7 @@ static int init_broadwell_mmio_info(struct intel_gvt *gvt)
|
|
MMIO_D(GEN8_EU_DISABLE2, D_BDW_PLUS);
|
|
MMIO_D(GEN8_EU_DISABLE2, D_BDW_PLUS);
|
|
|
|
|
|
MMIO_D(0xfdc, D_BDW);
|
|
MMIO_D(0xfdc, D_BDW);
|
|
- MMIO_D(GEN8_ROW_CHICKEN, D_BDW_PLUS);
|
|
|
|
|
|
+ MMIO_DFH(GEN8_ROW_CHICKEN, D_BDW_PLUS, F_CMD_ACCESS, NULL, NULL);
|
|
MMIO_D(GEN7_ROW_CHICKEN2, D_BDW_PLUS);
|
|
MMIO_D(GEN7_ROW_CHICKEN2, D_BDW_PLUS);
|
|
MMIO_D(GEN8_UCGCTL6, D_BDW_PLUS);
|
|
MMIO_D(GEN8_UCGCTL6, D_BDW_PLUS);
|
|
|
|
|
|
@@ -2407,10 +2407,10 @@ static int init_broadwell_mmio_info(struct intel_gvt *gvt)
|
|
MMIO_D(0xb10c, D_BDW);
|
|
MMIO_D(0xb10c, D_BDW);
|
|
MMIO_D(0xb110, D_BDW);
|
|
MMIO_D(0xb110, D_BDW);
|
|
|
|
|
|
- MMIO_DH(0x24d0, D_BDW_PLUS, NULL, NULL);
|
|
|
|
- MMIO_DH(0x24d4, D_BDW_PLUS, NULL, NULL);
|
|
|
|
- MMIO_DH(0x24d8, D_BDW_PLUS, NULL, NULL);
|
|
|
|
- MMIO_DH(0x24dc, D_BDW_PLUS, NULL, NULL);
|
|
|
|
|
|
+ MMIO_DFH(0x24d0, D_BDW_PLUS, F_CMD_ACCESS, NULL, NULL);
|
|
|
|
+ MMIO_DFH(0x24d4, D_BDW_PLUS, F_CMD_ACCESS, NULL, NULL);
|
|
|
|
+ MMIO_DFH(0x24d8, D_BDW_PLUS, F_CMD_ACCESS, NULL, NULL);
|
|
|
|
+ MMIO_DFH(0x24dc, D_BDW_PLUS, F_CMD_ACCESS, NULL, NULL);
|
|
|
|
|
|
MMIO_D(0x83a4, D_BDW);
|
|
MMIO_D(0x83a4, D_BDW);
|
|
MMIO_D(GEN8_L3_LRA_1_GPGPU, D_BDW_PLUS);
|
|
MMIO_D(GEN8_L3_LRA_1_GPGPU, D_BDW_PLUS);
|
|
@@ -2424,9 +2424,9 @@ static int init_broadwell_mmio_info(struct intel_gvt *gvt)
|
|
MMIO_D(0x6e570, D_BDW_PLUS);
|
|
MMIO_D(0x6e570, D_BDW_PLUS);
|
|
MMIO_D(0x65f10, D_BDW_PLUS);
|
|
MMIO_D(0x65f10, D_BDW_PLUS);
|
|
|
|
|
|
- MMIO_DFH(0xe194, D_BDW_PLUS, F_MODE_MASK, NULL, NULL);
|
|
|
|
- MMIO_DFH(0xe188, D_BDW_PLUS, F_MODE_MASK, NULL, NULL);
|
|
|
|
- MMIO_DFH(0xe180, D_BDW_PLUS, F_MODE_MASK, NULL, NULL);
|
|
|
|
|
|
+ MMIO_DFH(0xe194, D_BDW_PLUS, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
|
|
|
|
+ MMIO_DFH(0xe188, D_BDW_PLUS, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
|
|
|
|
+ MMIO_DFH(HALF_SLICE_CHICKEN2, D_BDW_PLUS, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
|
|
MMIO_DFH(0x2580, D_BDW_PLUS, F_MODE_MASK, NULL, NULL);
|
|
MMIO_DFH(0x2580, D_BDW_PLUS, F_MODE_MASK, NULL, NULL);
|
|
|
|
|
|
MMIO_D(0x2248, D_BDW);
|
|
MMIO_D(0x2248, D_BDW);
|
|
@@ -2457,6 +2457,7 @@ static int init_skl_mmio_info(struct intel_gvt *gvt)
|
|
MMIO_D(0xa210, D_SKL_PLUS);
|
|
MMIO_D(0xa210, D_SKL_PLUS);
|
|
MMIO_D(GEN9_MEDIA_PG_IDLE_HYSTERESIS, D_SKL_PLUS);
|
|
MMIO_D(GEN9_MEDIA_PG_IDLE_HYSTERESIS, D_SKL_PLUS);
|
|
MMIO_D(GEN9_RENDER_PG_IDLE_HYSTERESIS, D_SKL_PLUS);
|
|
MMIO_D(GEN9_RENDER_PG_IDLE_HYSTERESIS, D_SKL_PLUS);
|
|
|
|
+ MMIO_DFH(GEN9_GAMT_ECO_REG_RW_IA, D_SKL_PLUS, F_CMD_ACCESS, NULL, NULL);
|
|
MMIO_DH(0x4ddc, D_SKL, NULL, skl_misc_ctl_write);
|
|
MMIO_DH(0x4ddc, D_SKL, NULL, skl_misc_ctl_write);
|
|
MMIO_DH(0x42080, D_SKL, NULL, skl_misc_ctl_write);
|
|
MMIO_DH(0x42080, D_SKL, NULL, skl_misc_ctl_write);
|
|
MMIO_D(0x45504, D_SKL);
|
|
MMIO_D(0x45504, D_SKL);
|
|
@@ -2606,8 +2607,8 @@ static int init_skl_mmio_info(struct intel_gvt *gvt)
|
|
MMIO_D(0x51000, D_SKL);
|
|
MMIO_D(0x51000, D_SKL);
|
|
MMIO_D(0x6c00c, D_SKL);
|
|
MMIO_D(0x6c00c, D_SKL);
|
|
|
|
|
|
- MMIO_F(0xc800, 0x7f8, 0, 0, 0, D_SKL, NULL, NULL);
|
|
|
|
- MMIO_F(0xb020, 0x80, 0, 0, 0, D_SKL, NULL, NULL);
|
|
|
|
|
|
+ MMIO_F(0xc800, 0x7f8, F_CMD_ACCESS, 0, 0, D_SKL, NULL, NULL);
|
|
|
|
+ MMIO_F(0xb020, 0x80, F_CMD_ACCESS, 0, 0, D_SKL, NULL, NULL);
|
|
|
|
|
|
MMIO_D(0xd08, D_SKL);
|
|
MMIO_D(0xd08, D_SKL);
|
|
MMIO_D(0x20e0, D_SKL);
|
|
MMIO_D(0x20e0, D_SKL);
|