OMAPDSS: provide default get_timings function for panels
With this we can eliminate some duplicate code in panel drivers. Also lgphilips-lb035q02, nec-nl8048hl11-01b, picodlp and tpo-td043mtea1 gain support of reading timings over sysfs. Signed-off-by: Grazvydas Ignotas <notasas@gmail.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
This commit is contained in:
parent
f3fb3bbc7f
commit
4b6430fc98
|
@ -738,12 +738,6 @@ static void acx_panel_set_timings(struct omap_dss_device *dssdev,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void acx_panel_get_timings(struct omap_dss_device *dssdev,
|
|
||||||
struct omap_video_timings *timings)
|
|
||||||
{
|
|
||||||
*timings = dssdev->panel.timings;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int acx_panel_check_timings(struct omap_dss_device *dssdev,
|
static int acx_panel_check_timings(struct omap_dss_device *dssdev,
|
||||||
struct omap_video_timings *timings)
|
struct omap_video_timings *timings)
|
||||||
{
|
{
|
||||||
|
@ -761,7 +755,6 @@ static struct omap_dss_driver acx_panel_driver = {
|
||||||
.resume = acx_panel_resume,
|
.resume = acx_panel_resume,
|
||||||
|
|
||||||
.set_timings = acx_panel_set_timings,
|
.set_timings = acx_panel_set_timings,
|
||||||
.get_timings = acx_panel_get_timings,
|
|
||||||
.check_timings = acx_panel_check_timings,
|
.check_timings = acx_panel_check_timings,
|
||||||
|
|
||||||
.get_recommended_bpp = acx_get_recommended_bpp,
|
.get_recommended_bpp = acx_get_recommended_bpp,
|
||||||
|
|
|
@ -549,12 +549,6 @@ static void generic_dpi_panel_set_timings(struct omap_dss_device *dssdev,
|
||||||
dpi_set_timings(dssdev, timings);
|
dpi_set_timings(dssdev, timings);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void generic_dpi_panel_get_timings(struct omap_dss_device *dssdev,
|
|
||||||
struct omap_video_timings *timings)
|
|
||||||
{
|
|
||||||
*timings = dssdev->panel.timings;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int generic_dpi_panel_check_timings(struct omap_dss_device *dssdev,
|
static int generic_dpi_panel_check_timings(struct omap_dss_device *dssdev,
|
||||||
struct omap_video_timings *timings)
|
struct omap_video_timings *timings)
|
||||||
{
|
{
|
||||||
|
@ -571,7 +565,6 @@ static struct omap_dss_driver dpi_driver = {
|
||||||
.resume = generic_dpi_panel_resume,
|
.resume = generic_dpi_panel_resume,
|
||||||
|
|
||||||
.set_timings = generic_dpi_panel_set_timings,
|
.set_timings = generic_dpi_panel_set_timings,
|
||||||
.get_timings = generic_dpi_panel_get_timings,
|
|
||||||
.check_timings = generic_dpi_panel_check_timings,
|
.check_timings = generic_dpi_panel_check_timings,
|
||||||
|
|
||||||
.driver = {
|
.driver = {
|
||||||
|
|
|
@ -610,12 +610,6 @@ static int n8x0_panel_resume(struct omap_dss_device *dssdev)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void n8x0_panel_get_timings(struct omap_dss_device *dssdev,
|
|
||||||
struct omap_video_timings *timings)
|
|
||||||
{
|
|
||||||
*timings = dssdev->panel.timings;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void n8x0_panel_get_resolution(struct omap_dss_device *dssdev,
|
static void n8x0_panel_get_resolution(struct omap_dss_device *dssdev,
|
||||||
u16 *xres, u16 *yres)
|
u16 *xres, u16 *yres)
|
||||||
{
|
{
|
||||||
|
@ -678,8 +672,6 @@ static struct omap_dss_driver n8x0_panel_driver = {
|
||||||
.get_resolution = n8x0_panel_get_resolution,
|
.get_resolution = n8x0_panel_get_resolution,
|
||||||
.get_recommended_bpp = omapdss_default_get_recommended_bpp,
|
.get_recommended_bpp = omapdss_default_get_recommended_bpp,
|
||||||
|
|
||||||
.get_timings = n8x0_panel_get_timings,
|
|
||||||
|
|
||||||
.driver = {
|
.driver = {
|
||||||
.name = "n8x0_panel",
|
.name = "n8x0_panel",
|
||||||
.owner = THIS_MODULE,
|
.owner = THIS_MODULE,
|
||||||
|
|
|
@ -507,12 +507,6 @@ static const struct backlight_ops taal_bl_ops = {
|
||||||
.update_status = taal_bl_update_status,
|
.update_status = taal_bl_update_status,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void taal_get_timings(struct omap_dss_device *dssdev,
|
|
||||||
struct omap_video_timings *timings)
|
|
||||||
{
|
|
||||||
*timings = dssdev->panel.timings;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void taal_get_resolution(struct omap_dss_device *dssdev,
|
static void taal_get_resolution(struct omap_dss_device *dssdev,
|
||||||
u16 *xres, u16 *yres)
|
u16 *xres, u16 *yres)
|
||||||
{
|
{
|
||||||
|
@ -1807,8 +1801,6 @@ static struct omap_dss_driver taal_driver = {
|
||||||
.run_test = taal_run_test,
|
.run_test = taal_run_test,
|
||||||
.memory_read = taal_memory_read,
|
.memory_read = taal_memory_read,
|
||||||
|
|
||||||
.get_timings = taal_get_timings,
|
|
||||||
|
|
||||||
.driver = {
|
.driver = {
|
||||||
.name = "taal",
|
.name = "taal",
|
||||||
.owner = THIS_MODULE,
|
.owner = THIS_MODULE,
|
||||||
|
|
|
@ -391,6 +391,8 @@ int omap_dss_register_driver(struct omap_dss_driver *dssdriver)
|
||||||
if (dssdriver->get_recommended_bpp == NULL)
|
if (dssdriver->get_recommended_bpp == NULL)
|
||||||
dssdriver->get_recommended_bpp =
|
dssdriver->get_recommended_bpp =
|
||||||
omapdss_default_get_recommended_bpp;
|
omapdss_default_get_recommended_bpp;
|
||||||
|
if (dssdriver->get_timings == NULL)
|
||||||
|
dssdriver->get_timings = omapdss_default_get_timings;
|
||||||
|
|
||||||
return driver_register(&dssdriver->driver);
|
return driver_register(&dssdriver->driver);
|
||||||
}
|
}
|
||||||
|
|
|
@ -308,6 +308,13 @@ int omapdss_default_get_recommended_bpp(struct omap_dss_device *dssdev)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(omapdss_default_get_recommended_bpp);
|
EXPORT_SYMBOL(omapdss_default_get_recommended_bpp);
|
||||||
|
|
||||||
|
void omapdss_default_get_timings(struct omap_dss_device *dssdev,
|
||||||
|
struct omap_video_timings *timings)
|
||||||
|
{
|
||||||
|
*timings = dssdev->panel.timings;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(omapdss_default_get_timings);
|
||||||
|
|
||||||
/* Checks if replication logic should be used. Only use for active matrix,
|
/* Checks if replication logic should be used. Only use for active matrix,
|
||||||
* when overlay is in RGB12U or RGB16 mode, and LCD interface is
|
* when overlay is in RGB12U or RGB16 mode, and LCD interface is
|
||||||
* 18bpp or 24bpp */
|
* 18bpp or 24bpp */
|
||||||
|
|
|
@ -579,12 +579,6 @@ static int venc_panel_resume(struct omap_dss_device *dssdev)
|
||||||
return venc_panel_enable(dssdev);
|
return venc_panel_enable(dssdev);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void venc_get_timings(struct omap_dss_device *dssdev,
|
|
||||||
struct omap_video_timings *timings)
|
|
||||||
{
|
|
||||||
*timings = dssdev->panel.timings;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void venc_set_timings(struct omap_dss_device *dssdev,
|
static void venc_set_timings(struct omap_dss_device *dssdev,
|
||||||
struct omap_video_timings *timings)
|
struct omap_video_timings *timings)
|
||||||
{
|
{
|
||||||
|
@ -663,7 +657,6 @@ static struct omap_dss_driver venc_driver = {
|
||||||
.get_resolution = omapdss_default_get_resolution,
|
.get_resolution = omapdss_default_get_resolution,
|
||||||
.get_recommended_bpp = omapdss_default_get_recommended_bpp,
|
.get_recommended_bpp = omapdss_default_get_recommended_bpp,
|
||||||
|
|
||||||
.get_timings = venc_get_timings,
|
|
||||||
.set_timings = venc_set_timings,
|
.set_timings = venc_set_timings,
|
||||||
.check_timings = venc_check_timings,
|
.check_timings = venc_check_timings,
|
||||||
|
|
||||||
|
|
|
@ -667,6 +667,8 @@ struct omap_overlay *omap_dss_get_overlay(int num);
|
||||||
void omapdss_default_get_resolution(struct omap_dss_device *dssdev,
|
void omapdss_default_get_resolution(struct omap_dss_device *dssdev,
|
||||||
u16 *xres, u16 *yres);
|
u16 *xres, u16 *yres);
|
||||||
int omapdss_default_get_recommended_bpp(struct omap_dss_device *dssdev);
|
int omapdss_default_get_recommended_bpp(struct omap_dss_device *dssdev);
|
||||||
|
void omapdss_default_get_timings(struct omap_dss_device *dssdev,
|
||||||
|
struct omap_video_timings *timings);
|
||||||
|
|
||||||
typedef void (*omap_dispc_isr_t) (void *arg, u32 mask);
|
typedef void (*omap_dispc_isr_t) (void *arg, u32 mask);
|
||||||
int omap_dispc_register_isr(omap_dispc_isr_t isr, void *arg, u32 mask);
|
int omap_dispc_register_isr(omap_dispc_isr_t isr, void *arg, u32 mask);
|
||||||
|
|
Loading…
Reference in New Issue