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