static int vs_dc_get_clock(struct device *dev, struct vs_dc *dc)
{
- int ret;
dc->cpu_axi = devm_clk_get(dev, "noc_cpu");
if (IS_ERR(dc->cpu_axi)) {
dev_err(dev, "---cpu_axi get error\n");
dev_err(dev, "---stg_axi get error\n");
return PTR_ERR(dc->stg_axi);
}
- return ret;
+ return 0;
}
static int vs_dc_clock_enable(struct device *dev, struct vs_dc *dc)
static int vs_dc_vouttop_get_clock(struct device *dev, struct vs_dc *dc)
{
- int ret;
-
dc->vout_src = devm_clk_get(dev, "vout_src");
if (IS_ERR(dc->vout_src)) {
dev_err(dev, "failed to get vout_src\n");
return PTR_ERR(dc->bclk_mst);
}
- return ret;
+ return 0;
}
static int vs_dc_vouttop_clock_enable(struct device *dev, struct vs_dc *dc)
static int vs_dc_dc8200_get_clock(struct device *dev, struct vs_dc *dc)
{
- int ret;
dc->dc8200_clk_pix0 = devm_clk_get(dev, "pix_clk");
if (IS_ERR(dc->dc8200_clk_pix0)) {
dev_err(dev, "---dc8200_clk_pix0 get error\n");
dev_err(dev, "---dc8200_ahb get error\n");
return PTR_ERR(dc->dc8200_ahb);
}
- return ret;
+ return 0;
}
static int vs_dc_dc8200_clock_enable(struct device *dev, struct vs_dc *dc)
display.v_active = mode->vdisplay;
display.v_total = mode->vtotal;
- display.v_sync_start = mode->vsync_start;
- display.v_sync_end = mode->vsync_end;
+
+ if (crtc_state->encoder_type == DRM_MODE_ENCODER_DSI){
+ display.v_sync_start = mode->vsync_start + 1;
+ display.v_sync_end = mode->vsync_end - 1;
+ }else{
+ display.v_sync_start = mode->vsync_start;
+ display.v_sync_end = mode->vsync_end;
+ }
+
if (mode->flags & DRM_MODE_FLAG_PVSYNC)
display.v_sync_polarity = true;
else