search for: nv_connector

Displaying 20 results from an estimated 169 matches for "nv_connector".

2024 Jan 12
2
[PATCH 1/6] drm/nouveau: convert to using is_hdmi and has_audio from display info
.../dispnv50/disp.c @@ -750,7 +750,7 @@ nv50_audio_enable(struct drm_encoder *encoder, struct nouveau_crtc *nv_crtc, struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); struct nvif_outp *outp = &nv_encoder->outp; - if (!nv50_audio_supported(encoder) || !drm_detect_monitor_audio(nv_connector->edid)) + if (!nv50_audio_supported(encoder) || !nv_connector->base.display_info.has_audio) return; mutex_lock(&drm->audio.lock); @@ -1764,7 +1764,7 @@ nv50_sor_atomic_enable(struct drm_encoder *encoder, struct drm_atomic_state *sta if ((disp->disp->object.oclass == GT21...
2024 Jan 14
1
[PATCH 1/6] drm/nouveau: convert to using is_hdmi and has_audio from display info
...nv50_audio_enable(struct drm_encoder *encoder, struct nouveau_crtc *nv_crtc, > struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); > struct nvif_outp *outp = &nv_encoder->outp; > > - if (!nv50_audio_supported(encoder) || !drm_detect_monitor_audio(nv_connector->edid)) > + if (!nv50_audio_supported(encoder) || !nv_connector->base.display_info.has_audio) > return; > > mutex_lock(&drm->audio.lock); > @@ -1764,7 +1764,7 @@ nv50_sor_atomic_enable(struct drm_encoder *encoder, struct drm_atomic_state *st...
2023 Aug 14
2
[PATCH] drm/nouveau/disp: fix use-after-free in error handling of nouveau_connector_create
...rivers/gpu/drm/nouveau/nouveau_connector.c index a2e0033e8a260..622f6eb9a8bfd 100644 --- a/drivers/gpu/drm/nouveau/nouveau_connector.c +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c @@ -1408,8 +1408,7 @@ nouveau_connector_create(struct drm_device *dev, ret = nvif_conn_ctor(&disp->disp, nv_connector->base.name, nv_connector->index, &nv_connector->conn); if (ret) { - kfree(nv_connector); - return ERR_PTR(ret); + goto drm_conn_err; } ret = nvif_conn_event_ctor(&nv_connector->conn, "kmsHotplug", @@ -1426,8 +1425,7 @@ nouveau_connector_creat...
2018 Jul 12
1
[PATCH] drm/nouveau: Don't forget to label dp_aux devices
...uveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c index 7b557c354307..0c5cc600c973 100644 --- a/drivers/gpu/drm/nouveau/nouveau_connector.c +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c @@ -408,8 +408,10 @@ nouveau_connector_destroy(struct drm_connector *connector) kfree(nv_connector->edid); drm_connector_unregister(connector); drm_connector_cleanup(connector); - if (nv_connector->aux.transfer) + if (nv_connector->aux.transfer) { drm_dp_aux_unregister(&nv_connector->aux); + kfree(nv_connector->aux.name); + } kfree(connector); } @@ -1201,13 +1203,...
2009 Aug 16
2
[PATCH] drm/nv04: fix null pointer dereferences of native_mode
Subject: [PATCH] drm/nv04: fix null pointer dereferences of native_mode nv_connector->native_mode is not set when no modes were found for the connector, so its existence can't be assumed. In nv04_dfp_mode_fixup, reject the mode if GPU scaling is enabled but native mode is not known. In nv04_dfp_mode_set, use clock value from nv_encoder->mode instead of nv_connector->...
2018 Nov 24
1
[PATCH 2/2] drm/nouveau: Grab an rpm reference before/after DP AUX transactions
...ivers/gpu/drm/nouveau/nouveau_connector.c > @@ -1171,6 +1171,38 @@ nouveau_connector_hotplug(struct nvif_notify *notify) > return NVIF_NOTIFY_KEEP; > } > > +static int > +nouveau_connector_aux_pre_xfer(struct drm_dp_aux *obj) > +{ > + struct nouveau_connector *nv_connector = > + container_of(obj, typeof(*nv_connector), aux); > + struct nouveau_drm *drm = nouveau_drm(nv_connector->base.dev); > + int ret; > + > + if (nouveau_is_rpm_worker(drm)) > + return 0; > + > + ret = pm_runtime_get_sync...
2015 Feb 15
2
Only stereo sound with gtx570 over hdmi (regression)
...ed. If you need more details, please let me know. --- working_kernel/drivers/gpu/drm/nouveau/nv50_display.c +++ not_working_kernel/drivers/gpu/drm/nouveau/nv50_display.c @@ -1653,15 +1653,17 @@ struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); struct nouveau_connector *nv_connector; struct nv50_disp *disp = nv50_disp(encoder->dev); - struct { - struct nv50_disp_mthd_v1 base; - struct nv50_disp_sor_hda_eld_v0 eld; + struct __packed { + struct { + struct nv50_disp_mthd_v1 mthd; +...
2018 Aug 17
0
[PATCH (repost) 4/5] drm/nouveau: add DisplayPort CEC-Tunneling-over-AUX support
...uveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c index 51932c72334e..eb4f766b5958 100644 --- a/drivers/gpu/drm/nouveau/nouveau_connector.c +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c @@ -400,8 +400,10 @@ nouveau_connector_destroy(struct drm_connector *connector) kfree(nv_connector->edid); drm_connector_unregister(connector); drm_connector_cleanup(connector); - if (nv_connector->aux.transfer) + if (nv_connector->aux.transfer) { + drm_dp_cec_unregister_connector(&nv_connector->aux); drm_dp_aux_unregister(&nv_connector->aux); + } kfree(connector...
2018 Aug 16
0
[PATCH 4/5] drm/nouveau: add DisplayPort CEC-Tunneling-over-AUX support
...uveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c index 51932c72334e..eb4f766b5958 100644 --- a/drivers/gpu/drm/nouveau/nouveau_connector.c +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c @@ -400,8 +400,10 @@ nouveau_connector_destroy(struct drm_connector *connector) kfree(nv_connector->edid); drm_connector_unregister(connector); drm_connector_cleanup(connector); - if (nv_connector->aux.transfer) + if (nv_connector->aux.transfer) { + drm_dp_cec_unregister_connector(&nv_connector->aux); drm_dp_aux_unregister(&nv_connector->aux); + } kfree(connector...
2020 Nov 14
0
[PATCH 5/8] drm/nouveau/kms/nv50-: Reverse args for nv50_outp_get_(old|new)_connector()
...ruct drm_atomic_state *state, struct nouveau_encoder *outp) { struct drm_connector *connector; struct drm_connector_state *connector_state; @@ -743,7 +741,7 @@ nv50_audio_enable(struct drm_encoder *encoder, struct drm_atomic_state *state, (0x0100 << nv_crtc->index), }; - nv_connector = nv50_outp_get_new_connector(nv_encoder, state); + nv_connector = nv50_outp_get_new_connector(state, nv_encoder); if (!drm_detect_monitor_audio(nv_connector->edid)) return; @@ -810,7 +808,7 @@ nv50_hdmi_enable(struct drm_encoder *encoder, struct drm_atomic_state *state, int ret; int...
2020 Jan 17
1
[PATCH -next] drm/nouveau/kms/nv50: remove set but not unused variable 'nv_connector'
drivers/gpu/drm/nouveau/dispnv50/disp.c: In function nv50_pior_enable: drivers/gpu/drm/nouveau/dispnv50/disp.c:1672:28: warning: variable nv_connector set but not used [-Wunused-but-set-variable] commit ac2d9275f371 ("drm/nouveau/kms/nv50-: Store the bpc we're using in nv50_head_atom") left behind this. Reported-by: Hulk Robot <hulkci at huawei.com> Signed-off-by: YueHaibing <yuehaibing at huawei.com> --- drivers/gpu/...
2014 Jul 03
2
[PATCH] drm: default scaling to NONE for external connectors
...f --git a/drm/nouveau_connector.c b/drm/nouveau_connector.c index 1fa222e..295e222 100644 --- a/drm/nouveau_connector.c +++ b/drm/nouveau_connector.c @@ -1192,6 +1192,8 @@ nouveau_connector_create(struct drm_device *dev, int index) disp->color_vibrance_property, 150); + nv_connector->scaling_mode = DRM_MODE_SCALE_NONE; + switch (nv_connector->type) { case DCB_CONNECTOR_VGA: if (nv_device(drm->device)->card_type >= NV_50) { @@ -1203,10 +1205,11 @@ nouveau_connector_create(struct drm_device *dev, int index) case DCB_CONNECTOR_TV_0: case DCB_CONNECTOR_TV...
2020 Oct 13
1
[PATCH v2] drm/nouveau/kms: Fix NULL pointer dereference in nouveau_connector_detect_depth
...02 testb $0x2,0xd14(%rcx) b: 75 b7 jne 0xffffffffffffffc4 d: c3 retq e: 80 b9 0c 0d 00 00 00 cmpb $0x0,0xd0c(%rcx) 15: 75 .byte 0x75 objdump -SF --disassemble=nouveau_connector_detect_depth [...] if (nv_connector->edid && c85e1: 83 fa 41 cmp $0x41,%edx c85e4: 75 05 jne c85eb <nouveau_connector_detect_depth+0x6b> (File Offset: 0xc866b) c85e6: 48 85 c0 test %rax,%rax c85e9: 75 29 jne...
2020 Aug 20
0
[RFC v2 06/20] drm/nouveau/kms: Search for encoders' connectors properly
...s/gpu/drm/nouveau/dispnv04/dfp.c +++ b/drivers/gpu/drm/nouveau/dispnv04/dfp.c @@ -184,7 +184,8 @@ static bool nv04_dfp_mode_fixup(struct drm_encoder *encoder, struct drm_display_mode *adjusted_mode) { struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); - struct nouveau_connector *nv_connector = nouveau_encoder_connector_get(nv_encoder); + struct nouveau_connector *nv_connector = + nv04_encoder_get_connector(nv_encoder); if (!nv_connector->native_mode || nv_connector->scaling_mode == DRM_MODE_SCALE_NONE || @@ -478,7 +479,7 @@ static void nv04_dfp_commit(struct drm_encode...
2020 Aug 20
22
[RFC v2 00/20] drm/dp, i915, nouveau: Cleanup nouveau HPD and add DP features from i915
To start off: this patch series is less work to review then it looks - most (but not all) of the nouveau related work has already been reviewed elsewhere. Most of the reason I'm asking for an RFC here is because this code pulls a lot of code out of i915 and into shared DP helpers. Anyway-nouveau's HPD related code has been collecting dust for a while. Other then the occasional runtime PM
2018 Nov 17
3
[PATCH 0/2] drm/nouveau: Fix DP AUX RPM issues
Here's some fixes for the less important DP AUX issues I mentioned a while back. Lyude Paul (2): drm/dp: Add ->pre/post_transfer() hooks for drm_dp_aux drm/nouveau: Grab an rpm reference before/after DP AUX transactions drivers/gpu/drm/drm_dp_helper.c | 5 ++ drivers/gpu/drm/nouveau/nouveau_connector.c | 36 ++++++++ drivers/gpu/drm/nouveau/nouveau_drm.c | 12 ++-
2018 Aug 27
1
[PATCH 4/5] drm/nouveau: add DisplayPort CEC-Tunneling-over-AUX support
...uveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c index 51932c72334e..eb4f766b5958 100644 --- a/drivers/gpu/drm/nouveau/nouveau_connector.c +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c @@ -400,8 +400,10 @@ nouveau_connector_destroy(struct drm_connector *connector) kfree(nv_connector->edid); drm_connector_unregister(connector); drm_connector_cleanup(connector); - if (nv_connector->aux.transfer) + if (nv_connector->aux.transfer) { + drm_dp_cec_unregister_connector(&nv_connector->aux); drm_dp_aux_unregister(&nv_connector->aux); + } kfree(connector...
2018 Nov 17
0
[PATCH 2/2] drm/nouveau: Grab an rpm reference before/after DP AUX transactions
...ivers/gpu/drm/nouveau/nouveau_connector.c +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c @@ -1171,6 +1171,38 @@ nouveau_connector_hotplug(struct nvif_notify *notify) return NVIF_NOTIFY_KEEP; } +static int +nouveau_connector_aux_pre_xfer(struct drm_dp_aux *obj) +{ + struct nouveau_connector *nv_connector = + container_of(obj, typeof(*nv_connector), aux); + struct nouveau_drm *drm = nouveau_drm(nv_connector->base.dev); + int ret; + + if (nouveau_is_rpm_worker(drm)) + return 0; + + ret = pm_runtime_get_sync(drm->dev->dev); + if (ret < 0 && ret != -EAGAIN) + return ret; + + retu...
2020 Aug 25
22
[RFC v4 00/20] drm/dp, i915, nouveau: Cleanup nouveau HPD and add DP features from i915
Most of the reason I'm asking for an RFC here is because this code pulls a lot of code out of i915 and into shared DP helpers. Anyway-nouveau's HPD related code has been collecting dust for a while. Other then the occasional runtime PM related and MST related fixes, we're missing a lot of nice things that have been added to DRM since this was originally written. Additionally, the code
2015 Feb 17
1
Only stereo sound with gtx570 over hdmi (regression)
...orking kernel to check the eld output (by the way, what is the ELD?, is it the EDID?) Thanks --- drivers/gpu/drm/nouveau/nv50_display.c.orig 2015-02-15 20:04:10.583860698 +0100 +++ drivers/gpu/drm/nouveau/nv50_display.c 2015-02-15 20:46:43.518148777 +0100 @@ -1700,7 +1700,7 @@ memcpy(args.data, nv_connector->base.eld, sizeof(args.data)); nvif_mthd(disp->disp, 0, &args, - sizeof(args.base) + drm_eld_size(args.data)); + sizeof(args.base)); } static void -------------------------------------------- En date de : Mar 17.2.15, Ben Skeggs <skeggsb at gmail.com> a écrit : Obje...