Hi,

On Tue, Aug 07, 2012 at 01:57:42PM +0530, Chandrabhanu Mahapatra wrote:
> diff --git a/drivers/video/omap2/dss/dss_features.c 
> b/drivers/video/omap2/dss/dss_features.c
> index 9387097..b8d5095 100644
> --- a/drivers/video/omap2/dss/dss_features.c
> +++ b/drivers/video/omap2/dss/dss_features.c
> @@ -567,6 +567,48 @@ static const struct omap_dss_features omap4_dss_features 
> = {
>       .burst_size_unit = 16,
>  };
>  
> +static const struct dispc_ops omap2_dispc_ops = {
> +     .calc_scaling           =       dispc_ovl_calc_scaling_24xx,
> +     .calc_core_clk          =       calc_core_clk_24xx,
> +     .lcd_timings_ok         =       _dispc_lcd_timings_ok_24xx,
> +     .set_lcd_timings_hv     =       _dispc_mgr_set_lcd_timings_hv_24xx,
> +};
> +
> +static const struct dispc_ops omap3_2_1_dispc_ops = {
> +     .calc_scaling           =       dispc_ovl_calc_scaling_34xx,
> +     .calc_core_clk          =       calc_core_clk_34xx,
> +     .lcd_timings_ok         =       _dispc_lcd_timings_ok_24xx,
> +     .set_lcd_timings_hv     =       _dispc_mgr_set_lcd_timings_hv_24xx,
> +};
> +
> +static const struct dispc_ops omap3_3_0_dispc_ops = {
> +     .calc_scaling           =       dispc_ovl_calc_scaling_34xx,
> +     .calc_core_clk          =       calc_core_clk_34xx,
> +     .lcd_timings_ok         =       _dispc_lcd_timings_ok_44xx,
> +     .set_lcd_timings_hv     =       _dispc_mgr_set_lcd_timings_hv_44xx,
> +};
> +
> +static const struct dispc_ops omap4_dispc_ops = {
> +     .calc_scaling           =       dispc_ovl_calc_scaling_44xx,
> +     .calc_core_clk          =       calc_core_clk_44xx,
> +     .lcd_timings_ok         =       _dispc_lcd_timings_ok_44xx,
> +     .set_lcd_timings_hv     =       _dispc_mgr_set_lcd_timings_hv_44xx,
> +};
> +
> +void dispc_init_ops(const struct dispc_ops *ops)
> +{
> +     if (cpu_is_omap24xx()) {
> +             ops = &omap2_dispc_ops;
> +     } else if (cpu_is_omap34xx()) {
> +             if (omap_rev() < OMAP3430_REV_ES3_0)
> +                     ops = &omap3_2_1_dispc_ops;
> +             else
> +                     ops = &omap3_3_0_dispc_ops;
> +     } else {
> +             ops = &omap4_dispc_ops;
> +     }
> +}

you're not really removing. You're moving cpu_is_* somewhere else. A
better approach, IMHO, would be to use the DSS_REVISION register to
differentiate the DSS IP itself, not the OMAP.

-- 
balbi

Attachment: signature.asc
Description: Digital signature

Reply via email to