kernel: bump 5.10 to 5.10.94
[openwrt/staging/jow.git] / target / linux / bcm27xx / patches-5.10 / 950-0636-drm-vc4-Register-HDMI-codec.patch
index 9a294b3f31dff25d7acb66d504cf8c6178724a0e..67ac4214f542467cd497942cc5aee4b8f5fd1816 100644 (file)
@@ -33,9 +33,9 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  #include <sound/pcm_drm_eld.h>
  #include <sound/pcm_params.h>
  #include <sound/soc.h>
-@@ -95,6 +96,12 @@
- # define VC4_HD_M_ENABLE                      BIT(0)
+@@ -96,6 +97,12 @@
  
+ #define HSM_MIN_CLOCK_FREQ    120000000
  #define CEC_CLOCK_FREQ 40000
 +#define HDMI_14_MAX_TMDS_CLK   (340 * 1000 * 1000)
 +
@@ -46,7 +46,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
  static int vc4_hdmi_debugfs_regs(struct seq_file *m, void *unused)
  {
-@@ -472,16 +479,10 @@ static void vc4_hdmi_set_spd_infoframe(s
+@@ -473,16 +480,10 @@ static void vc4_hdmi_set_spd_infoframe(s
  static void vc4_hdmi_set_audio_infoframe(struct drm_encoder *encoder)
  {
        struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
@@ -65,7 +65,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        vc4_hdmi_write_infoframe(encoder, &frame);
  }
  
-@@ -1214,18 +1215,10 @@ static inline struct vc4_hdmi *dai_to_hd
+@@ -1215,18 +1216,10 @@ static inline struct vc4_hdmi *dai_to_hd
        return snd_soc_card_get_drvdata(card);
  }
  
@@ -86,7 +86,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        /*
         * If the HDMI encoder hasn't probed, or the encoder is
-@@ -1235,15 +1228,18 @@ static int vc4_hdmi_audio_startup(struct
+@@ -1236,15 +1229,18 @@ static int vc4_hdmi_audio_startup(struct
                                VC4_HDMI_RAM_PACKET_ENABLE))
                return -ENODEV;
  
@@ -112,7 +112,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        return 0;
  }
  
-@@ -1263,17 +1259,20 @@ static void vc4_hdmi_audio_reset(struct
+@@ -1264,17 +1260,20 @@ static void vc4_hdmi_audio_reset(struct
        HDMI_WRITE(HDMI_MAI_CTL, VC4_HD_MAI_CTL_FLUSH);
  }
  
@@ -140,7 +140,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  }
  
  static int sample_rate_to_mai_fmt(int samplerate)
-@@ -1315,42 +1314,35 @@ static int sample_rate_to_mai_fmt(int sa
+@@ -1316,42 +1315,35 @@ static int sample_rate_to_mai_fmt(int sa
  }
  
  /* HDMI audio codec callbacks */
@@ -198,7 +198,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                mai_audio_format = VC4_HDMI_MAI_FORMAT_HBR;
        else
                mai_audio_format = VC4_HDMI_MAI_FORMAT_PCM;
-@@ -1387,148 +1379,12 @@ static int vc4_hdmi_audio_prepare(struct
+@@ -1388,148 +1380,12 @@ static int vc4_hdmi_audio_prepare(struct
        HDMI_WRITE(HDMI_AUDIO_PACKET_CONFIG, audio_packet_config);
        vc4_hdmi_set_n_cts(vc4_hdmi);
  
@@ -348,7 +348,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  static const struct snd_soc_dapm_widget vc4_hdmi_audio_widgets[] = {
        SND_SOC_DAPM_OUTPUT("TX"),
  };
-@@ -1539,8 +1395,6 @@ static const struct snd_soc_dapm_route v
+@@ -1540,8 +1396,6 @@ static const struct snd_soc_dapm_route v
  
  static const struct snd_soc_component_driver vc4_hdmi_audio_component_drv = {
        .name                   = "vc4-hdmi-codec-dai-component",
@@ -357,7 +357,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        .dapm_widgets           = vc4_hdmi_audio_widgets,
        .num_dapm_widgets       = ARRAY_SIZE(vc4_hdmi_audio_widgets),
        .dapm_routes            = vc4_hdmi_audio_routes,
-@@ -1551,28 +1405,6 @@ static const struct snd_soc_component_dr
+@@ -1552,28 +1406,6 @@ static const struct snd_soc_component_dr
        .non_legacy_dai_naming  = 1,
  };
  
@@ -386,7 +386,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  static const struct snd_soc_component_driver vc4_hdmi_audio_cpu_dai_comp = {
        .name = "vc4-hdmi-cpu-dai-component",
  };
-@@ -1599,7 +1431,6 @@ static struct snd_soc_dai_driver vc4_hdm
+@@ -1600,7 +1432,6 @@ static struct snd_soc_dai_driver vc4_hdm
                         SNDRV_PCM_RATE_192000,
                .formats = SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE,
        },
@@ -394,7 +394,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  };
  
  static const struct snd_dmaengine_pcm_config pcm_conf = {
-@@ -1607,6 +1438,31 @@ static const struct snd_dmaengine_pcm_co
+@@ -1608,6 +1439,31 @@ static const struct snd_dmaengine_pcm_co
        .prepare_slave_config = snd_dmaengine_pcm_prepare_slave_config,
  };
  
@@ -426,7 +426,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  static int vc4_hdmi_audio_init(struct vc4_hdmi *vc4_hdmi)
  {
        const struct vc4_hdmi_register *mai_data =
-@@ -1614,6 +1470,7 @@ static int vc4_hdmi_audio_init(struct vc
+@@ -1615,6 +1471,7 @@ static int vc4_hdmi_audio_init(struct vc
        struct snd_soc_dai_link *dai_link = &vc4_hdmi->audio.link;
        struct snd_soc_card *card = &vc4_hdmi->audio.card;
        struct device *dev = &vc4_hdmi->pdev->dev;
@@ -434,7 +434,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        const __be32 *addr;
        int index;
        int ret;
-@@ -1649,11 +1506,6 @@ static int vc4_hdmi_audio_init(struct vc
+@@ -1650,11 +1507,6 @@ static int vc4_hdmi_audio_init(struct vc
        vc4_hdmi->audio.dma_data.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
        vc4_hdmi->audio.dma_data.maxburst = 2;
  
@@ -446,7 +446,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        ret = devm_snd_dmaengine_pcm_register(dev, &pcm_conf, 0);
        if (ret) {
                dev_err(dev, "Could not register PCM component: %d\n", ret);
-@@ -1667,12 +1519,13 @@ static int vc4_hdmi_audio_init(struct vc
+@@ -1668,12 +1520,13 @@ static int vc4_hdmi_audio_init(struct vc
                return ret;
        }
  
@@ -466,7 +466,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        }
  
        dai_link->cpus          = &vc4_hdmi->audio.cpu;
-@@ -1685,9 +1538,9 @@ static int vc4_hdmi_audio_init(struct vc
+@@ -1686,9 +1539,9 @@ static int vc4_hdmi_audio_init(struct vc
  
        dai_link->name = "MAI";
        dai_link->stream_name = "MAI PCM";