Skip to content

Commit 37b49f3

Browse files
committed
Merge tag 'drm-fixes-2019-11-15' of git://anongit.freedesktop.org/drm/drm
Pull drm fixes from Dave Airlie: "Here is this weeks non-intel hw vuln fixes pull. Three drivers, all small fixes. i915: - MOCS table fixes for EHL and TGL - Update Display's rawclock on resume - GVT's dmabuf reference drop fix amdgpu: - Fix a potential crash in firmware parsing sun4i: - One fix to the dotclock dividers range for sun4i" * tag 'drm-fixes-2019-11-15' of git://anongit.freedesktop.org/drm/drm: drm/amdgpu: fix null pointer deref in firmware header printing drm/i915/tgl: MOCS table update Revert "drm/i915/ehl: Update MOCS table for EHL" drm/sun4i: tcon: Set min division of TCON0_DCLK to 1. drm/i915: update rawclk also on resume drm/i915/gvt: fix dropping obj reference twice
2 parents b4c0800 + 07cecca commit 37b49f3

File tree

6 files changed

+23
-37
lines changed

6 files changed

+23
-37
lines changed

drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c

Lines changed: 16 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -950,21 +950,7 @@ static void psp_print_fw_hdr(struct psp_context *psp,
950950
struct amdgpu_firmware_info *ucode)
951951
{
952952
struct amdgpu_device *adev = psp->adev;
953-
const struct sdma_firmware_header_v1_0 *sdma_hdr =
954-
(const struct sdma_firmware_header_v1_0 *)
955-
adev->sdma.instance[ucode->ucode_id - AMDGPU_UCODE_ID_SDMA0].fw->data;
956-
const struct gfx_firmware_header_v1_0 *ce_hdr =
957-
(const struct gfx_firmware_header_v1_0 *)adev->gfx.ce_fw->data;
958-
const struct gfx_firmware_header_v1_0 *pfp_hdr =
959-
(const struct gfx_firmware_header_v1_0 *)adev->gfx.pfp_fw->data;
960-
const struct gfx_firmware_header_v1_0 *me_hdr =
961-
(const struct gfx_firmware_header_v1_0 *)adev->gfx.me_fw->data;
962-
const struct gfx_firmware_header_v1_0 *mec_hdr =
963-
(const struct gfx_firmware_header_v1_0 *)adev->gfx.mec_fw->data;
964-
const struct rlc_firmware_header_v2_0 *rlc_hdr =
965-
(const struct rlc_firmware_header_v2_0 *)adev->gfx.rlc_fw->data;
966-
const struct smc_firmware_header_v1_0 *smc_hdr =
967-
(const struct smc_firmware_header_v1_0 *)adev->pm.fw->data;
953+
struct common_firmware_header *hdr;
968954

969955
switch (ucode->ucode_id) {
970956
case AMDGPU_UCODE_ID_SDMA0:
@@ -975,25 +961,33 @@ static void psp_print_fw_hdr(struct psp_context *psp,
975961
case AMDGPU_UCODE_ID_SDMA5:
976962
case AMDGPU_UCODE_ID_SDMA6:
977963
case AMDGPU_UCODE_ID_SDMA7:
978-
amdgpu_ucode_print_sdma_hdr(&sdma_hdr->header);
964+
hdr = (struct common_firmware_header *)
965+
adev->sdma.instance[ucode->ucode_id - AMDGPU_UCODE_ID_SDMA0].fw->data;
966+
amdgpu_ucode_print_sdma_hdr(hdr);
979967
break;
980968
case AMDGPU_UCODE_ID_CP_CE:
981-
amdgpu_ucode_print_gfx_hdr(&ce_hdr->header);
969+
hdr = (struct common_firmware_header *)adev->gfx.ce_fw->data;
970+
amdgpu_ucode_print_gfx_hdr(hdr);
982971
break;
983972
case AMDGPU_UCODE_ID_CP_PFP:
984-
amdgpu_ucode_print_gfx_hdr(&pfp_hdr->header);
973+
hdr = (struct common_firmware_header *)adev->gfx.pfp_fw->data;
974+
amdgpu_ucode_print_gfx_hdr(hdr);
985975
break;
986976
case AMDGPU_UCODE_ID_CP_ME:
987-
amdgpu_ucode_print_gfx_hdr(&me_hdr->header);
977+
hdr = (struct common_firmware_header *)adev->gfx.me_fw->data;
978+
amdgpu_ucode_print_gfx_hdr(hdr);
988979
break;
989980
case AMDGPU_UCODE_ID_CP_MEC1:
990-
amdgpu_ucode_print_gfx_hdr(&mec_hdr->header);
981+
hdr = (struct common_firmware_header *)adev->gfx.mec_fw->data;
982+
amdgpu_ucode_print_gfx_hdr(hdr);
991983
break;
992984
case AMDGPU_UCODE_ID_RLC_G:
993-
amdgpu_ucode_print_rlc_hdr(&rlc_hdr->header);
985+
hdr = (struct common_firmware_header *)adev->gfx.rlc_fw->data;
986+
amdgpu_ucode_print_rlc_hdr(hdr);
994987
break;
995988
case AMDGPU_UCODE_ID_SMC:
996-
amdgpu_ucode_print_smc_hdr(&smc_hdr->header);
989+
hdr = (struct common_firmware_header *)adev->pm.fw->data;
990+
amdgpu_ucode_print_smc_hdr(hdr);
997991
break;
998992
default:
999993
break;

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4896,6 +4896,9 @@ void intel_power_domains_init_hw(struct drm_i915_private *i915, bool resume)
48964896

48974897
power_domains->initializing = true;
48984898

4899+
/* Must happen before power domain init on VLV/CHV */
4900+
intel_update_rawclk(i915);
4901+
48994902
if (INTEL_GEN(i915) >= 11) {
49004903
icl_display_core_init(i915, resume);
49014904
} else if (IS_CANNONLAKE(i915)) {

drivers/gpu/drm/i915/gt/intel_mocs.c

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -199,14 +199,6 @@ static const struct drm_i915_mocs_entry broxton_mocs_table[] = {
199199
MOCS_ENTRY(15, \
200200
LE_3_WB | LE_TC_1_LLC | LE_LRUM(2) | LE_AOM(1), \
201201
L3_3_WB), \
202-
/* Bypass LLC - Uncached (EHL+) */ \
203-
MOCS_ENTRY(16, \
204-
LE_1_UC | LE_TC_1_LLC | LE_SCF(1), \
205-
L3_1_UC), \
206-
/* Bypass LLC - L3 (Read-Only) (EHL+) */ \
207-
MOCS_ENTRY(17, \
208-
LE_1_UC | LE_TC_1_LLC | LE_SCF(1), \
209-
L3_3_WB), \
210202
/* Self-Snoop - L3 + LLC */ \
211203
MOCS_ENTRY(18, \
212204
LE_3_WB | LE_TC_1_LLC | LE_LRUM(3) | LE_SSE(3), \
@@ -270,7 +262,7 @@ static const struct drm_i915_mocs_entry tigerlake_mocs_table[] = {
270262
L3_1_UC),
271263
/* HW Special Case (Displayable) */
272264
MOCS_ENTRY(61,
273-
LE_1_UC | LE_TC_1_LLC | LE_SCF(1),
265+
LE_1_UC | LE_TC_1_LLC,
274266
L3_3_WB),
275267
};
276268

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -498,8 +498,6 @@ int intel_vgpu_get_dmabuf(struct intel_vgpu *vgpu, unsigned int dmabuf_id)
498498
goto out_free_gem;
499499
}
500500

501-
i915_gem_object_put(obj);
502-
503501
ret = dma_buf_fd(dmabuf, DRM_CLOEXEC | DRM_RDWR);
504502
if (ret < 0) {
505503
gvt_vgpu_err("create dma-buf fd failed ret:%d\n", ret);
@@ -524,6 +522,8 @@ int intel_vgpu_get_dmabuf(struct intel_vgpu *vgpu, unsigned int dmabuf_id)
524522
file_count(dmabuf->file),
525523
kref_read(&obj->base.refcount));
526524

525+
i915_gem_object_put(obj);
526+
527527
return dmabuf_fd;
528528

529529
out_free_dmabuf:

drivers/gpu/drm/i915/i915_drv.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -364,9 +364,6 @@ static int i915_driver_modeset_probe(struct drm_device *dev)
364364
if (ret)
365365
goto cleanup_vga_client;
366366

367-
/* must happen before intel_power_domains_init_hw() on VLV/CHV */
368-
intel_update_rawclk(dev_priv);
369-
370367
intel_power_domains_init_hw(dev_priv, false);
371368

372369
intel_csr_ucode_init(dev_priv);

drivers/gpu/drm/sun4i/sun4i_tcon.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -488,7 +488,7 @@ static void sun4i_tcon0_mode_set_rgb(struct sun4i_tcon *tcon,
488488

489489
WARN_ON(!tcon->quirks->has_channel_0);
490490

491-
tcon->dclk_min_div = 6;
491+
tcon->dclk_min_div = 1;
492492
tcon->dclk_max_div = 127;
493493
sun4i_tcon0_mode_set_common(tcon, mode);
494494

0 commit comments

Comments
 (0)