Displaying 14 results from an estimated 14 matches for "nv50_disp_mthd_v1".
2014 Aug 12
6
[PATCH 0/4] Some initial tidy-ups and refactoring
The patches contain some tidy-up work, and refactoring that has arisen
as a by-product of my initial work on adding TV support to nv50.
Joel Holdsworth (4):
drm/nouveau: Removed unneeded include in nvc0_fence.c
drm/nouveau: Replaced magic numbers with defines from nouveau_reg
drm/nouveau: Replaced copy-pasted nv_wait with nv50_wait_dpms_ctrl
helper
drm/nouveau: Refactored encoder
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
2017 Jan 17
0
[PATCH 1/6] drm/nouveau: Extend NVKM HDMI power control method to set InfoFrames
...de/nvif/cl5070.h
index ae49dfd..a3ce3bf 100644
--- a/drivers/gpu/drm/nouveau/include/nvif/cl5070.h
+++ b/drivers/gpu/drm/nouveau/include/nvif/cl5070.h
@@ -76,7 +76,21 @@ struct nv50_disp_sor_hdmi_pwr_v0 {
__u8 state;
__u8 max_ac_packet;
__u8 rekey;
- __u8 pad04[4];
+ __u8 flags;
+#define NV50_DISP_MTHD_V1_SOR_HDMI_PWR_FLAG_AUDIO_INFOFRAME 0x01
+#define NV50_DISP_MTHD_V1_SOR_HDMI_PWR_FLAG_AVI_INFOFRAME 0x02
+#define NV50_DISP_MTHD_V1_SOR_HDMI_PWR_FLAG_VENDOR_INFOFRAME 0x04
+ __u8 pad05[3];
+};
+
+struct nv50_disp_sor_hdmi_pwr_v0_infoframe {
+ __u8 version;
+ __u8 pad01[3];
+ __u32 hea...
2014 Aug 12
0
[PATCH 2/4] drm/nouveau: Replaced magic numbers with defines from nouveau_reg
...sp/dacnv50.c
index b36addf..61e29d6 100644
--- a/drivers/gpu/drm/nouveau/core/engine/disp/dacnv50.c
+++ b/drivers/gpu/drm/nouveau/core/engine/disp/dacnv50.c
@@ -31,11 +31,12 @@
#include <subdev/timer.h>
#include "nv50.h"
+#include "nouveau_reg.h"
int
nv50_dac_power(NV50_DISP_MTHD_V1)
{
- const u32 doff = outp->or * 0x800;
+ const u32 dpms_ctrl = NV50_PDISPLAY_DAC_DPMS_CTRL(outp->or);
union {
struct nv50_disp_dac_pwr_v0 v0;
} *args = data;
@@ -55,19 +56,21 @@ nv50_dac_power(NV50_DISP_MTHD_V1)
} else
return ret;
- nv_wait(priv, 0x61a004 + doff, 0x80000000, 0...
2014 Aug 12
0
[PATCH 3/4] drm/nouveau: Replaced copy-pasted nv_wait with nv50_wait_dpms_ctrl helper
...uveau/core/engine/disp/dacnv50.c
@@ -33,6 +33,12 @@
#include "nv50.h"
#include "nouveau_reg.h"
+static void
+nv50_wait_dpms_ctrl(struct nv50_disp_priv *priv, const u32 dpms_ctrl)
+{
+ nv_wait(priv, dpms_ctrl, NV50_PDISPLAY_DAC_DPMS_CTRL_PENDING, 0);
+}
+
int
nv50_dac_power(NV50_DISP_MTHD_V1)
{
@@ -56,10 +62,10 @@ nv50_dac_power(NV50_DISP_MTHD_V1)
} else
return ret;
- nv_wait(priv, dpms_ctrl, NV50_PDISPLAY_DAC_DPMS_CTRL_PENDING, 0);
+ nv50_wait_dpms_ctrl(priv, dpms_ctrl);
nv_mask(priv, dpms_ctrl, NV50_PDISPLAY_DAC_DPMS_CTRL_PENDING | 0x4000007f,
NV50_PDISPLAY_DAC_DPMS_CTRL...
2015 Feb 15
2
Only stereo sound with gtx570 over hdmi (regression)
...t_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;
+ struct nv50_disp_sor_hda_eld_v0 eld;
+ } base;
u8 data[sizeof(nv_connector->b...
2015 Feb 17
1
Only stereo sound with gtx570 over hdmi (regression)
...v50_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;
> +
struct nv50_disp_sor_hda_eld_v0
eld;
> + }
base;
>...
2017 Jan 11
1
[PATCH] drm/nouveau: Fix HDA ELD handling (thus, HDMI audio) on gt215
...)
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c
index 6f0436d..f8f2f16 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c
@@ -59,7 +59,7 @@ gt215_hda_eld(NV50_DISP_MTHD_V1)
);
}
for (i = 0; i < size; i++)
- nvkm_wr32(device, 0x61c440 + soff, (i << 8) | args->v0.data[0]);
+ nvkm_wr32(device, 0x61c440 + soff, (i << 8) | args->v0.data[i]);
for (; i < 0x60; i++)
nvkm_wr32(device, 0x61c440 + soff, (i << 8));
nvkm_mask(...
2015 Feb 16
0
Only stereo sound with gtx570 over hdmi (regression)
...rm/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;
> + struct nv50_disp_sor_hda_eld_v0 eld;
> + } base;
>...
2020 Nov 14
0
[PATCH 6/8] drm/nouveau/kms/nv50-: Lookup current encoder/crtc from atomic state
...struct drm_display_mode *mode)
{
struct nouveau_drm *drm = nouveau_drm(encoder->dev);
struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
- struct nouveau_crtc *nv_crtc = nouveau_crtc(encoder->crtc);
struct nv50_disp *disp = nv50_disp(encoder->dev);
struct {
struct nv50_disp_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_info...
2017 Jan 17
0
[PATCH 2/6] drm/nouveau: Pass mode-dependent AVI and Vendor HDMI InfoFrames to NVKM
...fer[14] | (buffer[15] << 8) |
+ (buffer[16] << 16);
+
+ return len;
+}
+
static void
nv50_hdmi_enable(struct drm_encoder *encoder, struct drm_display_mode *mode)
{
@@ -2781,6 +2805,7 @@ nv50_hdmi_enable(struct drm_encoder *encoder, struct drm_display_mode *mode)
struct {
struct nv50_disp_mthd_v1 base;
struct nv50_disp_sor_hdmi_pwr_v0 pwr;
+ struct nv50_disp_sor_hdmi_pwr_v0_infoframe iframe[3];
} args = {
.base.version = 1,
.base.method = NV50_DISP_MTHD_V1_SOR_HDMI_PWR,
@@ -2792,17 +2817,39 @@ nv50_hdmi_enable(struct drm_encoder *encoder, struct drm_display_mode *mode)
};
st...
2018 Nov 17
0
[PATCH 2/6] drm/nouveau: Use drm_dp_get_payload_info() for getting payload/vcpi
...@ -713,6 +696,9 @@ nv50_msto_prepare(struct nv50_msto *msto)
struct nouveau_drm *drm = nouveau_drm(msto->encoder.dev);
struct nv50_mstc *mstc = msto->mstc;
struct nv50_mstm *mstm = mstc->mstm;
+ struct drm_dp_payload payload;
+ struct drm_dp_vcpi vcpi;
+ int ret;
struct {
struct nv50_disp_mthd_v1 base;
struct nv50_disp_sor_dp_mst_vcpi_v0 vcpi;
@@ -725,13 +711,14 @@ nv50_msto_prepare(struct nv50_msto *msto)
};
NV_ATOMIC(drm, "%s: msto prepare\n", msto->encoder.name);
- if (mstc->port && mstc->port->vcpi.vcpi > 0) {
- struct drm_dp_payload *payload =...
2018 Nov 17
9
[PATCH 0/6] Remove all bad dp_mst_port uses and hide struct def
So we don't ever have to worry about drivers touching drm_dp_mst_port
structs without verifying them and crashing again.
Lyude Paul (6):
drm/dp_mst: Add drm_dp_get_payload_info()
drm/nouveau: Use drm_dp_get_payload_info() for getting payload/vcpi
drm/nouveau: Stop reading port->mgr in nv50_mstc_get_modes()
drm/nouveau: Stop reading port->mgr in nv50_mstc_detect()
drm/dp_mst:
2020 Nov 06
4
[PATCH 0/3] drm/nouveau: extend the lifetime of nouveau_drm
Hi folks,
Currently, when the device is removed (or the driver is unbound) the
nouveau_drm structure de-allocated. However, it's still accessible from
and used by some DRM layer callbacks. For example, file handles can be
closed after the device has been removed (physically or otherwise). This
series converts the Nouveau device structure to be allocated and
de-allocated with the