fbdev: sh_mobile_lcdc: Merge board_cfg and lcd_size_cfg into panel_cfg
Update board code accordingly. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
@@ -289,7 +289,7 @@ static void sh_mobile_lcdc_deferred_io(struct fb_info *info,
|
||||
struct list_head *pagelist)
|
||||
{
|
||||
struct sh_mobile_lcdc_chan *ch = info->par;
|
||||
struct sh_mobile_lcdc_board_cfg *bcfg = &ch->cfg.board_cfg;
|
||||
struct sh_mobile_lcdc_panel_cfg *panel = &ch->cfg.panel_cfg;
|
||||
|
||||
/* enable clocks before accessing hardware */
|
||||
sh_mobile_lcdc_clk_on(ch->lcdc);
|
||||
@@ -314,13 +314,13 @@ static void sh_mobile_lcdc_deferred_io(struct fb_info *info,
|
||||
|
||||
/* trigger panel update */
|
||||
dma_map_sg(info->dev, ch->sglist, nr_pages, DMA_TO_DEVICE);
|
||||
if (bcfg->start_transfer)
|
||||
bcfg->start_transfer(ch, &sh_mobile_lcdc_sys_bus_ops);
|
||||
if (panel->start_transfer)
|
||||
panel->start_transfer(ch, &sh_mobile_lcdc_sys_bus_ops);
|
||||
lcdc_write_chan(ch, LDSM2R, LDSM2R_OSTRG);
|
||||
dma_unmap_sg(info->dev, ch->sglist, nr_pages, DMA_TO_DEVICE);
|
||||
} else {
|
||||
if (bcfg->start_transfer)
|
||||
bcfg->start_transfer(ch, &sh_mobile_lcdc_sys_bus_ops);
|
||||
if (panel->start_transfer)
|
||||
panel->start_transfer(ch, &sh_mobile_lcdc_sys_bus_ops);
|
||||
lcdc_write_chan(ch, LDSM2R, LDSM2R_OSTRG);
|
||||
}
|
||||
}
|
||||
@@ -335,7 +335,7 @@ static void sh_mobile_lcdc_deferred_io_touch(struct fb_info *info)
|
||||
|
||||
static void sh_mobile_lcdc_display_on(struct sh_mobile_lcdc_chan *ch)
|
||||
{
|
||||
struct sh_mobile_lcdc_board_cfg *board_cfg = &ch->cfg.board_cfg;
|
||||
struct sh_mobile_lcdc_panel_cfg *panel = &ch->cfg.panel_cfg;
|
||||
|
||||
if (ch->tx_dev) {
|
||||
if (ch->tx_dev->ops->display_on(ch->tx_dev, ch->info) < 0)
|
||||
@@ -343,16 +343,16 @@ static void sh_mobile_lcdc_display_on(struct sh_mobile_lcdc_chan *ch)
|
||||
}
|
||||
|
||||
/* HDMI must be enabled before LCDC configuration */
|
||||
if (board_cfg->display_on)
|
||||
board_cfg->display_on();
|
||||
if (panel->display_on)
|
||||
panel->display_on();
|
||||
}
|
||||
|
||||
static void sh_mobile_lcdc_display_off(struct sh_mobile_lcdc_chan *ch)
|
||||
{
|
||||
struct sh_mobile_lcdc_board_cfg *board_cfg = &ch->cfg.board_cfg;
|
||||
struct sh_mobile_lcdc_panel_cfg *panel = &ch->cfg.panel_cfg;
|
||||
|
||||
if (board_cfg->display_off)
|
||||
board_cfg->display_off();
|
||||
if (panel->display_off)
|
||||
panel->display_off();
|
||||
|
||||
if (ch->tx_dev)
|
||||
ch->tx_dev->ops->display_off(ch->tx_dev);
|
||||
@@ -687,16 +687,15 @@ static int sh_mobile_lcdc_start(struct sh_mobile_lcdc_priv *priv)
|
||||
lcdc_wait_bit(priv, _LDCNT2R, LDCNT2R_BR, 0);
|
||||
|
||||
for (k = 0; k < ARRAY_SIZE(priv->ch); k++) {
|
||||
struct sh_mobile_lcdc_board_cfg *board_cfg;
|
||||
struct sh_mobile_lcdc_panel_cfg *panel;
|
||||
|
||||
ch = &priv->ch[k];
|
||||
if (!ch->enabled)
|
||||
continue;
|
||||
|
||||
board_cfg = &ch->cfg.board_cfg;
|
||||
if (board_cfg->setup_sys) {
|
||||
ret = board_cfg->setup_sys(ch,
|
||||
&sh_mobile_lcdc_sys_bus_ops);
|
||||
panel = &ch->cfg.panel_cfg;
|
||||
if (panel->setup_sys) {
|
||||
ret = panel->setup_sys(ch, &sh_mobile_lcdc_sys_bus_ops);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
@@ -1654,8 +1653,8 @@ sh_mobile_lcdc_channel_init(struct sh_mobile_lcdc_priv *priv,
|
||||
*/
|
||||
var = &info->var;
|
||||
fb_videomode_to_var(var, mode);
|
||||
var->width = cfg->lcd_size_cfg.width;
|
||||
var->height = cfg->lcd_size_cfg.height;
|
||||
var->width = cfg->panel_cfg.width;
|
||||
var->height = cfg->panel_cfg.height;
|
||||
var->yres_virtual = var->yres * 2;
|
||||
var->activate = FB_ACTIVATE_NOW;
|
||||
|
||||
|
Reference in New Issue
Block a user