Lines Matching +full:frame +full:- +full:buffer

87 		dev_err(rdev->dev, "Unknown bits per sample 0x%x, using 16\n",  in r600_audio_status()
118 struct drm_device *dev = rdev->ddev; in r600_audio_update_hdmi()
123 if (rdev->audio.pin[0].channels != audio_status.channels || in r600_audio_update_hdmi()
124 rdev->audio.pin[0].rate != audio_status.rate || in r600_audio_update_hdmi()
125 rdev->audio.pin[0].bits_per_sample != audio_status.bits_per_sample || in r600_audio_update_hdmi()
126 rdev->audio.pin[0].status_bits != audio_status.status_bits || in r600_audio_update_hdmi()
127 rdev->audio.pin[0].category_code != audio_status.category_code) { in r600_audio_update_hdmi()
128 rdev->audio.pin[0] = audio_status; in r600_audio_update_hdmi()
132 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { in r600_audio_update_hdmi()
173 /* only one pin on 6xx-NI */ in r600_audio_get_pin()
174 return &rdev->audio.pin[0]; in r600_audio_get_pin()
180 struct drm_device *dev = encoder->dev; in r600_hdmi_update_acr()
181 struct radeon_device *rdev = dev->dev_private; in r600_hdmi_update_acr()
193 HDMI0_ACR_CTS_32(acr->cts_32khz), in r600_hdmi_update_acr()
196 HDMI0_ACR_N_32(acr->n_32khz), in r600_hdmi_update_acr()
200 HDMI0_ACR_CTS_44(acr->cts_44_1khz), in r600_hdmi_update_acr()
203 HDMI0_ACR_N_44(acr->n_44_1khz), in r600_hdmi_update_acr()
207 HDMI0_ACR_CTS_48(acr->cts_48khz), in r600_hdmi_update_acr()
210 HDMI0_ACR_N_48(acr->n_48khz), in r600_hdmi_update_acr()
215 * build a HDMI Video Info Frame
218 unsigned char *buffer, size_t size) in r600_set_avi_packet() argument
220 uint8_t *frame = buffer + 3; in r600_set_avi_packet() local
223 frame[0x0] | (frame[0x1] << 8) | (frame[0x2] << 16) | (frame[0x3] << 24)); in r600_set_avi_packet()
225 frame[0x4] | (frame[0x5] << 8) | (frame[0x6] << 16) | (frame[0x7] << 24)); in r600_set_avi_packet()
227 frame[0x8] | (frame[0x9] << 8) | (frame[0xA] << 16) | (frame[0xB] << 24)); in r600_set_avi_packet()
229 frame[0xC] | (frame[0xD] << 8) | (buffer[1] << 24)); in r600_set_avi_packet()
236 HDMI0_AVI_INFO_CONT); /* send AVI info frames every frame/field */ in r600_set_avi_packet()
241 * build a Audio Info Frame
244 const void *buffer, size_t size) in r600_hdmi_update_audio_infoframe() argument
246 struct drm_device *dev = encoder->dev; in r600_hdmi_update_audio_infoframe()
247 struct radeon_device *rdev = dev->dev_private; in r600_hdmi_update_audio_infoframe()
249 struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; in r600_hdmi_update_audio_infoframe()
250 uint32_t offset = dig->afmt->offset; in r600_hdmi_update_audio_infoframe()
251 const u8 *frame = buffer + 3; in r600_hdmi_update_audio_infoframe() local
254 frame[0x0] | (frame[0x1] << 8) | (frame[0x2] << 16) | (frame[0x3] << 24)); in r600_hdmi_update_audio_infoframe()
256 frame[0x4] | (frame[0x5] << 8) | (frame[0x6] << 16) | (frame[0x8] << 24)); in r600_hdmi_update_audio_infoframe()
260 * test if audio buffer is filled enough to start playing
264 struct drm_device *dev = encoder->dev; in r600_hdmi_is_audio_buffer_filled()
265 struct radeon_device *rdev = dev->dev_private; in r600_hdmi_is_audio_buffer_filled()
267 struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; in r600_hdmi_is_audio_buffer_filled()
268 uint32_t offset = dig->afmt->offset; in r600_hdmi_is_audio_buffer_filled()
274 * have buffer status changed since last call?
279 struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; in r600_hdmi_buffer_status_changed()
282 if (!dig->afmt || !dig->afmt->enabled) in r600_hdmi_buffer_status_changed()
286 result = dig->afmt->last_buffer_filled_status != status; in r600_hdmi_buffer_status_changed()
287 dig->afmt->last_buffer_filled_status = status; in r600_hdmi_buffer_status_changed()
297 struct drm_device *dev = encoder->dev; in r600_hdmi_audio_workaround()
298 struct radeon_device *rdev = dev->dev_private; in r600_hdmi_audio_workaround()
300 struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; in r600_hdmi_audio_workaround()
301 uint32_t offset = dig->afmt->offset; in r600_hdmi_audio_workaround()
323 radeon_encoder = to_radeon_encoder(crtc->encoder); in r600_hdmi_audio_set_dto()
324 dig = radeon_encoder->enc_priv; in r600_hdmi_audio_set_dto()
329 if (dig->dig_encoder == 0) { in r600_hdmi_audio_set_dto()
342 struct drm_device *dev = encoder->dev; in r600_set_vbi_packet()
343 struct radeon_device *rdev = dev->dev_private; in r600_set_vbi_packet()
348 HDMI0_GC_CONT); /* send general control packets every frame */ in r600_set_vbi_packet()
353 struct drm_device *dev = encoder->dev; in r600_set_audio_packet()
354 struct radeon_device *rdev = dev->dev_private; in r600_set_audio_packet()
395 struct drm_device *dev = encoder->dev; in r600_set_mute()
396 struct radeon_device *rdev = dev->dev_private; in r600_set_mute()
405 * r600_hdmi_update_audio_settings - Update audio infoframe
413 struct drm_device *dev = encoder->dev; in r600_hdmi_update_audio_settings()
414 struct radeon_device *rdev = dev->dev_private; in r600_hdmi_update_audio_settings()
416 struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; in r600_hdmi_update_audio_settings()
418 uint8_t buffer[HDMI_INFOFRAME_HEADER_SIZE + HDMI_AUDIO_INFOFRAME_SIZE]; in r600_hdmi_update_audio_settings() local
419 struct hdmi_audio_infoframe frame; in r600_hdmi_update_audio_settings() local
424 if (!dig->afmt || !dig->afmt->enabled) in r600_hdmi_update_audio_settings()
426 offset = dig->afmt->offset; in r600_hdmi_update_audio_settings()
434 err = hdmi_audio_infoframe_init(&frame); in r600_hdmi_update_audio_settings()
440 frame.channels = audio.channels; in r600_hdmi_update_audio_settings()
442 err = hdmi_audio_infoframe_pack(&frame, buffer, sizeof(buffer)); in r600_hdmi_update_audio_settings()
459 r600_hdmi_update_audio_infoframe(encoder, buffer, sizeof(buffer)); in r600_hdmi_update_audio_settings()
471 struct drm_device *dev = encoder->dev; in r600_hdmi_enable()
472 struct radeon_device *rdev = dev->dev_private; in r600_hdmi_enable()
474 struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; in r600_hdmi_enable()
477 if (!dig || !dig->afmt) in r600_hdmi_enable()
484 switch (radeon_encoder->encoder_id) { in r600_hdmi_enable()
514 dev_err(rdev->dev, "Invalid encoder for HDMI: 0x%X\n", in r600_hdmi_enable()
515 radeon_encoder->encoder_id); in r600_hdmi_enable()
518 WREG32(HDMI0_CONTROL + dig->afmt->offset, hdmi); in r600_hdmi_enable()
521 if (rdev->irq.installed) { in r600_hdmi_enable()
525 radeon_irq_kms_enable_afmt(rdev, dig->afmt->id); in r600_hdmi_enable()
527 radeon_irq_kms_disable_afmt(rdev, dig->afmt->id); in r600_hdmi_enable()
530 dig->afmt->enabled = enable; in r600_hdmi_enable()
533 enable ? "En" : "Dis", dig->afmt->offset, radeon_encoder->encoder_id); in r600_hdmi_enable()