From: Archit Taneja <a0393947@ti.com>
To: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: linux-fbdev@vger.kernel.org, linux-omap@vger.kernel.org,
sumit.semwal@ti.com, rob@ti.com
Subject: Re: [RFC 00/17] OMAPDSS: Change way of passing timings from panel driver to interface
Date: Wed, 08 Aug 2012 06:59:48 +0000 [thread overview]
Message-ID: <50220B94.5040303@ti.com> (raw)
In-Reply-To: <1344407158.17575.21.camel@lappyti>
On Wednesday 08 August 2012 11:55 AM, Tomi Valkeinen wrote:
> On Wed, 2012-08-08 at 11:35 +0530, Archit Taneja wrote:
>> On Tuesday 07 August 2012 08:02 PM, Tomi Valkeinen wrote:
>>> On Wed, 2012-08-01 at 16:01 +0530, Archit Taneja wrote:
>>>> This series tries to make interface drivers less dependent on omap_dss_device
>>>> which represents a panel/device connected to that interface. The current way of
>>>> configuring an interface is to populate the panel's omap_dss_device instance
>>>> with parameters common to the panel and the interface, they are either populated
>>>> in the board file, or in the panel driver. Panel timings, number of lanes
>>>> connected to interface, and pixel format are examples of such parameters, these
>>>> are then extracted by the interface driver to configure itself.
>>>
>>> The series looks good. I had only a few comments to make, but obviously
>>> this needs quite a bit of testing. I'll try it out.
>>
>> One thing I'm not sure about is whether these new functions should be
>> aware of the state of the output. For example, if we call set_timings()
>> with DSI video mode which is already enabled, the timings won't really
>> take any impact.
>>
>> Similar issues would occur when we try to make other ops like
>> set_data_lines() or set_pixel_format(). These need to be called before
>> the output is enabled. I was wondering if we would need to add
>> intelligence here to make panel drivers less likely to make mistakes.
>
> Hmm, true. It'd be nice if the functions returned -EBUSY if the
> operation cannot be done while the output is enabled.
>
> We have the dssdev->state, but we should get rid of that (or leave it to
> panel drivers). It'd be good if the output drivers know whether the
> output is enabled or not. I think this data is already tracked by
> apply.c. It's about ovl managers, but I think that's practically the
> same as output.
>
> Calling dss_mgr_enable() will set mp->enabled = true, which could be
> returned via dss_mgr_is_enabled() or such.
>
> Then again, it wouldn't be many lines of codes to track the enable-state
> in each output driver. So if we have any suspicions that mp->enabled
> doesn't quite work for, say, dsi, we could just add a private "enabled"
> member to dsi. But I don't right away see why dss_mgr_is_enabled()
> wouldn't work.
>
I think we had discussed previously that it may not the best idea to see
if a manager is enabled via mp->enabled as it's always possible that it
changes afterwards. Same for any other parameter in APPLY's private
data. This was the reason why we passed privtate data to DISPC functions
rather than creating apply helper functions which return the value of a
private data. For example, we pass manager timings to dispc_ovl_setup(),
instead of DISPC using a function like dss_mgr_get_timings().
I also don't see why dss_mgr_is_enabled() wouldn't work. The only places
where the manager's state will change are the output's enable and
disable ops. The mutex maintained by the output would ensure
sequential-ity between the output's enable() and set_timings() op, and
hence ensure the manager's state we see is fine.
If we manage the 'enabled' state for each output interface, we would be
a bit more consistent with respect to other parameters. For example,
timings is maintained by both manager and the output. Also, if we need
to separate out manager configurations from outputs in the future, it
would probably be better for the output to query it's own state rather
than depending on the manager, which could be configured either earlier
or later.
Archit
WARNING: multiple messages have this Message-ID (diff)
From: Archit Taneja <a0393947@ti.com>
To: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: linux-fbdev@vger.kernel.org, linux-omap@vger.kernel.org,
sumit.semwal@ti.com, rob@ti.com
Subject: Re: [RFC 00/17] OMAPDSS: Change way of passing timings from panel driver to interface
Date: Wed, 8 Aug 2012 12:17:48 +0530 [thread overview]
Message-ID: <50220B94.5040303@ti.com> (raw)
In-Reply-To: <1344407158.17575.21.camel@lappyti>
On Wednesday 08 August 2012 11:55 AM, Tomi Valkeinen wrote:
> On Wed, 2012-08-08 at 11:35 +0530, Archit Taneja wrote:
>> On Tuesday 07 August 2012 08:02 PM, Tomi Valkeinen wrote:
>>> On Wed, 2012-08-01 at 16:01 +0530, Archit Taneja wrote:
>>>> This series tries to make interface drivers less dependent on omap_dss_device
>>>> which represents a panel/device connected to that interface. The current way of
>>>> configuring an interface is to populate the panel's omap_dss_device instance
>>>> with parameters common to the panel and the interface, they are either populated
>>>> in the board file, or in the panel driver. Panel timings, number of lanes
>>>> connected to interface, and pixel format are examples of such parameters, these
>>>> are then extracted by the interface driver to configure itself.
>>>
>>> The series looks good. I had only a few comments to make, but obviously
>>> this needs quite a bit of testing. I'll try it out.
>>
>> One thing I'm not sure about is whether these new functions should be
>> aware of the state of the output. For example, if we call set_timings()
>> with DSI video mode which is already enabled, the timings won't really
>> take any impact.
>>
>> Similar issues would occur when we try to make other ops like
>> set_data_lines() or set_pixel_format(). These need to be called before
>> the output is enabled. I was wondering if we would need to add
>> intelligence here to make panel drivers less likely to make mistakes.
>
> Hmm, true. It'd be nice if the functions returned -EBUSY if the
> operation cannot be done while the output is enabled.
>
> We have the dssdev->state, but we should get rid of that (or leave it to
> panel drivers). It'd be good if the output drivers know whether the
> output is enabled or not. I think this data is already tracked by
> apply.c. It's about ovl managers, but I think that's practically the
> same as output.
>
> Calling dss_mgr_enable() will set mp->enabled = true, which could be
> returned via dss_mgr_is_enabled() or such.
>
> Then again, it wouldn't be many lines of codes to track the enable-state
> in each output driver. So if we have any suspicions that mp->enabled
> doesn't quite work for, say, dsi, we could just add a private "enabled"
> member to dsi. But I don't right away see why dss_mgr_is_enabled()
> wouldn't work.
>
I think we had discussed previously that it may not the best idea to see
if a manager is enabled via mp->enabled as it's always possible that it
changes afterwards. Same for any other parameter in APPLY's private
data. This was the reason why we passed privtate data to DISPC functions
rather than creating apply helper functions which return the value of a
private data. For example, we pass manager timings to dispc_ovl_setup(),
instead of DISPC using a function like dss_mgr_get_timings().
I also don't see why dss_mgr_is_enabled() wouldn't work. The only places
where the manager's state will change are the output's enable and
disable ops. The mutex maintained by the output would ensure
sequential-ity between the output's enable() and set_timings() op, and
hence ensure the manager's state we see is fine.
If we manage the 'enabled' state for each output interface, we would be
a bit more consistent with respect to other parameters. For example,
timings is maintained by both manager and the output. Also, if we need
to separate out manager configurations from outputs in the future, it
would probably be better for the output to query it's own state rather
than depending on the manager, which could be configured either earlier
or later.
Archit
next prev parent reply other threads:[~2012-08-08 6:59 UTC|newest]
Thread overview: 122+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-01 10:31 [RFC 00/17] OMAPDSS: Change way of passing timings from panel driver to interface Archit Taneja
2012-08-01 10:43 ` Archit Taneja
2012-08-01 10:31 ` [RFC 01/17] OMAPDSS: APPLY: Constify timings argument in dss_mgr_set_timings Archit Taneja
2012-08-01 10:43 ` Archit Taneja
2012-08-01 10:31 ` [RFC 02/17] OMAPDSS: DPI: Remove omap_dss_device arguments in dpi_set_dsi_clk/dpi_set_dispc_clk Archit Taneja
2012-08-01 10:43 ` Archit Taneja
2012-08-01 10:31 ` [RFC 03/17] OMAPDSS: HDMI: Remove omap_dss_device argument from hdmi_compute_pll Archit Taneja
2012-08-01 10:43 ` Archit Taneja
2012-08-01 10:31 ` [RFC 04/17] OMAPDSS: DPI: Add locking for DPI interface Archit Taneja
2012-08-01 10:43 ` Archit Taneja
2012-08-01 10:31 ` [RFC 05/17] OMAPDSS: DPI: Maintain our own timings field in driver data Archit Taneja
2012-08-01 10:43 ` Archit Taneja
2012-08-01 10:31 ` [RFC 06/17] OMAPDSS: DPI displays: Take care of panel timings in the driver itself Archit Taneja
2012-08-01 10:43 ` Archit Taneja
2012-08-01 10:31 ` [RFC 07/17] OMAPDSS: Displays: Add locking in generic DPI panel driver Archit Taneja
2012-08-01 10:43 ` Archit Taneja
2012-08-01 10:31 ` [RFC 08/17] OMAPDSS: DSI: Maintain own copy of timings in driver data Archit Taneja
2012-08-01 10:43 ` Archit Taneja
2012-08-07 14:07 ` Tomi Valkeinen
2012-08-07 14:07 ` Tomi Valkeinen
2012-08-08 5:57 ` Archit Taneja
2012-08-08 6:09 ` Archit Taneja
2012-08-08 6:15 ` Tomi Valkeinen
2012-08-08 6:15 ` Tomi Valkeinen
2012-08-08 6:29 ` Archit Taneja
2012-08-08 6:41 ` Archit Taneja
2012-08-08 7:10 ` Tomi Valkeinen
2012-08-08 7:10 ` Tomi Valkeinen
2012-08-08 7:54 ` Archit Taneja
2012-08-08 8:06 ` Archit Taneja
2012-08-01 10:31 ` [RFC 09/17] OMAPDSS: HDMI: Use our own omap_video_timings field when setting interface timings Archit Taneja
2012-08-01 10:43 ` Archit Taneja
2012-08-01 10:31 ` [RFC 10/17] OMAPDSS: HDMI: Add a get_timing function for HDMI interface Archit Taneja
2012-08-01 10:43 ` Archit Taneja
2012-08-01 10:31 ` [RFC 11/17] OMAPDSS: HDMI: Add locking for hdmi interface get/set timing functions Archit Taneja
2012-08-01 10:43 ` Archit Taneja
2012-08-01 10:31 ` [RFC 12/17] OMAPDSS: SDI: Create a separate function for timing/clock configurations Archit Taneja
2012-08-01 10:43 ` Archit Taneja
2012-08-01 10:31 ` [RFC 13/17] OMAPDSS: SDI: Create a function to set timings Archit Taneja
2012-08-01 10:43 ` Archit Taneja
2012-08-07 14:20 ` Tomi Valkeinen
2012-08-07 14:20 ` Tomi Valkeinen
2012-08-08 5:58 ` Archit Taneja
2012-08-08 6:10 ` Archit Taneja
2012-08-01 10:31 ` [RFC 14/17] OMAPDSS: SDI: Maintain our own timings field in driver data Archit Taneja
2012-08-01 10:43 ` Archit Taneja
2012-08-01 10:31 ` [RFC 15/17] OMAPDSS: VENC: Split VENC into interface and panel driver Archit Taneja
2012-08-01 10:43 ` Archit Taneja
2012-08-01 10:31 ` [RFC 16/17] OMAPDSS: VENC: Maintain our own timings field in driver data Archit Taneja
2012-08-01 10:43 ` Archit Taneja
2012-08-01 10:31 ` [RFC 17/17] OMAPDSS: VENC: Add a get_timing function for VENC interface Archit Taneja
2012-08-01 10:43 ` Archit Taneja
2012-08-01 10:35 ` [RFC 00/17] OMAPDSS: Change way of passing timings from panel driver to interface Archit Taneja
2012-08-01 10:47 ` Archit Taneja
2012-08-07 14:32 ` Tomi Valkeinen
2012-08-07 14:32 ` Tomi Valkeinen
2012-08-08 6:05 ` Archit Taneja
2012-08-08 6:17 ` Archit Taneja
2012-08-08 6:25 ` Tomi Valkeinen
2012-08-08 6:25 ` Tomi Valkeinen
2012-08-08 6:47 ` Archit Taneja [this message]
2012-08-08 6:59 ` Archit Taneja
2012-08-08 7:27 ` Tomi Valkeinen
2012-08-08 7:27 ` Tomi Valkeinen
2012-08-08 7:59 ` Archit Taneja
2012-08-08 8:11 ` Archit Taneja
2012-08-08 8:13 ` Tomi Valkeinen
2012-08-08 8:13 ` Tomi Valkeinen
2012-08-08 8:38 ` Archit Taneja
2012-08-08 8:50 ` Archit Taneja
2012-08-08 8:48 ` Tomi Valkeinen
2012-08-08 8:48 ` Tomi Valkeinen
2012-08-08 9:24 ` Archit Taneja
2012-08-08 9:36 ` Archit Taneja
2012-08-09 11:49 ` [PATCH v2 00/13] " Archit Taneja
2012-08-09 11:55 ` Archit Taneja
2012-08-09 11:49 ` [PATCH v2 01/13] OMAPDSS: DPI: Maintain our own timings field in driver data Archit Taneja
2012-08-09 11:56 ` Archit Taneja
2012-08-09 11:49 ` [PATCH v2 02/13] OMAPDSS: DPI displays: Take care of panel timings in the driver itself Archit Taneja
2012-08-09 11:56 ` Archit Taneja
2012-08-09 11:49 ` [PATCH v2 03/13] OMAPDSS: DSI: Maintain own copy of timings in driver data Archit Taneja
2012-08-09 11:56 ` Archit Taneja
2012-08-09 11:49 ` [PATCH v2 04/13] OMAPDSS: DSI: Add function to set panel size for command mode panels Archit Taneja
2012-08-09 11:56 ` Archit Taneja
2012-08-09 11:49 ` [PATCH v2 05/13] OMAPDSS: DSI: Update manager timings on a manual update Archit Taneja
2012-08-09 11:56 ` Archit Taneja
2012-08-09 11:49 ` [PATCH v2 06/13] OMAPDSS: HDMI: Use our own omap_video_timings field when setting interface timings Archit Taneja
2012-08-09 11:56 ` Archit Taneja
2012-08-09 11:49 ` [PATCH v2 07/13] OMAPDSS: HDMI: Add a get_timing function for HDMI interface Archit Taneja
2012-08-09 11:56 ` Archit Taneja
2012-08-14 13:02 ` Tomi Valkeinen
2012-08-14 13:02 ` Tomi Valkeinen
2012-08-14 13:15 ` Archit Taneja
2012-08-14 13:27 ` Archit Taneja
2012-08-14 14:10 ` Tomi Valkeinen
2012-08-14 14:10 ` Tomi Valkeinen
2012-08-14 17:16 ` Archit Taneja
2012-08-14 17:28 ` Archit Taneja
2012-08-09 11:49 ` [PATCH v2 08/13] OMAPDSS: HDMI: Add locking for hdmi interface get/set timing functions Archit Taneja
2012-08-09 11:56 ` Archit Taneja
2012-08-09 11:49 ` [PATCH v2 09/13] OMAPDSS: SDI: Create a function to set timings Archit Taneja
2012-08-09 11:56 ` Archit Taneja
2012-08-14 13:44 ` Tomi Valkeinen
2012-08-14 13:44 ` Tomi Valkeinen
2012-08-14 16:56 ` Archit Taneja
2012-08-14 17:08 ` Archit Taneja
2012-08-14 17:33 ` Tomi Valkeinen
2012-08-14 17:33 ` Tomi Valkeinen
2012-08-14 19:08 ` Archit Taneja
2012-08-14 19:20 ` Archit Taneja
2012-08-15 6:43 ` Tomi Valkeinen
2012-08-15 6:43 ` Tomi Valkeinen
2012-08-14 19:26 ` Rob Clark
2012-08-14 19:26 ` Rob Clark
2012-08-09 11:49 ` [PATCH v2 10/13] OMAPDSS: SDI: Maintain our own timings field in driver data Archit Taneja
2012-08-09 11:56 ` Archit Taneja
2012-08-09 11:49 ` [PATCH v2 11/13] OMAPDSS: VENC: Split VENC into interface and panel driver Archit Taneja
2012-08-09 11:56 ` Archit Taneja
2012-08-09 11:49 ` [PATCH v2 12/13] OMAPDSS: VENC: Maintain our own timings field in driver data Archit Taneja
2012-08-09 11:56 ` Archit Taneja
2012-08-09 11:49 ` [PATCH v2 13/13] OMAPDSS: VENC: Add a get_timing function for VENC interface Archit Taneja
2012-08-09 11:56 ` Archit Taneja
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=50220B94.5040303@ti.com \
--to=a0393947@ti.com \
--cc=linux-fbdev@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=rob@ti.com \
--cc=sumit.semwal@ti.com \
--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.