Boris Brezillon <boris.brezil...@free-electrons.com> writes:

> Hi Eric,
>
> On Thu, 31 Aug 2017 10:03:23 -0700
> Eric Anholt <e...@anholt.net> wrote:
>
>> Boris Brezillon <boris.brezil...@free-electrons.com> writes:
>> > +                        VID_DATATYPE(MIPI_DSI_PACKED_PIXEL_STREAM_16);
>> > +                  break;
>> > +
>> > +          default:
>> > +                  dev_err(dsi->base.dev, "Unsupported DSI format\n");
>> > +                  return;
>> > +          }  
>> 
>> > +static irqreturn_t cdns_dsi_interrupt(int irq, void *data)
>> > +{
>> > +  struct cdns_dsi *dsi = data;
>> > +  irqreturn_t ret = IRQ_NONE;
>> > +  u32 flag, ctl;
>> > +
>> > +  flag = readl(dsi->regs + DIRECT_CMD_STS_FLAG);
>> > +  if (flag) {
>> > +          ctl = readl(dsi->regs + DIRECT_CMD_STS_CTL);
>> > +          ctl &= ~flag;
>> > +          writel(ctl, dsi->regs + DIRECT_CMD_STS_CTL);  
>> 
>> Are you meant to just write flag to DIRECT_CMD_STS_CLEAR, maybe?
>
> Actually, I want to keep the status flag untouched, I'm just masking the
> interrupt to not be interrupted until the waiter has cleared the
> status flags.
>
> I'm doing that because the user may want to wait for several different
> events (error, done, timeout, ...), and I'm not doing the check in the
> interrupt handler. Instead, I'm just waking up the waiter and let him
> check the status flag himself.

Oh, OK.  That sounds good.

Attachment: signature.asc
Description: PGP signature

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to