kernel: bump 5.15 to 5.15.100
[openwrt/staging/ldir.git] / target / linux / bcm27xx / patches-5.15 / 950-0635-drm-vc4-hdmi-Support-HDMI-YUV-output.patch
index 47db6abaf5eb6a153befd200596df00664049771..4c92bc29614b1e89d4f7751b3b03f81a4db23009 100644 (file)
@@ -234,7 +234,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        HDMI_WRITE(HDMI_CSC_CTL, csc_ctl);
  
        spin_unlock_irqrestore(&vc4_hdmi->hw_lock, flags);
-@@ -980,6 +1093,15 @@ static void vc5_hdmi_set_timings(struct
+@@ -981,6 +1094,15 @@ static void vc5_hdmi_set_timings(struct
                break;
        }
  
@@ -250,7 +250,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        reg = HDMI_READ(HDMI_DEEP_COLOR_CONFIG_1);
        reg &= ~(VC5_HDMI_DEEP_COLOR_CONFIG_1_INIT_PACK_PHASE_MASK |
                 VC5_HDMI_DEEP_COLOR_CONFIG_1_COLOR_DEPTH_MASK);
-@@ -1259,12 +1381,97 @@ static void vc4_hdmi_encoder_atomic_mode
+@@ -1260,12 +1382,97 @@ static void vc4_hdmi_encoder_atomic_mode
  
        mutex_lock(&vc4_hdmi->mutex);
        vc4_hdmi->output_bpc = vc4_state->output_bpc;
@@ -348,7 +348,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  static enum drm_mode_status
  vc4_hdmi_encoder_clock_valid(const struct vc4_hdmi *vc4_hdmi,
                             unsigned long long clock)
-@@ -1286,13 +1493,17 @@ vc4_hdmi_encoder_clock_valid(const struc
+@@ -1287,13 +1494,17 @@ vc4_hdmi_encoder_clock_valid(const struc
  
  static unsigned long long
  vc4_hdmi_encoder_compute_mode_clock(const struct drm_display_mode *mode,
@@ -367,7 +367,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        return clock * bpc / 8;
  }
  
-@@ -1300,11 +1511,11 @@ static int
+@@ -1301,11 +1512,11 @@ static int
  vc4_hdmi_encoder_compute_clock(const struct vc4_hdmi *vc4_hdmi,
                               struct vc4_hdmi_connector_state *vc4_state,
                               const struct drm_display_mode *mode,
@@ -381,7 +381,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        if (vc4_hdmi_encoder_clock_valid(vc4_hdmi, clock) != MODE_OK)
                return -EINVAL;
  
-@@ -1314,10 +1525,55 @@ vc4_hdmi_encoder_compute_clock(const str
+@@ -1315,10 +1526,55 @@ vc4_hdmi_encoder_compute_clock(const str
  }
  
  static int
@@ -437,7 +437,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        struct drm_connector_state *conn_state = &vc4_state->base;
        unsigned int max_bpc = clamp_t(unsigned int, conn_state->max_bpc, 8, 12);
        unsigned int bpc;
-@@ -1326,17 +1582,18 @@ vc4_hdmi_encoder_compute_config(const st
+@@ -1327,17 +1583,18 @@ vc4_hdmi_encoder_compute_config(const st
        for (bpc = max_bpc; bpc >= 8; bpc -= 2) {
                drm_dbg(dev, "Trying with a %d bpc output\n", bpc);
  
@@ -548,7 +548,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  static inline
 --- a/drivers/gpu/drm/vc4/vc4_regs.h
 +++ b/drivers/gpu/drm/vc4/vc4_regs.h
-@@ -804,11 +804,27 @@ enum {
+@@ -810,11 +810,27 @@ enum {
  # define VC4_HD_CSC_CTL_RGB2YCC                       BIT(1)
  # define VC4_HD_CSC_CTL_ENABLE                        BIT(0)