From: Erik Gilling Date: Thu, 12 Aug 2010 01:52:50 +0000 (-0700) Subject: video: tegra: add init/suspend/resume hooks to outputs X-Git-Tag: firefly_0821_release~9833^2~286 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=fc6fca2f38db32884a29ce19b8ed9d29133be99f;p=firefly-linux-kernel-4.4.55.git video: tegra: add init/suspend/resume hooks to outputs Allows board specific code to handle panel init. Signed-off-by: Erik Gilling --- diff --git a/arch/arm/mach-tegra/include/mach/dc.h b/arch/arm/mach-tegra/include/mach/dc.h index b8a0e7a4a5dc..ae610e56c1f8 100644 --- a/arch/arm/mach-tegra/include/mach/dc.h +++ b/arch/arm/mach-tegra/include/mach/dc.h @@ -62,6 +62,10 @@ struct tegra_dc_out { struct tegra_dc_mode *modes; int n_modes; + + int (*init)(void); + int (*suspend)(pm_message_t state); + int (*resume)(void); }; #define TEGRA_DC_ALIGN_MSB 0 diff --git a/drivers/video/tegra/dc/dc.c b/drivers/video/tegra/dc/dc.c index 261bcedf8939..9c5caeb76c13 100644 --- a/drivers/video/tegra/dc/dc.c +++ b/drivers/video/tegra/dc/dc.c @@ -747,6 +747,8 @@ static int tegra_dc_probe(struct platform_device *pdev) } tegra_dc_init(dc); + if (dc->out && dc->out->init) + dc->out->init(); tegra_dc_set_blending(dc, tegra_dc_blend_modes[0]); @@ -812,6 +814,9 @@ static int tegra_dc_suspend(struct platform_device *pdev, pm_message_t state) dev_info(&pdev->dev, "suspend\n"); + if (dc->out && dc->out->suspend) + dc->out->suspend(state); + disable_irq(dc->irq); tegra_periph_reset_assert(dc->clk); clk_disable(dc->clk); @@ -835,6 +840,8 @@ static int tegra_dc_resume(struct platform_device *pdev) wins[i] = &dc->windows[i]; tegra_dc_init(dc); + if (dc->out && dc->out->resume) + dc->out->resume(); tegra_dc_set_blending(dc, tegra_dc_blend_modes[0]); tegra_dc_update_windows(wins, dc->n_windows);