mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 18:09:56 +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;
|
connected = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vc4_hdmi->encoder.hdmi_monitor = false;
|
||||||
if (connected) {
|
if (connected) {
|
||||||
if (connector->status != connector_status_connected) {
|
if (connector->status != connector_status_connected) {
|
||||||
struct edid *edid = drm_get_edid(connector, vc4_hdmi->ddc);
|
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);
|
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)
|
static void vc4_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, bool enable)
|
||||||
{
|
{
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
@@ -1219,15 +1211,6 @@ static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder,
|
|||||||
mutex_unlock(&vc4_hdmi->mutex);
|
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,
|
static void vc4_hdmi_encoder_atomic_mode_set(struct drm_encoder *encoder,
|
||||||
struct drm_crtc_state *crtc_state,
|
struct drm_crtc_state *crtc_state,
|
||||||
struct drm_connector_state *conn_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_check = vc4_hdmi_encoder_atomic_check,
|
||||||
.atomic_mode_set = vc4_hdmi_encoder_atomic_mode_set,
|
.atomic_mode_set = vc4_hdmi_encoder_atomic_mode_set,
|
||||||
.mode_valid = vc4_hdmi_encoder_mode_valid,
|
.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)
|
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);
|
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
|
* If the encoder is currently in DVI mode, treat the codec DAI
|
||||||
* as missing.
|
* as missing.
|
||||||
*/
|
*/
|
||||||
if (!(HDMI_READ(HDMI_RAM_PACKET_CONFIG) & VC4_HDMI_RAM_PACKET_ENABLE))
|
if (!vc4_hdmi->encoder.hdmi_monitor)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -223,12 +223,6 @@ struct vc4_hdmi {
|
|||||||
*/
|
*/
|
||||||
struct drm_display_mode saved_adjusted_mode;
|
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
|
* @scdc_enabled: Is the HDMI controller currently running with
|
||||||
* the scrambler on? Protected by @mutex.
|
* the scrambler on? Protected by @mutex.
|
||||||
|
|||||||
Reference in New Issue
Block a user