[PATCH 1/1] gpu:drm:tilcdc: get preferred_bpp value from DT

2013-06-20 Thread Dave Airlie
>>
>> Signed-off-by: Benoit Parrot 
>
> Acked-by: Rob Clark 

Applied to -next,

thanks,
Dave.


Re: [PATCH 1/1] gpu:drm:tilcdc: get preferred_bpp value from DT

2013-06-19 Thread Dave Airlie
>>
>> Signed-off-by: Benoit Parrot 
>
> Acked-by: Rob Clark 

Applied to -next,

thanks,
Dave.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH 1/1] gpu:drm:tilcdc: get preferred_bpp value from DT

2013-06-18 Thread Benoit Parrot
The preferred_bpp value in currently hard-coded to 16.
This causes color corruption on the am335x-evm lcd panel which
requires 32 bpp instead. This changes attempts to use the configured
bpp value from the DT or built-in panel-info struct.

Signed-off-by: Benoit Parrot 
---
 drivers/gpu/drm/tilcdc/tilcdc_drv.c|   12 +++-
 drivers/gpu/drm/tilcdc/tilcdc_drv.h|1 +
 drivers/gpu/drm/tilcdc/tilcdc_panel.c  |2 ++
 drivers/gpu/drm/tilcdc/tilcdc_slave.c  |2 ++
 drivers/gpu/drm/tilcdc/tilcdc_tfp410.c |2 ++
 5 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.c 
b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
index 2b5461b..f2a6528 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
@@ -157,7 +157,9 @@ static int tilcdc_load(struct drm_device *dev, unsigned 
long flags)
struct platform_device *pdev = dev->platformdev;
struct device_node *node = pdev->dev.of_node;
struct tilcdc_drm_private *priv;
+   struct tilcdc_module *mod;
struct resource *res;
+   u32 bpp = 0;
int ret;
 
priv = kzalloc(sizeof(*priv), GFP_KERNEL);
@@ -256,7 +258,15 @@ static int tilcdc_load(struct drm_device *dev, unsigned 
long flags)
 
platform_set_drvdata(pdev, dev);
 
-   priv->fbdev = drm_fbdev_cma_init(dev, 16,
+
+   list_for_each_entry(mod, &module_list, list) {
+   DBG("%s: preferred_bpp: %d", mod->name, mod->preferred_bpp);
+   bpp = mod->preferred_bpp;
+   if (bpp > 0)
+   break;
+   }
+
+   priv->fbdev = drm_fbdev_cma_init(dev, bpp,
dev->mode_config.num_crtc,
dev->mode_config.num_connector);
 
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.h 
b/drivers/gpu/drm/tilcdc/tilcdc_drv.h
index 8242b5a..0906843 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_drv.h
+++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.h
@@ -89,6 +89,7 @@ struct tilcdc_module {
const char *name;
struct list_head list;
const struct tilcdc_module_ops *funcs;
+   unsigned int preferred_bpp;
 };
 
 void tilcdc_module_init(struct tilcdc_module *mod, const char *name,
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_panel.c 
b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
index 0917665..86c6732 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_panel.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
@@ -393,6 +393,8 @@ static int panel_probe(struct platform_device *pdev)
goto fail;
}
 
+   mod->preferred_bpp = panel_mod->info->bpp;
+
panel_mod->backlight = of_find_backlight_by_node(node);
if (panel_mod->backlight)
dev_info(&pdev->dev, "found backlight\n");
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_slave.c 
b/drivers/gpu/drm/tilcdc/tilcdc_slave.c
index db1d2fc..8bf4fd1 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_slave.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_slave.c
@@ -323,6 +323,8 @@ static int slave_probe(struct platform_device *pdev)
goto fail;
}
 
+   mod->preferred_bpp = slave_info.bpp;
+
i2c_node = of_find_node_by_phandle(i2c_phandle);
if (!i2c_node) {
dev_err(&pdev->dev, "could not get i2c bus node\n");
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c 
b/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
index a36788f..925c7cd 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
@@ -354,6 +354,8 @@ static int tfp410_probe(struct platform_device *pdev)
goto fail;
}
 
+   mod->preferred_bpp = dvi_info.bpp;
+
i2c_node = of_find_node_by_phandle(i2c_phandle);
if (!i2c_node) {
dev_err(&pdev->dev, "could not get i2c bus node\n");
-- 
1.7.9.5

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH 1/1] gpu:drm:tilcdc: get preferred_bpp value from DT

2013-06-18 Thread Rob Clark
On Tue, Jun 18, 2013 at 6:18 PM, Benoit Parrot  wrote:
> The preferred_bpp value in currently hard-coded to 16.
> This causes color corruption on the am335x-evm lcd panel which
> requires 32 bpp instead. This changes attempts to use the configured
> bpp value from the DT or built-in panel-info struct.
>
> Signed-off-by: Benoit Parrot 

Acked-by: Rob Clark 

> ---
>  drivers/gpu/drm/tilcdc/tilcdc_drv.c|   12 +++-
>  drivers/gpu/drm/tilcdc/tilcdc_drv.h|1 +
>  drivers/gpu/drm/tilcdc/tilcdc_panel.c  |2 ++
>  drivers/gpu/drm/tilcdc/tilcdc_slave.c  |2 ++
>  drivers/gpu/drm/tilcdc/tilcdc_tfp410.c |2 ++
>  5 files changed, 18 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.c 
> b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
> index 2b5461b..f2a6528 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
> @@ -157,7 +157,9 @@ static int tilcdc_load(struct drm_device *dev, unsigned 
> long flags)
> struct platform_device *pdev = dev->platformdev;
> struct device_node *node = pdev->dev.of_node;
> struct tilcdc_drm_private *priv;
> +   struct tilcdc_module *mod;
> struct resource *res;
> +   u32 bpp = 0;
> int ret;
>
> priv = kzalloc(sizeof(*priv), GFP_KERNEL);
> @@ -256,7 +258,15 @@ static int tilcdc_load(struct drm_device *dev, unsigned 
> long flags)
>
> platform_set_drvdata(pdev, dev);
>
> -   priv->fbdev = drm_fbdev_cma_init(dev, 16,
> +
> +   list_for_each_entry(mod, &module_list, list) {
> +   DBG("%s: preferred_bpp: %d", mod->name, mod->preferred_bpp);
> +   bpp = mod->preferred_bpp;
> +   if (bpp > 0)
> +   break;
> +   }
> +
> +   priv->fbdev = drm_fbdev_cma_init(dev, bpp,
> dev->mode_config.num_crtc,
> dev->mode_config.num_connector);
>
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.h 
> b/drivers/gpu/drm/tilcdc/tilcdc_drv.h
> index 8242b5a..0906843 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_drv.h
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.h
> @@ -89,6 +89,7 @@ struct tilcdc_module {
> const char *name;
> struct list_head list;
> const struct tilcdc_module_ops *funcs;
> +   unsigned int preferred_bpp;
>  };
>
>  void tilcdc_module_init(struct tilcdc_module *mod, const char *name,
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_panel.c 
> b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
> index 0917665..86c6732 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_panel.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
> @@ -393,6 +393,8 @@ static int panel_probe(struct platform_device *pdev)
> goto fail;
> }
>
> +   mod->preferred_bpp = panel_mod->info->bpp;
> +
> panel_mod->backlight = of_find_backlight_by_node(node);
> if (panel_mod->backlight)
> dev_info(&pdev->dev, "found backlight\n");
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_slave.c 
> b/drivers/gpu/drm/tilcdc/tilcdc_slave.c
> index db1d2fc..8bf4fd1 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_slave.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_slave.c
> @@ -323,6 +323,8 @@ static int slave_probe(struct platform_device *pdev)
> goto fail;
> }
>
> +   mod->preferred_bpp = slave_info.bpp;
> +
> i2c_node = of_find_node_by_phandle(i2c_phandle);
> if (!i2c_node) {
> dev_err(&pdev->dev, "could not get i2c bus node\n");
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c 
> b/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
> index a36788f..925c7cd 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
> @@ -354,6 +354,8 @@ static int tfp410_probe(struct platform_device *pdev)
> goto fail;
> }
>
> +   mod->preferred_bpp = dvi_info.bpp;
> +
> i2c_node = of_find_node_by_phandle(i2c_phandle);
> if (!i2c_node) {
> dev_err(&pdev->dev, "could not get i2c bus node\n");
> --
> 1.7.9.5
>


Re: [PATCH 1/1] gpu:drm:tilcdc: get preferred_bpp value from DT

2013-06-18 Thread Rob Clark
On Tue, Jun 18, 2013 at 6:18 PM, Benoit Parrot  wrote:
> The preferred_bpp value in currently hard-coded to 16.
> This causes color corruption on the am335x-evm lcd panel which
> requires 32 bpp instead. This changes attempts to use the configured
> bpp value from the DT or built-in panel-info struct.
>
> Signed-off-by: Benoit Parrot 

Acked-by: Rob Clark 

> ---
>  drivers/gpu/drm/tilcdc/tilcdc_drv.c|   12 +++-
>  drivers/gpu/drm/tilcdc/tilcdc_drv.h|1 +
>  drivers/gpu/drm/tilcdc/tilcdc_panel.c  |2 ++
>  drivers/gpu/drm/tilcdc/tilcdc_slave.c  |2 ++
>  drivers/gpu/drm/tilcdc/tilcdc_tfp410.c |2 ++
>  5 files changed, 18 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.c 
> b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
> index 2b5461b..f2a6528 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
> @@ -157,7 +157,9 @@ static int tilcdc_load(struct drm_device *dev, unsigned 
> long flags)
> struct platform_device *pdev = dev->platformdev;
> struct device_node *node = pdev->dev.of_node;
> struct tilcdc_drm_private *priv;
> +   struct tilcdc_module *mod;
> struct resource *res;
> +   u32 bpp = 0;
> int ret;
>
> priv = kzalloc(sizeof(*priv), GFP_KERNEL);
> @@ -256,7 +258,15 @@ static int tilcdc_load(struct drm_device *dev, unsigned 
> long flags)
>
> platform_set_drvdata(pdev, dev);
>
> -   priv->fbdev = drm_fbdev_cma_init(dev, 16,
> +
> +   list_for_each_entry(mod, &module_list, list) {
> +   DBG("%s: preferred_bpp: %d", mod->name, mod->preferred_bpp);
> +   bpp = mod->preferred_bpp;
> +   if (bpp > 0)
> +   break;
> +   }
> +
> +   priv->fbdev = drm_fbdev_cma_init(dev, bpp,
> dev->mode_config.num_crtc,
> dev->mode_config.num_connector);
>
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.h 
> b/drivers/gpu/drm/tilcdc/tilcdc_drv.h
> index 8242b5a..0906843 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_drv.h
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.h
> @@ -89,6 +89,7 @@ struct tilcdc_module {
> const char *name;
> struct list_head list;
> const struct tilcdc_module_ops *funcs;
> +   unsigned int preferred_bpp;
>  };
>
>  void tilcdc_module_init(struct tilcdc_module *mod, const char *name,
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_panel.c 
> b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
> index 0917665..86c6732 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_panel.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
> @@ -393,6 +393,8 @@ static int panel_probe(struct platform_device *pdev)
> goto fail;
> }
>
> +   mod->preferred_bpp = panel_mod->info->bpp;
> +
> panel_mod->backlight = of_find_backlight_by_node(node);
> if (panel_mod->backlight)
> dev_info(&pdev->dev, "found backlight\n");
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_slave.c 
> b/drivers/gpu/drm/tilcdc/tilcdc_slave.c
> index db1d2fc..8bf4fd1 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_slave.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_slave.c
> @@ -323,6 +323,8 @@ static int slave_probe(struct platform_device *pdev)
> goto fail;
> }
>
> +   mod->preferred_bpp = slave_info.bpp;
> +
> i2c_node = of_find_node_by_phandle(i2c_phandle);
> if (!i2c_node) {
> dev_err(&pdev->dev, "could not get i2c bus node\n");
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c 
> b/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
> index a36788f..925c7cd 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
> @@ -354,6 +354,8 @@ static int tfp410_probe(struct platform_device *pdev)
> goto fail;
> }
>
> +   mod->preferred_bpp = dvi_info.bpp;
> +
> i2c_node = of_find_node_by_phandle(i2c_phandle);
> if (!i2c_node) {
> dev_err(&pdev->dev, "could not get i2c bus node\n");
> --
> 1.7.9.5
>
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH 1/1] gpu:drm:tilcdc: get preferred_bpp value from DT

2013-06-18 Thread Benoit Parrot
The preferred_bpp value in currently hard-coded to 16.
This causes color corruption on the am335x-evm lcd panel which
requires 32 bpp instead. This changes attempts to use the configured
bpp value from the DT or built-in panel-info struct.

Signed-off-by: Benoit Parrot 
---
 drivers/gpu/drm/tilcdc/tilcdc_drv.c|   12 +++-
 drivers/gpu/drm/tilcdc/tilcdc_drv.h|1 +
 drivers/gpu/drm/tilcdc/tilcdc_panel.c  |2 ++
 drivers/gpu/drm/tilcdc/tilcdc_slave.c  |2 ++
 drivers/gpu/drm/tilcdc/tilcdc_tfp410.c |2 ++
 5 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.c 
b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
index 2b5461b..f2a6528 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
@@ -157,7 +157,9 @@ static int tilcdc_load(struct drm_device *dev, unsigned 
long flags)
struct platform_device *pdev = dev->platformdev;
struct device_node *node = pdev->dev.of_node;
struct tilcdc_drm_private *priv;
+   struct tilcdc_module *mod;
struct resource *res;
+   u32 bpp = 0;
int ret;

priv = kzalloc(sizeof(*priv), GFP_KERNEL);
@@ -256,7 +258,15 @@ static int tilcdc_load(struct drm_device *dev, unsigned 
long flags)

platform_set_drvdata(pdev, dev);

-   priv->fbdev = drm_fbdev_cma_init(dev, 16,
+
+   list_for_each_entry(mod, &module_list, list) {
+   DBG("%s: preferred_bpp: %d", mod->name, mod->preferred_bpp);
+   bpp = mod->preferred_bpp;
+   if (bpp > 0)
+   break;
+   }
+
+   priv->fbdev = drm_fbdev_cma_init(dev, bpp,
dev->mode_config.num_crtc,
dev->mode_config.num_connector);

diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.h 
b/drivers/gpu/drm/tilcdc/tilcdc_drv.h
index 8242b5a..0906843 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_drv.h
+++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.h
@@ -89,6 +89,7 @@ struct tilcdc_module {
const char *name;
struct list_head list;
const struct tilcdc_module_ops *funcs;
+   unsigned int preferred_bpp;
 };

 void tilcdc_module_init(struct tilcdc_module *mod, const char *name,
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_panel.c 
b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
index 0917665..86c6732 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_panel.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
@@ -393,6 +393,8 @@ static int panel_probe(struct platform_device *pdev)
goto fail;
}

+   mod->preferred_bpp = panel_mod->info->bpp;
+
panel_mod->backlight = of_find_backlight_by_node(node);
if (panel_mod->backlight)
dev_info(&pdev->dev, "found backlight\n");
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_slave.c 
b/drivers/gpu/drm/tilcdc/tilcdc_slave.c
index db1d2fc..8bf4fd1 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_slave.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_slave.c
@@ -323,6 +323,8 @@ static int slave_probe(struct platform_device *pdev)
goto fail;
}

+   mod->preferred_bpp = slave_info.bpp;
+
i2c_node = of_find_node_by_phandle(i2c_phandle);
if (!i2c_node) {
dev_err(&pdev->dev, "could not get i2c bus node\n");
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c 
b/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
index a36788f..925c7cd 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
@@ -354,6 +354,8 @@ static int tfp410_probe(struct platform_device *pdev)
goto fail;
}

+   mod->preferred_bpp = dvi_info.bpp;
+
i2c_node = of_find_node_by_phandle(i2c_phandle);
if (!i2c_node) {
dev_err(&pdev->dev, "could not get i2c bus node\n");
-- 
1.7.9.5