Lines Matching refs:encoder

32 hdmi_sor(struct drm_encoder *encoder)
34 struct drm_nouveau_private *dev_priv = encoder->dev->dev_private;
43 hdmi_base(struct drm_encoder *encoder)
45 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
47 if (!hdmi_sor(encoder))
53 hdmi_wr32(struct drm_encoder *encoder, u32 reg, u32 val)
55 nv_wr32(encoder->dev, hdmi_base(encoder) + reg, val);
59 hdmi_rd32(struct drm_encoder *encoder, u32 reg)
61 return nv_rd32(encoder->dev, hdmi_base(encoder) + reg);
65 hdmi_mask(struct drm_encoder *encoder, u32 reg, u32 mask, u32 val)
67 u32 tmp = hdmi_rd32(encoder, reg);
68 hdmi_wr32(encoder, reg, (tmp & ~mask) | val);
73 nouveau_audio_disconnect(struct drm_encoder *encoder)
75 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
76 struct drm_device *dev = encoder->dev;
79 if (hdmi_sor(encoder)) {
85 nouveau_audio_mode_set(struct drm_encoder *encoder,
88 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
90 struct drm_device *dev = encoder->dev;
96 nouveau_audio_disconnect(encoder);
100 if (hdmi_sor(encoder)) {
116 nouveau_hdmi_infoframe(struct drm_encoder *encoder, u32 ctrl, u8 *frame)
125 hdmi_mask(encoder, ctrl + 0x00, 0x00000001, 0x00000000);
126 hdmi_wr32(encoder, ctrl + 0x08, *(u32 *)frame & 0xffffff);
140 hdmi_wr32(encoder, rsubpack + 0, subpack[0]);
141 hdmi_wr32(encoder, rsubpack + 4, subpack[1] & 0xffffff);
145 hdmi_mask(encoder, ctrl, 0x00000001, 0x00000001);
149 nouveau_hdmi_video_infoframe(struct drm_encoder *encoder,
178 nouveau_hdmi_infoframe(encoder, 0x020, frame);
182 nouveau_hdmi_audio_infoframe(struct drm_encoder *encoder,
202 nouveau_hdmi_infoframe(encoder, 0x000, frame);
206 nouveau_hdmi_disconnect(struct drm_encoder *encoder)
208 nouveau_audio_disconnect(encoder);
211 hdmi_mask(encoder, 0x000, 0x00000001, 0x00000000);
212 hdmi_mask(encoder, 0x020, 0x00000001, 0x00000000);
215 hdmi_mask(encoder, 0x0a4, 0x40000000, 0x00000000);
219 nouveau_hdmi_mode_set(struct drm_encoder *encoder,
222 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
224 struct drm_device *dev = encoder->dev;
230 nouveau_hdmi_disconnect(encoder);
234 nouveau_hdmi_video_infoframe(encoder, mode);
235 nouveau_hdmi_audio_infoframe(encoder, mode);
237 hdmi_mask(encoder, 0x0d0, 0x00070001, 0x00010001); /* SPARE, HW_CTS */
238 hdmi_mask(encoder, 0x068, 0x00010101, 0x00000000); /* ACR_CTRL, ?? */
239 hdmi_mask(encoder, 0x078, 0x80000000, 0x80000000); /* ACR_0441_ENABLE */
254 hdmi_mask(encoder, 0x0a4, 0x5f1f003f, 0x40000000 | /* enable */
259 nouveau_audio_mode_set(encoder, mode);