[i2c] M1563 - "Could not allocate I/O space"
Jean Delvare
khali at linux-fr.org
Sun Dec 10 10:46:38 CET 2006
Brian,
On Sun, 10 Dec 2006 00:02:01 -0500, Brian Hinz wrote:
> It's a Sharp Actius MM20, and no they've never released a bios update. I'll
> ask but won't hold my breath. I also had to correct a half dozen other
> errors in order to recompile the dsdt with the intel compiler, so I send
> those as well.
>
> I changed the base address back to 0x8080 and increased the length to 16
> bytes. The first error now is cleaned up, but it still fails to load
> properly as i2c_add_adapter returns 0 at line 391 of i2c_ali1563. Here's
0 means success, not failure.
> the output of /proc/ioports and some relevant parts of dmesg:
>
> 0000-001f : dma1
> 0020-0021 : pic1
> 0040-0043 : timer0
> 0050-0053 : timer1
> 0060-006f : keyboard
> 0070-0077 : rtc
> 0080-008f : dma page reg
> 00a0-00a1 : pic2
> 00c0-00df : dma2
> 00f0-00ff : fpu
> 01f0-01f7 : ide0
> 03c0-03df : vga+
> 03f6-03f6 : ide0
> 04d0-04d1 : pnp 00:07
> 1000-10ff : 0000:00:04.0
> 1000-10ff : ALi M5455
> 1400-14ff : 0000:00:0a.0
> 1400-14ff : 8139too
> 1800-180f : 0000:00:0e.0
> 1800-1807 : ide0
> 1808-180f : ide1
> 1c00-1cff : PCI CardBus #03
> 2000-2fff : PCI Bus #01
> 2000-20ff : 0000:01:00.0
> 3000-30ff : PCI CardBus #03
> 8000-803f : 0000:00:03.1
> 8000-8003 : PM1a_EVT_BLK
> 8008-800b : PM_TMR
> 8010-8015 : ACPI CPU throttle
> 8018-8027 : GPE0_BLK
> 8030-8030 : PM2_CNT_BLK
> 8080-808f : motherboard
> 8080-808f : pnp 00:07
> 8080-808f : ali1563_smbus
The driver successfully requested the I/O area.
> d000-d000 : motherboard
> d000-d000 : pnp 00:07
> d002-d002 : motherboard
> d004-d004 : motherboard
> d006-d006 : motherboard
> fe10-fe11 : motherboard
> fe10-fe11 : PM1a_CNT_BLK
>
> PCI quirk: region 8000-803f claimed by ali7101 ACPI
> Boot video device is 0000:01:00.0
> ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
> ACPI: PCI Interrupt Link [LNKA] (IRQs *10)
> ACPI: PCI Interrupt Link [LNKB] (IRQs 9) *0, disabled.
> ACPI: PCI Interrupt Link [LNKC] (IRQs *3)
> ACPI: PCI Interrupt Link [LNKD] (IRQs *4)
> ACPI: PCI Interrupt Link [LNKE] (IRQs *5)
> ACPI: PCI Interrupt Link [LNKF] (IRQs *5)
> ACPI: PCI Interrupt Link [LNKG] (IRQs *9)
> ACPI: PCI Interrupt Link [LNKU] (IRQs 11) *0, disabled.
> ACPI: Embedded Controller [M_EC] (gpe 30) interrupt mode.
> ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGP_._PRT]
> Linux Plug and Play Support v0.97 (c) Adam Belay
> pnp: PnP ACPI init
> pnp: PnP ACPI: found 8 devices
> usbcore: registered new driver usbfs
> usbcore: registered new driver hub
> PCI: Using ACPI for IRQ routing
> PCI: If a device doesn't work, try "pci=routeirq". If it helps, post a
> report
> pnp: 00:07: ioport range 0x4d0-0x4d1 has been reserved
> pnp: 00:07: ioport range 0x8000-0x807f could not be reserved
> pnp: 00:07: ioport range 0x8080-0x808f has been reserved
> pnp: 00:07: ioport range 0xd000-0xd000 has been reserved
> ...
> ali1535_smbus 0000:00:03.1: ALI1535_smb region uninitialized - upgrade BIOS?
> ali1535_smbus 0000:00:03.1: ALI1535 not detected, module not inserted.
You must have built the i2c-ali1535 driver into your kernel, or as a
module and you tried to load it. You shouldn't do that, as you do not
have this device, and this could confuse the device you have. If the
driver is automatically loaded by hotplug, you'll have to blacklist it.
> ali1563: SMBus control = 8083
> ali1563_probe: Returning 0
These messages need some cleanup, granted, but here they mean success,
not error.
> And here's the section in i2c-ali1563 that generates this printk:
>
> static int __devinit ali1563_probe(struct pci_dev * dev,
> const struct pci_device_id * id_table)
> {
> int error;
>
> if ((error = ali1563_setup(dev)))
> return error;
> ali1563_adapter.dev.parent = &dev->dev;
> sprintf(ali1563_adapter.name,"SMBus ALi 1563 Adapter @ %04x",
> ali1563_smba);
> if ((error = i2c_add_adapter(&ali1563_adapter)))
> ali1563_shutdown(dev);
> printk("%s: Returning %d\n",__FUNCTION__,error);
> return error;
> }
>
> This is as far as I've gotten, I looked at i2c-core.c but I haven't been
> able to tell where the problem lies. I reinstalled that other OS for
> comparison and it reports the same IO regions as are defined in the bios.
> I'm way out of my comfort zone, so any advice is appreciated.
Well, everything suggests that the i2c-ali1563 driver was successfully
loaded. What makes you think otherwise? Can you load the i2c-dev module
and run "i2cdetect 0" (or whatever i2c bus number your ali1563
received)? This should list the devices found on the SMBus.
--
Jean Delvare
More information about the i2c
mailing list