drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: Trying to use reserved word 'do' as identifier

kernel test robot <[email protected]> Thu, 23 Jul 2026 11:56:54 +0800
Newsgroups dev.linux.lists.oe-kbuild
Message-ID <[email protected]>
:::::: 
:::::: Manual check reason: "low confidence static check warning: drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: Trying to use reserved word 'do' as identifier"
:::::: 

BCC: [email protected]
CC: [email protected]
CC: [email protected]
TO: Michal Wajdeczko <[email protected]>
CC: Daniele Ceraolo Spurio <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   248951ddc14de84de3910f9b13f51491a8cd91df
commit: 09af64eba63ece2d928295e61ab1d56ae264447c drm/xe/guc: Introduce GUC_FIRMWARE_VER_AT_LEAST helper
date:   7 months ago
:::::: branch date: 2 days ago
:::::: commit date: 7 months ago
config: arm64-randconfig-r113-20260723 (https://download.01.org/0day-ci/archive/20260723/[email protected]/config)
compiler: clang version 24.0.0git (https://github.com/llvm/llvm-project 5c0dfced1adc55429e32b1db08570abd3a219d85)
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260723/[email protected]/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Fixes: 09af64eba63e ("drm/xe/guc: Introduce GUC_FIRMWARE_VER_AT_LEAST helper")
| Reported-by: kernel test robot <[email protected]>
| Closes: https://lore.kernel.org/r/[email protected]/

sparse warnings: (new ones prefixed by >>)
   drivers/gpu/drm/xe/xe_guc_ads.c:350:13: sparse: sparse: Expected ) in function call
   drivers/gpu/drm/xe/xe_guc_ads.c:350:13: sparse: sparse: got ,
   drivers/gpu/drm/xe/xe_guc_ads.c:350:63: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:350:63: sparse: sparse: got )
   drivers/gpu/drm/xe/xe_guc_ads.c:350:63: sparse: sparse: Expected ) in nested declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:350:63: sparse: sparse: got &&
   drivers/gpu/drm/xe/xe_guc_ads.c:350:63: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:350:63: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:353:13: sparse: sparse: Expected ) in function declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:353:13: sparse: sparse: got (
   drivers/gpu/drm/xe/xe_guc_ads.c:353:9: sparse: sparse: Trying to use reserved word 'if' as identifier
   drivers/gpu/drm/xe/xe_guc_ads.c:353:63: sparse: sparse: Expected ) in nested declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:353:63: sparse: sparse: got {
   drivers/gpu/drm/xe/xe_guc_ads.c:353:63: sparse: sparse: Expected ) in nested declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:353:63: sparse: sparse: got {
   drivers/gpu/drm/xe/xe_guc_ads.c:353:63: sparse: sparse: Expected ) in nested declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:353:63: sparse: sparse: got {
   drivers/gpu/drm/xe/xe_guc_ads.c:353:63: sparse: sparse: Expected ) in function declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:353:63: sparse: sparse: got &
   drivers/gpu/drm/xe/xe_guc_ads.c:353:63: sparse: sparse: Trying to use reserved word 'void' as identifier
   drivers/gpu/drm/xe/xe_guc_ads.c:353:63: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:353:63: sparse: sparse: got 1
   drivers/gpu/drm/xe/xe_guc_ads.c:353:63: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:353:63: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:353:63: sparse: sparse: Expected ) in function declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:353:63: sparse: sparse: got (
   drivers/gpu/drm/xe/xe_guc_ads.c:353:63: sparse: sparse: Trying to use reserved word 'void' as identifier
   drivers/gpu/drm/xe/xe_guc_ads.c:353:63: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:353:63: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:353:63: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:353:63: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:353:63: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:353:63: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:353:63: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:353:63: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:353:63: sparse: sparse: Expected ) in nested declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:353:63: sparse: sparse: got &&
   drivers/gpu/drm/xe/xe_guc_ads.c:353:63: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:353:63: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:358:43: sparse: sparse: Expected ) in function declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:358:43: sparse: sparse: got ,
   drivers/gpu/drm/xe/xe_guc_ads.c:360:9: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:360:9: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:362:13: sparse: sparse: Expected ) in nested declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:362:13: sparse: sparse: got {
   drivers/gpu/drm/xe/xe_guc_ads.c:362:13: sparse: sparse: Expected ) in nested declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:362:13: sparse: sparse: got {
   drivers/gpu/drm/xe/xe_guc_ads.c:362:13: sparse: sparse: Expected ) in nested declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:362:13: sparse: sparse: got {
   drivers/gpu/drm/xe/xe_guc_ads.c:362:13: sparse: sparse: Expected ) in function declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:362:13: sparse: sparse: got &
   drivers/gpu/drm/xe/xe_guc_ads.c:362:13: sparse: sparse: Trying to use reserved word 'void' as identifier
   drivers/gpu/drm/xe/xe_guc_ads.c:362:13: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:362:13: sparse: sparse: got 1
   drivers/gpu/drm/xe/xe_guc_ads.c:362:13: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:362:13: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:362:13: sparse: sparse: Expected ) in function declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:362:13: sparse: sparse: got (
   drivers/gpu/drm/xe/xe_guc_ads.c:362:13: sparse: sparse: Trying to use reserved word 'void' as identifier
   drivers/gpu/drm/xe/xe_guc_ads.c:362:13: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:362:13: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:362:13: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:362:13: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:362:13: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:362:13: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:362:13: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:362:13: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:362:13: sparse: sparse: Expected ) in nested declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:362:13: sparse: sparse: got &&
   drivers/gpu/drm/xe/xe_guc_ads.c:362:13: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:362:13: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:367:13: sparse: sparse: Expected ) in function declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:367:13: sparse: sparse: got !
   drivers/gpu/drm/xe/xe_guc_ads.c:367:9: sparse: sparse: Trying to use reserved word 'if' as identifier
   drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: Expected ) in nested declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: got {
   drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: Expected ) in nested declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: got {
   drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: Expected ) in nested declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: got {
   drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: Expected ) in function declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: got (
   drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: Trying to use reserved word 'if' as identifier
   drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: Expected ) in function declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: got !
   drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: Trying to use reserved word 'if' as identifier
   drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: got }
>> drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: Trying to use reserved word 'do' as identifier
   drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: Expected ; at end of declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: got {
   drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:373:9: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:374:9: sparse: sparse: Expected ) in nested declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:374:9: sparse: sparse: got {
   drivers/gpu/drm/xe/xe_guc_ads.c:374:9: sparse: sparse: Expected ) in nested declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:374:9: sparse: sparse: got {
   drivers/gpu/drm/xe/xe_guc_ads.c:374:9: sparse: sparse: Expected ) in nested declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:374:9: sparse: sparse: got {
   drivers/gpu/drm/xe/xe_guc_ads.c:374:9: sparse: sparse: Expected ) in function declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:374:9: sparse: sparse: got (
   drivers/gpu/drm/xe/xe_guc_ads.c:374:9: sparse: sparse: Trying to use reserved word 'if' as identifier
   drivers/gpu/drm/xe/xe_guc_ads.c:374:9: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:374:9: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:374:9: sparse: sparse: Expected ) in function declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:374:9: sparse: sparse: got !
   drivers/gpu/drm/xe/xe_guc_ads.c:374:9: sparse: sparse: Trying to use reserved word 'if' as identifier
   drivers/gpu/drm/xe/xe_guc_ads.c:374:9: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:374:9: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:374:9: sparse: sparse: Trying to use reserved word 'do' as identifier
   drivers/gpu/drm/xe/xe_guc_ads.c:374:9: sparse: sparse: Expected ; at end of declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:374:9: sparse: sparse: got {
   drivers/gpu/drm/xe/xe_guc_ads.c:374:9: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:374:9: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:374:9: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:374:9: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:374:9: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:374:9: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:374:9: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:374:9: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:374:9: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:374:9: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:375:9: sparse: sparse: Expected ) in nested declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:375:9: sparse: sparse: got {
   drivers/gpu/drm/xe/xe_guc_ads.c:375:9: sparse: sparse: Expected ) in nested declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:375:9: sparse: sparse: got {
   drivers/gpu/drm/xe/xe_guc_ads.c:375:9: sparse: sparse: Expected ) in nested declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:375:9: sparse: sparse: got {
   drivers/gpu/drm/xe/xe_guc_ads.c:375:9: sparse: sparse: Expected ) in function declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:375:9: sparse: sparse: got (
   drivers/gpu/drm/xe/xe_guc_ads.c:375:9: sparse: sparse: Trying to use reserved word 'if' as identifier
   drivers/gpu/drm/xe/xe_guc_ads.c:375:9: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:375:9: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:375:9: sparse: sparse: Expected ) in function declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:375:9: sparse: sparse: got !
   drivers/gpu/drm/xe/xe_guc_ads.c:375:9: sparse: sparse: Trying to use reserved word 'if' as identifier
   drivers/gpu/drm/xe/xe_guc_ads.c:375:9: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:375:9: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:375:9: sparse: sparse: Trying to use reserved word 'do' as identifier
   drivers/gpu/drm/xe/xe_guc_ads.c:375:9: sparse: sparse: Expected ; at end of declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:375:9: sparse: sparse: got {
   drivers/gpu/drm/xe/xe_guc_ads.c:375:9: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:375:9: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:375:9: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:375:9: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:375:9: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:375:9: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:375:9: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:375:9: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:375:9: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:375:9: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:376:1: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:376:1: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:385:1: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:385:1: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:396:12: sparse: sparse: Expected ; at end of declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:396:12: sparse: sparse: got ->
   drivers/gpu/drm/xe/xe_guc_ads.c:397:12: sparse: sparse: Expected ; at end of declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:397:12: sparse: sparse: got ->
   drivers/gpu/drm/xe/xe_guc_ads.c:398:12: sparse: sparse: Expected ; at end of declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:398:12: sparse: sparse: got ->
   drivers/gpu/drm/xe/xe_guc_ads.c:399:12: sparse: sparse: Expected ; at end of declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:399:12: sparse: sparse: got ->
   drivers/gpu/drm/xe/xe_guc_ads.c:406:19: sparse: sparse: Expected ) in function declarator
   drivers/gpu/drm/xe/xe_guc_ads.c:406:19: sparse: sparse: got (
   drivers/gpu/drm/xe/xe_guc_ads.c:406:9: sparse: sparse: Trying to use reserved word 'if' as identifier
   drivers/gpu/drm/xe/xe_guc_ads.c:409:12: sparse: sparse: Expected ; at end of declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:409:12: sparse: sparse: got ->
   drivers/gpu/drm/xe/xe_guc_ads.c:411:9: sparse: sparse: Trying to use reserved word 'return' as identifier
   drivers/gpu/drm/xe/xe_guc_ads.c:411:16: sparse: sparse: Expected ; at end of declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:411:16: sparse: sparse: got 0
   drivers/gpu/drm/xe/xe_guc_ads.c:412:1: sparse: sparse: Expected ; at the end of type declaration
   drivers/gpu/drm/xe/xe_guc_ads.c:412:1: sparse: sparse: got }
   drivers/gpu/drm/xe/xe_guc_ads.c:350:13: sparse: sparse: undefined identifier '__VA_OPT__'
   drivers/gpu/drm/xe/xe_guc_ads.c:350:63: sparse: sparse: undefined identifier '__gt'
   drivers/gpu/drm/xe/xe_guc_ads.c:353:63: sparse: sparse: undefined identifier '__xe'
   drivers/gpu/drm/xe/xe_guc_ads.c:358:17: sparse: sparse: symbol 'guc_waklv_enable' redeclared with different type (incompatible argument 1 (different base types)):
   drivers/gpu/drm/xe/xe_guc_ads.c:358:17: sparse:    int static [signed] [toplevel] guc_waklv_enable( ... )
   drivers/gpu/drm/xe/xe_guc_ads.c:287:13: sparse: note: previously declared as:
   drivers/gpu/drm/xe/xe_guc_ads.c:287:13: sparse:    void static [toplevel] guc_waklv_enable( ... )
   drivers/gpu/drm/xe/xe_guc_ads.c:362:13: sparse: sparse: undefined identifier '__xe'

vim +/do +373 drivers/gpu/drm/xe/xe_guc_ads.c

c151ff5c905333 Badal Nilawar    2024-04-05  310  
d6da81a4785ca6 Badal Nilawar    2024-04-05  311  static void guc_waklv_init(struct xe_guc_ads *ads)
d6da81a4785ca6 Badal Nilawar    2024-04-05  312  {
c151ff5c905333 Badal Nilawar    2024-04-05  313  	struct xe_gt *gt = ads_to_gt(ads);
d6da81a4785ca6 Badal Nilawar    2024-04-05  314  	u64 addr_ggtt;
d6da81a4785ca6 Badal Nilawar    2024-04-05  315  	u32 offset, remain, size;
d6da81a4785ca6 Badal Nilawar    2024-04-05  316  
d6da81a4785ca6 Badal Nilawar    2024-04-05  317  	offset = guc_ads_waklv_offset(ads);
d6da81a4785ca6 Badal Nilawar    2024-04-05  318  	remain = guc_ads_waklv_size(ads);
d6da81a4785ca6 Badal Nilawar    2024-04-05  319  
83f4151787c5dd Matt Roper       2025-12-12  320  	if (XE_GT_WA(gt, 16021333562))
7c9de25efa7677 Jonathan Cavitt  2025-07-28  321  		guc_waklv_enable(ads, NULL, 0, &offset, &remain,
7c9de25efa7677 Jonathan Cavitt  2025-07-28  322  				 GUC_WORKAROUND_KLV_BLOCK_INTERRUPTS_WHEN_MGSR_BLOCKED);
4d5c98eb77fe51 Matt Atwood      2025-08-07  323  	if (XE_GT_WA(gt, 18024947630))
7c9de25efa7677 Jonathan Cavitt  2025-07-28  324  		guc_waklv_enable(ads, NULL, 0, &offset, &remain,
7c9de25efa7677 Jonathan Cavitt  2025-07-28  325  				 GUC_WORKAROUND_KLV_ID_GAM_PFQ_SHADOW_TAIL_POLLING);
4d5c98eb77fe51 Matt Atwood      2025-08-07  326  	if (XE_GT_WA(gt, 16022287689))
7c9de25efa7677 Jonathan Cavitt  2025-07-28  327  		guc_waklv_enable(ads, NULL, 0, &offset, &remain,
7c9de25efa7677 Jonathan Cavitt  2025-07-28  328  				 GUC_WORKAROUND_KLV_ID_DISABLE_MTP_DURING_ASYNC_COMPUTE);
d6da81a4785ca6 Badal Nilawar    2024-04-05  329  
4d5c98eb77fe51 Matt Atwood      2025-08-07  330  	if (XE_GT_WA(gt, 14022866841))
7c9de25efa7677 Jonathan Cavitt  2025-07-28  331  		guc_waklv_enable(ads, NULL, 0, &offset, &remain,
7c9de25efa7677 Jonathan Cavitt  2025-07-28  332  				 GUC_WA_KLV_WAKE_POWER_DOMAINS_FOR_OUTBOUND_MMIO);
61ef737db9f284 Vinay Belgaumkar 2024-10-15  333  
2817a1f1bfb1a2 Vinay Belgaumkar 2024-04-16  334  	/*
2817a1f1bfb1a2 Vinay Belgaumkar 2024-04-16  335  	 * On RC6 exit, GuC will write register 0xB04 with the default value provided. As of now,
2817a1f1bfb1a2 Vinay Belgaumkar 2024-04-16  336  	 * the default value for this register is determined to be 0xC40. This could change in the
2817a1f1bfb1a2 Vinay Belgaumkar 2024-04-16  337  	 * future, so GuC depends on KMD to send it the correct value.
2817a1f1bfb1a2 Vinay Belgaumkar 2024-04-16  338  	 */
4d5c98eb77fe51 Matt Atwood      2025-08-07  339  	if (XE_GT_WA(gt, 13011645652)) {
7c9de25efa7677 Jonathan Cavitt  2025-07-28  340  		u32 data = 0xC40;
7c9de25efa7677 Jonathan Cavitt  2025-07-28  341  
19baa830fbb60d Lucas De Marchi  2025-09-12  342  		guc_waklv_enable(ads, &data, 1, &offset, &remain,
7c9de25efa7677 Jonathan Cavitt  2025-07-28  343  				 GUC_WA_KLV_NP_RD_WRITE_TO_CLEAR_RCSM_AT_CGP_LATE_RESTORE);
7c9de25efa7677 Jonathan Cavitt  2025-07-28  344  	}
2817a1f1bfb1a2 Vinay Belgaumkar 2024-04-16  345  
4d5c98eb77fe51 Matt Atwood      2025-08-07  346  	if (XE_GT_WA(gt, 14022293748) || XE_GT_WA(gt, 22019794406))
7c9de25efa7677 Jonathan Cavitt  2025-07-28  347  		guc_waklv_enable(ads, NULL, 0, &offset, &remain,
7c9de25efa7677 Jonathan Cavitt  2025-07-28  348  				 GUC_WORKAROUND_KLV_ID_BACK_TO_BACK_RCS_ENGINE_RESET);
636cdf6fbddff4 Julia Filipchuk  2024-08-05  349  
09af64eba63ece Michal Wajdeczko 2025-12-16  350  	if (GUC_FIRMWARE_VER_AT_LEAST(&gt->uc.guc, 70, 44) && XE_GT_WA(gt, 16026508708))
7c9de25efa7677 Jonathan Cavitt  2025-07-28  351  		guc_waklv_enable(ads, NULL, 0, &offset, &remain,
7c9de25efa7677 Jonathan Cavitt  2025-07-28  352  				 GUC_WA_KLV_RESET_BB_STACK_PTR_ON_VF_SWITCH);
09af64eba63ece Michal Wajdeczko 2025-12-16  353  	if (GUC_FIRMWARE_VER_AT_LEAST(&gt->uc.guc, 70, 47) && XE_GT_WA(gt, 16026007364)) {
7c9de25efa7677 Jonathan Cavitt  2025-07-28  354  		u32 data[] = {
d72779c29d82c6 Sk Anirban       2025-07-16  355  			0x0,
d72779c29d82c6 Sk Anirban       2025-07-16  356  			0xF,
7c9de25efa7677 Jonathan Cavitt  2025-07-28  357  		};
19baa830fbb60d Lucas De Marchi  2025-09-12  358  		guc_waklv_enable(ads, data, ARRAY_SIZE(data), &offset, &remain,
7c9de25efa7677 Jonathan Cavitt  2025-07-28  359  				 GUC_WA_KLV_RESTORE_UNSAVED_MEDIA_CONTROL_REG);
7c9de25efa7677 Jonathan Cavitt  2025-07-28  360  	}
d3e8349edf7ed9 John Harrison    2025-04-03  361  
29042df3acdc73 Badal Nilawar    2025-08-21  362  	if (XE_GT_WA(gt, 14020001231))
29042df3acdc73 Badal Nilawar    2025-08-21  363  		guc_waklv_enable(ads, NULL, 0, &offset, &remain,
29042df3acdc73 Badal Nilawar    2025-08-21  364  				 GUC_WORKAROUND_KLV_DISABLE_PSMI_INTERRUPTS_AT_C6_ENTRY_RESTORE_AT_EXIT);
29042df3acdc73 Badal Nilawar    2025-08-21  365  
d6da81a4785ca6 Badal Nilawar    2024-04-05  366  	size = guc_ads_waklv_size(ads) - remain;
d6da81a4785ca6 Badal Nilawar    2024-04-05  367  	if (!size)
d6da81a4785ca6 Badal Nilawar    2024-04-05  368  		return;
d6da81a4785ca6 Badal Nilawar    2024-04-05  369  
d6da81a4785ca6 Badal Nilawar    2024-04-05  370  	offset = guc_ads_waklv_offset(ads);
d6da81a4785ca6 Badal Nilawar    2024-04-05  371  	addr_ggtt = xe_bo_ggtt_addr(ads->bo) + offset;
d6da81a4785ca6 Badal Nilawar    2024-04-05  372  
d6da81a4785ca6 Badal Nilawar    2024-04-05 @373  	ads_blob_write(ads, ads.wa_klv_addr_lo, lower_32_bits(addr_ggtt));
d6da81a4785ca6 Badal Nilawar    2024-04-05  374  	ads_blob_write(ads, ads.wa_klv_addr_hi, upper_32_bits(addr_ggtt));
d6da81a4785ca6 Badal Nilawar    2024-04-05  375  	ads_blob_write(ads, ads.wa_klv_size, size);
d6da81a4785ca6 Badal Nilawar    2024-04-05  376  }
d6da81a4785ca6 Badal Nilawar    2024-04-05  377  

:::::: The code at line 373 was first introduced by commit
:::::: d6da81a4785ca6e2f0ea9082424e725e8aad69b4 drm/xe/guc: Add support for workaround KLVs

:::::: TO: Badal Nilawar <[email protected]>
:::::: CC: Michal Wajdeczko <[email protected]>

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki