[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Fri, 03 Mar 2017 09:46:22 +0100
From: Paul Menzel <paulepanter@...rs.sourceforge.net>
To: Christian Fetzer <fetzer.ch@...il.com>,
Wolfram Sang <wsa@...-dreams.de>,
Jean Delvare <jdelvare@...e.com>
Cc: linux-i2c@...r.kernel.org, linux-watchdog@...r.kernel.org,
853122@...s.debian.org, Wim Van Sebroeck <wim@...ana.be>,
Guenter Roeck <linux@...ck-us.net>,
Tim Small <tim@...ss.co.uk>,
Nehal Shah <nehal-bakulchandra.shah@....com>,
Mika Westerberg <mika.westerberg@...ux.intel.com>,
Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
Thomas Brandon <tbrandonau@...il.com>,
Eddi De Pieri <eddi@...ieri.net>,
linux-kernel@...r.kernel.org
Subject: [Regression] Changes to i2c-piix4.c initialisation prevent loading
of sp5100_tco watchdog driver on AMD SB800 chipset
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
Download attachment "signature.asc" of type "application/pgp-signature" (196 bytes)
Powered by blists - more mailing lists