lkml.org 
[lkml]   [2017]   [Mar]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Subject[Regression] Changes to i2c-piix4.c initialisation prevent loading of sp5100_tco watchdog driver on AMD SB800 chipset
    From
    Date
    Dear Linux folks,


    Unfortunately, commit 2fee61d22e (i2c: piix4: Add support for
    multiplexed main adapter in SB800) [1] caused a regression. Tim
    reported that to the Linux Kernel Bugtracker as bug #170741 last
    September [2], but it looks like the affected subsystems don’t use it.

    So I just copy his report in here, and put all the people in CC
    mentioned in the commit, the bug report, and in the subsystems
    I2C/SMBUS CONTROLLER DRIVERS FOR PC and WATCHDOG DEVICE DRIVERS
    mentioned in the file `MAINTAINERS`.

    > On the AMD Turion N40L and other related SoCs, the i2c-piix4 driver
    > now claims the 0xcd6 ioport, preventing the sp5100_tco watchdog
    > driver from loading:
    >
    > piix4_smbus 0000:00:14.0: SMBus Host Controller at 0xb00, revision 0
    > piix4_smbus 0000:00:14.0: Using register 0x2c for SMBus port selection
    > piix4_smbus 0000:00:14.0: Auxiliary SMBus Host Controller at 0xb20
    > sp5100_tco: SP5100/SB800 TCO WatchDog Timer Driver v0.05
    > sp5100_tco: PCI Vendor ID: 0x1002, Device ID: 0x4385, Revision ID: 0x42
    > sp5100_tco: I/O address 0x0cd6 already in use
    >
    >
    > This breaks watchdog operation on existing systems on upgrade and new
    > deployments unless the i2c-piix4 driver is blacklisted.
    >
    > See:
    >
    > drivers/watchdog/sp5100_tco.c
    >
    > tco_timer_enable(void)
    >
    > (SB800_IO_PM_INDEX_REG is defined in drivers/watchdog/sp5100_tco.h)
    >
    > This is the commit which prevents the watchdog driver from loading:
    >
    > http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=2fee61d22e606fc99ade9079fda15fdee83ec33e
    >
    > See also AMD docs
    >
    > 45483_sb800_bdg_pub_3.03
    >
    > Perhaps a fix is to switch both drivers from static to dynamic
    > allocation of the IO ports in question, since the watchdog driver
    > only accesses the port during initialisation (with backoff/retry
    > maybe to avoid races?).

    Is there somebody having the resources to implement the dynamic
    allocation to solve this regression?


    Thanks,

    Paul


    [1] https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=2fee61d22e606fc99ade9079fda15fdee83ec33e
    [2] https://bugzilla.kernel.org/show_bug.cgi?id=170741[unhandled content-type:application/pgp-signature]
    \
     
     \ /
      Last update: 2017-03-03 17:26    [W:4.841 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site