mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 10:00:17 +00:00
Compare commits
2 Commits
stable
...
audio_hdmi
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9d8e963f36 | ||
|
|
010586f1bd |
@@ -213,6 +213,7 @@ vc4_hdmi_connector_detect(struct drm_connector *connector, bool force)
|
||||
connected = true;
|
||||
}
|
||||
|
||||
vc4_hdmi->encoder.hdmi_monitor = false;
|
||||
if (connected) {
|
||||
if (connector->status != connector_status_connected) {
|
||||
struct edid *edid = drm_get_edid(connector, vc4_hdmi->ddc);
|
||||
@@ -741,15 +742,6 @@ static void vc4_hdmi_encoder_post_crtc_powerdown(struct drm_encoder *encoder,
|
||||
mutex_unlock(&vc4_hdmi->mutex);
|
||||
}
|
||||
|
||||
static void vc4_hdmi_encoder_disable(struct drm_encoder *encoder)
|
||||
{
|
||||
struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
|
||||
|
||||
mutex_lock(&vc4_hdmi->mutex);
|
||||
vc4_hdmi->output_enabled = false;
|
||||
mutex_unlock(&vc4_hdmi->mutex);
|
||||
}
|
||||
|
||||
static void vc4_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, bool enable)
|
||||
{
|
||||
unsigned long flags;
|
||||
@@ -1219,15 +1211,6 @@ static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder,
|
||||
mutex_unlock(&vc4_hdmi->mutex);
|
||||
}
|
||||
|
||||
static void vc4_hdmi_encoder_enable(struct drm_encoder *encoder)
|
||||
{
|
||||
struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
|
||||
|
||||
mutex_lock(&vc4_hdmi->mutex);
|
||||
vc4_hdmi->output_enabled = true;
|
||||
mutex_unlock(&vc4_hdmi->mutex);
|
||||
}
|
||||
|
||||
static void vc4_hdmi_encoder_atomic_mode_set(struct drm_encoder *encoder,
|
||||
struct drm_crtc_state *crtc_state,
|
||||
struct drm_connector_state *conn_state)
|
||||
@@ -1321,8 +1304,6 @@ static const struct drm_encoder_helper_funcs vc4_hdmi_encoder_helper_funcs = {
|
||||
.atomic_check = vc4_hdmi_encoder_atomic_check,
|
||||
.atomic_mode_set = vc4_hdmi_encoder_atomic_mode_set,
|
||||
.mode_valid = vc4_hdmi_encoder_mode_valid,
|
||||
.disable = vc4_hdmi_encoder_disable,
|
||||
.enable = vc4_hdmi_encoder_enable,
|
||||
};
|
||||
|
||||
static u32 vc4_hdmi_calc_hsm_clock(struct vc4_hdmi *vc4_hdmi, unsigned long pixel_rate)
|
||||
@@ -1454,17 +1435,11 @@ static bool vc4_hdmi_audio_can_stream(struct vc4_hdmi *vc4_hdmi)
|
||||
{
|
||||
lockdep_assert_held(&vc4_hdmi->mutex);
|
||||
|
||||
/*
|
||||
* If the controller is disabled, prevent any ALSA output.
|
||||
*/
|
||||
if (!vc4_hdmi->output_enabled)
|
||||
return false;
|
||||
|
||||
/*
|
||||
* If the encoder is currently in DVI mode, treat the codec DAI
|
||||
* as missing.
|
||||
*/
|
||||
if (!(HDMI_READ(HDMI_RAM_PACKET_CONFIG) & VC4_HDMI_RAM_PACKET_ENABLE))
|
||||
if (!vc4_hdmi->encoder.hdmi_monitor)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
|
||||
@@ -223,12 +223,6 @@ struct vc4_hdmi {
|
||||
*/
|
||||
struct drm_display_mode saved_adjusted_mode;
|
||||
|
||||
/**
|
||||
* @output_enabled: Is the HDMI controller currently active?
|
||||
* Protected by @mutex.
|
||||
*/
|
||||
bool output_enabled;
|
||||
|
||||
/**
|
||||
* @scdc_enabled: Is the HDMI controller currently running with
|
||||
* the scrambler on? Protected by @mutex.
|
||||
|
||||
Reference in New Issue
Block a user