lkml.org 
[lkml]   [2010]   [Jul]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] ipmi: Fix ACPI detecting with regspacing
On Mon, Jul 26, 2010 at 02:48:02PM -0700, Yinghai Lu wrote:
>
> after the commint that change ipmi_si detecting sequence from SMBIOS/ACPI to ACPI/SMBIOS,
>
> | commit 754d453185275951d39792865927ec494fa1ebd8
> | Author: Matthew Garrett <mjg@redhat.com>
> | Date: Wed May 26 14:43:47 2010 -0700
> |
> | ipmi: change device discovery order
> |
> | The ipmi spec provides an ordering for si discovery. Change the driver to
> | match, with the exception of preferring smbios to SPMI as HPs (at least)
> | contain accurate information in the former but not the latter.
>
> ipmi_si can not be initialized.
>
> [ 138.799739] calling init_ipmi_devintf+0x0/0x109 @ 1
> [ 138.805050] ipmi device interface
> [ 138.818131] initcall init_ipmi_devintf+0x0/0x109 returned 0 after 12797 usecs
> [ 138.822998] calling init_ipmi_si+0x0/0xa90 @ 1
> [ 138.840276] IPMI System Interface driver.
> [ 138.846137] ipmi_si: probing via ACPI
> [ 138.849225] ipmi_si 00:09: [io 0x0ca2] regsize 1 spacing 1 irq 0
> [ 138.864438] ipmi_si: Adding ACPI-specified kcs state machine
> [ 138.870893] ipmi_si: probing via SMBIOS
> [ 138.880945] ipmi_si: Adding SMBIOS-specified kcs state machineipmi_si: duplicate interface
> [ 138.896511] ipmi_si: probing via SPMI
> [ 138.899861] ipmi_si: Adding SPMI-specified kcs state machineipmi_si: duplicate interface
> [ 138.917095] ipmi_si: Trying ACPI-specified kcs state machine at i/o address 0xca2, slave address 0x0, irq 0
> [ 138.928658] ipmi_si: Interface detection failed
> [ 138.953411] initcall init_ipmi_si+0x0/0xa90 returned 0 after 110847 usecs
>
> in smbios has
> DMI/SMBIOS
> Handle 0x00C5, DMI type 38, 18 bytes
> IPMI Device Information
> Interface Type: KCS (Keyboard Control Style)
> Specification Version: 2.0
> I2C Slave Address: 0x00
> NV Storage Device: Not Present
> Base Address: 0x0000000000000CA2 (I/O)
> Register Spacing: 32-bit Boundaries
> in DSDT has
> Device (BMC)
> {
>
> Name (_HID, EisaId ("IPI0001"))
> Method (_STA, 0, NotSerialized)
> {
> If (LEqual (OSN, Zero))
> {
> Return (Zero)
> }
>
> Return (0x0F)
> }
>
> Name (_STR, Unicode ("IPMI_KCS"))
> Name (_UID, Zero)
> Name (_CRS, ResourceTemplate ()
> {
> IO (Decode16,
> 0x0CA2, // Range Minimum
> 0x0CA2, // Range Maximum
> 0x00, // Alignment
> 0x01, // Length
> )
> IO (Decode16,
> 0x0CA6, // Range Minimum
> 0x0CA6, // Range Maximum
> 0x00, // Alignment
> 0x01, // Length
> )
> })
> Method (_IFT, 0, NotSerialized)
> {
> Return (One)
> }
>
> Method (_SRV, 0, NotSerialized)
> {
> Return (0x0200)
> }
> }
> so the reg spacing should be 4 instead of 1.
>
> Try to calculate regspacing for this kind of system.
>
> Signed-off-by: Yinghai Lu <yinghai@kernel.org>

Acked-by: Matthew Garrett <mjg@redhat.com>

--
Matthew Garrett | mjg59@srcf.ucam.org


\
 
 \ /
  Last update: 2010-07-26 23:59    [W:0.071 / U:0.012 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site