Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit8f598d1

Browse files
committed
Merge branch 'linux-5.10' of git://github.com/skeggsb/linux into drm-fixes
- atomic modesetting regression fix- ttm pre-nv50 fix- connector NULL ptr deref fixSigned-off-by: Dave Airlie <airlied@redhat.com>From: Ben Skeggs <skeggsb@gmail.com>Link:https://patchwork.freedesktop.org/patch/msgid/CACAvsv5D9p78MNN0OxVeRZxN8LDqcadJEGUEFCgWJQ6+_rjPuw@mail.gmail.com
2 parents41f3ed2 +5c6fb4b commit8f598d1

File tree

3 files changed

+24
-22
lines changed

3 files changed

+24
-22
lines changed

‎drivers/gpu/drm/nouveau/dispnv50/disp.c‎

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -455,7 +455,7 @@ nv50_outp_get_old_connector(struct nouveau_encoder *outp,
455455
* DAC
456456
*****************************************************************************/
457457
staticvoid
458-
nv50_dac_disable(structdrm_encoder*encoder)
458+
nv50_dac_disable(structdrm_encoder*encoder,structdrm_atomic_state*state)
459459
{
460460
structnouveau_encoder*nv_encoder=nouveau_encoder(encoder);
461461
structnv50_core*core=nv50_disp(encoder->dev)->core;
@@ -467,7 +467,7 @@ nv50_dac_disable(struct drm_encoder *encoder)
467467
}
468468

469469
staticvoid
470-
nv50_dac_enable(structdrm_encoder*encoder)
470+
nv50_dac_enable(structdrm_encoder*encoder,structdrm_atomic_state*state)
471471
{
472472
structnouveau_encoder*nv_encoder=nouveau_encoder(encoder);
473473
structnouveau_crtc*nv_crtc=nouveau_crtc(encoder->crtc);
@@ -525,8 +525,8 @@ nv50_dac_detect(struct drm_encoder *encoder, struct drm_connector *connector)
525525
staticconststructdrm_encoder_helper_funcs
526526
nv50_dac_help= {
527527
.atomic_check=nv50_outp_atomic_check,
528-
.enable=nv50_dac_enable,
529-
.disable=nv50_dac_disable,
528+
.atomic_enable=nv50_dac_enable,
529+
.atomic_disable=nv50_dac_disable,
530530
.detect=nv50_dac_detect
531531
};
532532

@@ -1055,7 +1055,7 @@ nv50_dp_bpc_to_depth(unsigned int bpc)
10551055
}
10561056

10571057
staticvoid
1058-
nv50_msto_enable(structdrm_encoder*encoder)
1058+
nv50_msto_enable(structdrm_encoder*encoder,structdrm_atomic_state*state)
10591059
{
10601060
structnv50_head*head=nv50_head(encoder->crtc);
10611061
structnv50_head_atom*armh=nv50_head_atom(head->base.base.state);
@@ -1101,7 +1101,7 @@ nv50_msto_enable(struct drm_encoder *encoder)
11011101
}
11021102

11031103
staticvoid
1104-
nv50_msto_disable(structdrm_encoder*encoder)
1104+
nv50_msto_disable(structdrm_encoder*encoder,structdrm_atomic_state*state)
11051105
{
11061106
structnv50_msto*msto=nv50_msto(encoder);
11071107
structnv50_mstc*mstc=msto->mstc;
@@ -1118,8 +1118,8 @@ nv50_msto_disable(struct drm_encoder *encoder)
11181118

11191119
staticconststructdrm_encoder_helper_funcs
11201120
nv50_msto_help= {
1121-
.disable=nv50_msto_disable,
1122-
.enable=nv50_msto_enable,
1121+
.atomic_disable=nv50_msto_disable,
1122+
.atomic_enable=nv50_msto_enable,
11231123
.atomic_check=nv50_msto_atomic_check,
11241124
};
11251125

@@ -1645,8 +1645,7 @@ nv50_sor_disable(struct drm_encoder *encoder,
16451645
}
16461646

16471647
staticvoid
1648-
nv50_sor_enable(structdrm_encoder*encoder,
1649-
structdrm_atomic_state*state)
1648+
nv50_sor_enable(structdrm_encoder*encoder,structdrm_atomic_state*state)
16501649
{
16511650
structnouveau_encoder*nv_encoder=nouveau_encoder(encoder);
16521651
structnouveau_crtc*nv_crtc=nouveau_crtc(encoder->crtc);
@@ -1873,7 +1872,7 @@ nv50_pior_atomic_check(struct drm_encoder *encoder,
18731872
}
18741873

18751874
staticvoid
1876-
nv50_pior_disable(structdrm_encoder*encoder)
1875+
nv50_pior_disable(structdrm_encoder*encoder,structdrm_atomic_state*state)
18771876
{
18781877
structnouveau_encoder*nv_encoder=nouveau_encoder(encoder);
18791878
structnv50_core*core=nv50_disp(encoder->dev)->core;
@@ -1885,7 +1884,7 @@ nv50_pior_disable(struct drm_encoder *encoder)
18851884
}
18861885

18871886
staticvoid
1888-
nv50_pior_enable(structdrm_encoder*encoder)
1887+
nv50_pior_enable(structdrm_encoder*encoder,structdrm_atomic_state*state)
18891888
{
18901889
structnouveau_encoder*nv_encoder=nouveau_encoder(encoder);
18911890
structnouveau_crtc*nv_crtc=nouveau_crtc(encoder->crtc);
@@ -1921,14 +1920,14 @@ nv50_pior_enable(struct drm_encoder *encoder)
19211920
}
19221921

19231922
core->func->pior->ctrl(core,nv_encoder->or,ctrl,asyh);
1924-
nv_encoder->crtc=encoder->crtc;
1923+
nv_encoder->crtc=&nv_crtc->base;
19251924
}
19261925

19271926
staticconststructdrm_encoder_helper_funcs
19281927
nv50_pior_help= {
19291928
.atomic_check=nv50_pior_atomic_check,
1930-
.enable=nv50_pior_enable,
1931-
.disable=nv50_pior_disable,
1929+
.atomic_enable=nv50_pior_enable,
1930+
.atomic_disable=nv50_pior_disable,
19321931
};
19331932

19341933
staticvoid

‎drivers/gpu/drm/nouveau/nouveau_bo.c‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -350,14 +350,13 @@ set_placement_list(struct nouveau_drm *drm, struct ttm_place *pl, unsigned *n,
350350

351351
if (domain&NOUVEAU_GEM_DOMAIN_VRAM) {
352352
structnvif_mmu*mmu=&drm->client.mmu;
353-
constu8type=mmu->type[drm->ttm.type_vram].type;
354353

355354
pl[*n].mem_type=TTM_PL_VRAM;
356355
pl[*n].flags=flags& ~TTM_PL_FLAG_CACHED;
357356

358357
/* Some BARs do not support being ioremapped WC */
359358
if (drm->client.device.info.family >=NV_DEVICE_INFO_V0_TESLA&&
360-
type&NVIF_MEM_UNCACHED)
359+
mmu->type[drm->ttm.type_vram].type&NVIF_MEM_UNCACHED)
361360
pl[*n].flags &= ~TTM_PL_FLAG_WC;
362361

363362
(*n)++;

‎drivers/gpu/drm/nouveau/nouveau_connector.c‎

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -532,11 +532,13 @@ static void
532532
nouveau_connector_set_edid(structnouveau_connector*nv_connector,
533533
structedid*edid)
534534
{
535-
structedid*old_edid=nv_connector->edid;
535+
if (nv_connector->edid!=edid) {
536+
structedid*old_edid=nv_connector->edid;
536537

537-
drm_connector_update_edid_property(&nv_connector->base,edid);
538-
kfree(old_edid);
539-
nv_connector->edid=edid;
538+
drm_connector_update_edid_property(&nv_connector->base,edid);
539+
kfree(old_edid);
540+
nv_connector->edid=edid;
541+
}
540542
}
541543

542544
staticenumdrm_connector_status
@@ -669,8 +671,10 @@ nouveau_connector_detect_lvds(struct drm_connector *connector, bool force)
669671
/* Try retrieving EDID via DDC */
670672
if (!drm->vbios.fp_no_ddc) {
671673
status=nouveau_connector_detect(connector,force);
672-
if (status==connector_status_connected)
674+
if (status==connector_status_connected) {
675+
edid=nv_connector->edid;
673676
gotoout;
677+
}
674678
}
675679

676680
/* On some laptops (Sony, i'm looking at you) there appears to

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp