Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/xe/i2c: Force polling mode in survivability

SGUnit interrupts are not initialized in survivability. Force I2C
controller to polling mode while in survivability.

v2: Use helper function instead of manual check (Riana)

Signed-off-by: Raag Jadav <raag.jadav@intel.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://patch.msgid.link/20260105080750.16605-1-raag.jadav@intel.com
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>

authored by

Raag Jadav and committed by
Matt Roper
e70711be 0b075f82

+7 -4
+6 -3
drivers/gpu/drm/xe/xe_i2c.c
··· 31 31 #include "xe_i2c.h" 32 32 #include "xe_mmio.h" 33 33 #include "xe_platform_types.h" 34 + #include "xe_survivability_mode.h" 34 35 35 36 /** 36 37 * DOC: Xe I2C devices ··· 214 213 .map = xe_i2c_irq_map, 215 214 }; 216 215 217 - static int xe_i2c_create_irq(struct xe_i2c *i2c) 216 + static int xe_i2c_create_irq(struct xe_device *xe) 218 217 { 218 + struct xe_i2c *i2c = xe->i2c; 219 219 struct irq_domain *domain; 220 220 221 - if (!(i2c->ep.capabilities & XE_I2C_EP_CAP_IRQ)) 221 + if (!(i2c->ep.capabilities & XE_I2C_EP_CAP_IRQ) || 222 + xe_survivability_mode_is_boot_enabled(xe)) 222 223 return 0; 223 224 224 225 domain = irq_domain_create_linear(dev_fwnode(i2c->drm_dev), 1, &xe_i2c_irq_ops, NULL); ··· 354 351 if (ret) 355 352 return ret; 356 353 357 - ret = xe_i2c_create_irq(i2c); 354 + ret = xe_i2c_create_irq(xe); 358 355 if (ret) 359 356 goto err_unregister_notifier; 360 357
+1 -1
drivers/gpu/drm/xe/xe_survivability_mode.c
··· 321 321 if (ret) 322 322 return ret; 323 323 324 - /* Make sure xe_heci_gsc_init() knows about survivability mode */ 324 + /* Make sure xe_heci_gsc_init() and xe_i2c_probe() are aware of survivability */ 325 325 survivability->mode = true; 326 326 327 327 xe_heci_gsc_init(xe);