static void imx_ldb_encoder_enable(struct drm_encoder *encoder)
{
struct imx_ldb_channel *imx_ldb_ch = enc_to_imx_ldb_ch(encoder);
- struct imx_ldb *ldb = imx_ldb_ch->ldb;
- int dual = ldb->ldb_ctrl & LDB_SPLIT_MODE_EN;
- int mux = drm_of_encoder_active_port_id(imx_ldb_ch->child, encoder);
+ struct imx_ldb *imx_ldb = imx_ldb_ch->imx_ldb;
+ struct ldb_channel *ldb_ch = &imx_ldb_ch->base;
+ struct ldb *ldb = &imx_ldb->base;
+ int mux = drm_of_encoder_active_port_id(ldb_ch->child, encoder);
- if (mux < 0 || mux >= ARRAY_SIZE(ldb->clk_sel)) {
++ if (mux < 0 || mux >= ARRAY_SIZE(imx_ldb->clk_sel)) {
+ dev_warn(ldb->dev, "%s: invalid mux %d\n", __func__, mux);
+ return;
+ }
+
- drm_panel_prepare(imx_ldb_ch->panel);
-
- if (dual) {
- clk_set_parent(ldb->clk_sel[mux], ldb->clk[0]);
- clk_set_parent(ldb->clk_sel[mux], ldb->clk[1]);
+ if (ldb->dual) {
+ clk_set_parent(imx_ldb->clk_sel[mux], imx_ldb->clk[0]);
+ clk_set_parent(imx_ldb->clk_sel[mux], imx_ldb->clk[1]);
- clk_prepare_enable(ldb->clk[0]);
- clk_prepare_enable(ldb->clk[1]);
+ clk_prepare_enable(imx_ldb->clk[0]);
+ clk_prepare_enable(imx_ldb->clk[1]);
} else {
- clk_set_parent(ldb->clk_sel[mux], ldb->clk[imx_ldb_ch->chno]);
+ clk_set_parent(imx_ldb->clk_sel[mux],
+ imx_ldb->clk[ldb_ch->chno]);
}
- if (imx_ldb_ch == &ldb->channel[0] || dual) {
+ if (imx_ldb_ch == &imx_ldb->channel[0] || ldb->dual) {
ldb->ldb_ctrl &= ~LDB_CH0_MODE_EN_MASK;
- if (mux == 0 || ldb->lvds_mux)
+ if (mux == 0 || imx_ldb->lvds_mux)
ldb->ldb_ctrl |= LDB_CH0_MODE_EN_TO_DI0;
else if (mux == 1)
ldb->ldb_ctrl |= LDB_CH0_MODE_EN_TO_DI1;
struct drm_connector_state *connector_state)
{
struct imx_ldb_channel *imx_ldb_ch = enc_to_imx_ldb_ch(encoder);
+ struct imx_ldb *imx_ldb = imx_ldb_ch->imx_ldb;
+ struct ldb_channel *ldb_ch = &imx_ldb_ch->base;
+ struct ldb *ldb = &imx_ldb->base;
struct drm_display_mode *mode = &crtc_state->adjusted_mode;
- struct imx_ldb *ldb = imx_ldb_ch->ldb;
- int dual = ldb->ldb_ctrl & LDB_SPLIT_MODE_EN;
unsigned long serial_clk;
unsigned long di_clk = mode->clock * 1000;
- int mux = drm_of_encoder_active_port_id(imx_ldb_ch->child, encoder);
- u32 bus_format = imx_ldb_ch->bus_format;
+ int mux = drm_of_encoder_active_port_id(ldb_ch->child, encoder);
- if (mux < 0 || mux >= ARRAY_SIZE(ldb->clk_sel)) {
++ if (mux < 0 || mux >= ARRAY_SIZE(imx_ldb->clk_sel)) {
+ dev_warn(ldb->dev, "%s: invalid mux %d\n", __func__, mux);
+ return;
+ }
+
if (mode->clock > 170000) {
dev_warn(ldb->dev,
"%s: mode exceeds 170 MHz pixel clock\n", __func__);