All of lore.kernel.org
 help / color / mirror / Atom feed
From: Archit Taneja <archit@ti.com>
To: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: linux-omap@vger.kernel.org, linux-fbdev@vger.kernel.org
Subject: Re: [PATCH 05/20] OMAPDSS: remove initial display code from omapdss
Date: Mon, 29 Oct 2012 10:48:55 +0000	[thread overview]
Message-ID: <508E5C47.6000809@ti.com> (raw)
In-Reply-To: <508E597F.60406@ti.com>

On Monday 29 October 2012 03:55 PM, Tomi Valkeinen wrote:
> On 2012-10-29 12:04, Archit Taneja wrote:
>> On Wednesday 24 October 2012 02:58 PM, Tomi Valkeinen wrote:
>>> Currently omapdss driver sets up the initial connections between
>>> overlays, overlay manager and a panel, based on default display
>>> parameter coming from the board file or via module parameters.
>>>
>>> This is unnecessary, as it's the higher level component that should
>>> decide what display to use and how. This patch removes the code from
>>> omapdss, and implements similar code to omapfb.
>>>
>>> The def_disp module parameter and the default display platform_data
>>> parameter are kept in omapdss, but omapdss doesn't do anything with
>>> them. It will just return the default display name with
>>> dss_get_default_display_name() call, which omapfb uses. This is done to
>>> keep the backward compatibility.
>>
>> We might need to do something similar for omap_vout and omapdrm also to
>> set the initial connections.
>
> I believe omapdrm already does this.
>
> For omap_vout... I'm not sure if we can do that. Both omapfb and
> omap_vout work at the same time, so they could be setting up the
> settings at the same time, perhaps with conflicting values. The reason I
> left omap_vout out is that I think omapfb is always used with omap_vout,
> thus the config can be left for omapfb. I didn't test this, though.

I thought we could have omap_vout without omapfb, at least we can build 
it separately. Anyway, setting initial connections in omap_vout doesn't 
seem very important as we generally have both of them together.

>
>>> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
>>> ---
>>>    drivers/video/omap2/dss/core.c           |    1 +
>>>    drivers/video/omap2/dss/display.c        |   78
>>> +++---------------------------
>>>    drivers/video/omap2/omapfb/omapfb-main.c |   77
>>> ++++++++++++++++++++++++-----
>>>    include/video/omapdss.h                  |    1 +
>>>    4 files changed, 75 insertions(+), 82 deletions(-)
>>>
>>> diff --git a/drivers/video/omap2/dss/core.c
>>> b/drivers/video/omap2/dss/core.c
>>> index 685d9a9..4cb669e 100644
>>> --- a/drivers/video/omap2/dss/core.c
>>> +++ b/drivers/video/omap2/dss/core.c
>>> @@ -57,6 +57,7 @@ const char *dss_get_default_display_name(void)
>>>    {
>>>        return core.default_display_name;
>>>    }
>>> +EXPORT_SYMBOL(dss_get_default_display_name);
>>
>> Since we are exporting this, it might be better to name it
>> omapdss_get_default_display_name
>
> True.
>
>>>    enum omapdss_version omapdss_get_version(void)
>>>    {
>>> diff --git a/drivers/video/omap2/dss/display.c
>>> b/drivers/video/omap2/dss/display.c
>>> index 1e58730..6d33112 100644
>>> --- a/drivers/video/omap2/dss/display.c
>>> +++ b/drivers/video/omap2/dss/display.c
>>> @@ -320,86 +320,21 @@ void omapdss_default_get_timings(struct
>>> omap_dss_device *dssdev,
>>>    }
>>>    EXPORT_SYMBOL(omapdss_default_get_timings);
>>>
>>> -/*
>>> - * Connect dssdev to a manager if the manager is free or if force is
>>> specified.
>>> - * Connect all overlays to that manager if they are free or if force is
>>> - * specified.
>>> - */
>>> -static int dss_init_connections(struct omap_dss_device *dssdev, bool
>>> force)
>>> +int dss_init_device(struct platform_device *pdev,
>>> +        struct omap_dss_device *dssdev)
>>>    {
>>> +    struct device_attribute *attr;
>>>        struct omap_dss_output *out;
>>> -    struct omap_overlay_manager *mgr;
>>>        int i, r;
>>>
>>>        out = omapdss_get_output_from_dssdev(dssdev);
>>>
>>> -    WARN_ON(dssdev->output);
>>> -    WARN_ON(out->device);
>>> -
>>>        r = omapdss_output_set_device(out, dssdev);
>>>        if (r) {
>>>            DSSERR("failed to connect output to new device\n");
>>>            return r;
>>>        }
>>
>> So, we still manage the output-device links in the omapdss driver, but
>> move the manager-output and overlay-manager links to omapfb. I guess
>> this is fine. But maybe this split might change based on how generic
>> panel framework looks like, and how much we want to expose outputs to
>> fb/drm.
>
> We can set the output-device link in omapdss because it's a hardware
> configuration. A panel is connected to an output, so there's nothing to
> configure there. ovls and ovl-mgrs, on the other hand, may be configured
> depending on the use cases.

Yes, that makes sense.

Archit


WARNING: multiple messages have this Message-ID (diff)
From: Archit Taneja <archit@ti.com>
To: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: linux-omap@vger.kernel.org, linux-fbdev@vger.kernel.org
Subject: Re: [PATCH 05/20] OMAPDSS: remove initial display code from omapdss
Date: Mon, 29 Oct 2012 16:06:55 +0530	[thread overview]
Message-ID: <508E5C47.6000809@ti.com> (raw)
In-Reply-To: <508E597F.60406@ti.com>

On Monday 29 October 2012 03:55 PM, Tomi Valkeinen wrote:
> On 2012-10-29 12:04, Archit Taneja wrote:
>> On Wednesday 24 October 2012 02:58 PM, Tomi Valkeinen wrote:
>>> Currently omapdss driver sets up the initial connections between
>>> overlays, overlay manager and a panel, based on default display
>>> parameter coming from the board file or via module parameters.
>>>
>>> This is unnecessary, as it's the higher level component that should
>>> decide what display to use and how. This patch removes the code from
>>> omapdss, and implements similar code to omapfb.
>>>
>>> The def_disp module parameter and the default display platform_data
>>> parameter are kept in omapdss, but omapdss doesn't do anything with
>>> them. It will just return the default display name with
>>> dss_get_default_display_name() call, which omapfb uses. This is done to
>>> keep the backward compatibility.
>>
>> We might need to do something similar for omap_vout and omapdrm also to
>> set the initial connections.
>
> I believe omapdrm already does this.
>
> For omap_vout... I'm not sure if we can do that. Both omapfb and
> omap_vout work at the same time, so they could be setting up the
> settings at the same time, perhaps with conflicting values. The reason I
> left omap_vout out is that I think omapfb is always used with omap_vout,
> thus the config can be left for omapfb. I didn't test this, though.

I thought we could have omap_vout without omapfb, at least we can build 
it separately. Anyway, setting initial connections in omap_vout doesn't 
seem very important as we generally have both of them together.

>
>>> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
>>> ---
>>>    drivers/video/omap2/dss/core.c           |    1 +
>>>    drivers/video/omap2/dss/display.c        |   78
>>> +++---------------------------
>>>    drivers/video/omap2/omapfb/omapfb-main.c |   77
>>> ++++++++++++++++++++++++-----
>>>    include/video/omapdss.h                  |    1 +
>>>    4 files changed, 75 insertions(+), 82 deletions(-)
>>>
>>> diff --git a/drivers/video/omap2/dss/core.c
>>> b/drivers/video/omap2/dss/core.c
>>> index 685d9a9..4cb669e 100644
>>> --- a/drivers/video/omap2/dss/core.c
>>> +++ b/drivers/video/omap2/dss/core.c
>>> @@ -57,6 +57,7 @@ const char *dss_get_default_display_name(void)
>>>    {
>>>        return core.default_display_name;
>>>    }
>>> +EXPORT_SYMBOL(dss_get_default_display_name);
>>
>> Since we are exporting this, it might be better to name it
>> omapdss_get_default_display_name
>
> True.
>
>>>    enum omapdss_version omapdss_get_version(void)
>>>    {
>>> diff --git a/drivers/video/omap2/dss/display.c
>>> b/drivers/video/omap2/dss/display.c
>>> index 1e58730..6d33112 100644
>>> --- a/drivers/video/omap2/dss/display.c
>>> +++ b/drivers/video/omap2/dss/display.c
>>> @@ -320,86 +320,21 @@ void omapdss_default_get_timings(struct
>>> omap_dss_device *dssdev,
>>>    }
>>>    EXPORT_SYMBOL(omapdss_default_get_timings);
>>>
>>> -/*
>>> - * Connect dssdev to a manager if the manager is free or if force is
>>> specified.
>>> - * Connect all overlays to that manager if they are free or if force is
>>> - * specified.
>>> - */
>>> -static int dss_init_connections(struct omap_dss_device *dssdev, bool
>>> force)
>>> +int dss_init_device(struct platform_device *pdev,
>>> +        struct omap_dss_device *dssdev)
>>>    {
>>> +    struct device_attribute *attr;
>>>        struct omap_dss_output *out;
>>> -    struct omap_overlay_manager *mgr;
>>>        int i, r;
>>>
>>>        out = omapdss_get_output_from_dssdev(dssdev);
>>>
>>> -    WARN_ON(dssdev->output);
>>> -    WARN_ON(out->device);
>>> -
>>>        r = omapdss_output_set_device(out, dssdev);
>>>        if (r) {
>>>            DSSERR("failed to connect output to new device\n");
>>>            return r;
>>>        }
>>
>> So, we still manage the output-device links in the omapdss driver, but
>> move the manager-output and overlay-manager links to omapfb. I guess
>> this is fine. But maybe this split might change based on how generic
>> panel framework looks like, and how much we want to expose outputs to
>> fb/drm.
>
> We can set the output-device link in omapdss because it's a hardware
> configuration. A panel is connected to an output, so there's nothing to
> configure there. ovls and ovl-mgrs, on the other hand, may be configured
> depending on the use cases.

Yes, that makes sense.

Archit


  reply	other threads:[~2012-10-29 10:48 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-24  9:28 [PATCH 00/20] OMAPDSS: Misc cleanups/fixes Tomi Valkeinen
2012-10-24  9:28 ` Tomi Valkeinen
2012-10-24  9:28 ` [PATCH 01/20] OMAPDSS: remove omap_dss_device's suspend/resume Tomi Valkeinen
2012-10-24  9:28   ` Tomi Valkeinen
2012-10-24  9:28 ` [PATCH 02/20] OMAPDSS: get the dss version from core pdev Tomi Valkeinen
2012-10-24  9:28   ` Tomi Valkeinen
2012-10-24  9:28 ` [PATCH 03/20] OMAPDSS: remove dispc_irq_handler declaration Tomi Valkeinen
2012-10-24  9:28   ` Tomi Valkeinen
2012-10-24  9:28 ` [PATCH 04/20] OMAPDSS: DISPC: fix dispc_mgr_lclk_rate for DIGIT output Tomi Valkeinen
2012-10-24  9:28   ` Tomi Valkeinen
2012-10-29  9:50   ` Archit Taneja
2012-10-29  9:50     ` Archit Taneja
2012-10-29  9:56     ` Tomi Valkeinen
2012-10-29  9:56       ` Tomi Valkeinen
2012-10-24  9:28 ` [PATCH 05/20] OMAPDSS: remove initial display code from omapdss Tomi Valkeinen
2012-10-24  9:28   ` Tomi Valkeinen
2012-10-29 10:04   ` Archit Taneja
2012-10-29 10:16     ` Archit Taneja
2012-10-29 10:25     ` Tomi Valkeinen
2012-10-29 10:25       ` Tomi Valkeinen
2012-10-29 10:36       ` Archit Taneja [this message]
2012-10-29 10:48         ` Archit Taneja
2012-10-24  9:28 ` [PATCH 06/20] OMAPDSS: DISPC: use dss_feat_get_num_ovls() Tomi Valkeinen
2012-10-24  9:28   ` Tomi Valkeinen
2012-10-24  9:28 ` [PATCH 07/20] OMAPDSS: DISPC: rename dispc_mgr_enable/disable to _sync Tomi Valkeinen
2012-10-24  9:28   ` Tomi Valkeinen
2012-10-24  9:28 ` [PATCH 08/20] OMAPDSS: DISPC: make _enable_mgr_out public as "dispc_mgr_enable" Tomi Valkeinen
2012-10-24  9:28   ` Tomi Valkeinen
2012-10-24  9:29 ` [PATCH 09/20] OMAPDSS: add dispc_ovl_enabled() Tomi Valkeinen
2012-10-24  9:29   ` Tomi Valkeinen
2012-10-29 10:09   ` Archit Taneja
2012-10-29 10:21     ` Archit Taneja
2012-10-29 10:28     ` Tomi Valkeinen
2012-10-29 10:28       ` Tomi Valkeinen
2012-10-24  9:29 ` [PATCH 10/20] OMAPDSS: DISPC: Add IRQ enable/status helpers Tomi Valkeinen
2012-10-24  9:29   ` Tomi Valkeinen
2012-10-24  9:29 ` [PATCH 11/20] OMAPDSS: HDMI: split power_on/off to two parts Tomi Valkeinen
2012-10-24  9:29   ` Tomi Valkeinen
2012-10-29 10:14   ` Archit Taneja
2012-10-29 10:26     ` Archit Taneja
2012-10-29 10:30     ` Tomi Valkeinen
2012-10-29 10:30       ` Tomi Valkeinen
2012-10-24  9:29 ` [PATCH 12/20] OMAPDSS: HDMI: use core power on/off with edid & detect Tomi Valkeinen
2012-10-24  9:29   ` Tomi Valkeinen
2012-10-24  9:29 ` [PATCH 13/20] OMAPDSS: HDMI: add 1920x1200 video mode Tomi Valkeinen
2012-10-24  9:29   ` Tomi Valkeinen
2012-10-24  9:29 ` [PATCH 14/20] OMAPDSS: HDMI: make hdmi pclk check more permissive Tomi Valkeinen
2012-10-24  9:29   ` Tomi Valkeinen
2012-10-24  9:29 ` [PATCH 15/20] OMAPFB: remove use of extended edid block Tomi Valkeinen
2012-10-24  9:29   ` Tomi Valkeinen
2012-10-24  9:29 ` [PATCH 16/20] OMAPFB: improve mode selection from EDID Tomi Valkeinen
2012-10-24  9:29   ` Tomi Valkeinen
2012-10-24  9:29 ` [PATCH 17/20] OMAPDSS: fix DSI2 PLL clk names Tomi Valkeinen
2012-10-24  9:29   ` Tomi Valkeinen
2012-10-24  9:29 ` [PATCH 18/20] OMAPDSS: DISPC: fix loop in error handler Tomi Valkeinen
2012-10-24  9:29   ` Tomi Valkeinen
2012-10-24  9:29 ` [PATCH 19/20] OMAPDSS: DISPC: remove dssdev depependency from " Tomi Valkeinen
2012-10-24  9:29   ` Tomi Valkeinen
2012-10-29  7:12   ` Archit Taneja
2012-10-29  7:24     ` Archit Taneja
2012-10-29  8:04     ` Tomi Valkeinen
2012-10-29  8:04       ` Tomi Valkeinen
2012-10-29 10:18       ` Archit Taneja
2012-10-29 10:30         ` Archit Taneja
2012-10-24  9:29 ` [PATCH 20/20] OMAPDSS: split hdmi muxing function Tomi Valkeinen
2012-10-24  9:29   ` Tomi Valkeinen
2012-10-24 16:23   ` Tony Lindgren
2012-10-24 16:23     ` Tony Lindgren

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=508E5C47.6000809@ti.com \
    --to=archit@ti.com \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=tomi.valkeinen@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.