vc4_crtc_pixelvalve_reset(crtc);
- /*
- * NOTE: The BCM2712 has a H_OTE (Horizontal Odd Timing Enable)
- * bit that, when set, will allow to specify the timings in
- * pixels instead of cycles, thus allowing to specify odd
- * timings.
- */
CRTC_WRITE(PV_HORZA,
VC4_SET_FIELD((mode->htotal - mode->hsync_end) * pixel_rep / ppc,
PV_HORZA_HBP) |
*/
CRTC_WRITE(PV_V_CONTROL,
PV_VCONTROL_CONTINUOUS |
+ (vc4->gen >= VC4_GEN_6 ? PV_VCONTROL_ODD_TIMING : 0) |
(is_dsi ? PV_VCONTROL_DSI : 0) |
PV_VCONTROL_INTERLACE |
(odd_field_first
} else {
CRTC_WRITE(PV_V_CONTROL,
PV_VCONTROL_CONTINUOUS |
+ (vc4->gen >= VC4_GEN_6 ? PV_VCONTROL_ODD_TIMING : 0) |
(is_dsi ? PV_VCONTROL_DSI : 0));
CRTC_WRITE(PV_VSYNCD_EVEN, 0);
}
.hvs_output = 0,
},
.fifo_depth = 64,
- .pixels_per_clock = 2,
+ .pixels_per_clock = 1,
.encoder_types = {
[0] = VC4_ENCODER_TYPE_HDMI0,
},
.hvs_output = 1,
},
.fifo_depth = 64,
- .pixels_per_clock = 2,
+ .pixels_per_clock = 1,
.encoder_types = {
[0] = VC4_ENCODER_TYPE_HDMI1,
},
PHY_LANE_2,
PHY_LANE_CK,
},
- .unsupported_odd_h_timings = true,
+ .unsupported_odd_h_timings = false,
.external_irq_controller = true,
.init_resources = vc5_hdmi_init_resources,
PHY_LANE_2,
PHY_LANE_CK,
},
- .unsupported_odd_h_timings = true,
+ .unsupported_odd_h_timings = false,
.external_irq_controller = true,
.init_resources = vc5_hdmi_init_resources,
# define PV_CONTROL_EN BIT(0)
#define PV_V_CONTROL 0x04
+# define PV_VCONTROL_ODD_TIMING BIT(29)
# define PV_VCONTROL_ODD_DELAY_MASK VC4_MASK(22, 6)
# define PV_VCONTROL_ODD_DELAY_SHIFT 6
# define PV_VCONTROL_ODD_FIRST BIT(5)