forked from Minki/linux
video: sh_mobile_lcdcfb: depends on HAVE_CLK.
This deifdefs the driver and adds an explicit HAVE_CLK dependency. Given that all SH platforms provide it, there is no reason to keep this as an ifdef. Other architectures that implement support for this driver will already have to provide clock framework support for timers and so on already, so adding this as an additional dependency is not terribly probematic. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
7119888df1
commit
727dc3fde8
@ -1866,7 +1866,7 @@ config FB_W100
|
|||||||
|
|
||||||
config FB_SH_MOBILE_LCDC
|
config FB_SH_MOBILE_LCDC
|
||||||
tristate "SuperH Mobile LCDC framebuffer support"
|
tristate "SuperH Mobile LCDC framebuffer support"
|
||||||
depends on FB && SUPERH
|
depends on FB && SUPERH && HAVE_CLK
|
||||||
select FB_SYS_FILLRECT
|
select FB_SYS_FILLRECT
|
||||||
select FB_SYS_COPYAREA
|
select FB_SYS_COPYAREA
|
||||||
select FB_SYS_IMAGEBLIT
|
select FB_SYS_IMAGEBLIT
|
||||||
|
@ -42,11 +42,9 @@ struct sh_mobile_lcdc_chan {
|
|||||||
struct sh_mobile_lcdc_priv {
|
struct sh_mobile_lcdc_priv {
|
||||||
void __iomem *base;
|
void __iomem *base;
|
||||||
int irq;
|
int irq;
|
||||||
#ifdef CONFIG_HAVE_CLK
|
|
||||||
atomic_t clk_usecnt;
|
atomic_t clk_usecnt;
|
||||||
struct clk *dot_clk;
|
struct clk *dot_clk;
|
||||||
struct clk *clk;
|
struct clk *clk;
|
||||||
#endif
|
|
||||||
unsigned long lddckr;
|
unsigned long lddckr;
|
||||||
struct sh_mobile_lcdc_chan ch[2];
|
struct sh_mobile_lcdc_chan ch[2];
|
||||||
int started;
|
int started;
|
||||||
@ -185,7 +183,6 @@ struct sh_mobile_lcdc_sys_bus_ops sh_mobile_lcdc_sys_bus_ops = {
|
|||||||
lcdc_sys_read_data,
|
lcdc_sys_read_data,
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef CONFIG_HAVE_CLK
|
|
||||||
static void sh_mobile_lcdc_clk_on(struct sh_mobile_lcdc_priv *priv)
|
static void sh_mobile_lcdc_clk_on(struct sh_mobile_lcdc_priv *priv)
|
||||||
{
|
{
|
||||||
if (atomic_inc_and_test(&priv->clk_usecnt)) {
|
if (atomic_inc_and_test(&priv->clk_usecnt)) {
|
||||||
@ -203,10 +200,6 @@ static void sh_mobile_lcdc_clk_off(struct sh_mobile_lcdc_priv *priv)
|
|||||||
clk_disable(priv->clk);
|
clk_disable(priv->clk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
static void sh_mobile_lcdc_clk_on(struct sh_mobile_lcdc_priv *priv) {}
|
|
||||||
static void sh_mobile_lcdc_clk_off(struct sh_mobile_lcdc_priv *priv) {}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static int sh_mobile_lcdc_sginit(struct fb_info *info,
|
static int sh_mobile_lcdc_sginit(struct fb_info *info,
|
||||||
struct list_head *pagelist)
|
struct list_head *pagelist)
|
||||||
@ -515,7 +508,6 @@ static void sh_mobile_lcdc_stop(struct sh_mobile_lcdc_priv *priv)
|
|||||||
board_cfg = &ch->cfg.board_cfg;
|
board_cfg = &ch->cfg.board_cfg;
|
||||||
if (board_cfg->display_off)
|
if (board_cfg->display_off)
|
||||||
board_cfg->display_off(board_cfg->board_data);
|
board_cfg->display_off(board_cfg->board_data);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* stop the lcdc */
|
/* stop the lcdc */
|
||||||
@ -574,9 +566,7 @@ static int sh_mobile_lcdc_setup_clocks(struct platform_device *pdev,
|
|||||||
int clock_source,
|
int clock_source,
|
||||||
struct sh_mobile_lcdc_priv *priv)
|
struct sh_mobile_lcdc_priv *priv)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_HAVE_CLK
|
|
||||||
char clk_name[8];
|
char clk_name[8];
|
||||||
#endif
|
|
||||||
char *str;
|
char *str;
|
||||||
int icksel;
|
int icksel;
|
||||||
|
|
||||||
@ -590,7 +580,6 @@ static int sh_mobile_lcdc_setup_clocks(struct platform_device *pdev,
|
|||||||
|
|
||||||
priv->lddckr = icksel << 16;
|
priv->lddckr = icksel << 16;
|
||||||
|
|
||||||
#ifdef CONFIG_HAVE_CLK
|
|
||||||
atomic_set(&priv->clk_usecnt, -1);
|
atomic_set(&priv->clk_usecnt, -1);
|
||||||
snprintf(clk_name, sizeof(clk_name), "lcdc%d", pdev->id);
|
snprintf(clk_name, sizeof(clk_name), "lcdc%d", pdev->id);
|
||||||
priv->clk = clk_get(&pdev->dev, clk_name);
|
priv->clk = clk_get(&pdev->dev, clk_name);
|
||||||
@ -607,7 +596,6 @@ static int sh_mobile_lcdc_setup_clocks(struct platform_device *pdev,
|
|||||||
return PTR_ERR(priv->dot_clk);
|
return PTR_ERR(priv->dot_clk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -934,11 +922,9 @@ static int sh_mobile_lcdc_remove(struct platform_device *pdev)
|
|||||||
fb_dealloc_cmap(&info->cmap);
|
fb_dealloc_cmap(&info->cmap);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_HAVE_CLK
|
|
||||||
if (priv->dot_clk)
|
if (priv->dot_clk)
|
||||||
clk_put(priv->dot_clk);
|
clk_put(priv->dot_clk);
|
||||||
clk_put(priv->clk);
|
clk_put(priv->clk);
|
||||||
#endif
|
|
||||||
|
|
||||||
if (priv->base)
|
if (priv->base)
|
||||||
iounmap(priv->base);
|
iounmap(priv->base);
|
||||||
|
Loading…
Reference in New Issue
Block a user