Re: [PATCH v6 2/3] drm/xe/i2c: Fix the interrupt handling
Raag Jadav <[email protected]>
| Newsgroups | org.freedesktop.lists.intel-xe,org.kernel.vger.linux-kernel,org.kernel.vger.stable |
|---|---|
| Message-ID | <[email protected]> |
On Wed, Jul 22, 2026 at 03:35:53PM +0200, Heikki Krogerus wrote:
> The platforms that support the interrupt from the I2C
> adapter can not handle the amount of interrupts the adapter
> generates because of the way the IRQ is routed in the
> hardware. The I2C controller driver has to be kept in
> polling mode because of that.
>
> The AMC MCU can still generate critical alerts that have to
> be handled. The interrupt from SMBus Alert is left enabled
> and handled separately in the Xe. The alerts from the AMC
> will cause the device to be declared wedged for now.
...
> + alert_reason = response.value;
> + dev_dbg(&client->dev, "Alert reason: %d\n", alert_reason);
This came up in one of the internal reports. We have quite a few call
sites for wedging and it can happen due to various reasons from driver
POV. We really need to identify the source from logs when it happens,
so can we atleast have this one as dev_info()?
All the reasons are rare enough to not spam the logs and it shouldn't be
a problem IMO.
I'm okay with doing it as a follow up if the series is already merged.
Raag
> +out_reassert_interrupt:
> + xe_mmio_rmw32(amc->i2c->mmio, I2C_CONFIG_CMD, PCI_COMMAND_INTX_DISABLE, 0);
> +
> + switch (alert_reason) {
> + case AMC_ALERT_FW_DOWNLOAD:
> + case AMC_ALERT_THERMAL_TRIP:
> + case AMC_ALERT_OOB_REQUEST:
> + case AMC_ALERT_OOB_RESET:
> + case AMC_ALERT_CATERR:
> + xe_device_declare_wedged(i2c_client_to_xe_device(client));
> + break;
> + default:
> + break;
> + }