From: Tomi Valkeinen <tomi.valkeinen@ti.com>
To: "K, Mythri P" <mythripk@ti.com>
Cc: linux-omap@vger.kernel.org
Subject: Re: [PATCH 0/8] HDMI: Split hdmi.c to seperate HDMI IP dependant code from DSS.
Date: Thu, 23 Jun 2011 15:31:14 +0300 [thread overview]
Message-ID: <1308832274.1834.109.camel@deskari> (raw)
In-Reply-To: <BANLkTinc9JUr-gBGSynzMtrqTVncDUbNKQ@mail.gmail.com>
On Thu, 2011-06-23 at 17:35 +0530, K, Mythri P wrote:
> Hi Tomi,
>
> On Thu, Jun 23, 2011 at 3:28 PM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
> > On Fri, 2011-06-17 at 13:47 +0530, Mythri P K wrote:
> >> HDMI IP block is common between TI OMAP4 Procerssor and Netra processor although
> >> the Display subsytem is different. Thus to reuse the code between these two
> >> processors , HDMI IP dependant code is seperated out from hdmi.c and moved to
> >> new library file hdmi_ti_4xxx_ip.c which now resides in /drivers/video a more
> >> generic location out of omap2/dss folder.
> >>
> >> This patch series does the split and also renames hdmi_omap4_panel.c to
> >> hdmi_panel.c as that file has nothing specific to OMAP4 and can be reused for
> >> other OMAP family of processors as well.
> >
> > These comments are based on the branch you have, not to particular
> > patches:
> >
> > include/video/hdmi_ti_4xxx_ip.h:
> >
> > - This file is in a way the most important one, because it's the public
> > API of the component. So you should be extra careful with this, and see
> > that everything in it makes sense, and it's clear how it is to be used.
> >
> > - hdmi_core_hdmi_dvi is defined but not used. Should it be in the
> > private header?
>
> HDMI_HDMI and HDMI_DVI are used everywhere in hdmi.c and hdmi_ti_4xxx_ip.c,
> one thing i could do is to add a patch to used this enumerator
> instead of int mode ?
Oh, so the "int mode" in the header is actually "enum hdmi_core_hdmi_dvi
mode"? Using int is obviously wrong, then.
> > - hdmi_pll_pwr seems to be very low level thing. It requires the user to
> > know HW details about the PLL, I don't think it should be visible to the
> > users. It is used in parameters for hdmi_ti_4xxx_set_pll_pwr(). When is
> > it supposed to be used? Why is hdmi_ti_4xxx_wp_video_start() not enough?
> >
> HDMI has core , PLL and PHY blocks, so user of the ip driver should
> configure them separately.
Why? Is there some requirement/benefit to it?
> > - The same goes to hdmi_ti_4xxx_pll_program. Who does the PLL
> > calculations, omapdss driver? Shouldn't the HDMI driver do it, the PLL
> > is a HDMI HW thing, not DSS HW? Or if they are defined in the board
> > file, and omapdss just gives them to the HDMI driver, I think the data
> > should be somehow passed through omapdss without omapdss actively
> > participating in the PLL programming. This would be easy if the HDMI
> > would use a platform device/driver model, the data could be passed via
> > the device data.
Can you comment on this? Why the PLL calculation is not in the HDMI IP
driver?
> > - If the PLL calculations have to be done by omapdss, couldn't the
> > hdmi_pll_info be part of hdmi_config?
>
> hdmi_pll_info would be used only once while configuring (power on) ,
> Why would we have to store the pll_info then in hdmi_config?
Whether you store the hdmi_pll_info or not is HDMI IP driver internal
thing, not related to the API. We're talking about the API here.
Look at the include/video/hdmi_ti_4xxx_ip.h file and think from the
users view point: what is the most obvious and easiest way to use the
API. Then make the HDMI IP driver work with the API.
> > - Is hdmi_ti_4xxx_phy_off the counterpart of hdmi_ti_4xxx_phy_init? If
> > so, the naming could be better to clearly show this. Like init/uninit,
> > enable/disable, etc.
>
> I shall rename. yes phy_off is counterpart of init , i shall renmane
> it to enable ,disable.
> >
> > - Is the "phy" relevant (from the user's point of view) in
> > hdmi_ti_4xxx_phy_init and off? Or could they be just init and uninit?
>
> PHY is a seperate block in HDMI and even from the user point of view
> user should be aware of PHY, PLL and core blocks. so phy_init is
> relevant.
Again, why? Why cannot the user just give the configurations to the HDMI
IP driver, and start it, without knowing anything about PHY/PLL/core.
> > - Perhaps hdmi_ti_4xxx_basic_configure could be just configure, there's
> > no advanced configure or similar.
> Well, makes sense but this is the init_configuration(default
> configuration) is what was intended in the patch.
> >
> > - is the "wp" important in hdmi_ti_4xxx_wp_video_start?
> >
> yes wp == wrapper , so it would be clear to have a wp_video_Start.
Why does the user need to know wp == wrapper? Isn't the function just
about enabling the video output?
> > - read_ti_4xxx_edid() is named differently than the other functions.
> >
> I shall rename to hdmi_ti_4xxx_read_edid.
>
> > drivers/video/hdmi_ti_4xxx_ip.c:
> >
> > - EXPORT_SYMBOL(hdmi_ti_4xxx_phy_init); is not below the function.
> >
> > drivers/video/omap2/dss/hdmi.c:
> >
> > - hdmi_ti_4xxx_set_pll_pwr() is only called in power_off(), but never
> > enabled. I presume the HDMI driver does that internally. That doesn't
> > sound like a valid use of the function.
>
> It is enabled in hdmi_ti_4xxx_pll_program called from power on.
Yes, I can see that. But it's bad usage pattern. Never enable something
in one component, and disable it in another. The same entity has to do
them both.
> > - Looking at hdmi_power_on(), I feel that the API of the HDMI driver
> > could be simpler. Would it be enough to have just one function to setup
> > the HDMI, and another to turn the output on?
> No , I suppose it is the responsibility of the user of IP driver to
> configure PHY , PLL and CORE blocks seperately as we can reuse the PLL
> or PHY block in different SOC's as well.
Well, in that case, shouldn't PHY, PLL and CORE be in separate drivers?
If they are all in one HDMI IP driver, I don't see why the user would
need to know about PHY/PLL/CORE at all. The user just wants to use the
HDMI IP as a whole, doesn't it?
> > - omapdss_hdmi_display_set_timing() seems to be broken. It just sets
> > some variables and calls display_enable().
> It sets a variable custom_set , appropriate action will be taken while
> configuring timings based on that parameter.
This is the same thing as with the use of hdmi_ti_4xxx_set_pll_pwr.
Well, actually not, this is worse. A "set_timing" function which
unconditionally calls omapdss_hdmi_display_enable() makes no sense to
me. Why would set_timing function enable the display? And even more
importantly, omapdss_hdmi_display_enable() won't work correctly if it is
called unevenly related to omapdss_hdmi_display_disable(), which will
happen here.
Tomi
next prev parent reply other threads:[~2011-06-23 12:38 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-17 8:17 [PATCH 0/8] HDMI: Split hdmi.c to seperate HDMI IP dependant code from DSS Mythri P K
2011-06-17 8:17 ` [PATCH 1/8] OMAP4: DSS: HDMI: HDMI clean up to pass base_address Mythri P K
2011-06-17 8:17 ` [PATCH 2/8] OMAP4 : DSS : HDMI : Move the EDID portion from HDMI IP Mythri P K
2011-06-17 8:17 ` [PATCH 3/8] OMAP4: DSS: HDMI: Use specific HDMI timings structure Mythri P K
2011-06-17 8:17 ` [PATCH 4/8] OMAP4: DSS: HDMI: Move the common header file definition Mythri P K
2011-06-17 8:17 ` [PATCH 5/8] OMAP4: DSS2: HDMI: Split the HDMI driver to DSS and IP Mythri P K
2011-06-17 8:17 ` [PATCH 6/8] OMAP4: DSS: HDMI: Rename the functions in HDMI IP Mythri P K
2011-06-17 8:17 ` [PATCH 7/8] HDMI: Move HDMI IP Library from OMAP DSS to common Mythri P K
2011-06-17 8:17 ` [PATCH 8/8] OMAP4: DSS: Rename hdmi_omap4_panel.c to hdmi_panel.c Mythri P K
2011-06-20 13:48 ` [PATCH 5/8] OMAP4: DSS2: HDMI: Split the HDMI driver to DSS and IP Premi, Sanjeev
2011-06-23 5:55 ` K, Mythri P
2011-06-20 12:46 ` [PATCH 3/8] OMAP4: DSS: HDMI: Use specific HDMI timings structure Premi, Sanjeev
2011-06-23 5:45 ` K, Mythri P
2011-06-23 8:30 ` Tomi Valkeinen
2011-06-23 8:46 ` K, Mythri P
2011-06-20 13:33 ` [PATCH 1/8] OMAP4: DSS: HDMI: HDMI clean up to pass base_address Premi, Sanjeev
2011-06-23 5:51 ` K, Mythri P
2011-06-23 10:30 ` Premi, Sanjeev
2011-06-23 11:00 ` K, Mythri P
2011-06-23 11:03 ` Premi, Sanjeev
2011-06-23 11:09 ` K, Mythri P
2011-06-23 9:58 ` [PATCH 0/8] HDMI: Split hdmi.c to seperate HDMI IP dependant code from DSS Tomi Valkeinen
2011-06-23 12:05 ` K, Mythri P
2011-06-23 12:31 ` Tomi Valkeinen [this message]
2011-06-27 5:51 ` K, Mythri P
2011-06-27 12:58 ` Tomi Valkeinen
2011-06-29 13:38 ` K, Mythri P
2011-06-29 16:21 ` Tomi Valkeinen
2011-06-30 17:46 ` K, Mythri P
2011-07-01 8:51 ` Tomi Valkeinen
2011-07-01 9:22 ` K, Mythri P
2011-07-01 11:44 ` Tomi Valkeinen
2011-07-01 12:43 ` K, Mythri P
-- strict thread matches above, loose matches on Subject: below --
2011-06-22 11:55 Mythri P K
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=1308832274.1834.109.camel@deskari \
--to=tomi.valkeinen@ti.com \
--cc=linux-omap@vger.kernel.org \
--cc=mythripk@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.