|
@@ -89,7 +89,7 @@ struct fimd_context {
|
|
bool suspended;
|
|
bool suspended;
|
|
struct mutex lock;
|
|
struct mutex lock;
|
|
|
|
|
|
- struct fb_videomode *timing;
|
|
|
|
|
|
+ struct exynos_drm_panel_info *panel;
|
|
};
|
|
};
|
|
|
|
|
|
static bool fimd_display_is_connected(struct device *dev)
|
|
static bool fimd_display_is_connected(struct device *dev)
|
|
@@ -101,13 +101,13 @@ static bool fimd_display_is_connected(struct device *dev)
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
-static void *fimd_get_timing(struct device *dev)
|
|
|
|
|
|
+static void *fimd_get_panel(struct device *dev)
|
|
{
|
|
{
|
|
struct fimd_context *ctx = get_fimd_context(dev);
|
|
struct fimd_context *ctx = get_fimd_context(dev);
|
|
|
|
|
|
DRM_DEBUG_KMS("%s\n", __FILE__);
|
|
DRM_DEBUG_KMS("%s\n", __FILE__);
|
|
|
|
|
|
- return ctx->timing;
|
|
|
|
|
|
+ return ctx->panel;
|
|
}
|
|
}
|
|
|
|
|
|
static int fimd_check_timing(struct device *dev, void *timing)
|
|
static int fimd_check_timing(struct device *dev, void *timing)
|
|
@@ -131,7 +131,7 @@ static int fimd_display_power_on(struct device *dev, int mode)
|
|
static struct exynos_drm_display_ops fimd_display_ops = {
|
|
static struct exynos_drm_display_ops fimd_display_ops = {
|
|
.type = EXYNOS_DISPLAY_TYPE_LCD,
|
|
.type = EXYNOS_DISPLAY_TYPE_LCD,
|
|
.is_connected = fimd_display_is_connected,
|
|
.is_connected = fimd_display_is_connected,
|
|
- .get_timing = fimd_get_timing,
|
|
|
|
|
|
+ .get_panel = fimd_get_panel,
|
|
.check_timing = fimd_check_timing,
|
|
.check_timing = fimd_check_timing,
|
|
.power_on = fimd_display_power_on,
|
|
.power_on = fimd_display_power_on,
|
|
};
|
|
};
|
|
@@ -193,7 +193,8 @@ static void fimd_apply(struct device *subdrv_dev)
|
|
static void fimd_commit(struct device *dev)
|
|
static void fimd_commit(struct device *dev)
|
|
{
|
|
{
|
|
struct fimd_context *ctx = get_fimd_context(dev);
|
|
struct fimd_context *ctx = get_fimd_context(dev);
|
|
- struct fb_videomode *timing = ctx->timing;
|
|
|
|
|
|
+ struct exynos_drm_panel_info *panel = ctx->panel;
|
|
|
|
+ struct fb_videomode *timing = &panel->timing;
|
|
u32 val;
|
|
u32 val;
|
|
|
|
|
|
if (ctx->suspended)
|
|
if (ctx->suspended)
|
|
@@ -786,7 +787,7 @@ static int __devinit fimd_probe(struct platform_device *pdev)
|
|
struct fimd_context *ctx;
|
|
struct fimd_context *ctx;
|
|
struct exynos_drm_subdrv *subdrv;
|
|
struct exynos_drm_subdrv *subdrv;
|
|
struct exynos_drm_fimd_pdata *pdata;
|
|
struct exynos_drm_fimd_pdata *pdata;
|
|
- struct fb_videomode *timing;
|
|
|
|
|
|
+ struct exynos_drm_panel_info *panel;
|
|
struct resource *res;
|
|
struct resource *res;
|
|
int win;
|
|
int win;
|
|
int ret = -EINVAL;
|
|
int ret = -EINVAL;
|
|
@@ -799,9 +800,9 @@ static int __devinit fimd_probe(struct platform_device *pdev)
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
}
|
|
}
|
|
|
|
|
|
- timing = &pdata->timing;
|
|
|
|
- if (!timing) {
|
|
|
|
- dev_err(dev, "timing is null.\n");
|
|
|
|
|
|
+ panel = &pdata->panel;
|
|
|
|
+ if (!panel) {
|
|
|
|
+ dev_err(dev, "panel is null.\n");
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -863,16 +864,16 @@ static int __devinit fimd_probe(struct platform_device *pdev)
|
|
goto err_req_irq;
|
|
goto err_req_irq;
|
|
}
|
|
}
|
|
|
|
|
|
- ctx->clkdiv = fimd_calc_clkdiv(ctx, timing);
|
|
|
|
|
|
+ ctx->clkdiv = fimd_calc_clkdiv(ctx, &panel->timing);
|
|
ctx->vidcon0 = pdata->vidcon0;
|
|
ctx->vidcon0 = pdata->vidcon0;
|
|
ctx->vidcon1 = pdata->vidcon1;
|
|
ctx->vidcon1 = pdata->vidcon1;
|
|
ctx->default_win = pdata->default_win;
|
|
ctx->default_win = pdata->default_win;
|
|
- ctx->timing = timing;
|
|
|
|
|
|
+ ctx->panel = panel;
|
|
|
|
|
|
- timing->pixclock = clk_get_rate(ctx->lcd_clk) / ctx->clkdiv;
|
|
|
|
|
|
+ panel->timing.pixclock = clk_get_rate(ctx->lcd_clk) / ctx->clkdiv;
|
|
|
|
|
|
DRM_DEBUG_KMS("pixel clock = %d, clkdiv = %d\n",
|
|
DRM_DEBUG_KMS("pixel clock = %d, clkdiv = %d\n",
|
|
- timing->pixclock, ctx->clkdiv);
|
|
|
|
|
|
+ panel->timing.pixclock, ctx->clkdiv);
|
|
|
|
|
|
subdrv = &ctx->subdrv;
|
|
subdrv = &ctx->subdrv;
|
|
|
|
|