search for: hdmi_infofram

Displaying 19 results from an estimated 19 matches for "hdmi_infofram".

Did you mean: hdmi_infoframe
2017 Jan 17
0
[PATCH 2/6] drm/nouveau: Pass mode-dependent AVI and Vendor HDMI InfoFrames to NVKM
...#include <nvif/cl0002.h> @@ -2772,6 +2774,28 @@ nv50_hdmi_disable(struct drm_encoder *encoder, struct nouveau_crtc *nv_crtc) nvif_mthd(disp->disp, 0, &args, sizeof(args)); } +static ssize_t +nv50_hdmi_pack_infoframe(struct nv50_disp_sor_hdmi_pwr_v0_infoframe *frame_out, + union hdmi_infoframe *frame_in) +{ + uint8_t buffer[17]; /* The header plus two "subpacks" */ + ssize_t len; + + len = hdmi_infoframe_pack(frame_in, buffer, sizeof(buffer)); + + frame_out->header = buffer[0] | (buffer[1] << 8) | (buffer[2] << 16); + frame_out->subpack0_low = buffer[3] | (bu...
2019 Jan 08
0
[PATCH 1/4] drm/edid: Pass connector to AVI infoframe functions
...evice *adev = dev->dev_private; struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); struct amdgpu_encoder_atom_dig *dig = amdgpu_encoder->enc_priv; + struct drm_connector *connector = amdgpu_get_connector_for_encoder(encoder); struct hdmi_avi_infoframe frame; u8 buffer[HDMI_INFOFRAME_HEADER_SIZE + HDMI_AVI_INFOFRAME_SIZE]; uint8_t *payload = buffer + 3; @@ -1430,7 +1431,7 @@ static void dce_v6_0_audio_set_avi_infoframe(struct drm_encoder *encoder, ssize_t err; u32 tmp; - err = drm_hdmi_avi_infoframe_from_display_mode(&frame, mode, false); + err = drm_hdmi_avi_infof...
2018 Nov 21
0
[PATCH 1/4] drm/edid: Pass connector to AVI inforframe functions
..._private; > struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); > struct amdgpu_encoder_atom_dig *dig = amdgpu_encoder->enc_priv; > + struct drm_connector *connector = amdgpu_get_connector_for_encoder(encoder); > struct hdmi_avi_infoframe frame; > u8 buffer[HDMI_INFOFRAME_HEADER_SIZE + HDMI_AVI_INFOFRAME_SIZE]; > uint8_t *payload = buffer + 3; > @@ -1430,7 +1431,7 @@ static void dce_v6_0_audio_set_avi_infoframe(struct drm_encoder *encoder, > ssize_t err; > u32 tmp; > > - err = drm_hdmi_avi_infoframe_from_display_mode(&frame, mode, fals...
2017 Jan 17
32
[PATCH 0/6] drm/nouveau: Enable HDMI Stereoscopy
This is an initial implementation of HDMI 3D mode support for the nouveau kernel driver. It works on all of the hardware that I have available to test at the moment, but I am unsure as to the overall approach taken for setting HDMI InfoFrames, there's no support for g84 or gf119 disps, and the criteria for enabling stereo support for an output seems a bit iffy. The first four patches arrange
2018 Nov 20
6
[PATCH 1/4] drm/edid: Pass connector to AVI inforframe functions
...evice *adev = dev->dev_private; struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); struct amdgpu_encoder_atom_dig *dig = amdgpu_encoder->enc_priv; + struct drm_connector *connector = amdgpu_get_connector_for_encoder(encoder); struct hdmi_avi_infoframe frame; u8 buffer[HDMI_INFOFRAME_HEADER_SIZE + HDMI_AVI_INFOFRAME_SIZE]; uint8_t *payload = buffer + 3; @@ -1430,7 +1431,7 @@ static void dce_v6_0_audio_set_avi_infoframe(struct drm_encoder *encoder, ssize_t err; u32 tmp; - err = drm_hdmi_avi_infoframe_from_display_mode(&frame, mode, false); + err = drm_hdmi_avi_infof...
2024 Aug 21
2
[PATCH][next] drm/nouveau: Avoid -Wflex-array-member-not-at-end warning
...c858..ddddc69640be 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/disp.c +++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c @@ -774,11 +774,9 @@ nv50_hdmi_enable(struct drm_encoder *encoder, struct nouveau_crtc *nv_crtc, struct drm_hdmi_info *hdmi = &nv_connector->base.display_info.hdmi; union hdmi_infoframe infoframe = { 0 }; const u8 rekey = 56; /* binary driver, and tegra, constant */ + DEFINE_RAW_FLEX(struct nvif_outp_infoframe_v0, args, data, 17); + const u8 data_len = 17; /* same length as in DEFINE_RAW_FLEX above. */ u32 max_ac_packet; - struct { - struct nvif_outp_infoframe_v0 infoframe;...
2017 Apr 11
0
[PATCH v3 00/10] drm/nouveau Enable HDMI Stereoscopy
...HDMI drivers/gpu/drm/nouveau/include/nvif/cl5070.h | 4 +- drivers/gpu/drm/nouveau/nouveau_connector.c | 10 +++ drivers/gpu/drm/nouveau/nv50_display.c | 93 +++++++++++++++------- drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild | 1 + .../drm/nouveau/nvkm/engine/disp/hdmi_infoframe.c | 66 +++++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmig84.c | 46 +++++++++-- .../gpu/drm/nouveau/nvkm/engine/disp/hdmigf119.c | 49 ++++++++++-- .../gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c | 45 +++++++++-- .../gpu/drm/nouveau/nvkm/engine/disp/hdmigt215.c | 46 +++++++++...
2017 Mar 27
0
[PATCH v2 00/10] Enable HDMI Stereoscopy
...HDMI drivers/gpu/drm/nouveau/include/nvif/cl5070.h | 4 +- drivers/gpu/drm/nouveau/nouveau_connector.c | 10 +++ drivers/gpu/drm/nouveau/nv50_display.c | 80 ++++++++++++++++------ drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild | 1 + .../drm/nouveau/nvkm/engine/disp/hdmi_infoframe.c | 66 ++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmig84.c | 46 +++++++++++-- .../gpu/drm/nouveau/nvkm/engine/disp/hdmigf119.c | 49 +++++++++++-- .../gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c | 45 ++++++++++-- .../gpu/drm/nouveau/nvkm/engine/disp/hdmigt215.c | 46 ++...
2024 Aug 22
1
[PATCH][next] drm/nouveau: Avoid -Wflex-array-member-not-at-end warning
...> --- a/drivers/gpu/drm/nouveau/dispnv50/disp.c > +++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c > @@ -774,11 +774,9 @@ nv50_hdmi_enable(struct drm_encoder *encoder, struct nouveau_crtc *nv_crtc, > struct drm_hdmi_info *hdmi = &nv_connector->base.display_info.hdmi; > union hdmi_infoframe infoframe = { 0 }; > const u8 rekey = 56; /* binary driver, and tegra, constant */ > + DEFINE_RAW_FLEX(struct nvif_outp_infoframe_v0, args, data, 17); > + const u8 data_len = 17; /* same length as in DEFINE_RAW_FLEX above. */ To avoid repeating the open-coded "17", this could...
2024 Sep 13
1
[PATCH][next] drm/nouveau: Avoid -Wflex-array-member-not-at-end warning
...gt; --- a/drivers/gpu/drm/nouveau/dispnv50/disp.c > +++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c > @@ -774,11 +774,9 @@ nv50_hdmi_enable(struct drm_encoder *encoder, struct nouveau_crtc *nv_crtc, > struct drm_hdmi_info *hdmi = &nv_connector->base.display_info.hdmi; > union hdmi_infoframe infoframe = { 0 }; > const u8 rekey = 56; /* binary driver, and tegra, constant */ > + DEFINE_RAW_FLEX(struct nvif_outp_infoframe_v0, args, data, 17); > + const u8 data_len = 17; /* same length as in DEFINE_RAW_FLEX above. */ > u32 max_ac_packet; > - struct { > - struct nv...
2017 Mar 29
3
[PATCH v2 00/10] Enable HDMI Stereoscopy
...rm/nouveau/include/nvif/cl5070.h | 4 +- > drivers/gpu/drm/nouveau/nouveau_connector.c | 10 +++ > drivers/gpu/drm/nouveau/nv50_display.c | 80 ++++++++++++++++------ > drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild | 1 + > .../drm/nouveau/nvkm/engine/disp/hdmi_infoframe.c | 66 ++++++++++++++++++ > drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmig84.c | 46 +++++++++++-- > .../gpu/drm/nouveau/nvkm/engine/disp/hdmigf119.c | 49 +++++++++++-- > .../gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c | 45 ++++++++++-- > .../gpu/drm/nouveau/nvkm/engine/disp/h...
2018 May 07
0
[PATCH 3/3] drm/vc4: Attach underscan props to the HDMI connector
...); + struct vc4_dev *vc4 = encoder->dev->dev_private; + struct vc4_hdmi *hdmi = vc4->hdmi; + struct drm_connector_state *cstate = hdmi->connector->state; struct drm_crtc *crtc = encoder->crtc; const struct drm_display_mode *mode = &crtc->state->adjusted_mode; union hdmi_infoframe frame; @@ -426,6 +439,18 @@ static void vc4_hdmi_set_avi_infoframe(struct drm_encoder *encoder) vc4_encoder->rgb_range_selectable, false); + if (cstate->underscan.mode == DRM_UNDERSCAN_ON) { + if (cstate->underscan.hborder) { + frame.avi.right_bar = cstate->under...
2018 Nov 22
0
[PATCH v3 3/3] drm/vc4: Attach underscan props to the HDMI connector
...); + struct vc4_dev *vc4 = encoder->dev->dev_private; + struct vc4_hdmi *hdmi = vc4->hdmi; + struct drm_connector_state *cstate = hdmi->connector->state; struct drm_crtc *crtc = encoder->crtc; const struct drm_display_mode *mode = &crtc->state->adjusted_mode; union hdmi_infoframe frame; @@ -426,6 +439,18 @@ static void vc4_hdmi_set_avi_infoframe(struct drm_encoder *encoder) vc4_encoder->rgb_range_selectable, false); + if (cstate->underscan.mode == DRM_UNDERSCAN_ON) { + if (cstate->underscan.hborder) { + frame.avi.right_bar = cstate->under...
2018 May 07
2
[PATCH 3/3] drm/vc4: Attach underscan props to the HDMI connector
...= encoder->dev->dev_private; > + struct vc4_hdmi *hdmi = vc4->hdmi; > + struct drm_connector_state *cstate = hdmi->connector->state; > struct drm_crtc *crtc = encoder->crtc; > const struct drm_display_mode *mode = &crtc->state->adjusted_mode; > union hdmi_infoframe frame; > @@ -426,6 +439,18 @@ static void vc4_hdmi_set_avi_infoframe(struct drm_encoder *encoder) > vc4_encoder->rgb_range_selectable, > false); > > + if (cstate->underscan.mode == DRM_UNDERSCAN_ON) { > + if (cstate->underscan.hborder) { > + fra...
2020 Nov 14
0
[PATCH 6/8] drm/nouveau/kms/nv50-: Lookup current encoder/crtc from atomic state
...p_mthd_v1 base; @@ -798,7 +813,6 @@ nv50_hdmi_enable(struct drm_encoder *encoder, struct drm_atomic_state *state, .pwr.state = 1, .pwr.rekey = 56, /* binary driver, and tegra, constant */ }; - struct nouveau_connector *nv_connector; struct drm_hdmi_info *hdmi; u32 max_ac_packet; union hdmi_infoframe avi_frame; @@ -808,7 +822,6 @@ nv50_hdmi_enable(struct drm_encoder *encoder, struct drm_atomic_state *state, int ret; int size; - nv_connector = nv50_outp_get_new_connector(state, nv_encoder); if (!drm_detect_hdmi_monitor(nv_connector->edid)) return; @@ -854,7 +867,7 @@ nv50_hdmi_e...
2018 Sep 04
6
[PATCH 0/5] drm/nouveau: add basic HDMI 2.0 support
This is the beginnings of HDMI 2.0 support. All of the "extra" features are left out, such as 12/16bpc, YUV420, etc. I've verified that with this code, a GP108 (GT1030) can switch between 4k at 60 and 1920x1080 at 60 on a LG 4K TV. Further, I've verified via i2c tools, that the SCDC writes really do happen. I suspect that the patch for keeping track of the high-speed TMDS
2018 May 07
8
[PATCH 0/3] drm/connector: Provide generic support for underscan
Hello, This is an attempt at providing generic support for underscan connector props. We already have 3 drivers defining the same underscan, underscan vborder and underscan hborder properties (amd, radeon and nouveau) and I am about to add a new one, hence my proposal to put the prop parsing code in the core and add ->underscan fields to drm_connector_state. Note that I use this new
2018 May 11
5
[PATCH v2 0/4] drm/connector: Provide generic support for underscan
Hello, This is an attempt at providing generic support for underscan connector props. We already have 3 drivers defining the same underscan, underscan vborder and underscan hborder properties (amd, radeon and nouveau) and I am about to add a new one, hence my proposal to put the prop parsing code in the core and add ->underscan fields to drm_connector_state. In this v2, I also converted the
2018 Nov 22
5
[PATCH v3 0/3] drm/connector: Provide generic support for underscan
Hello, This is an attempt at providing generic support for underscan connector props. We already have 3 drivers defining the same underscan, underscan vborder and underscan hborder properties (amd, radeon and nouveau) and I am about to add a new one, hence my proposal to put the prop parsing code in the core and add ->underscan fields to drm_connector_state. This v3 was based on the "VC4