All of lore.kernel.org
 help / color / mirror / Atom feed
From: kbuild test robot <lkp@intel.com>
To: Mikita Lipski <mikita.lipski@amd.com>
Cc: David Francis <David.Francis@amd.com>,
	kbuild-all@lists.01.org, dri-devel@lists.freedesktop.org,
	Nikola Cornij <nikola.cornij@amd.com>
Subject: [radeon-alex:amd-staging-drm-next 852/868] drivers/gpu/drm/drm_dsc.c:435:16: note: in expansion of macro 'max'
Date: Tue, 19 Nov 2019 08:57:11 +0800	[thread overview]
Message-ID: <201911190810.cb9chd8J%lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 9025 bytes --]

tree:   git://people.freedesktop.org/~agd5f/linux.git amd-staging-drm-next
head:   c749b504bf85eee2edc857c4549d83d34730113c
commit: 8d47a4e3262de5f749806245d087dc8aa5ae2253 [852/868] drm/dsc: Update drm_dsc to reflect native 4.2.0 DSC spec
config: riscv-defconfig (attached as .config)
compiler: riscv64-linux-gcc (GCC) 7.4.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout 8d47a4e3262de5f749806245d087dc8aa5ae2253
        # save the attached .config to linux build tree
        GCC_VERSION=7.4.0 make.cross ARCH=riscv 

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

All warnings (new ones prefixed by >>):

   In file included from drivers/gpu/drm/drm_dsc.c:9:0:
   drivers/gpu/drm/drm_dsc.c: In function 'drm_dsc_compute_rc_parameters':
   include/linux/kernel.h:821:29: warning: comparison of distinct pointer types lacks a cast
      (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
                                ^
   include/linux/kernel.h:835:4: note: in expansion of macro '__typecheck'
      (__typecheck(x, y) && __no_side_effects(x, y))
       ^~~~~~~~~~~
   include/linux/kernel.h:845:24: note: in expansion of macro '__safe_cmp'
     __builtin_choose_expr(__safe_cmp(x, y), \
                           ^~~~~~~~~~
   include/linux/kernel.h:861:19: note: in expansion of macro '__careful_cmp'
    #define max(x, y) __careful_cmp(x, y, >)
                      ^~~~~~~~~~~~~
>> drivers/gpu/drm/drm_dsc.c:435:16: note: in expansion of macro 'max'
      max_offset = max(max_offset,
                   ^~~
   include/linux/kernel.h:821:29: warning: comparison of distinct pointer types lacks a cast
      (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
                                ^
   include/linux/kernel.h:835:4: note: in expansion of macro '__typecheck'
      (__typecheck(x, y) && __no_side_effects(x, y))
       ^~~~~~~~~~~
   include/linux/kernel.h:845:24: note: in expansion of macro '__safe_cmp'
     __builtin_choose_expr(__safe_cmp(x, y), \
                           ^~~~~~~~~~
   include/linux/kernel.h:861:19: note: in expansion of macro '__careful_cmp'
    #define max(x, y) __careful_cmp(x, y, >)
                      ^~~~~~~~~~~~~
   drivers/gpu/drm/drm_dsc.c:440:16: note: in expansion of macro 'max'
      max_offset = max(max_offset,
                   ^~~

vim +/max +435 drivers/gpu/drm/drm_dsc.c

   279	
   280	/**
   281	 * drm_dsc_compute_rc_parameters() - Write rate control
   282	 * parameters to the dsc configuration defined in
   283	 * &struct drm_dsc_config in accordance with the DSC 1.2
   284	 * specification. Some configuration fields must be present
   285	 * beforehand.
   286	 *
   287	 * @vdsc_cfg:
   288	 * DSC Configuration data partially filled by driver
   289	 */
   290	int drm_dsc_compute_rc_parameters(struct drm_dsc_config *vdsc_cfg)
   291	{
   292		unsigned long groups_per_line = 0;
   293		unsigned long groups_total = 0;
   294		unsigned long num_extra_mux_bits = 0;
   295		unsigned long slice_bits = 0;
   296		unsigned long hrd_delay = 0;
   297		unsigned long final_scale = 0;
   298		unsigned long rbs_min = 0;
   299		unsigned long max_offset = 0;
   300	
   301		if (vdsc_cfg->native_420 || vdsc_cfg->native_422) {
   302			/* Number of groups used to code each line of a slice */
   303			groups_per_line = DIV_ROUND_UP(vdsc_cfg->slice_width / 2,
   304						       DSC_RC_PIXELS_PER_GROUP);
   305	
   306			/* chunksize in Bytes */
   307			vdsc_cfg->slice_chunk_size = DIV_ROUND_UP(vdsc_cfg->slice_width / 2 *
   308								  vdsc_cfg->bits_per_pixel,
   309								  (8 * 16));
   310		} else {
   311			/* Number of groups used to code each line of a slice */
   312			groups_per_line = DIV_ROUND_UP(vdsc_cfg->slice_width,
   313						       DSC_RC_PIXELS_PER_GROUP);
   314	
   315			/* chunksize in Bytes */
   316			vdsc_cfg->slice_chunk_size = DIV_ROUND_UP(vdsc_cfg->slice_width *
   317								  vdsc_cfg->bits_per_pixel,
   318								  (8 * 16));
   319		}
   320	
   321		if (vdsc_cfg->convert_rgb)
   322			num_extra_mux_bits = 3 * (vdsc_cfg->mux_word_size +
   323						  (4 * vdsc_cfg->bits_per_component + 4)
   324						  - 2);
   325		else if (vdsc_cfg->native_422)
   326			num_extra_mux_bits = 4 * vdsc_cfg->mux_word_size +
   327				(4 * vdsc_cfg->bits_per_component + 4) +
   328				3 * (4 * vdsc_cfg->bits_per_component) - 2;
   329		else
   330			num_extra_mux_bits = 3 * vdsc_cfg->mux_word_size +
   331				(4 * vdsc_cfg->bits_per_component + 4) +
   332				2 * (4 * vdsc_cfg->bits_per_component) - 2;
   333		/* Number of bits in one Slice */
   334		slice_bits = 8 * vdsc_cfg->slice_chunk_size * vdsc_cfg->slice_height;
   335	
   336		while ((num_extra_mux_bits > 0) &&
   337		       ((slice_bits - num_extra_mux_bits) % vdsc_cfg->mux_word_size))
   338			num_extra_mux_bits--;
   339	
   340		if (groups_per_line < vdsc_cfg->initial_scale_value - 8)
   341			vdsc_cfg->initial_scale_value = groups_per_line + 8;
   342	
   343		/* scale_decrement_interval calculation according to DSC spec 1.11 */
   344		if (vdsc_cfg->initial_scale_value > 8)
   345			vdsc_cfg->scale_decrement_interval = groups_per_line /
   346				(vdsc_cfg->initial_scale_value - 8);
   347		else
   348			vdsc_cfg->scale_decrement_interval = DSC_SCALE_DECREMENT_INTERVAL_MAX;
   349	
   350		vdsc_cfg->final_offset = vdsc_cfg->rc_model_size -
   351			(vdsc_cfg->initial_xmit_delay *
   352			 vdsc_cfg->bits_per_pixel + 8) / 16 + num_extra_mux_bits;
   353	
   354		if (vdsc_cfg->final_offset >= vdsc_cfg->rc_model_size) {
   355			DRM_DEBUG_KMS("FinalOfs < RcModelSze for this InitialXmitDelay\n");
   356			return -ERANGE;
   357		}
   358	
   359		final_scale = (vdsc_cfg->rc_model_size * 8) /
   360			(vdsc_cfg->rc_model_size - vdsc_cfg->final_offset);
   361		if (vdsc_cfg->slice_height > 1)
   362			/*
   363			 * NflBpgOffset is 16 bit value with 11 fractional bits
   364			 * hence we multiply by 2^11 for preserving the
   365			 * fractional part
   366			 */
   367			vdsc_cfg->nfl_bpg_offset = DIV_ROUND_UP((vdsc_cfg->first_line_bpg_offset << 11),
   368								(vdsc_cfg->slice_height - 1));
   369		else
   370			vdsc_cfg->nfl_bpg_offset = 0;
   371	
   372		/* 2^16 - 1 */
   373		if (vdsc_cfg->nfl_bpg_offset > 65535) {
   374			DRM_DEBUG_KMS("NflBpgOffset is too large for this slice height\n");
   375			return -ERANGE;
   376		}
   377	
   378		if (vdsc_cfg->slice_height > 2)
   379			vdsc_cfg->nsl_bpg_offset = DIV_ROUND_UP((vdsc_cfg->second_line_bpg_offset << 11),
   380								(vdsc_cfg->slice_height - 1));
   381		else
   382			vdsc_cfg->nsl_bpg_offset = 0;
   383	
   384		if (vdsc_cfg->nsl_bpg_offset > 65535) {
   385			DRM_DEBUG_KMS("NslBpgOffset is too large for this slice height\n");
   386			return -ERANGE;
   387		}
   388	
   389		/* Number of groups used to code the entire slice */
   390		groups_total = groups_per_line * vdsc_cfg->slice_height;
   391	
   392		/* slice_bpg_offset is 16 bit value with 11 fractional bits */
   393		vdsc_cfg->slice_bpg_offset = DIV_ROUND_UP(((vdsc_cfg->rc_model_size -
   394							    vdsc_cfg->initial_offset +
   395							    num_extra_mux_bits) << 11),
   396							  groups_total);
   397	
   398		if (final_scale > 9) {
   399			/*
   400			 * ScaleIncrementInterval =
   401			 * finaloffset/((NflBpgOffset + SliceBpgOffset)*8(finalscale - 1.125))
   402			 * as (NflBpgOffset + SliceBpgOffset) has 11 bit fractional value,
   403			 * we need divide by 2^11 from pstDscCfg values
   404			 */
   405			vdsc_cfg->scale_increment_interval =
   406					(vdsc_cfg->final_offset * (1 << 11)) /
   407					((vdsc_cfg->nfl_bpg_offset +
   408					vdsc_cfg->nsl_bpg_offset +
   409					vdsc_cfg->slice_bpg_offset) *
   410					(final_scale - 9));
   411		} else {
   412			/*
   413			 * If finalScaleValue is less than or equal to 9, a value of 0 should
   414			 * be used to disable the scale increment at the end of the slice
   415			 */
   416			vdsc_cfg->scale_increment_interval = 0;
   417		}
   418	
   419		if (vdsc_cfg->scale_increment_interval > 65535) {
   420			DRM_DEBUG_KMS("ScaleIncrementInterval is large for slice height\n");
   421			return -ERANGE;
   422		}
   423	
   424		/*
   425		 * DSC spec mentions that bits_per_pixel specifies the target
   426		 * bits/pixel (bpp) rate that is used by the encoder,
   427		 * in steps of 1/16 of a bit per pixel
   428		 */
   429		if (vdsc_cfg->dsc_version_minor == 2 && (vdsc_cfg->native_420 || vdsc_cfg->native_422)) {
   430	
   431			max_offset = compute_offset(vdsc_cfg, DSC_RC_PIXELS_PER_GROUP, groups_per_line,
   432						DIV_ROUND_UP(vdsc_cfg->initial_xmit_delay,
   433							DSC_RC_PIXELS_PER_GROUP));
   434	
 > 435			max_offset = max(max_offset,

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 18442 bytes --]

[-- Attachment #3: Type: text/plain, Size: 159 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

WARNING: multiple messages have this Message-ID (diff)
From: kbuild test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: [radeon-alex:amd-staging-drm-next 852/868] drivers/gpu/drm/drm_dsc.c:435:16: note: in expansion of macro 'max'
Date: Tue, 19 Nov 2019 08:57:11 +0800	[thread overview]
Message-ID: <201911190810.cb9chd8J%lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 9240 bytes --]

tree:   git://people.freedesktop.org/~agd5f/linux.git amd-staging-drm-next
head:   c749b504bf85eee2edc857c4549d83d34730113c
commit: 8d47a4e3262de5f749806245d087dc8aa5ae2253 [852/868] drm/dsc: Update drm_dsc to reflect native 4.2.0 DSC spec
config: riscv-defconfig (attached as .config)
compiler: riscv64-linux-gcc (GCC) 7.4.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout 8d47a4e3262de5f749806245d087dc8aa5ae2253
        # save the attached .config to linux build tree
        GCC_VERSION=7.4.0 make.cross ARCH=riscv 

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

All warnings (new ones prefixed by >>):

   In file included from drivers/gpu/drm/drm_dsc.c:9:0:
   drivers/gpu/drm/drm_dsc.c: In function 'drm_dsc_compute_rc_parameters':
   include/linux/kernel.h:821:29: warning: comparison of distinct pointer types lacks a cast
      (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
                                ^
   include/linux/kernel.h:835:4: note: in expansion of macro '__typecheck'
      (__typecheck(x, y) && __no_side_effects(x, y))
       ^~~~~~~~~~~
   include/linux/kernel.h:845:24: note: in expansion of macro '__safe_cmp'
     __builtin_choose_expr(__safe_cmp(x, y), \
                           ^~~~~~~~~~
   include/linux/kernel.h:861:19: note: in expansion of macro '__careful_cmp'
    #define max(x, y) __careful_cmp(x, y, >)
                      ^~~~~~~~~~~~~
>> drivers/gpu/drm/drm_dsc.c:435:16: note: in expansion of macro 'max'
      max_offset = max(max_offset,
                   ^~~
   include/linux/kernel.h:821:29: warning: comparison of distinct pointer types lacks a cast
      (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
                                ^
   include/linux/kernel.h:835:4: note: in expansion of macro '__typecheck'
      (__typecheck(x, y) && __no_side_effects(x, y))
       ^~~~~~~~~~~
   include/linux/kernel.h:845:24: note: in expansion of macro '__safe_cmp'
     __builtin_choose_expr(__safe_cmp(x, y), \
                           ^~~~~~~~~~
   include/linux/kernel.h:861:19: note: in expansion of macro '__careful_cmp'
    #define max(x, y) __careful_cmp(x, y, >)
                      ^~~~~~~~~~~~~
   drivers/gpu/drm/drm_dsc.c:440:16: note: in expansion of macro 'max'
      max_offset = max(max_offset,
                   ^~~

vim +/max +435 drivers/gpu/drm/drm_dsc.c

   279	
   280	/**
   281	 * drm_dsc_compute_rc_parameters() - Write rate control
   282	 * parameters to the dsc configuration defined in
   283	 * &struct drm_dsc_config in accordance with the DSC 1.2
   284	 * specification. Some configuration fields must be present
   285	 * beforehand.
   286	 *
   287	 * @vdsc_cfg:
   288	 * DSC Configuration data partially filled by driver
   289	 */
   290	int drm_dsc_compute_rc_parameters(struct drm_dsc_config *vdsc_cfg)
   291	{
   292		unsigned long groups_per_line = 0;
   293		unsigned long groups_total = 0;
   294		unsigned long num_extra_mux_bits = 0;
   295		unsigned long slice_bits = 0;
   296		unsigned long hrd_delay = 0;
   297		unsigned long final_scale = 0;
   298		unsigned long rbs_min = 0;
   299		unsigned long max_offset = 0;
   300	
   301		if (vdsc_cfg->native_420 || vdsc_cfg->native_422) {
   302			/* Number of groups used to code each line of a slice */
   303			groups_per_line = DIV_ROUND_UP(vdsc_cfg->slice_width / 2,
   304						       DSC_RC_PIXELS_PER_GROUP);
   305	
   306			/* chunksize in Bytes */
   307			vdsc_cfg->slice_chunk_size = DIV_ROUND_UP(vdsc_cfg->slice_width / 2 *
   308								  vdsc_cfg->bits_per_pixel,
   309								  (8 * 16));
   310		} else {
   311			/* Number of groups used to code each line of a slice */
   312			groups_per_line = DIV_ROUND_UP(vdsc_cfg->slice_width,
   313						       DSC_RC_PIXELS_PER_GROUP);
   314	
   315			/* chunksize in Bytes */
   316			vdsc_cfg->slice_chunk_size = DIV_ROUND_UP(vdsc_cfg->slice_width *
   317								  vdsc_cfg->bits_per_pixel,
   318								  (8 * 16));
   319		}
   320	
   321		if (vdsc_cfg->convert_rgb)
   322			num_extra_mux_bits = 3 * (vdsc_cfg->mux_word_size +
   323						  (4 * vdsc_cfg->bits_per_component + 4)
   324						  - 2);
   325		else if (vdsc_cfg->native_422)
   326			num_extra_mux_bits = 4 * vdsc_cfg->mux_word_size +
   327				(4 * vdsc_cfg->bits_per_component + 4) +
   328				3 * (4 * vdsc_cfg->bits_per_component) - 2;
   329		else
   330			num_extra_mux_bits = 3 * vdsc_cfg->mux_word_size +
   331				(4 * vdsc_cfg->bits_per_component + 4) +
   332				2 * (4 * vdsc_cfg->bits_per_component) - 2;
   333		/* Number of bits in one Slice */
   334		slice_bits = 8 * vdsc_cfg->slice_chunk_size * vdsc_cfg->slice_height;
   335	
   336		while ((num_extra_mux_bits > 0) &&
   337		       ((slice_bits - num_extra_mux_bits) % vdsc_cfg->mux_word_size))
   338			num_extra_mux_bits--;
   339	
   340		if (groups_per_line < vdsc_cfg->initial_scale_value - 8)
   341			vdsc_cfg->initial_scale_value = groups_per_line + 8;
   342	
   343		/* scale_decrement_interval calculation according to DSC spec 1.11 */
   344		if (vdsc_cfg->initial_scale_value > 8)
   345			vdsc_cfg->scale_decrement_interval = groups_per_line /
   346				(vdsc_cfg->initial_scale_value - 8);
   347		else
   348			vdsc_cfg->scale_decrement_interval = DSC_SCALE_DECREMENT_INTERVAL_MAX;
   349	
   350		vdsc_cfg->final_offset = vdsc_cfg->rc_model_size -
   351			(vdsc_cfg->initial_xmit_delay *
   352			 vdsc_cfg->bits_per_pixel + 8) / 16 + num_extra_mux_bits;
   353	
   354		if (vdsc_cfg->final_offset >= vdsc_cfg->rc_model_size) {
   355			DRM_DEBUG_KMS("FinalOfs < RcModelSze for this InitialXmitDelay\n");
   356			return -ERANGE;
   357		}
   358	
   359		final_scale = (vdsc_cfg->rc_model_size * 8) /
   360			(vdsc_cfg->rc_model_size - vdsc_cfg->final_offset);
   361		if (vdsc_cfg->slice_height > 1)
   362			/*
   363			 * NflBpgOffset is 16 bit value with 11 fractional bits
   364			 * hence we multiply by 2^11 for preserving the
   365			 * fractional part
   366			 */
   367			vdsc_cfg->nfl_bpg_offset = DIV_ROUND_UP((vdsc_cfg->first_line_bpg_offset << 11),
   368								(vdsc_cfg->slice_height - 1));
   369		else
   370			vdsc_cfg->nfl_bpg_offset = 0;
   371	
   372		/* 2^16 - 1 */
   373		if (vdsc_cfg->nfl_bpg_offset > 65535) {
   374			DRM_DEBUG_KMS("NflBpgOffset is too large for this slice height\n");
   375			return -ERANGE;
   376		}
   377	
   378		if (vdsc_cfg->slice_height > 2)
   379			vdsc_cfg->nsl_bpg_offset = DIV_ROUND_UP((vdsc_cfg->second_line_bpg_offset << 11),
   380								(vdsc_cfg->slice_height - 1));
   381		else
   382			vdsc_cfg->nsl_bpg_offset = 0;
   383	
   384		if (vdsc_cfg->nsl_bpg_offset > 65535) {
   385			DRM_DEBUG_KMS("NslBpgOffset is too large for this slice height\n");
   386			return -ERANGE;
   387		}
   388	
   389		/* Number of groups used to code the entire slice */
   390		groups_total = groups_per_line * vdsc_cfg->slice_height;
   391	
   392		/* slice_bpg_offset is 16 bit value with 11 fractional bits */
   393		vdsc_cfg->slice_bpg_offset = DIV_ROUND_UP(((vdsc_cfg->rc_model_size -
   394							    vdsc_cfg->initial_offset +
   395							    num_extra_mux_bits) << 11),
   396							  groups_total);
   397	
   398		if (final_scale > 9) {
   399			/*
   400			 * ScaleIncrementInterval =
   401			 * finaloffset/((NflBpgOffset + SliceBpgOffset)*8(finalscale - 1.125))
   402			 * as (NflBpgOffset + SliceBpgOffset) has 11 bit fractional value,
   403			 * we need divide by 2^11 from pstDscCfg values
   404			 */
   405			vdsc_cfg->scale_increment_interval =
   406					(vdsc_cfg->final_offset * (1 << 11)) /
   407					((vdsc_cfg->nfl_bpg_offset +
   408					vdsc_cfg->nsl_bpg_offset +
   409					vdsc_cfg->slice_bpg_offset) *
   410					(final_scale - 9));
   411		} else {
   412			/*
   413			 * If finalScaleValue is less than or equal to 9, a value of 0 should
   414			 * be used to disable the scale increment at the end of the slice
   415			 */
   416			vdsc_cfg->scale_increment_interval = 0;
   417		}
   418	
   419		if (vdsc_cfg->scale_increment_interval > 65535) {
   420			DRM_DEBUG_KMS("ScaleIncrementInterval is large for slice height\n");
   421			return -ERANGE;
   422		}
   423	
   424		/*
   425		 * DSC spec mentions that bits_per_pixel specifies the target
   426		 * bits/pixel (bpp) rate that is used by the encoder,
   427		 * in steps of 1/16 of a bit per pixel
   428		 */
   429		if (vdsc_cfg->dsc_version_minor == 2 && (vdsc_cfg->native_420 || vdsc_cfg->native_422)) {
   430	
   431			max_offset = compute_offset(vdsc_cfg, DSC_RC_PIXELS_PER_GROUP, groups_per_line,
   432						DIV_ROUND_UP(vdsc_cfg->initial_xmit_delay,
   433							DSC_RC_PIXELS_PER_GROUP));
   434	
 > 435			max_offset = max(max_offset,

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 18442 bytes --]

             reply	other threads:[~2019-11-19  0:57 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-19  0:57 kbuild test robot [this message]
2019-11-19  0:57 ` [radeon-alex:amd-staging-drm-next 852/868] drivers/gpu/drm/drm_dsc.c:435:16: note: in expansion of macro 'max' kbuild test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201911190810.cb9chd8J%lkp@intel.com \
    --to=lkp@intel.com \
    --cc=David.Francis@amd.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=kbuild-all@lists.01.org \
    --cc=mikita.lipski@amd.com \
    --cc=nikola.cornij@amd.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.