[RFC v2 3/3] video: exynos: Making s6e8ax0 panel driver compliant with CDF
Donghwa Lee
dh09.lee at samsung.com
Wed Feb 13 18:00:09 PST 2013
On Wed, Feb 13, 2013 at 19:01, Vikas Sajjan wrote:
> Made necessary changes in s6e8ax0 panel driver as per the CDF-T.
> It also removes the dependency on backlight and lcd framework
>
> Signed-off-by: Vikas Sajjan<vikas.sajjan at linaro.org>
> ---
> drivers/video/exynos/s6e8ax0.c | 848 +++++++++++++++++++++-------------------
> 1 file changed, 444 insertions(+), 404 deletions(-)
>
> diff --git a/drivers/video/exynos/s6e8ax0.c b/drivers/video/exynos/s6e8ax0.c
> index 7f7b25f..5a17e3c 100644
> --- a/drivers/video/exynos/s6e8ax0.c
> +++ b/drivers/video/exynos/s6e8ax0.c
> @@ -25,6 +25,7 @@
> #include <linux/backlight.h>
> #include <linux/regulator/consumer.h>
>
> +#include <video/display.h>
> #include <video/mipi_display.h>
> #include <video/exynos_mipi_dsim.h>
>
> @@ -38,8 +39,7 @@
> #define POWER_IS_OFF(pwr) ((pwr) == FB_BLANK_POWERDOWN)
> #define POWER_IS_NRM(pwr) ((pwr) == FB_BLANK_NORMAL)
>
> -#define lcd_to_master(a) (a->dsim_dev->master)
> -#define lcd_to_master_ops(a) ((lcd_to_master(a))->master_ops)
> +#define to_panel(p) container_of(p, struct s6e8ax0, entity)
>
> enum {
> DSIM_NONE_STATE = 0,
> @@ -47,20 +47,34 @@ enum {
> DSIM_FRAME_DONE = 2,
> };
>
> +/* This structure defines all the properties of a backlight */
> +struct backlight_prop {
> + /* Current User requested brightness (0 - max_brightness) */
> + int brightness;
> + /* Maximal value for brightness (read-only) */
> + int max_brightness;
> +};
> +
> +struct panel_platform_data {
> + unsigned int reset_delay;
> + unsigned int power_on_delay;
> + unsigned int power_off_delay;
> + const char *video_source_name;
> +};
> +
> struct s6e8ax0 {
> - struct device *dev;
> - unsigned int power;
> - unsigned int id;
> - unsigned int gamma;
> - unsigned int acl_enable;
> - unsigned int cur_acl;
> -
> - struct lcd_device *ld;
> - struct backlight_device *bd;
> -
> - struct mipi_dsim_lcd_device *dsim_dev;
> - struct lcd_platform_data *ddi_pd;
> + struct platform_device *pdev;
> + struct video_source *src;
> + struct display_entity entity;
> + unsigned int power;
> + unsigned int id;
> + unsigned int gamma;
> + unsigned int acl_enable;
> + unsigned int cur_acl;
> + bool panel_reverse;
> + struct lcd_platform_data *plat_data;
> struct mutex lock;
> + struct backlight_prop bl_prop;
> bool enabled;
> };
>
Could this panel driver use only CDF?
Does not consider the compatibility with backlight and lcd framework?
> -static const unsigned char s6e8ax0_22_gamma_30[] = {
> +static unsigned char s6e8ax0_22_gamma_30[] = {
> 0xfa, 0x01, 0x60, 0x10, 0x60, 0xf5, 0x00, 0xff, 0xad, 0xaf,
> 0xbA, 0xc3, 0xd8, 0xc5, 0x9f, 0xc6, 0x9e, 0xc1, 0xdc, 0xc0,
> 0x00, 0x61, 0x00, 0x5a, 0x00, 0x74,
> };
In all case, you had changed data type to 'static unsigned char'.
Is it need to change all case? Otherwise, for the unity of the code?
Thank you,
Donghwa Lee
More information about the dri-devel
mailing list