summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/xe/xe_i2c.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/xe/xe_i2c.c')
-rw-r--r--drivers/gpu/drm/xe/xe_i2c.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/gpu/drm/xe/xe_i2c.c b/drivers/gpu/drm/xe/xe_i2c.c
index 8eccbae05705..1e1fb72e49bf 100644
--- a/drivers/gpu/drm/xe/xe_i2c.c
+++ b/drivers/gpu/drm/xe/xe_i2c.c
@@ -5,6 +5,7 @@
* Copyright (C) 2025 Intel Corporation.
*/
+#include <drm/drm_print.h>
#include <linux/array_size.h>
#include <linux/container_of.h>
#include <linux/device.h>
@@ -26,11 +27,11 @@
#include "regs/xe_i2c_regs.h"
#include "regs/xe_irq_regs.h"
-#include "xe_device.h"
#include "xe_device_types.h"
#include "xe_i2c.h"
#include "xe_mmio.h"
-#include "xe_platform_types.h"
+#include "xe_sriov.h"
+#include "xe_survivability_mode.h"
/**
* DOC: Xe I2C devices
@@ -213,11 +214,13 @@ static const struct irq_domain_ops xe_i2c_irq_ops = {
.map = xe_i2c_irq_map,
};
-static int xe_i2c_create_irq(struct xe_i2c *i2c)
+static int xe_i2c_create_irq(struct xe_device *xe)
{
+ struct xe_i2c *i2c = xe->i2c;
struct irq_domain *domain;
- if (!(i2c->ep.capabilities & XE_I2C_EP_CAP_IRQ))
+ if (!(i2c->ep.capabilities & XE_I2C_EP_CAP_IRQ) ||
+ xe_survivability_mode_is_boot_enabled(xe))
return 0;
domain = irq_domain_create_linear(dev_fwnode(i2c->drm_dev), 1, &xe_i2c_irq_ops, NULL);
@@ -351,7 +354,7 @@ int xe_i2c_probe(struct xe_device *xe)
if (ret)
return ret;
- ret = xe_i2c_create_irq(i2c);
+ ret = xe_i2c_create_irq(xe);
if (ret)
goto err_unregister_notifier;