On Thu, 28 Jun 2012 15:51:34 +0800, Daniel Kurtz wrote: > On Thu, Jun 28, 2012 at 12:07 AM, Jean Delvare <khali@xxxxxxxxxxxx> wrote: > > On Wed, 27 Jun 2012 21:54:10 +0800, Daniel Kurtz wrote: > >> + > >> + if (timeout > MAX_RETRIES) > >> + dev_dbg(&priv->pci_dev->dev, "INTR Timeout!\n"); > >> + > >> + outb_p(status, SMBHSTSTS(priv)); > > > > Wouldn't it be more correct to only write the INTR bit? Writing back > > the whole 8 bits frightens me a little especially because of bit > > INUSE_STS. If we ever want to support this feature, I think we have to > > first ban writing back the whole status to register HST_STS. And this > > is the only place where we still do AFAICS. > > It looks like the current code does it this way to clear any error > bits that may be set in the timeout case (errors set, but no INTR). > For example, if there was a bus / arbitration error while waiting for > PEC. > > Perhaps we can split the difference (I tested this and it has no > obvious regression): > > + /* Clear INTR, or in case of timeout, any other status bits. */ > + outb_p(status & STATUS_FLAGS, SMBHSTSTS(priv)); > > But in a separate patch... > I agree, this would be a reasonable compromise. -- Jean Delvare -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html