public inbox for linux-omap@vger.kernel.org
 help / color / mirror / Atom feed
From: "Cousson, Benoit" <b-cousson@ti.com>
To: "Semwal, Sumit" <sumit.semwal@ti.com>
Cc: "Taneja, Archit" <archit@ti.com>, "Balbi, Felipe" <balbi@ti.com>,
	"linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>,
	"Valkeinen, Tomi" <tomi.valkeinen@ti.com>
Subject: Re: OMAP: DSS2: Common IRQ handler for all OMAPs
Date: Tue, 15 Feb 2011 11:50:04 +0100	[thread overview]
Message-ID: <4D5A5A5C.4070909@ti.com> (raw)
In-Reply-To: <AANLkTikZXdrjXMq811LR8dQ0eq-QDDUb=pUdBDghWD3E@mail.gmail.com>

Hi Sumit,

On 2/15/2011 11:28 AM, Semwal, Sumit wrote:
> Hi Benoit,
>
> On Tue, Feb 15, 2011 at 3:53 PM, Cousson, Benoit<b-cousson@ti.com>  wrote:
>> Hi Archit,
>>
>> On 2/15/2011 10:25 AM, Taneja, Archit wrote:
>>>
>>> Copying Benoit,
>>>
>>> On Tuesday 15 February 2011 02:07 PM, Valkeinen, Tomi wrote:
>>>>
>>>> On Tue, 2011-02-15 at 02:30 -0600, Taneja, Archit wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> On Tuesday 15 February 2011 12:57 PM, Valkeinen, Tomi wrote:
>>>>>
>>>>> <snip>
>>>>>
>>>>>> I meant something like this:
>>>>>>
>>>>>> dispc.c:
>>>>>>
>>>>>> dispc_init()
>>>>>> {
>>>>>>         /* did we have a pdev for dispc? if not, this needs to be
>>>>>> dss.pdev */
>>>>>>         request_irq(platform_get_irq(dispc.pdev, 0), irq_handler,
>>>>>> IRQF_SHARED, "dispc irq", foo);
>>>>>> }
>>>>>>
>>>>>> irq_handler()
>>>>>> {
>>>>>>         if (irq_can_be_shared) {
>>>>>>                 check if the irq is for us. exit if not;
>>>>>>         }
>>>>>>
>>>>>>         handle;
>>>>>> }
>>>>>>
>>>>>> dsi.c:
>>>>>>
>>>>>> dsi_init()
>>>>>> {
>>>>>>         request_irq(platform_get_irq(dsi.pdev, 0), irq_handler,
>>>>>> IRQF_SHARED, "dsi irq", foo);
>>>>>> }
>>>>>>
>>>>>> irq_handler()
>>>>>> {
>>>>>>         if (irq_can_be_shared) {
>>>>>>                 check if the irq is for us. exit if not;
>>>>>>         }
>>>>>>
>>>>>>         handle;
>>>>>> }
>>>>>>
>>>>>
>>>>> This approach looks clean, but isn't IRQF_SHARED used the other way
>>>>> around. One irq line and multiple handlers?
>>>>
>>>> That is the case here, isn't it (on omap3)? One interrupt line (the DSS
>>>> irq, the same returned both from dsi.pdev and dispc.pdev), and two
>>>> handlers, one in dispc and one in dsi? Or what do you mean?
>>>>
>>>> On omap2 there's no dsi code ran, so dispc is the only one requesting
>>>> the irq, and thus IRQF_SHARED is extra. In omap4 there are separate irq
>>>> lines (dsi.pdev and dispc.pdev return different irqs), and so
>>>> IRQF_SHARED is again extra. But I don't see any harm in IRQF_SHARED even
>>>> in omap2/4.
>>>>
>>>>    Tomi
>>>>
>>>
>>> Benoit,
>>>
>>> Is it okay to have the same irq entry for 2 different hwmods?
>>> This requirement comes from OMAP3 where dispc and dsi have a common irq
>>> line, where as on OMAP4 dispc and dsi have separate irq lines.
>>
>> Well, no. I explained that in one of my comment about hwmod modification.
>> The hwmod data are reflecting the exact HW capabilities.
>> So, if there is a change in the HW, the hwmod will be different.
>> It is up to the driver to adapt to this change.
> I guess what Archit wanted to say is, for hw IPs DISPC and DSI, on
> OMAP3, have a common IRQ line, so could both their hwmod databases
> have the same IRQ added for them? This would us call, for a common IRQ
> line shared w/ DISPC and DSI, like
> mentioned in Tomi's sample code above.

OK, thanks for the clarification, actually I missed a little bit the 
point :-(

So in fact the 2 modules share that same IRQ today, and you just want to 
populate both hwmod with the same input.
If this is a real OR between the two IRQ lines, meaning the dispc cannot 
mask the dsi IRQ or the opposite, then having the same IRQ number in the 
two different hwmods is a correct representation of the HW.

Then both devices with get the same IRQ number during the 
platform_get_irq, so if the driver is aware of that it is fine.

> How is hwmod data for these cases handled today? [shared IRQ,
> different platform devices?]

I don't think we have such case today at least on OMAP4. Or maybe it is 
just not properly documented, so only one hwmod is mapped to the IRQ line.

Regards,
Benoit

>
> Best regards,
> ~Sumit.
>>
>> The driver has to evolve to handle properly the new HW capabilities while
>> keeping the old stuff working.
>>
>>> We basically want to get rid of a central dss irq handler (hence, remove
>>> irq entries for dss_core hwmod) and instead have separate irq handlers
>>> for each module which may or may not share an irq line.
>>
>> Then you need to hack your driver but not the hwmod data:-(
>>
>> Regards,
>> Benoit
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>


  reply	other threads:[~2011-02-15 10:50 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-02  8:56 [PATCH] OMAP: DSS2: Common IRQ handler for all OMAPs Archit Taneja
2011-02-14 14:21 ` Tomi Valkeinen
2011-02-14 14:30   ` Felipe Balbi
2011-02-15  4:28     ` archit taneja
2011-02-15  7:27       ` Tomi Valkeinen
2011-02-15  8:30         ` archit taneja
2011-02-15  8:37           ` Tomi Valkeinen
2011-02-15  8:47             ` archit taneja
2011-02-15  9:25             ` archit taneja
2011-02-15 10:23               ` Cousson, Benoit
2011-02-15 10:28                 ` Semwal, Sumit
2011-02-15 10:50                   ` Cousson, Benoit [this message]
2011-02-15 12:43                     ` archit taneja
2011-02-15 12:56                       ` Cousson, Benoit
2011-02-15 10:57             ` Felipe Balbi
2011-02-15 11:25               ` Tomi Valkeinen
2011-02-15 11:42                 ` Felipe Balbi
2011-02-15  8:05       ` Felipe Balbi
2011-02-15  8:20         ` archit taneja
2011-02-15  8:23           ` Felipe Balbi
2011-02-15  7:45     ` Tomi Valkeinen
2011-02-15  8:03       ` 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=4D5A5A5C.4070909@ti.com \
    --to=b-cousson@ti.com \
    --cc=archit@ti.com \
    --cc=balbi@ti.com \
    --cc=linux-omap@vger.kernel.org \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox