CC: [email protected]
CC: [email protected]
BCC: [email protected]
CC: [email protected]
TO: Lucas De Marchi <[email protected]>
CC: Matthew Brost <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   90ea17a9e27b5778ec517efb1ce0b81d36905654
commit: d9a5696e7d52edf68776599f2a38b9aee1382be9 drm/i915/guc: Convert golden 
context prep to iosys_map
date:   7 weeks ago
:::::: branch date: 4 hours ago
:::::: commit date: 7 weeks ago
config: x86_64-randconfig-c007-20220411 
(https://download.01.org/0day-ci/archive/20220417/[email protected]/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 
c6e83f560f06cdfe8aa47b248d8bdc58f947274b)
reproduce (this is a W=1 build):
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d9a5696e7d52edf68776599f2a38b9aee1382be9
        git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout d9a5696e7d52edf68776599f2a38b9aee1382be9
        # save the config file to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 
clang-analyzer 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


clang-analyzer warnings: (new ones prefixed by >>)
   include/linux/list.h:638:2: note: expanded from macro 'list_for_each_entry'
           for (pos = list_first_entry(head, typeof(*pos), member);        \
           ^
   drivers/misc/mei/interrupt.c:432:6: note: Assuming the condition is false
           if (&cl->link == &dev->file_list) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/misc/mei/interrupt.c:432:2: note: Taking false branch
           if (&cl->link == &dev->file_list) {
           ^
   drivers/misc/mei/interrupt.c:450:41: note: Passing null pointer value via 
3rd parameter 'meta'
           ret = mei_cl_irq_read_msg(cl, mei_hdr, meta_hdr, cmpl_list);
                                                  ^~~~~~~~
   drivers/misc/mei/interrupt.c:450:8: note: Calling 'mei_cl_irq_read_msg'
           ret = mei_cl_irq_read_msg(cl, mei_hdr, meta_hdr, cmpl_list);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/misc/mei/interrupt.c:107:6: note: Assuming field 'extended' is not 
equal to 0
           if (mei_hdr->extended) {
               ^~~~~~~~~~~~~~~~~
   drivers/misc/mei/interrupt.c:107:2: note: Taking true branch
           if (mei_hdr->extended) {
           ^
   drivers/misc/mei/interrupt.c:108:44: note: Access to field 'size' results in 
a dereference of a null pointer (loaded from variable 'meta')
                   ext_len = sizeof(*meta) + mei_slots2data(meta->size);
                                                            ^~~~
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   4 warnings generated.
   drivers/gpu/drm/i915/gt/uc/intel_uc.c:80:3: warning: Dereference of null 
pointer [clang-analyzer-core.NullDereference]
                   i915->params.enable_guc,
                   ^
   drivers/gpu/drm/i915/gt/uc/intel_uc.c:122:2: note: Value assigned to field 
'i915'
           intel_huc_init_early(&uc->huc);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gt/uc/intel_uc.c:124:2: note: Calling 
'__confirm_options'
           __confirm_options(uc);
           ^~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gt/uc/intel_uc.c:76:2: note: 'i915' initialized here
           struct drm_i915_private *i915 = uc_to_gt(uc)->i915;
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gt/uc/intel_uc.c:78:10: note: Assuming pointer value is 
null
           drm_dbg(&i915->drm,
                   ^
   include/drm/drm_print.h:461:15: note: expanded from macro 'drm_dbg'
           drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_DRIVER, fmt, 
##__VA_ARGS__)
                        ^~~
   drivers/gpu/drm/i915/gt/uc/intel_uc.c:78:2: note: '?' condition is false
           drm_dbg(&i915->drm,
           ^
   include/drm/drm_print.h:461:14: note: expanded from macro 'drm_dbg'
           drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_DRIVER, fmt, 
##__VA_ARGS__)
                       ^
   drivers/gpu/drm/i915/gt/uc/intel_uc.c:80:3: note: Dereference of null pointer
                   i915->params.enable_guc,
                   ^
   include/drm/drm_print.h:461:63: note: expanded from macro 'drm_dbg'
           drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_DRIVER, fmt, 
##__VA_ARGS__)
                                                                        
^~~~~~~~~~~
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   4 warnings generated.
   drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c:267:27: warning: Value stored to 
'i915' during its initialization is never read 
[clang-analyzer-deadcode.DeadStores]
           struct drm_i915_private *i915 = __uc_fw_to_gt(uc_fw)->i915;
                                    ^~~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c:267:27: note: Value stored to 
'i915' during its initialization is never read
           struct drm_i915_private *i915 = __uc_fw_to_gt(uc_fw)->i915;
                                    ^~~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   5 warnings generated.
   drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:203:2: warning: Undefined or 
garbage value returned to caller [clang-analyzer-core.uninitialized.UndefReturn]
           return ret;
           ^      ~~~
   drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:187:2: note: 'ret' declared 
without an initial value
           int ret;
           ^~~~~~~
   drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:189:2: note: Taking false branch
           if (iosys_map_is_null(&guc->ads_map))
           ^
   drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:197:6: note: Assuming the 
condition is false
           if (!intel_guc_is_ready(guc))
               ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:197:2: note: Taking false branch
           if (!intel_guc_is_ready(guc))
           ^
   drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:200:2: note: Loop condition is 
false. Execution continues on line 203
           with_intel_runtime_pm(&gt->i915->runtime_pm, wakeref)
           ^
   drivers/gpu/drm/i915/intel_runtime_pm.h:184:2: note: expanded from macro 
'with_intel_runtime_pm'
           for ((wf) = intel_runtime_pm_get(rpm); (wf); \
           ^
   drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:203:2: note: Undefined or garbage 
value returned to caller
           return ret;
           ^      ~~~
>> drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:497:3: warning: Assigned value is 
>> garbage or undefined [clang-analyzer-core.uninitialized.Assign]
                   ads_blob_write(guc, ads.golden_context_lrca[guc_class],
                   ^
   drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:67:2: note: expanded from macro 
'ads_blob_write'
           iosys_map_wr_field(&(guc_)->ads_map, 0, struct __guc_ads_blob,  \
           ^
   include/linux/iosys-map.h:456:8: note: expanded from macro 
'iosys_map_wr_field'
                        typeof(s->field__), val__);                             
           \
                        ^
   drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:743:6: note: Assuming field 
'ads_vma' is non-null
           if (!guc->ads_vma)
               ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:743:2: note: Taking false branch
           if (!guc->ads_vma)
           ^
   drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:746:2: note: Calling 
'__guc_ads_init'
           __guc_ads_init(guc);
           ^~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:619:3: note: '?' condition is 
false
                   hweight8(gt->info.sseu.slice_mask);
                   ^
   include/asm-generic/bitops/const_hweight.h:26:23: note: expanded from macro 
'hweight8'
   #define hweight8(w)  (__builtin_constant_p(w) ? __const_hweight8(w)  : 
__arch_hweight8(w))
                         ^
   drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:623:6: note: Assuming field 'ver' 
is < 12
           if (GRAPHICS_VER(i915) >= 12 && !IS_DGFX(i915)) {
               ^
   drivers/gpu/drm/i915/i915_drv.h:943:29: note: expanded from macro 
'GRAPHICS_VER'
   #define GRAPHICS_VER(i915)              (INTEL_INFO(i915)->graphics.ver)
                                           ^
   drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:623:31: note: Left side of '&&' 
is false
           if (GRAPHICS_VER(i915) >= 12 && !IS_DGFX(i915)) {
                                        ^
   drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:632:2: note: Calling 
'guc_prep_golden_context'
           guc_prep_golden_context(guc);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:439:6: note: 'addr_ggtt' declared 
without an initial value
           u32 addr_ggtt, offset;
               ^~~~~~~~~
   drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:457:2: note: Taking false branch
           if (!iosys_map_is_null(&guc->ads_map)) {
           ^
   drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:468:2: note: Loop condition is 
true.  Entering loop body
           for (engine_class = 0; engine_class <= MAX_ENGINE_CLASS; 
++engine_class) {
           ^
   drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:469:7: note: 'engine_class' is 
not equal to OTHER_CLASS
                   if (engine_class == OTHER_CLASS)
                       ^~~~~~~~~~~~
   drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:469:3: note: Taking false branch
                   if (engine_class == OTHER_CLASS)
                   ^
   drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:474:7: note: Assuming the 
condition is false
                   if (!info_map_read(&info_map, 
engine_enabled_masks[guc_class]))
                       
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:474:3: note: Taking false branch
                   if (!info_map_read(&info_map, 
engine_enabled_masks[guc_class]))
                   ^
   drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:481:3: note: Taking false branch
                   if (iosys_map_is_null(&guc->ads_map))
                   ^
   drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:497:3: note: Assigned value is 
garbage or undefined
                   ads_blob_write(guc, ads.golden_context_lrca[guc_class],
                   ^
   drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:67:2: note: expanded from macro 
'ads_blob_write'
           iosys_map_wr_field(&(guc_)->ads_map, 0, struct __guc_ads_blob,  \
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/iosys-map.h:456:8: note: expanded from macro 
'iosys_map_wr_field'
                        typeof(s->field__), val__);                             
           \
   ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/iosys-map.h:367:2: note: expanded from macro 'iosys_map_wr'
           type__ val = (val__);                                           \
           ^            ~~~~~~~
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   drivers/gpu/drm/vmwgfx/vmwgfx_drv.h:1103:9: warning: Called function pointer 
is null (null dereference) [clang-analyzer-core.CallAndMessage]
           return viter->dma_address(viter);
                  ^
   drivers/gpu/drm/vmwgfx/vmwgfx_mob.c:128:9: note: Assuming field 'page_table' 
is equal to null
           BUG_ON(otable->page_table != NULL);
                  ^
   include/asm-generic/bug.h:65:45: note: expanded from macro 'BUG_ON'
   #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
                                      ~~~~~~~~~^~~~~~~~~~
   include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)

vim +497 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c

481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  433  
d135865cb8e396 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Matthew Brost        
2021-09-09  434  #define LR_HW_CONTEXT_SIZE (80 * sizeof(u32))
d135865cb8e396 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Matthew Brost        
2021-09-09  435  #define LRC_SKIP_SIZE (LRC_PPHWSP_SZ * PAGE_SIZE + 
LR_HW_CONTEXT_SIZE)
d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi      
2022-02-16  436  static int guc_prep_golden_context(struct intel_guc *guc)
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  437  {
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  438          struct intel_gt *gt = guc_to_gt(guc);
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  439          u32 addr_ggtt, offset;
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  440          u32 total_size = 0, alloc_size, real_size;
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  441          u8 engine_class, guc_class;
d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi      
2022-02-16  442          struct guc_gt_system_info local_info;
d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi      
2022-02-16  443          struct iosys_map info_map;
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  444  
c24f0c1de481c1 drivers/gpu/drm/i915/intel_guc_ads.c       Sujaritha Sundaresan 
2018-01-02  445          /*
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  446           * Reserve the memory for the golden contexts and 
point GuC at it but
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  447           * leave it empty for now. The context data will be 
filled in later
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  448           * once there is something available to put there.
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  449           *
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  450           * Note that the HWSP and ring context are not 
included.
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  451           *
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  452           * Note also that the storage must be pinned in the 
GGTT, so that the
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  453           * address won't change after GuC has been told where 
to find it. The
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  454           * GuC will also validate that the LRC base + size 
fall within the
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  455           * allowed GGTT range.
c24f0c1de481c1 drivers/gpu/drm/i915/intel_guc_ads.c       Sujaritha Sundaresan 
2018-01-02  456           */
d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi      
2022-02-16  457          if (!iosys_map_is_null(&guc->ads_map)) {
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  458                  offset = guc_ads_golden_ctxt_offset(guc);
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  459                  addr_ggtt = intel_guc_ggtt_offset(guc, 
guc->ads_vma) + offset;
d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi      
2022-02-16  460                  info_map = IOSYS_MAP_INIT_OFFSET(&guc->ads_map,
d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi      
2022-02-16  461                                                   
offsetof(struct __guc_ads_blob, system_info));
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  462          } else {
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  463                  memset(&local_info, 0, sizeof(local_info));
d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi      
2022-02-16  464                  iosys_map_set_vaddr(&info_map, &local_info);
d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi      
2022-02-16  465                  fill_engine_enable_masks(gt, &info_map);
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  466          }
c24f0c1de481c1 drivers/gpu/drm/i915/intel_guc_ads.c       Sujaritha Sundaresan 
2018-01-02  467  
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  468          for (engine_class = 0; engine_class <= 
MAX_ENGINE_CLASS; ++engine_class) {
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  469                  if (engine_class == OTHER_CLASS)
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  470                          continue;
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  471  
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  472                  guc_class = 
engine_class_to_guc_class(engine_class);
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  473  
d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi      
2022-02-16  474                  if (!info_map_read(&info_map, 
engine_enabled_masks[guc_class]))
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  475                          continue;
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  476  
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  477                  real_size = intel_engine_context_size(gt, 
engine_class);
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  478                  alloc_size = PAGE_ALIGN(real_size);
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  479                  total_size += alloc_size;
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  480  
d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi      
2022-02-16  481                  if (iosys_map_is_null(&guc->ads_map))
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  482                          continue;
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  483  
d135865cb8e396 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Matthew Brost        
2021-09-09  484                  /*
d135865cb8e396 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Matthew Brost        
2021-09-09  485                   * This interface is slightly confusing. We 
need to pass the
d135865cb8e396 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Matthew Brost        
2021-09-09  486                   * base address of the full golden context and 
the size of just
d135865cb8e396 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Matthew Brost        
2021-09-09  487                   * the engine state, which is the section of 
the context image
d135865cb8e396 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Matthew Brost        
2021-09-09  488                   * that starts after the execlists context. 
This is required to
d135865cb8e396 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Matthew Brost        
2021-09-09  489                   * allow the GuC to restore just the engine 
state when a
d135865cb8e396 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Matthew Brost        
2021-09-09  490                   * watchdog reset occurs.
d135865cb8e396 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Matthew Brost        
2021-09-09  491                   * We calculate the engine state size by 
removing the size of
d135865cb8e396 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Matthew Brost        
2021-09-09  492                   * what comes before it in the context image 
(which is identical
d135865cb8e396 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Matthew Brost        
2021-09-09  493                   * on all engines).
d135865cb8e396 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Matthew Brost        
2021-09-09  494                   */
d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi      
2022-02-16  495                  ads_blob_write(guc, 
ads.eng_state_size[guc_class],
d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi      
2022-02-16  496                                 real_size - LRC_SKIP_SIZE);
d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi      
2022-02-16 @497                  ads_blob_write(guc, 
ads.golden_context_lrca[guc_class],
d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi      
2022-02-16  498                                 addr_ggtt);
d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi      
2022-02-16  499  
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  500                  addr_ggtt += alloc_size;
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  501          }
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  502  
d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi      
2022-02-16  503          if (iosys_map_is_null(&guc->ads_map))
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  504                  return total_size;
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  505  
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  506          GEM_BUG_ON(guc->ads_golden_ctxt_size != total_size);
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  507          return total_size;
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  508  }
481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison        
2021-07-26  509  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to