RE: [PATCH 3/5] [media]: OMAP_VOUT: Fix VSYNC IRQ handling in omap_vout_isr

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Original Message-----
> From: Semwal, Sumit
> Sent: Tuesday, September 27, 2011 11:12 AM
> To: Hiremath, Vaibhav
> Cc: Taneja, Archit; Valkeinen, Tomi; linux-omap@xxxxxxxxxxxxxxx; linux-
> media@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH 3/5] [media]: OMAP_VOUT: Fix VSYNC IRQ handling in
> omap_vout_isr
> 
> Hi Vaibhav,
> >>
> >> On Mon, Sep 26, 2011 at 3:49 PM, Hiremath, Vaibhav <hvaibhav@xxxxxx>
> wrote:
> >>>
> >>> > -----Original Message-----
> >>> > From: Taneja, Archit
> >>> > Sent: Thursday, September 22, 2011 11:46 AM
> >>> > To: Hiremath, Vaibhav
> >>> > Cc: Valkeinen, Tomi; linux-omap@xxxxxxxxxxxxxxx; Semwal, Sumit;
> linux-
> >>> > media@xxxxxxxxxxxxxxx
> >>> > Subject: Re: [PATCH 3/5] [media]: OMAP_VOUT: Fix VSYNC IRQ handling
> in
> >>> > omap_vout_isr
> >>> >
> >>> > Hi,
> >
> >   <snip>
> >>>
> >>> > >> -          if (!(irqstatus&  (DISPC_IRQ_VSYNC |
> DISPC_IRQ_VSYNC2)))
> >>> > >> +          if (mgr_id == OMAP_DSS_CHANNEL_LCD)
> >>> > >> +                  irq = DISPC_IRQ_VSYNC;
> >>> > >> +          else if (mgr_id == OMAP_DSS_CHANNEL_LCD2)
> >>> > >> +                  irq = DISPC_IRQ_VSYNC2;
> >>> > >> +          else
> >>> > >> +                  goto vout_isr_err;
> >>> > >> +
> >>> > >> +          if (!(irqstatus&  irq))
> >>> > >>                    goto vout_isr_err;
> >>> > >>            break;
> >>> > > I understand what this patch meant for, but I am more curious to
> know
> >>> > > What is value addition of this patch?
> >>> > >
> >>> > > if (!(irqstatus&  (DISPC_IRQ_VSYNC | DISPC_IRQ_VSYNC2)))
> >>> > >
> >>> > > Vs
> >>> > >
> >>> > > if (mgr_id == OMAP_DSS_CHANNEL_LCD)
> >>> > >     irq = DISPC_IRQ_VSYNC;
> >>> > > else if (mgr_id == OMAP_DSS_CHANNEL_LCD2)
> >>> > >     irq = DISPC_IRQ_VSYNC2;
> >>> > >
> >>> > > Isn't this same, because we are not doing anything separate and
> special
> >>> > > for VSYNC and VSYNC2?
> >>> >
> >>> > Consider a use case where the primary LCD panel(connected to LCD
> >>> > manager) is configured at a 60 Hz refresh rate, and the secondary
> >>> > panel(connected to LCD2) refreshes at 30 Hz. Let the overlay
> >>> > configuration be something like this:
> >>> >
> >>> > /dev/video1----->overlay1----->LCD manager----->Primary panel(60 Hz)
> >>> >
> >>> >
> >>> > /dev/video2----->overlay2----->LCD2 manager----->Secondary Panel(30
> Hz)
> >>> >
> >>> >
> >>> > Now if we are doing streaming on both video1 and video2, since we
> deque
> >>> > on either VSYNC or VSYNC2, video2 buffers will deque faster than the
> >>> > panels refresh, which is incorrect. So for video2, we should only
> deque
> >>> > when we get a VSYNC2 interrupt. Thats why there is a need to
> correlate
> >>> > the interrupt and the overlay manager.
> >>> >
> >>>
> >>> Archit,
> >>>
> >>> I think I am still not understood or convinced with your description
> above,
> >>>
> >>> The code snippet which we are referring here, does check whether the
> >>> interrupt is either VSYNC or VSYNC2, else fall back to "vout_isr_err".
> >
> >
> I am not quite sure I understand what is the confusing part here -
> below is my understanding; please correct me if you think otherwise.
> As I understand, this patch creates a (missing) correlation between a
> manager and the corresponding ISR. The earlier code would accept a
> VSYNC2 for LCD1 manager, which is not the correct thing to do.
> That is why the check of 'if ((mgr==LCD) && (IRQ==VSYNC))' kind of
> thing is needed; Which part of this do you think the above patch
> doesn't do? Or, do you think it is not needed / done correctly?
Sumit,

Please look at the patch carefully, it does exactly same thing. I understand the use-case what Archit explained in the last email but in this patch context, the use-case change anything here in this patch. 

Can you review it carefully again?

Thanks,
Vaibhav
> >>>
> >>> For me both are doing same thing, the original code is optimized way
> of implementation. Can you please review it again?
> >>>
> >>> Thanks,
> >>> Vaibhav
> >
> >
> Thanks and best regards,
> ~Sumit.
> >>>
> >>> <snip>
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux