linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] staging: greybus: fix warnings detected by sparse
@ 2020-08-24  2:50 Coiby Xu
  2020-08-24  9:41 ` Dan Carpenter
  0 siblings, 1 reply; 3+ messages in thread
From: Coiby Xu @ 2020-08-24  2:50 UTC (permalink / raw)
  To: devel
  Cc: Vaibhav Agarwal, Mark Greer, Johan Hovold, Alex Elder,
	Greg Kroah-Hartman, moderated list:GREYBUS SUBSYSTEM, open list

This patch fix the following warnings from sparse,

$ make C=2 drivers/staging/greybus/
drivers/staging/greybus/audio_codec.c:691:36: warning: incorrect type in initializer (different base types)
drivers/staging/greybus/audio_codec.c:691:36:    expected unsigned long long [usertype] formats
drivers/staging/greybus/audio_codec.c:691:36:    got restricted snd_pcm_format_t [usertype]
drivers/staging/greybus/audio_codec.c:701:36: warning: incorrect type in initializer (different base types)
drivers/staging/greybus/audio_codec.c:701:36:    expected unsigned long long [usertype] formats
drivers/staging/greybus/audio_codec.c:701:36:    got restricted snd_pcm_format_t [usertype]
drivers/staging/greybus/audio_module.c:222:25: warning: incorrect type in assignment (different base types)
drivers/staging/greybus/audio_module.c:222:25:    expected restricted __le16 [usertype] data_cport
drivers/staging/greybus/audio_module.c:222:25:    got unsigned short [usertype] intf_cport_id
drivers/staging/greybus/audio_topology.c:460:40: warning: restricted __le32 degrades to integer
drivers/staging/greybus/audio_topology.c:691:41: warning: incorrect type in assignment (different base types)
drivers/staging/greybus/audio_topology.c:691:41:    expected unsigned int access
drivers/staging/greybus/audio_topology.c:691:41:    got restricted __le32 [usertype] access
drivers/staging/greybus/audio_topology.c:746:44: warning: incorrect type in assignment (different base types)
drivers/staging/greybus/audio_topology.c:746:44:    expected unsigned int
drivers/staging/greybus/audio_topology.c:746:44:    got restricted __le32
drivers/staging/greybus/audio_topology.c:748:52: warning: incorrect type in assignment (different base types)
drivers/staging/greybus/audio_topology.c:748:52:    expected unsigned int
drivers/staging/greybus/audio_topology.c:748:52:    got restricted __le32
drivers/staging/greybus/audio_topology.c:802:42: warning: restricted __le32 degrades to integer
drivers/staging/greybus/audio_topology.c:805:50: warning: incorrect type in assignment (different base types)
drivers/staging/greybus/audio_topology.c:805:50:    expected restricted __le32
drivers/staging/greybus/audio_topology.c:805:50:    got unsigned int
drivers/staging/greybus/audio_topology.c:814:50: warning: restricted __le32 degrades to integer
drivers/staging/greybus/audio_topology.c:817:58: warning: incorrect type in assignment (different base types)
drivers/staging/greybus/audio_topology.c:817:58:    expected restricted __le32
drivers/staging/greybus/audio_topology.c:817:58:    got unsigned int
drivers/staging/greybus/audio_topology.c:889:25: warning: incorrect type in assignment (different base types)
drivers/staging/greybus/audio_topology.c:889:25:    expected unsigned int access
drivers/staging/greybus/audio_topology.c:889:25:    got restricted __le32 [usertype] access

Signed-off-by: Coiby Xu <coiby.xu@gmail.com>
---
 drivers/staging/greybus/audio_codec.c    |  4 ++--
 drivers/staging/greybus/audio_module.c   |  2 +-
 drivers/staging/greybus/audio_topology.c | 18 +++++++++---------
 3 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/drivers/staging/greybus/audio_codec.c b/drivers/staging/greybus/audio_codec.c
index 74538f8c5fa4..494aa823e998 100644
--- a/drivers/staging/greybus/audio_codec.c
+++ b/drivers/staging/greybus/audio_codec.c
@@ -688,7 +688,7 @@ static struct snd_soc_dai_driver gbaudio_dai[] = {
 		.playback = {
 			.stream_name = "I2S 0 Playback",
 			.rates = SNDRV_PCM_RATE_48000,
-			.formats = SNDRV_PCM_FORMAT_S16_LE,
+			.formats = SNDRV_PCM_FMTBIT_S16_LE,
 			.rate_max = 48000,
 			.rate_min = 48000,
 			.channels_min = 1,
@@ -698,7 +698,7 @@ static struct snd_soc_dai_driver gbaudio_dai[] = {
 		.capture = {
 			.stream_name = "I2S 0 Capture",
 			.rates = SNDRV_PCM_RATE_48000,
-			.formats = SNDRV_PCM_FORMAT_S16_LE,
+			.formats = SNDRV_PCM_FMTBIT_S16_LE,
 			.rate_max = 48000,
 			.rate_min = 48000,
 			.channels_min = 1,
diff --git a/drivers/staging/greybus/audio_module.c b/drivers/staging/greybus/audio_module.c
index 16f60256adb2..00848b84b022 100644
--- a/drivers/staging/greybus/audio_module.c
+++ b/drivers/staging/greybus/audio_module.c
@@ -219,7 +219,7 @@ static int gb_audio_add_data_connection(struct gbaudio_module_info *gbmodule,
 
 	greybus_set_drvdata(bundle, gbmodule);
 	dai->id = 0;
-	dai->data_cport = connection->intf_cport_id;
+	dai->data_cport = cpu_to_le16(connection->intf_cport_id);
 	dai->connection = connection;
 	list_add(&dai->list, &gbmodule->data_list);
 
diff --git a/drivers/staging/greybus/audio_topology.c b/drivers/staging/greybus/audio_topology.c
index 83b38ae8908c..56bf1a4f95ad 100644
--- a/drivers/staging/greybus/audio_topology.c
+++ b/drivers/staging/greybus/audio_topology.c
@@ -466,7 +466,7 @@ static int gbcodec_mixer_dapm_ctl_put(struct snd_kcontrol *kcontrol,
 		goto exit;
 
 	/* update ucontrol */
-	if (gbvalue.value.integer_value[0] != val) {
+	if (gbvalue.value.integer_value[0] != cpu_to_le32(val)) {
 		for (wi = 0; wi < wlist->num_widgets; wi++) {
 			widget = wlist->widgets[wi];
 			snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
@@ -689,7 +689,7 @@ static int gbaudio_tplg_create_kcontrol(struct gbaudio_module_info *gb,
 				return -ENOMEM;
 			ctldata->ctl_id = ctl->id;
 			ctldata->data_cport = le16_to_cpu(ctl->data_cport);
-			ctldata->access = ctl->access;
+			ctldata->access = le32_to_cpu(ctl->access);
 			ctldata->vcount = ctl->count_values;
 			ctldata->info = &ctl->info;
 			*kctl = (struct snd_kcontrol_new)
@@ -744,10 +744,10 @@ static int gbcodec_enum_dapm_ctl_get(struct snd_kcontrol *kcontrol,
 		return ret;
 	}
 
-	ucontrol->value.enumerated.item[0] = gbvalue.value.enumerated_item[0];
+	ucontrol->value.enumerated.item[0] = le32_to_cpu(gbvalue.value.enumerated_item[0]);
 	if (e->shift_l != e->shift_r)
 		ucontrol->value.enumerated.item[1] =
-			gbvalue.value.enumerated_item[1];
+			le32_to_cpu(gbvalue.value.enumerated_item[1]);
 
 	return 0;
 }
@@ -801,10 +801,10 @@ static int gbcodec_enum_dapm_ctl_put(struct snd_kcontrol *kcontrol,
 	mask = e->mask << e->shift_l;
 
 	if (gbvalue.value.enumerated_item[0] !=
-	    ucontrol->value.enumerated.item[0]) {
+	    cpu_to_le32(ucontrol->value.enumerated.item[0])) {
 		change = 1;
 		gbvalue.value.enumerated_item[0] =
-			ucontrol->value.enumerated.item[0];
+			cpu_to_le32(ucontrol->value.enumerated.item[0]);
 	}
 
 	if (e->shift_l != e->shift_r) {
@@ -813,10 +813,10 @@ static int gbcodec_enum_dapm_ctl_put(struct snd_kcontrol *kcontrol,
 		val |= ucontrol->value.enumerated.item[1] << e->shift_r;
 		mask |= e->mask << e->shift_r;
 		if (gbvalue.value.enumerated_item[1] !=
-		    ucontrol->value.enumerated.item[1]) {
+		    cpu_to_le32(ucontrol->value.enumerated.item[1])) {
 			change = 1;
 			gbvalue.value.enumerated_item[1] =
-				ucontrol->value.enumerated.item[1];
+				cpu_to_le32(ucontrol->value.enumerated.item[1]);
 		}
 	}
 
@@ -887,7 +887,7 @@ static int gbaudio_tplg_create_mixer_ctl(struct gbaudio_module_info *gb,
 		return -ENOMEM;
 	ctldata->ctl_id = ctl->id;
 	ctldata->data_cport = le16_to_cpu(ctl->data_cport);
-	ctldata->access = ctl->access;
+	ctldata->access = le32_to_cpu(ctl->access);
 	ctldata->vcount = ctl->count_values;
 	ctldata->info = &ctl->info;
 	*kctl = (struct snd_kcontrol_new)
-- 
2.28.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] staging: greybus: fix warnings detected by sparse
  2020-08-24  2:50 [PATCH] staging: greybus: fix warnings detected by sparse Coiby Xu
@ 2020-08-24  9:41 ` Dan Carpenter
  2020-09-16 11:17   ` Coiby Xu
  0 siblings, 1 reply; 3+ messages in thread
From: Dan Carpenter @ 2020-08-24  9:41 UTC (permalink / raw)
  To: Coiby Xu
  Cc: devel, Alex Elder, Vaibhav Agarwal, Greg Kroah-Hartman,
	Johan Hovold, Mark Greer, moderated list:GREYBUS SUBSYSTEM,
	open list

On Mon, Aug 24, 2020 at 10:50:59AM +0800, Coiby Xu wrote:
> This patch fix the following warnings from sparse,
> 
> $ make C=2 drivers/staging/greybus/
> drivers/staging/greybus/audio_codec.c:691:36: warning: incorrect type in initializer (different base types)
> drivers/staging/greybus/audio_codec.c:691:36:    expected unsigned long long [usertype] formats
> drivers/staging/greybus/audio_codec.c:691:36:    got restricted snd_pcm_format_t [usertype]
> drivers/staging/greybus/audio_codec.c:701:36: warning: incorrect type in initializer (different base types)
> drivers/staging/greybus/audio_codec.c:701:36:    expected unsigned long long [usertype] formats
> drivers/staging/greybus/audio_codec.c:701:36:    got restricted snd_pcm_format_t [usertype]
> drivers/staging/greybus/audio_module.c:222:25: warning: incorrect type in assignment (different base types)
> drivers/staging/greybus/audio_module.c:222:25:    expected restricted __le16 [usertype] data_cport
> drivers/staging/greybus/audio_module.c:222:25:    got unsigned short [usertype] intf_cport_id
> drivers/staging/greybus/audio_topology.c:460:40: warning: restricted __le32 degrades to integer
> drivers/staging/greybus/audio_topology.c:691:41: warning: incorrect type in assignment (different base types)
> drivers/staging/greybus/audio_topology.c:691:41:    expected unsigned int access
> drivers/staging/greybus/audio_topology.c:691:41:    got restricted __le32 [usertype] access
> drivers/staging/greybus/audio_topology.c:746:44: warning: incorrect type in assignment (different base types)
> drivers/staging/greybus/audio_topology.c:746:44:    expected unsigned int
> drivers/staging/greybus/audio_topology.c:746:44:    got restricted __le32
> drivers/staging/greybus/audio_topology.c:748:52: warning: incorrect type in assignment (different base types)
> drivers/staging/greybus/audio_topology.c:748:52:    expected unsigned int
> drivers/staging/greybus/audio_topology.c:748:52:    got restricted __le32
> drivers/staging/greybus/audio_topology.c:802:42: warning: restricted __le32 degrades to integer
> drivers/staging/greybus/audio_topology.c:805:50: warning: incorrect type in assignment (different base types)
> drivers/staging/greybus/audio_topology.c:805:50:    expected restricted __le32
> drivers/staging/greybus/audio_topology.c:805:50:    got unsigned int
> drivers/staging/greybus/audio_topology.c:814:50: warning: restricted __le32 degrades to integer
> drivers/staging/greybus/audio_topology.c:817:58: warning: incorrect type in assignment (different base types)
> drivers/staging/greybus/audio_topology.c:817:58:    expected restricted __le32
> drivers/staging/greybus/audio_topology.c:817:58:    got unsigned int
> drivers/staging/greybus/audio_topology.c:889:25: warning: incorrect type in assignment (different base types)
> drivers/staging/greybus/audio_topology.c:889:25:    expected unsigned int access
> drivers/staging/greybus/audio_topology.c:889:25:    got restricted __le32 [usertype] access
> 
> Signed-off-by: Coiby Xu <coiby.xu@gmail.com>
> ---
>  drivers/staging/greybus/audio_codec.c    |  4 ++--
>  drivers/staging/greybus/audio_module.c   |  2 +-
>  drivers/staging/greybus/audio_topology.c | 18 +++++++++---------
>  3 files changed, 12 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/staging/greybus/audio_codec.c b/drivers/staging/greybus/audio_codec.c
> index 74538f8c5fa4..494aa823e998 100644
> --- a/drivers/staging/greybus/audio_codec.c
> +++ b/drivers/staging/greybus/audio_codec.c
> @@ -688,7 +688,7 @@ static struct snd_soc_dai_driver gbaudio_dai[] = {
>  		.playback = {
>  			.stream_name = "I2S 0 Playback",
>  			.rates = SNDRV_PCM_RATE_48000,
> -			.formats = SNDRV_PCM_FORMAT_S16_LE,
> +			.formats = SNDRV_PCM_FMTBIT_S16_LE,
>  			.rate_max = 48000,
>  			.rate_min = 48000,
>  			.channels_min = 1,
> @@ -698,7 +698,7 @@ static struct snd_soc_dai_driver gbaudio_dai[] = {
>  		.capture = {
>  			.stream_name = "I2S 0 Capture",
>  			.rates = SNDRV_PCM_RATE_48000,
> -			.formats = SNDRV_PCM_FORMAT_S16_LE,
> +			.formats = SNDRV_PCM_FMTBIT_S16_LE,
>  			.rate_max = 48000,
>  			.rate_min = 48000,
>  			.channels_min = 1,

These changes need to be explained better.  We're changing formats from
2 to 1 << 2.

When you're writing commit messages, please imagine me as the target
audience.  I have a fairly decent understanding of the kernel and C, but
I don't know very much about the sound subsystem.

This code used to work, right?  How was it that changing a 2 to a 4
makes it better?  It needs to be explained in the commit message.  This
change probably needs to be split into a separate commit because it
seems different from the rest of the patch.

(Presumably the rest of the patch doesn't affect runtime on little
endian systems.  This is the part which affects runtime so it is
different from the rest).

> diff --git a/drivers/staging/greybus/audio_module.c b/drivers/staging/greybus/audio_module.c
> index 16f60256adb2..00848b84b022 100644
> --- a/drivers/staging/greybus/audio_module.c
> +++ b/drivers/staging/greybus/audio_module.c
> @@ -219,7 +219,7 @@ static int gb_audio_add_data_connection(struct gbaudio_module_info *gbmodule,
>  
>  	greybus_set_drvdata(bundle, gbmodule);
>  	dai->id = 0;
> -	dai->data_cport = connection->intf_cport_id;
> +	dai->data_cport = cpu_to_le16(connection->intf_cport_id);
>  	dai->connection = connection;
>  	list_add(&dai->list, &gbmodule->data_list);
>  

This is correct, but I think you should change the two places which
print the data_cport to print the CPU endian value.

   327          list_for_each_entry(dai, &gbmodule->data_list, list) {
   328                  ret = gb_connection_enable(dai->connection);
   329                  if (ret) {
   330                          dev_err(dev,
   331                                  "%d:Error while enabling %d:data connection\n",
   332                                  ret, dai->data_cport);
   333                          goto disable_data_connection;
   334                  }
   335          }

   449          list_for_each_entry(dai, &gbmodule->data_list, list) {
   450                  ret = gb_connection_enable(dai->connection);
   451                  if (ret) {
   452                          dev_err(dev,
   453                                  "%d:Error while enabling %d:data connection\n",
   454                                  ret, dai->data_cport);
   455                          return ret;
   456                  }
   457          }

Otherwise it's slightly confusing to mix the values.

The rest of the patch seems fine to me.

regards,
dan carpenter


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] staging: greybus: fix warnings detected by sparse
  2020-08-24  9:41 ` Dan Carpenter
