From: Borislav Petkov on
From: Linus Torvalds <torvalds(a)linux-foundation.org>
Date: Wed, Jul 14, 2010 at 09:13:39AM -0700

> On Wed, Jul 14, 2010 at 8:55 AM, Stephan Wolf
> <stephan(a)letzte-bankreihe.de> wrote:
> >
> > �After commit 30a564be9d9554c168a654eddc2165869cc0d7bf "x86, hpet: Restrict
> > read back to affected ATI chipsets" hpet did not work anymore on HP nx6325.
> > The machine hangs on booting until a keystroke was taken. After a short time
> > machine hangs again until next keystroke. Applying the following patch
> > solves the issue for me.
>
> Ok, this makes sense. Bugs in the ATI chipset is why
> 'hpet_readback_cmp' exists in the first place. HOWEVER, clearly that
> commit changed it to be about too few ATI chipsets.
>
> So right now, for
>
> - PCI_DEVICE_ID_ATI_SBX00_SMBUS:
> force disable HPET MSI
> force HPET readback
>
> - PCI_DEVICE_ID_ATI_IXP400_SMBU
> force-enable HPET
> ...and than your patch makes it force HPET readback
>
> but that doesn't actually make much sense in the bigger picture,
> because there are other ATI chipsets that are related and presumably
> also affected. What about IXP[23]00_SMBUS? And what about the IXP7
> series (SBX00 is IXP6, afaik)?

Right, so the original commit introducing the readback did it for all
ATI chipsets: 72d43d9bc9210d24d09202eaf219eac09e17b339. We've been
running fine with it so far modulo the Intel ICH9 issue.

I'll try to find out which chipsets are actually affected but in the
meantime we might want to do a temporary fix by enabling the readback
back(!) on all ATI chipsets so that we don't uncover anymore bugs like
the one above, hmmm?

> And I added Andreas to the cc, maybe he knows what's up.

He'll be back on Mo.

--
Regards/Gruss,
Boris.

Advanced Micro Devices GmbH
Einsteinring 24, 85609 Dornach
General Managers: Alberto Bozzo, Andrew Bowd
Registration: Dornach, Gemeinde Aschheim, Landkreis Muenchen
Registergericht Muenchen, HRB Nr. 43632

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Borislav Petkov on
From: Linus Torvalds <torvalds(a)linux-foundation.org>
Date: Wed, Jul 14, 2010 at 02:17:27PM -0400

> > I'll try to find out which chipsets are actually affected but in the
> > meantime we might want to do a temporary fix by enabling the readback
> > back(!) on all ATI chipsets so that we don't uncover anymore bugs like
> > the one above, hmmm?
>
> That sounds like the right solution for now, yes. Rather than make
> the readback quirk depend on one particular SMBUS revision, make it
> happen unconditionally for an AMD northbridge (or is the HPET in the
> SB?

Yeah, its in the southbridge which is part of the chipset. Actually
we'll have to somehow match ATI chipsets only since we have also nVidia
chipsets with AMD cpus in them.

/me goes to meditate a little about it.

> I forget - somebody who knows the details and can test it on a
> machine or two should do the actual patch).

I'll try to cook up something unless someone beats me to it.

--
Regards/Gruss,
Boris.

Advanced Micro Devices GmbH
Einsteinring 24, 85609 Dornach
General Managers: Alberto Bozzo, Andrew Bowd
Registration: Dornach, Gemeinde Aschheim, Landkreis Muenchen
Registergericht Muenchen, HRB Nr. 43632

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Borislav Petkov on
From: Thomas Gleixner <tglx(a)linutronix.de>
Date: Thu, Jul 15, 2010 at 04:22:14AM -0400

> On Thu, 15 Jul 2010, Stephan Wolf wrote:
> > Am 14.07.2010 23:04, schrieb Thomas Gleixner:
> >
> > > +static void __init ati_hpet_bugs(int num, int slot, int func)
> > > +{
> > > +#ifdef CONFIG_HPET_TIMER
> > > + hpet_readback_cmp = 1;
> > > +#endif
> > > +}
> > > +
> > > #define QFLAG_APPLY_ONCE 0x1
> > > #define QFLAG_APPLIED 0x2
> > > #define QFLAG_DONE (QFLAG_APPLY_ONCE|QFLAG_APPLIED)
> > > @@ -220,6 +236,8 @@ static struct chipset early_qrk[] __init
> > > PCI_CLASS_SERIAL_SMBUS, PCI_ANY_ID, 0, ati_bugs },
> > > { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_SBX00_SMBUS,
> > > PCI_CLASS_SERIAL_SMBUS, PCI_ANY_ID, 0, ati_bugs_contd },
> > > + { PCI_VENDOR_ID_ATI, PCI_ANY_ID,
> > > + PCI_CLASS_SERIAL_SMBUS, PCI_ANY_ID, 0, ati_hpet_bugs },
> > > {}
> >
> > Hi, the patch above solves the problem on my machine.
>
> Thanks for testing.
>
> Borislav, any opinion ?

Yep, good idea to match SMBus device class on ATI, cool. Quickly tested
on my SB700.

Acked-by: Borislav Petkov <borislav.petkov(a)amd.com>

--
Regards/Gruss,
Boris.

Advanced Micro Devices GmbH
Einsteinring 24, 85609 Dornach
General Managers: Alberto Bozzo, Andrew Bowd
Registration: Dornach, Gemeinde Aschheim, Landkreis Muenchen
Registergericht Muenchen, HRB Nr. 43632

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/