lkml.org 
[lkml]   [2022]   [Aug]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 043/545] drm/vc4: hdmi: Disable audio if dmas property is present but empty
    Date
    From: Phil Elwell <phil@raspberrypi.org>

    commit db2b927f8668adf3ac765e0921cd2720f5c04172 upstream.

    The dmas property is used to hold the dmaengine channel used for audio
    output.

    Older device trees were missing that property, so if it's not there we
    disable the audio output entirely.

    However, some overlays have set an empty value to that property, mostly
    to workaround the fact that overlays cannot remove a property. Let's add
    a test for that case and if it's empty, let's disable it as well.

    Cc: <stable@vger.kernel.org>
    Signed-off-by: Phil Elwell <phil@raspberrypi.org>
    Link: https://lore.kernel.org/r/20220613144800.326124-18-maxime@cerno.tech
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/gpu/drm/vc4/vc4_hdmi.c | 6 +++---
    1 file changed, 3 insertions(+), 3 deletions(-)

    --- a/drivers/gpu/drm/vc4/vc4_hdmi.c
    +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
    @@ -1231,12 +1231,12 @@ static int vc4_hdmi_audio_init(struct vc
    struct snd_soc_card *card = &vc4_hdmi->audio.card;
    struct device *dev = &vc4_hdmi->pdev->dev;
    const __be32 *addr;
    - int index;
    + int index, len;
    int ret;

    - if (!of_find_property(dev->of_node, "dmas", NULL)) {
    + if (!of_find_property(dev->of_node, "dmas", &len) || !len) {
    dev_warn(dev,
    - "'dmas' DT property is missing, no HDMI audio\n");
    + "'dmas' DT property is missing or empty, no HDMI audio\n");
    return 0;
    }


    \
     
     \ /
      Last update: 2022-08-19 17:52    [W:4.030 / U:0.680 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site