From: Archit Taneja <archit@ti.com>
To: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: robdclark@gmail.com, linux-omap@vger.kernel.org,
dri-devel@lists.freedesktop.org
Subject: Re: [PATCH 4/4] omapdss: features: fixed supported outputs for OMAP4
Date: Tue, 12 Mar 2013 20:31:28 +0530 [thread overview]
Message-ID: <513F4348.3080203@ti.com> (raw)
In-Reply-To: <513F3BBA.6010209@ti.com>
On Tuesday 12 March 2013 07:59 PM, Tomi Valkeinen wrote:
> On 2013-03-12 16:01, Archit Taneja wrote:
>> On Tuesday 12 March 2013 07:07 PM, Tomi Valkeinen wrote:
>
>>> So, I don't disagree with you. But I don't quite understand why we could
>>> not use the fixed channels for now? They should work in all the boards
>>> we have, right? Or is there something with DRM that forces the driver to
>>> select the channel dynamically?
>>
>> I think we can use fixed channels, but if the number of different fixed
>> channels crosses the number of crtcs the kernel wants, then we would
>> need to atleast change the channels of some of the outputs.
>>
>> For example, suppose omapdrm is asked to use only 2 crtcs, and it picks
>> up LCD2 and TV managers. Now if there is some panel which says it's
>> recommended channel is LCD, then things won't work.
>
> Are you saying omapdrm picks the managers for the crtcs before knowing
> what panels there are? That can't work right... We need to know what
> outputs are to be used before we can select the managers. Or, we always
> need crtcs for all the managers.
That's how it is right now.
>
> If we do know the panels, and thus outputs, then the managers to be used
> are found easily from output->dispc_channel.
Yes, my patch tries to do the same, but it could assign a manger which
isn't the recommended channel. It can pick one from the list of
supported channels. I've explained it a bit more below.
>
> But, of course, the crtc to manager mapping could be changed (if omapdrm
> supports this). If omapdrm is asked to use only 1 crtc, but there are
> two panels, then only one panel can be used at a time, and the manager
> for the crtc needs to be changed when the panel to be used is changed.
> But even in this case used manager is clear, it comes from
> output->dispc_channel.
This is something I don't know that can be done or not, or if it can be
done easily. A crtc isn't purely an overlay manager. It also needs to
have one plane associated to it. So, if we want to change the overlay
manager tied to a crtc on the fly, we should make sure that it's still
connected to a plane pointing to the same buffer. This needs a better
understanding of drm internals. I guess Rob could answer this better.
>
>> At the moment, omapdrm maps a crtc with a manger using a function called
>> pipe2chan() which just selects a manager with the biggest channel no. So
>> if the kernel is configured to have num_crtcs as 1. The single crtc will
>> be mapped to LCD2. This method is wrong, as it doesn't even look at the
>> type of panels at all. For an omap5 panda, the most suitable manager to
>> map to the crtc would be TV(for hdmi).
>>
>> I think what we probably need to do is to combine both the methods. I.e,
>> make each output connectible to only one channel, and also iterate
>> through the panels in omapdrm to find the most suitable channels. So in
>> my patch, instead of looking at all the supported managers for an
>> output(checking with dss_feat_get_supported_outputs() on each manager),
>> I just look at the recommended channel, and try to map that manager.
>
> I don't know, I feel like I'm not understanding something here =).
:)
I think what I said above is equivalent to what you said here:
"If we do know the panels, and thus outputs, then the managers to be
used are found easily from output->dispc_channel."
Instead of using output->dispc_channel, the patch I made tried to get
the first supported channel(in increasing order of channel index) for an
output. If that channel was already taken/reserved by a previous output,
it tries to take the next supported channel if there are enough crtcs left.
My patch would break things if it chooses a manager for an output for
which we haven't written the necessary code yet(switching clock sources
etc).
So, what I'm saying is that we should stick to output->dispc_channel. We
iterate through all the panels, and by using output->dispc_channel, we
get the manager for an output, and map that manager to a crtc, and make
sure the number of unique managers we finally use is equal to NUM_CRTC.
Does that sound good?
Archit
next prev parent reply other threads:[~2013-03-12 15:02 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-05 14:17 [PATCH 0/4] drm/omap: Misc fixes and improvements Archit Taneja
2013-03-05 14:17 ` [PATCH 1/4] drm/omap: Don't return from modeset_init if a panel doesn't satisfy omapdrm requirements Archit Taneja
2013-03-06 0:34 ` Rob Clark
2013-03-05 14:17 ` [PATCH 2/4] drm/omap: Fix and improve crtc and overlay manager correlation Archit Taneja
2013-03-05 14:17 ` [PATCH 3/4] drm/omap: Make fixed resolution panels work Archit Taneja
2013-03-06 0:45 ` Rob Clark
2013-03-07 7:29 ` Archit Taneja
2013-03-05 14:17 ` [PATCH 4/4] omapdss: features: fixed supported outputs for OMAP4 Archit Taneja
2013-03-11 12:28 ` Tomi Valkeinen
2013-03-12 6:07 ` Archit Taneja
2013-03-12 10:38 ` Tomi Valkeinen
2013-03-12 12:57 ` Archit Taneja
2013-03-12 13:37 ` Tomi Valkeinen
2013-03-12 14:01 ` Archit Taneja
2013-03-12 14:29 ` Tomi Valkeinen
2013-03-12 15:01 ` Archit Taneja [this message]
2013-03-13 7:28 ` Tomi Valkeinen
2013-03-12 13:06 ` [PATCH v2 3/4] drm/omap: Make fixed resolution panels work Archit Taneja
2013-03-12 14:06 ` Tomi Valkeinen
2013-03-12 14:38 ` Archit Taneja
2013-03-12 14:53 ` Tomi Valkeinen
2013-03-19 6:45 ` Archit Taneja
2013-03-19 13:25 ` Tomi Valkeinen
2013-03-26 13:45 ` [PATCH v2 0/8] omapdss/omapdrm: Misc fixes and improvements Archit Taneja
2013-03-26 13:57 ` Archit Taneja
2013-03-26 13:45 ` [PATCH v2 1/8] drm/omap: Don't return from modeset_init if a panel doesn't satisfy omapdrm requirements Archit Taneja
2013-03-26 13:57 ` [PATCH v2 1/8] drm/omap: Don't return from modeset_init if a panel doesn't satisfy omapdrm requireme Archit Taneja
2013-03-26 13:45 ` [PATCH v2 2/8] drm/omap: Fix and improve crtc and overlay manager correlation Archit Taneja
2013-03-26 13:57 ` Archit Taneja
2013-03-26 13:45 ` [PATCH v3 3/8] drm/omap: Make fixed resolution panels work Archit Taneja
2013-03-26 13:57 ` Archit Taneja
2013-03-27 7:24 ` Tomi Valkeinen
2013-03-27 7:24 ` Tomi Valkeinen
2013-03-27 7:35 ` Archit Taneja
2013-03-27 7:47 ` Archit Taneja
2013-03-26 13:45 ` [PATCH v2 4/8] omapdss: features: fixed supported outputs for OMAP4 Archit Taneja
2013-03-26 13:57 ` Archit Taneja
2013-03-26 13:45 ` [PATCH v2 5/8] omapdss: DISPC: add max pixel clock limits for LCD and TV managers Archit Taneja
2013-03-26 13:57 ` Archit Taneja
2013-03-27 7:30 ` Tomi Valkeinen
2013-03-27 7:30 ` Tomi Valkeinen
2013-03-27 7:36 ` Archit Taneja
2013-03-27 7:48 ` Archit Taneja
2013-03-26 13:45 ` [PATCH v2 6/8] omapdss: Features: Fix some parameter ranges Archit Taneja
2013-03-26 13:57 ` Archit Taneja
2013-03-27 7:33 ` Tomi Valkeinen
2013-03-27 7:33 ` Tomi Valkeinen
2013-03-27 7:38 ` Archit Taneja
2013-03-27 7:50 ` Archit Taneja
2013-03-26 13:45 ` [PATCH v2 7/8] OMAPDSS: DISPC: Configure doublestride for NV12 when using 2D Tiler buffers Archit Taneja
2013-03-26 13:57 ` Archit Taneja
2013-03-26 13:45 ` [PATCH v2 8/8] OMAPDSS: DISPC: Revert to older DISPC Smart Standby mechanism for OMAP5 Archit Taneja
2013-03-26 13:57 ` Archit Taneja
2013-03-27 7:54 ` [PATCH v2 0/8] omapdss/omapdrm: Misc fixes and improvements Tomi Valkeinen
2013-03-27 7:54 ` Tomi Valkeinen
2013-03-27 8:35 ` Archit Taneja
2013-03-27 8:47 ` 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=513F4348.3080203@ti.com \
--to=archit@ti.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-omap@vger.kernel.org \
--cc=robdclark@gmail.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.