diff options
Diffstat (limited to 'drivers/gpu/drm/rockchip/rk618/rk618_dither.c')
-rw-r--r-- | drivers/gpu/drm/rockchip/rk618/rk618_dither.c | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/drivers/gpu/drm/rockchip/rk618/rk618_dither.c b/drivers/gpu/drm/rockchip/rk618/rk618_dither.c index 40e6afd6ef99..60938bf6409f 100644 --- a/drivers/gpu/drm/rockchip/rk618/rk618_dither.c +++ b/drivers/gpu/drm/rockchip/rk618/rk618_dither.c @@ -19,28 +19,30 @@ #define FRC_DITHER_ENABLE HIWORD_UPDATE(1, 0, 0) #define FRC_DITHER_DISABLE HIWORD_UPDATE(0, 0, 0) -void rk618_frc_dither_disable(struct rk618 *rk618) +void rk618_frc_dither_init(struct rk618 *rk618, u32 bus_format) { - regmap_write(rk618->regmap, RK618_FRC_REG, FRC_DITHER_DISABLE); -} -EXPORT_SYMBOL_GPL(rk618_frc_dither_disable); + u32 val; -void rk618_frc_dither_enable(struct rk618 *rk618, u32 bus_format) -{ switch (bus_format) { case MEDIA_BUS_FMT_RGB666_1X18: - regmap_write(rk618->regmap, RK618_FRC_REG, FRC_OUT_MODE_RGB666); + case MEDIA_BUS_FMT_RGB666_1X7X3_SPWG: + val = FRC_OUT_MODE_RGB666 | FRC_DITHER_DISABLE; break; case MEDIA_BUS_FMT_RGB666_1X24_CPADHI: - regmap_write(rk618->regmap, RK618_FRC_REG, FRC_OUT_MODE_RGB888); + case MEDIA_BUS_FMT_RGB666_1X7X3_JEIDA: + val = FRC_OUT_MODE_RGB888 | FRC_DITHER_ENABLE; break; + case MEDIA_BUS_FMT_RGB888_1X24: + case MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA: + case MEDIA_BUS_FMT_RGB888_1X7X4_SPWG: default: - return; + val = FRC_OUT_MODE_RGB888 | FRC_DITHER_DISABLE; + break; } - regmap_write(rk618->regmap, RK618_FRC_REG, FRC_DITHER_ENABLE); + regmap_write(rk618->regmap, RK618_FRC_REG, val); } -EXPORT_SYMBOL_GPL(rk618_frc_dither_enable); +EXPORT_SYMBOL_GPL(rk618_frc_dither_init); void rk618_frc_dclk_invert(struct rk618 *rk618) { |