Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx> writes: > Hi Eric, > > On Thu, 31 Aug 2017 10:03:23 -0700 > Eric Anholt <eric@xxxxxxxxxx> wrote: > >> Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel