diff mbox series

[11/20] drm/i915/guc: Replace CTB array with explicit members

Message ID 20210603051630.2635-12-matthew.brost@intel.com (mailing list archive)
State New, archived
Headers show
Series GuC CTBs changes + a few misc patches | expand

Commit Message

Matthew Brost June 3, 2021, 5:16 a.m. UTC
From: Michal Wajdeczko <michal.wajdeczko@intel.com>

Upcoming GuC firmware will always require just two CTBs and we
also plan to configure them with different sizes, so definining
them as array is no longer suitable.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
---
 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c | 46 ++++++++++++-----------
 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.h |  7 +++-
 2 files changed, 30 insertions(+), 23 deletions(-)

Comments

kernel test robot June 3, 2021, 7:25 a.m. UTC | #1
Hi Matthew,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-tip/drm-tip]
[also build test ERROR on drm-exynos/exynos-drm-next tegra-drm/drm/tegra/for-next v5.13-rc4 next-20210602]
[cannot apply to drm-intel/for-linux-next drm/drm-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Matthew-Brost/GuC-CTBs-changes-a-few-misc-patches/20210603-130102
base:   git://anongit.freedesktop.org/drm/drm-tip drm-tip
config: i386-randconfig-a015-20210603 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
        # https://github.com/0day-ci/linux/commit/7672d3ecddcd8af3a2a856facac49ca93d4bdf9e
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Matthew-Brost/GuC-CTBs-changes-a-few-misc-patches/20210603-130102
        git checkout 7672d3ecddcd8af3a2a856facac49ca93d4bdf9e
        # save the attached .config to linux build tree
        make W=1 ARCH=i386 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   In file included from include/drm/drm_mm.h:49,
                    from include/drm/drm_vma_manager.h:26,
                    from include/drm/drm_gem.h:40,
                    from drivers/gpu/drm/i915/i915_drv.h:54,
                    from drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:6:
   drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c: In function 'intel_guc_ct_init':
>> drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:34:26: error: format '%lx' expects argument of type 'long unsigned int', but argument 5 has type 'ptrdiff_t' {aka 'int'} [-Werror=format=]
      34 |  drm_dbg(ct_to_drm(_ct), "CT: " _fmt, ##__VA_ARGS__)
         |                          ^~~~~~
   ......
     215 |    ptrdiff(desc, blob), ptrdiff(cmds, blob), cmds_size);
         |    ~~~~~~~~~~~~~~~~~~~    
         |    |
         |    ptrdiff_t {aka int}
   include/drm/drm_print.h:448:56: note: in definition of macro 'drm_dbg'
     448 |  drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_DRIVER, fmt, ##__VA_ARGS__)
         |                                                        ^~~
   drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:214:2: note: in expansion of macro 'CT_DEBUG'
     214 |  CT_DEBUG(ct, "%s desc %#lx cmds %#lx size %u\n", "send",
         |  ^~~~~~~~
   drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:214:27: note: format string is defined here
     214 |  CT_DEBUG(ct, "%s desc %#lx cmds %#lx size %u\n", "send",
         |                        ~~~^
         |                           |
         |                           long unsigned int
         |                        %#x
   In file included from include/drm/drm_mm.h:49,
                    from include/drm/drm_vma_manager.h:26,
                    from include/drm/drm_gem.h:40,
                    from drivers/gpu/drm/i915/i915_drv.h:54,
                    from drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:6:
   drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:34:26: error: format '%lx' expects argument of type 'long unsigned int', but argument 6 has type 'ptrdiff_t' {aka 'int'} [-Werror=format=]
      34 |  drm_dbg(ct_to_drm(_ct), "CT: " _fmt, ##__VA_ARGS__)
         |                          ^~~~~~
   ......
     215 |    ptrdiff(desc, blob), ptrdiff(cmds, blob), cmds_size);
         |                         ~~~~~~~~~~~~~~~~~~~
         |                         |
         |                         ptrdiff_t {aka int}
   include/drm/drm_print.h:448:56: note: in definition of macro 'drm_dbg'
     448 |  drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_DRIVER, fmt, ##__VA_ARGS__)
         |                                                        ^~~
   drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:214:2: note: in expansion of macro 'CT_DEBUG'
     214 |  CT_DEBUG(ct, "%s desc %#lx cmds %#lx size %u\n", "send",
         |  ^~~~~~~~
   drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:214:37: note: format string is defined here
     214 |  CT_DEBUG(ct, "%s desc %#lx cmds %#lx size %u\n", "send",
         |                                  ~~~^
         |                                     |
         |                                     long unsigned int
         |                                  %#x
   In file included from include/drm/drm_mm.h:49,
                    from include/drm/drm_vma_manager.h:26,
                    from include/drm/drm_gem.h:40,
                    from drivers/gpu/drm/i915/i915_drv.h:54,
                    from drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:6:
>> drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:34:26: error: format '%lx' expects argument of type 'long unsigned int', but argument 5 has type 'ptrdiff_t' {aka 'int'} [-Werror=format=]
      34 |  drm_dbg(ct_to_drm(_ct), "CT: " _fmt, ##__VA_ARGS__)
         |                          ^~~~~~
   ......
     224 |    ptrdiff(desc, blob), ptrdiff(cmds, blob), cmds_size);
         |    ~~~~~~~~~~~~~~~~~~~    
         |    |
         |    ptrdiff_t {aka int}
   include/drm/drm_print.h:448:56: note: in definition of macro 'drm_dbg'
     448 |  drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_DRIVER, fmt, ##__VA_ARGS__)
         |                                                        ^~~
   drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:223:2: note: in expansion of macro 'CT_DEBUG'
     223 |  CT_DEBUG(ct, "%s desc %#lx cmds %#lx size %u\n", "recv",
         |  ^~~~~~~~
   drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:223:27: note: format string is defined here
     223 |  CT_DEBUG(ct, "%s desc %#lx cmds %#lx size %u\n", "recv",
         |                        ~~~^
         |                           |
         |                           long unsigned int
         |                        %#x
   In file included from include/drm/drm_mm.h:49,
                    from include/drm/drm_vma_manager.h:26,
                    from include/drm/drm_gem.h:40,
                    from drivers/gpu/drm/i915/i915_drv.h:54,
                    from drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:6:
   drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:34:26: error: format '%lx' expects argument of type 'long unsigned int', but argument 6 has type 'ptrdiff_t' {aka 'int'} [-Werror=format=]
      34 |  drm_dbg(ct_to_drm(_ct), "CT: " _fmt, ##__VA_ARGS__)
         |                          ^~~~~~
   ......
     224 |    ptrdiff(desc, blob), ptrdiff(cmds, blob), cmds_size);
         |                         ~~~~~~~~~~~~~~~~~~~
         |                         |
         |                         ptrdiff_t {aka int}
   include/drm/drm_print.h:448:56: note: in definition of macro 'drm_dbg'
     448 |  drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_DRIVER, fmt, ##__VA_ARGS__)
         |                                                        ^~~
   drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:223:2: note: in expansion of macro 'CT_DEBUG'
     223 |  CT_DEBUG(ct, "%s desc %#lx cmds %#lx size %u\n", "recv",
         |  ^~~~~~~~
   drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:223:37: note: format string is defined here
     223 |  CT_DEBUG(ct, "%s desc %#lx cmds %#lx size %u\n", "recv",
         |                                  ~~~^
         |                                     |
         |                                     long unsigned int
         |                                  %#x
   cc1: all warnings being treated as errors


vim +34 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c

f8a58d639dd95b drivers/gpu/drm/i915/intel_guc_ct.c       Michal Wajdeczko       2017-05-26  @6  #include "i915_drv.h"
f8a58d639dd95b drivers/gpu/drm/i915/intel_guc_ct.c       Michal Wajdeczko       2017-05-26   7  #include "intel_guc_ct.h"
18c8832523c850 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Michal Wajdeczko       2020-01-11   8  #include "gt/intel_gt.h"
f8a58d639dd95b drivers/gpu/drm/i915/intel_guc_ct.c       Michal Wajdeczko       2017-05-26   9  
a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  10  static inline struct intel_guc *ct_to_guc(struct intel_guc_ct *ct)
a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  11  {
a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  12  	return container_of(ct, struct intel_guc, ct);
a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  13  }
a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  14  
a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  15  static inline struct intel_gt *ct_to_gt(struct intel_guc_ct *ct)
a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  16  {
a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  17  	return guc_to_gt(ct_to_guc(ct));
a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  18  }
a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  19  
a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  20  static inline struct drm_i915_private *ct_to_i915(struct intel_guc_ct *ct)
a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  21  {
a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  22  	return ct_to_gt(ct)->i915;
a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  23  }
a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  24  
a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  25  static inline struct drm_device *ct_to_drm(struct intel_guc_ct *ct)
a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  26  {
a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  27  	return &ct_to_i915(ct)->drm;
a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  28  }
a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  29  
18c8832523c850 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Michal Wajdeczko       2020-01-11  30  #define CT_ERROR(_ct, _fmt, ...) \
a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  31  	drm_err(ct_to_drm(_ct), "CT: " _fmt, ##__VA_ARGS__)
0a015ff9730c16 drivers/gpu/drm/i915/intel_guc_ct.c       Michal Wajdeczko       2018-03-26  32  #ifdef CONFIG_DRM_I915_DEBUG_GUC
77b20896d57e91 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Michal Wajdeczko       2020-01-17  33  #define CT_DEBUG(_ct, _fmt, ...) \
a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02 @34  	drm_dbg(ct_to_drm(_ct), "CT: " _fmt, ##__VA_ARGS__)
0a015ff9730c16 drivers/gpu/drm/i915/intel_guc_ct.c       Michal Wajdeczko       2018-03-26  35  #else
77b20896d57e91 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Michal Wajdeczko       2020-01-17  36  #define CT_DEBUG(...)	do { } while (0)
0a015ff9730c16 drivers/gpu/drm/i915/intel_guc_ct.c       Michal Wajdeczko       2018-03-26  37  #endif
a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  38  #define CT_PROBE_ERROR(_ct, _fmt, ...) \
a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  39  	i915_probe_error(ct_to_i915(ct), "CT: " _fmt, ##__VA_ARGS__)
0a015ff9730c16 drivers/gpu/drm/i915/intel_guc_ct.c       Michal Wajdeczko       2018-03-26  40  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
Daniel Vetter June 3, 2021, 9:37 p.m. UTC | #2
On Thu, Jun 03, 2021 at 03:25:29PM +0800, kernel test robot wrote:
> Hi Matthew,
> 
> Thank you for the patch! Yet something to improve:
> 
> [auto build test ERROR on drm-tip/drm-tip]
> [also build test ERROR on drm-exynos/exynos-drm-next tegra-drm/drm/tegra/for-next v5.13-rc4 next-20210602]
> [cannot apply to drm-intel/for-linux-next drm/drm-next]
> [If your patch is applied to the wrong git tree, kindly drop us a note.
> And when submitting patch, we suggest to use '--base' as documented in
> https://git-scm.com/docs/git-format-patch]
> 
> url:    https://github.com/0day-ci/linux/commits/Matthew-Brost/GuC-CTBs-changes-a-few-misc-patches/20210603-130102
> base:   git://anongit.freedesktop.org/drm/drm-tip drm-tip
> config: i386-randconfig-a015-20210603 (attached as .config)
> compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
> reproduce (this is a W=1 build):
>         # https://github.com/0day-ci/linux/commit/7672d3ecddcd8af3a2a856facac49ca93d4bdf9e
>         git remote add linux-review https://github.com/0day-ci/linux
>         git fetch --no-tags linux-review Matthew-Brost/GuC-CTBs-changes-a-few-misc-patches/20210603-130102
>         git checkout 7672d3ecddcd8af3a2a856facac49ca93d4bdf9e
>         # save the attached .config to linux build tree
>         make W=1 ARCH=i386 
> 
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
> 
> All errors (new ones prefixed by >>):
> 
>    In file included from include/drm/drm_mm.h:49,
>                     from include/drm/drm_vma_manager.h:26,
>                     from include/drm/drm_gem.h:40,
>                     from drivers/gpu/drm/i915/i915_drv.h:54,
>                     from drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:6:
>    drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c: In function 'intel_guc_ct_init':
> >> drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:34:26: error: format '%lx' expects argument of type 'long unsigned int', but argument 5 has type 'ptrdiff_t' {aka 'int'} [-Werror=format=]
>       34 |  drm_dbg(ct_to_drm(_ct), "CT: " _fmt, ##__VA_ARGS__)
>          |                          ^~~~~~
>    ......
>      215 |    ptrdiff(desc, blob), ptrdiff(cmds, blob), cmds_size);
>          |    ~~~~~~~~~~~~~~~~~~~    
>          |    |
>          |    ptrdiff_t {aka int}
>    include/drm/drm_print.h:448:56: note: in definition of macro 'drm_dbg'
>      448 |  drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_DRIVER, fmt, ##__VA_ARGS__)
>          |                                                        ^~~
>    drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:214:2: note: in expansion of macro 'CT_DEBUG'
>      214 |  CT_DEBUG(ct, "%s desc %#lx cmds %#lx size %u\n", "send",
>          |  ^~~~~~~~
>    drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:214:27: note: format string is defined here
>      214 |  CT_DEBUG(ct, "%s desc %#lx cmds %#lx size %u\n", "send",
>          |                        ~~~^
>          |                           |
>          |                           long unsigned int

32bit ptrdiff vs 64bit printk modifier. You need something else here.

I've stuffed all the previous patches into drm-intel-gt-next. If you
resend with just this one fixed here I'll continue tomorrow (--in-reply-to
resend I mean).

Thanks, Daniel

>          |                        %#x
>    In file included from include/drm/drm_mm.h:49,
>                     from include/drm/drm_vma_manager.h:26,
>                     from include/drm/drm_gem.h:40,
>                     from drivers/gpu/drm/i915/i915_drv.h:54,
>                     from drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:6:
>    drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:34:26: error: format '%lx' expects argument of type 'long unsigned int', but argument 6 has type 'ptrdiff_t' {aka 'int'} [-Werror=format=]
>       34 |  drm_dbg(ct_to_drm(_ct), "CT: " _fmt, ##__VA_ARGS__)
>          |                          ^~~~~~
>    ......
>      215 |    ptrdiff(desc, blob), ptrdiff(cmds, blob), cmds_size);
>          |                         ~~~~~~~~~~~~~~~~~~~
>          |                         |
>          |                         ptrdiff_t {aka int}
>    include/drm/drm_print.h:448:56: note: in definition of macro 'drm_dbg'
>      448 |  drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_DRIVER, fmt, ##__VA_ARGS__)
>          |                                                        ^~~
>    drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:214:2: note: in expansion of macro 'CT_DEBUG'
>      214 |  CT_DEBUG(ct, "%s desc %#lx cmds %#lx size %u\n", "send",
>          |  ^~~~~~~~
>    drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:214:37: note: format string is defined here
>      214 |  CT_DEBUG(ct, "%s desc %#lx cmds %#lx size %u\n", "send",
>          |                                  ~~~^
>          |                                     |
>          |                                     long unsigned int
>          |                                  %#x
>    In file included from include/drm/drm_mm.h:49,
>                     from include/drm/drm_vma_manager.h:26,
>                     from include/drm/drm_gem.h:40,
>                     from drivers/gpu/drm/i915/i915_drv.h:54,
>                     from drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:6:
> >> drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:34:26: error: format '%lx' expects argument of type 'long unsigned int', but argument 5 has type 'ptrdiff_t' {aka 'int'} [-Werror=format=]
>       34 |  drm_dbg(ct_to_drm(_ct), "CT: " _fmt, ##__VA_ARGS__)
>          |                          ^~~~~~
>    ......
>      224 |    ptrdiff(desc, blob), ptrdiff(cmds, blob), cmds_size);
>          |    ~~~~~~~~~~~~~~~~~~~    
>          |    |
>          |    ptrdiff_t {aka int}
>    include/drm/drm_print.h:448:56: note: in definition of macro 'drm_dbg'
>      448 |  drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_DRIVER, fmt, ##__VA_ARGS__)
>          |                                                        ^~~
>    drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:223:2: note: in expansion of macro 'CT_DEBUG'
>      223 |  CT_DEBUG(ct, "%s desc %#lx cmds %#lx size %u\n", "recv",
>          |  ^~~~~~~~
>    drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:223:27: note: format string is defined here
>      223 |  CT_DEBUG(ct, "%s desc %#lx cmds %#lx size %u\n", "recv",
>          |                        ~~~^
>          |                           |
>          |                           long unsigned int
>          |                        %#x
>    In file included from include/drm/drm_mm.h:49,
>                     from include/drm/drm_vma_manager.h:26,
>                     from include/drm/drm_gem.h:40,
>                     from drivers/gpu/drm/i915/i915_drv.h:54,
>                     from drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:6:
>    drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:34:26: error: format '%lx' expects argument of type 'long unsigned int', but argument 6 has type 'ptrdiff_t' {aka 'int'} [-Werror=format=]
>       34 |  drm_dbg(ct_to_drm(_ct), "CT: " _fmt, ##__VA_ARGS__)
>          |                          ^~~~~~
>    ......
>      224 |    ptrdiff(desc, blob), ptrdiff(cmds, blob), cmds_size);
>          |                         ~~~~~~~~~~~~~~~~~~~
>          |                         |
>          |                         ptrdiff_t {aka int}
>    include/drm/drm_print.h:448:56: note: in definition of macro 'drm_dbg'
>      448 |  drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_DRIVER, fmt, ##__VA_ARGS__)
>          |                                                        ^~~
>    drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:223:2: note: in expansion of macro 'CT_DEBUG'
>      223 |  CT_DEBUG(ct, "%s desc %#lx cmds %#lx size %u\n", "recv",
>          |  ^~~~~~~~
>    drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c:223:37: note: format string is defined here
>      223 |  CT_DEBUG(ct, "%s desc %#lx cmds %#lx size %u\n", "recv",
>          |                                  ~~~^
>          |                                     |
>          |                                     long unsigned int
>          |                                  %#x
>    cc1: all warnings being treated as errors
> 
> 
> vim +34 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c
> 
> f8a58d639dd95b drivers/gpu/drm/i915/intel_guc_ct.c       Michal Wajdeczko       2017-05-26  @6  #include "i915_drv.h"
> f8a58d639dd95b drivers/gpu/drm/i915/intel_guc_ct.c       Michal Wajdeczko       2017-05-26   7  #include "intel_guc_ct.h"
> 18c8832523c850 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Michal Wajdeczko       2020-01-11   8  #include "gt/intel_gt.h"
> f8a58d639dd95b drivers/gpu/drm/i915/intel_guc_ct.c       Michal Wajdeczko       2017-05-26   9  
> a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  10  static inline struct intel_guc *ct_to_guc(struct intel_guc_ct *ct)
> a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  11  {
> a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  12  	return container_of(ct, struct intel_guc, ct);
> a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  13  }
> a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  14  
> a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  15  static inline struct intel_gt *ct_to_gt(struct intel_guc_ct *ct)
> a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  16  {
> a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  17  	return guc_to_gt(ct_to_guc(ct));
> a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  18  }
> a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  19  
> a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  20  static inline struct drm_i915_private *ct_to_i915(struct intel_guc_ct *ct)
> a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  21  {
> a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  22  	return ct_to_gt(ct)->i915;
> a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  23  }
> a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  24  
> a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  25  static inline struct drm_device *ct_to_drm(struct intel_guc_ct *ct)
> a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  26  {
> a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  27  	return &ct_to_i915(ct)->drm;
> a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  28  }
> a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  29  
> 18c8832523c850 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Michal Wajdeczko       2020-01-11  30  #define CT_ERROR(_ct, _fmt, ...) \
> a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  31  	drm_err(ct_to_drm(_ct), "CT: " _fmt, ##__VA_ARGS__)
> 0a015ff9730c16 drivers/gpu/drm/i915/intel_guc_ct.c       Michal Wajdeczko       2018-03-26  32  #ifdef CONFIG_DRM_I915_DEBUG_GUC
> 77b20896d57e91 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Michal Wajdeczko       2020-01-17  33  #define CT_DEBUG(_ct, _fmt, ...) \
> a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02 @34  	drm_dbg(ct_to_drm(_ct), "CT: " _fmt, ##__VA_ARGS__)
> 0a015ff9730c16 drivers/gpu/drm/i915/intel_guc_ct.c       Michal Wajdeczko       2018-03-26  35  #else
> 77b20896d57e91 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Michal Wajdeczko       2020-01-17  36  #define CT_DEBUG(...)	do { } while (0)
> 0a015ff9730c16 drivers/gpu/drm/i915/intel_guc_ct.c       Michal Wajdeczko       2018-03-26  37  #endif
> a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  38  #define CT_PROBE_ERROR(_ct, _fmt, ...) \
> a4c78275ba7e01 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c Daniele Ceraolo Spurio 2021-06-02  39  	i915_probe_error(ct_to_i915(ct), "CT: " _fmt, ##__VA_ARGS__)
> 0a015ff9730c16 drivers/gpu/drm/i915/intel_guc_ct.c       Michal Wajdeczko       2018-03-26  40  
> 
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org


> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c
index 34c582105860..6864819b75a9 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c
@@ -168,10 +168,10 @@  int intel_guc_ct_init(struct intel_guc_ct *ct)
 	struct intel_guc *guc = ct_to_guc(ct);
 	struct guc_ct_buffer_desc *desc;
 	u32 blob_size;
+	u32 cmds_size;
 	void *blob;
 	u32 *cmds;
 	int err;
-	int i;
 
 	GEM_BUG_ON(ct->vma);
 
@@ -207,15 +207,23 @@  int intel_guc_ct_init(struct intel_guc_ct *ct)
 
 	CT_DEBUG(ct, "base=%#x size=%u\n", intel_guc_ggtt_offset(guc, ct->vma), blob_size);
 
-	/* store pointers to desc and cmds */
-	for (i = 0; i < ARRAY_SIZE(ct->ctbs); i++) {
-		GEM_BUG_ON((i !=  CTB_SEND) && (i != CTB_RECV));
+	/* store pointers to desc and cmds for send ctb */
+	desc = blob;
+	cmds = blob + PAGE_SIZE / 2;
+	cmds_size = PAGE_SIZE / 4;
+	CT_DEBUG(ct, "%s desc %#lx cmds %#lx size %u\n", "send",
+		 ptrdiff(desc, blob), ptrdiff(cmds, blob), cmds_size);
 
-		desc = blob + PAGE_SIZE / 4 * i;
-		cmds = blob + PAGE_SIZE / 4 * i + PAGE_SIZE / 2;
+	guc_ct_buffer_init(&ct->ctbs.send, desc, cmds, cmds_size);
 
-		guc_ct_buffer_init(&ct->ctbs[i], desc, cmds, PAGE_SIZE / 4);
-	}
+	/* store pointers to desc and cmds for recv ctb */
+	desc = blob + PAGE_SIZE / 4;
+	cmds = blob + PAGE_SIZE / 4 + PAGE_SIZE / 2;
+	cmds_size = PAGE_SIZE / 4;
+	CT_DEBUG(ct, "%s desc %#lx cmds %#lx size %u\n", "recv",
+		 ptrdiff(desc, blob), ptrdiff(cmds, blob), cmds_size);
+
+	guc_ct_buffer_init(&ct->ctbs.recv, desc, cmds, cmds_size);
 
 	return 0;
 }
@@ -246,7 +254,6 @@  int intel_guc_ct_enable(struct intel_guc_ct *ct)
 	u32 base, cmds;
 	void *blob;
 	int err;
-	int i;
 
 	GEM_BUG_ON(ct->enabled);
 
@@ -257,28 +264,25 @@  int intel_guc_ct_enable(struct intel_guc_ct *ct)
 
 	/* blob should start with send descriptor */
 	blob = __px_vaddr(ct->vma->obj);
-	GEM_BUG_ON(blob != ct->ctbs[CTB_SEND].desc);
+	GEM_BUG_ON(blob != ct->ctbs.send.desc);
 
 	/* (re)initialize descriptors */
-	for (i = 0; i < ARRAY_SIZE(ct->ctbs); i++) {
-		GEM_BUG_ON((i != CTB_SEND) && (i != CTB_RECV));
+	cmds = base + ptrdiff(ct->ctbs.send.cmds, blob);
+	guc_ct_buffer_reset(&ct->ctbs.send, cmds);
 
-		cmds = base + ptrdiff(ct->ctbs[i].cmds, blob);
-		CT_DEBUG(ct, "%d: cmds addr=%#x\n", i, cmds);
-
-		guc_ct_buffer_reset(&ct->ctbs[i], cmds);
-	}
+	cmds = base + ptrdiff(ct->ctbs.recv.cmds, blob);
+	guc_ct_buffer_reset(&ct->ctbs.recv, cmds);
 
 	/*
 	 * Register both CT buffers starting with RECV buffer.
 	 * Descriptors are in first half of the blob.
 	 */
-	err = ct_register_buffer(ct, base + ptrdiff(ct->ctbs[CTB_RECV].desc, blob),
+	err = ct_register_buffer(ct, base + ptrdiff(ct->ctbs.recv.desc, blob),
 				 INTEL_GUC_CT_BUFFER_TYPE_RECV);
 	if (unlikely(err))
 		goto err_out;
 
-	err = ct_register_buffer(ct, base + ptrdiff(ct->ctbs[CTB_SEND].desc, blob),
+	err = ct_register_buffer(ct, base + ptrdiff(ct->ctbs.send.desc, blob),
 				 INTEL_GUC_CT_BUFFER_TYPE_SEND);
 	if (unlikely(err))
 		goto err_deregister;
@@ -341,7 +345,7 @@  static int ct_write(struct intel_guc_ct *ct,
 		    u32 len /* in dwords */,
 		    u32 fence)
 {
-	struct intel_guc_ct_buffer *ctb = &ct->ctbs[CTB_SEND];
+	struct intel_guc_ct_buffer *ctb = &ct->ctbs.send;
 	struct guc_ct_buffer_desc *desc = ctb->desc;
 	u32 head = desc->head;
 	u32 tail = desc->tail;
@@ -557,7 +561,7 @@  static inline bool ct_header_is_response(u32 header)
 
 static int ct_read(struct intel_guc_ct *ct, u32 *data)
 {
-	struct intel_guc_ct_buffer *ctb = &ct->ctbs[CTB_RECV];
+	struct intel_guc_ct_buffer *ctb = &ct->ctbs.recv;
 	struct guc_ct_buffer_desc *desc = ctb->desc;
 	u32 head = desc->head;
 	u32 tail = desc->tail;
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.h b/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.h
index 4009e2dd0de4..fc9486779e87 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.h
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.h
@@ -47,8 +47,11 @@  struct intel_guc_ct {
 	struct i915_vma *vma;
 	bool enabled;
 
-	/* buffers for sending(0) and receiving(1) commands */
-	struct intel_guc_ct_buffer ctbs[2];
+	/* buffers for sending and receiving commands */
+	struct {
+		struct intel_guc_ct_buffer send;
+		struct intel_guc_ct_buffer recv;
+	} ctbs;
 
 	struct {
 		u32 last_fence; /* last fence used to send request */