mirror of
https://github.com/torvalds/linux.git
synced 2026-09-24 06:24:02 +02:00
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.
Fixes: f0e53aadd7 ("drm/xe: Support for I2C attached MCUs")
Cc: stable@vger.kernel.org
Reviewed-by: Raag Jadav <raag.jadav@intel.com>
Co-developed-by: Ramesh Babu B <ramesh.babu.b@intel.com>
Signed-off-by: Ramesh Babu B <ramesh.babu.b@intel.com>
Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://patch.msgid.link/20260811121008.1493015-3-heikki.krogerus@linux.intel.com
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
(cherry picked from commit a55b76b8bc2c49b11d753c1c6d06ec3a2c61c85e)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
26 lines
574 B
C
26 lines
574 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef _XE_AMC_H_
|
|
#define _XE_AMC_H_
|
|
|
|
#include <linux/i2c.h>
|
|
|
|
#include "xe_device.h"
|
|
|
|
struct xe_i2c;
|
|
|
|
static inline struct xe_device *i2c_adapter_to_xe_device(struct i2c_adapter *adapter)
|
|
{
|
|
return kdev_to_xe_device(adapter->dev.parent->parent);
|
|
}
|
|
|
|
static inline struct xe_device *i2c_client_to_xe_device(struct i2c_client *client)
|
|
{
|
|
return i2c_adapter_to_xe_device(client->adapter);
|
|
}
|
|
|
|
int xe_amc_init(struct xe_i2c *i2c);
|
|
void xe_amc_exit(struct xe_i2c *i2c);
|
|
void xe_amc_handle_alert(struct xe_i2c *i2c);
|
|
|
|
#endif /* _XE_AMC_H_ */
|