@ 2020-09-16 11:17   ` Coiby Xu
  0 siblings, 0 replies; 3+ messages in thread
From: Coiby Xu @ 2020-09-16 11:17 UTC (permalink / raw)
  To: Dan Carpenter
  Cc: devel, Alex Elder, Vaibhav Agarwal, Greg Kroah-Hartman,
	Johan Hovold, Mark Greer, moderated list:GREYBUS SUBSYSTEM,
	open list

On Mon, Aug 24, 2020 at 12:41:48PM +0300, Dan Carpenter wrote:
>On Mon, Aug 24, 2020 at 10:50:59AM +0800, Coiby Xu wrote:
>> This patch fix the following warnings from sparse,
>>
>> $ make C=2 drivers/staging/greybus/
>> drivers/staging/greybus/audio_codec.c:691:36: warning: incorrect type in initializer (different base types)
>> drivers/staging/greybus/audio_codec.c:691:36:    expected unsigned long long [usertype] formats
>> drivers/staging/greybus/audio_codec.c:691:36:    got restricted snd_pcm_format_t [usertype]
>> drivers/staging/greybus/audio_codec.c:701:36: warning: incorrect type in initializer (different base types)
>> drivers/staging/greybus/audio_codec.c:701:36:    expected unsigned long long [usertype] formats
>> drivers/staging/greybus/audio_codec.c:701:36:    got restricted snd_pcm_format_t [usertype]
>> drivers/staging/greybus/audio_module.c:222:25: warning: incorrect type in assignment (different base types)
>> drivers/staging/greybus/audio_module.c:222:25:    expected restricted __le16 [usertype] data_cport
>> drivers/staging/greybus/audio_module.c:222:25:    got unsigned short [usertype] intf_cport_id
>> drivers/staging/greybus/audio_topology.c:460:40: warning: restricted __le32 degrades to integer
>> drivers/staging/greybus/audio_topology.c:691:41: warning: incorrect type in assignment (different base types)
>> drivers/staging/greybus/audio_topology.c:691:41:    expected unsigned int access
>> drivers/staging/greybus/audio_topology.c:691:41:    got restricted __le32 [usertype] access
>> drivers/staging/greybus/audio_topology.c:746:44: warning: incorrect type in assignment (different base types)
>> drivers/staging/greybus/audio_topology.c:746:44:    expected unsigned int
>> drivers/staging/greybus/audio_topology.c:746:44:    got restricted __le32
>> drivers/staging/greybus/audio_topology.c:748:52: warning: incorrect type in assignment (different base types)
>> drivers/staging/greybus/audio_topology.c:748:52:    expected unsigned int
>> drivers/staging/greybus/audio_topology.c:748:52:    got restricted __le32
>> drivers/staging/greybus/audio_topology.c:802:42: warning: restricted __le32 degrades to integer
>> drivers/staging/greybus/audio_topology.c:805:50: warning: incorrect type in assignment (different base types)
>> drivers/staging/greybus/audio_topology.c:805:50:    expected restricted __le32
>> drivers/staging/greybus/audio_topology.c:805:50:    got unsigned int
>> drivers/staging/greybus/audio_topology.c:814:50: warning: restricted __le32 degrades to integer
>> drivers/staging/greybus/audio_topology.c:817:58: warning: incorrect type in assignment (different base types)
>> drivers/staging/greybus/audio_topology.c:817:58:    expected restricted __le32
>> drivers/staging/greybus/audio_topology.c:817:58:    got unsigned int
>> drivers/staging/greybus/audio_topology.c:889:25: warning: incorrect type in assignment (different base types)
>> drivers/staging/greybus/audio_topology.c:889:25:    expected unsigned int access
>> drivers/staging/greybus/audio_topology.c:889:25:    got restricted __le32 [usertype] access
>>
>> Signed-off-by: Coiby Xu <coiby.xu@gmail.com>
>> ---
>>  drivers/staging/greybus/audio_codec.c    |  4 ++--
>>  drivers/staging/greybus/audio_module.c   |  2 +-
>>  drivers/staging/greybus/audio_topology.c | 18 +++++++++---------
>>  3 files changed, 12 insertions(+), 12 deletions(-)
>>
>> diff --git a/drivers/staging/greybus/audio_codec.c b/drivers/staging/greybus/audio_codec.c
>> index 74538f8c5fa4..494aa823e998 100644
>> --- a/drivers/staging/greybus/audio_codec.c
>> +++ b/drivers/staging/greybus/audio_codec.c
>> @@ -688,7 +688,7 @@ static struct snd_soc_dai_driver gbaudio_dai[] = {
>>  		.playback = {
>>  			.stream_name = "I2S 0 Playback",
>>  			.rates = SNDRV_PCM_RATE_48000,
>> -			.formats = SNDRV_PCM_FORMAT_S16_LE,
>> +			.formats = SNDRV_PCM_FMTBIT_S16_LE,
>>  			.rate_max = 48000,
>>  			.rate_min = 48000,
>>  			.channels_min = 1,
>> @@ -698,7 +698,7 @@ static struct snd_soc_dai_driver gbaudio_dai[] = {
>>  		.capture = {
>>  			.stream_name = "I2S 0 Capture",
>>  			.rates = SNDRV_PCM_RATE_48000,
>> -			.formats = SNDRV_PCM_FORMAT_S16_LE,
>> +			.formats = SNDRV_PCM_FMTBIT_S16_LE,
>>  			.rate_max = 48000,
>>  			.rate_min = 48000,
>>  			.channels_min = 1,
>
>These changes need to be explained better.  We're changing formats from
>2 to 1 << 2.
>
>When you're writing commit messages, please imagine me as the target
>audience.  I have a fairly decent understanding of the kernel and C, but
>I don't know very much about the sound subsystem.

(Sorry for the late reply! I didn't notice my email client failed to
delivered this email.)

Thank you for showing me SNDRV_PCM_FORMAT_S16_LE != SNDRV_PCM_FMTBIT_S16_LE.
I thought they only differ in type so no domain knowledge is needed.
>
>This code used to work, right?  How was it that changing a 2 to a 4
>makes it better?  It needs to be explained in the commit message.  This
>change probably needs to be split into a separate commit because it
>seems different from the rest of the patch.

After doing some homework on greybus, ALSA, PCM, etc., I think
SNDRV_PCM_FORMAT_S16_LE could be a mistake,

1. According to the struct definition,

struct snd_soc_dai_driver {
     ...
	/* DAI capabilities */
	struct snd_soc_pcm_stream capture;
	struct snd_soc_pcm_stream playback;
/* SoC PCM stream information */

struct snd_soc_pcm_stream {
	const char *stream_name;
	u64 formats;			/* SNDRV_PCM_FMTBIT_* */
     ...
};


We should use SNDRV_PCM_FMTBIT_* which is a bit mask while
SNDRV_PCM_FORMAT_* are sequential integers.

2. This "formats" member  represent PCM audio's resolution/sample Size,
Byte Order and Sign [1]. In terms of the values,
SNDRV_PCM_FORMAT_S16_LE == SNDRV_PCM_FMTBIT_S8.
Using 8 bits to represent the amplitude of the sound sample may lead to
low quality audio.

3. There is this commit e712bfca1ac1f63f622f87c2f33b57608f2a4d19
("ASoC: codecs: use SNDRV_PCM_FMTBIT_* for format bitmask"),

     snd_soc_pcm_stream.formats is a bitmask of SNDRV_PCM_FMTBIT_*,
     not of SNDRV_PCM_FORMAT_* (which are sequential integers),
     however some of ASoC CODEC drivers use these values instead.

which simply replaced SNDRV_PCM_FORMAT_S16_LE with SNDRV_PCM_FMTBIT_S16_LE.

>
>(Presumably the rest of the patch doesn't affect runtime on little
>endian systems.  This is the part which affects runtime so it is
>different from the rest).
>
>> diff --git a/drivers/staging/greybus/audio_module.c b/drivers/staging/greybus/audio_module.c
>> index 16f60256adb2..00848b84b022 100644
>> --- a/drivers/staging/greybus/audio_module.c
>> +++ b/drivers/staging/greybus/audio_module.c
>> @@ -219,7 +219,7 @@ static int gb_audio_add_data_connection(struct gbaudio_module_info *gbmodule,
>>
>>  	greybus_set_drvdata(bundle, gbmodule);
>>  	dai->id = 0;
>> -	dai->data_cport = connection->intf_cport_id;
>> +	dai->data_cport = cpu_to_le16(connection->intf_cport_id);
>>  	dai->connection = connection;
>>  	list_add(&dai->list, &gbmodule->data_list);
>>
>
>This is correct, but I think you should change the two places which
>print the data_cport to print the CPU endian value.
>
>   327          list_for_each_entry(dai, &gbmodule->data_list, list) {
>   328                  ret = gb_connection_enable(dai->connection);
>   329                  if (ret) {
>   330                          dev_err(dev,
>   331                                  "%d:Error while enabling %d:data connection\n",
>   332                                  ret, dai->data_cport);
>   333                          goto disable_data_connection;
>   334                  }
>   335          }
>
>   449          list_for_each_entry(dai, &gbmodule->data_list, list) {
>   450                  ret = gb_connection_enable(dai->connection);
>   451                  if (ret) {
>   452                          dev_err(dev,
>   453                                  "%d:Error while enabling %d:data connection\n",
>   454                                  ret, dai->data_cport);
>   455                          return ret;
>   456                  }
>   457          }
>
>Otherwise it's slightly confusing to mix the values.

Thank you for the suggestion! I'll fix it in next version.
>
>The rest of the patch seems fine to me.
>
>regards,
>dan carpenter
>
Thank you for reviewing this patch!

[1] https://wiki.multimedia.cx/index.php/PCM

--
Best regards,
Coiby

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-09-16 19:02 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-24  2:50 [PATCH] staging: greybus: fix warnings detected by sparse Coiby Xu
2020-08-24  9:41 ` Dan Carpenter
2020-09-16 11:17   ` Coiby Xu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).