2005-03-14 22:19:00

by Enrico Bartky

[permalink] [raw]
Subject: SMbus not enabled

Hello,

my notebook have a SiS 964 Chipset and "quirked" by "quirk_sis_503", ... but there is no SMbus device. If I add a call to the "quirk_sis_96x_smbus" function directly from the "quirk_sis_503" function, the smbus is present, but I think a call to a quirk from a quirk is not optimal. Is there a better solution?

EnricoB
__________________________________________________________
Mit WEB.DE FreePhone mit hoechster Qualitaet ab 0 Ct./Min.
weltweit telefonieren! http://freephone.web.de/?mc=021201


2005-03-15 06:24:50

by Andrew Morton

[permalink] [raw]
Subject: Re: SMbus not enabled

"Enrico Bartky" <[email protected]> wrote:
>
> my notebook have a SiS 964 Chipset and "quirked" by "quirk_sis_503", ...
> but there is no SMbus device. If I add a call to the "quirk_sis_96x_smbus"
> function directly from the "quirk_sis_503" function, the smbus is present,
> but I think a call to a quirk from a quirk is not optimal. Is there a better
> solution?

(Please wrap your email lines before column 80)

What version of the kernel are you using?

I assume that you mean that the machine does have SMBus, but that it is not
being recognised by the kernel?

It could be that we don't have the appropriate PCI IDs in there. Please
run `lspci -vvxx' and send the part which is relevant to the SMBus
interface.

Also, in drivers/pci/quirks.c you can change `#undef DEBUG' to `#define
DEBUG' and it will print useful information.

This patch will help, too:

--- 25/drivers/pci/quirks.c~a 2005-03-14 22:23:08.000000000 -0800
+++ 25-akpm/drivers/pci/quirks.c 2005-03-14 22:23:57.000000000 -0800
@@ -1262,6 +1262,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f, struct pci_fixup *end)
{
while (f < end) {
+ pr_debug(PCI: quirks: inspecting %04x:%04x\n",
+ dev->vendor, dev->device);
if ((f->vendor == dev->vendor || f->vendor == (u16) PCI_ANY_ID) &&
(f->device == dev->device || f->device == (u16) PCI_ANY_ID)) {
pr_debug("PCI: Calling quirk %p for %s\n", f->hook, pci_name(dev));
_