Re: [PATCH 3/5] cmd64x: implement serialization as per notes

Alan Cox
2009-11-17T18:06:25Z

On Tue, 17 Nov 2009 18:35:05 +0100
Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> wrote:

> On Tuesday 17 November 2009 15:51:32 Alan Cox wrote:
>
> > +struct cmd_priv
> > +{
> > + int dma_live; /* Channel using DMA */
> > + int irq_t[2]; /* Register to check for IRQ */
> > + int irq_m[2]; /* Bit to check */
> > +};
>
> irq_t and irq_m content will be identical for all host instances

Once I've had a look at the later chip variants I'll indeed do that
providing the 648 is ok in all revs.

> so you may as well add one instance for it, use ->private_data to
> store dma_live information and remove cmd_priv allocation
>
> > + /* If the other port is not live then issue the command */
> > + if (alt == NULL || !alt->qc_active) {
> > + if (dma)
> > + priv->dma_live = qc->ap->port_no;
> > + return 0;
> > + }
> > + /* If there is a live DMA command then wait */
> > + if (priv->dma_live != -1)
> > + return ATA_DEFER_PORT;
> > + if (dma) {
> > + /* Cannot overlap our DMA command */
> > + if (alt->qc_active)
> > + return ATA_DEFER_PORT;
>
> no need to check alt->qc_active again here

Good point

Thanks for the review.