2023-10-07 21:38:55

by Janusz Krzysztofik

[permalink] [raw]
Subject: [PATCH] ASoC: ti: ams-delta: Fix cx81801_receive() argument types

Since types of arguments accepted by tty_ldis_ops::receive_buf() have
changed, the driver no longer builds.

.../linux/sound/soc/ti/ams-delta.c:403:24: error: initialization of 'void (*)(struct tty_struct *, const u8 *, const u8 *, size_t)' {aka 'void (*)(struct tty_struct *, const unsigned char *, const unsigned char *, unsigned int)'} from incompatible pointer type 'void (*)(struct tty_struct *, const u8 *, const char *, int)' {aka 'void (*)(struct tty_struct *, const unsigned char *, const char *, int)'} [-Werror=incompatible-pointer-types]
403 | .receive_buf = cx81801_receive,

Fix it.

Fixes: e8161447bb0c ("tty: make tty_ldisc_ops::*buf*() hooks operate on size_t")
Fixes: 892bc209f250 ("tty: use u8 for flags")
Signed-off-by: Janusz Krzysztofik <[email protected]>
---
sound/soc/ti/ams-delta.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sound/soc/ti/ams-delta.c b/sound/soc/ti/ams-delta.c
index 371943350fdf..666057d50ea0 100644
--- a/sound/soc/ti/ams-delta.c
+++ b/sound/soc/ti/ams-delta.c
@@ -336,8 +336,8 @@ static void cx81801_hangup(struct tty_struct *tty)
}

/* Line discipline .receive_buf() */
-static void cx81801_receive(struct tty_struct *tty, const u8 *cp,
- const char *fp, int count)
+static void cx81801_receive(struct tty_struct *tty, const u8 *cp, const u8 *fp,
+ size_t count)
{
struct snd_soc_component *component = tty->disc_data;
const unsigned char *c;
--
2.42.0


2023-10-08 05:18:35

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] ASoC: ti: ams-delta: Fix cx81801_receive() argument types

On Sat, Oct 07, 2023 at 11:38:18PM +0200, Janusz Krzysztofik wrote:
> Since types of arguments accepted by tty_ldis_ops::receive_buf() have
> changed, the driver no longer builds.
>
> .../linux/sound/soc/ti/ams-delta.c:403:24: error: initialization of 'void (*)(struct tty_struct *, const u8 *, const u8 *, size_t)' {aka 'void (*)(struct tty_struct *, const unsigned char *, const unsigned char *, unsigned int)'} from incompatible pointer type 'void (*)(struct tty_struct *, const u8 *, const char *, int)' {aka 'void (*)(struct tty_struct *, const unsigned char *, const char *, int)'} [-Werror=incompatible-pointer-types]
> 403 | .receive_buf = cx81801_receive,
>
> Fix it.
>
> Fixes: e8161447bb0c ("tty: make tty_ldisc_ops::*buf*() hooks operate on size_t")
> Fixes: 892bc209f250 ("tty: use u8 for flags")
> Signed-off-by: Janusz Krzysztofik <[email protected]>
> ---
> sound/soc/ti/ams-delta.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)

Odd no built-bots caught this, maybe no one normally builds this file?
Anyway, I'll pick this up in my tty tree now, thanks!

greg k-h

2023-10-08 09:43:00

by Janusz Krzysztofik

[permalink] [raw]
Subject: Re: [PATCH] ASoC: ti: ams-delta: Fix cx81801_receive() argument types

Dnia niedziela, 8 października 2023 07:04:39 CEST Greg Kroah-Hartman pisze:
> On Sat, Oct 07, 2023 at 11:38:18PM +0200, Janusz Krzysztofik wrote:
> > Since types of arguments accepted by tty_ldis_ops::receive_buf() have
> > changed, the driver no longer builds.
> >
> > .../linux/sound/soc/ti/ams-delta.c:403:24: error: initialization of 'void (*)(struct tty_struct *, const u8 *, const u8 *, size_t)' {aka 'void (*)(struct tty_struct *, const unsigned char *, const unsigned char *, unsigned int)'} from incompatible pointer type 'void (*)(struct tty_struct *, const u8 *, const char *, int)' {aka 'void (*)(struct tty_struct *, const unsigned char *, const char *, int)'} [-Werror=incompatible-pointer-types]
> > 403 | .receive_buf = cx81801_receive,
> >
> > Fix it.
> >
> > Fixes: e8161447bb0c ("tty: make tty_ldisc_ops::*buf*() hooks operate on size_t")
> > Fixes: 892bc209f250 ("tty: use u8 for flags")
> > Signed-off-by: Janusz Krzysztofik <[email protected]>
> > ---
> > sound/soc/ti/ams-delta.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
>
> Odd no built-bots caught this, maybe no one normally builds this file?

The driver depends on SND, SND_SOC and TTY, but can't be selected
individually, only via its user. Then, it usually builds when
CONFIG_SND_SOC_OMAP_AMS_DELTA=y, and that's probably uncommon due to
specific dependencies. However, cx20442 can also be selected and built
with CONFIG_COMPILE_TEST=y and CONFIG_SND_SOC_ALL_CODECS=y. Since similar
approach seems to apply to quite a number of ASoC CODECs, maybe build-bots
should pay special attention to select SND_SOC_ALL_CODECS more frequently,
like they probably do with COMPILE_TEST.

Thanks,
Janusz

> Anyway, I'll pick this up in my tty tree now, thanks!
>
> greg k-h
>


Attachments:
signature.asc (499.00 B)
This is a digitally signed message part.

2023-10-08 11:03:06

by Janusz Krzysztofik

[permalink] [raw]
Subject: Re: [PATCH] ASoC: ti: ams-delta: Fix cx81801_receive() argument types

Dnia niedziela, 8 października 2023 11:42:50 CEST Janusz Krzysztofik pisze:
> Dnia niedziela, 8 października 2023 07:04:39 CEST Greg Kroah-Hartman pisze:
> > On Sat, Oct 07, 2023 at 11:38:18PM +0200, Janusz Krzysztofik wrote:
> > > Since types of arguments accepted by tty_ldis_ops::receive_buf() have
> > > changed, the driver no longer builds.
> > >
> > > .../linux/sound/soc/ti/ams-delta.c:403:24: error: initialization of 'void (*)(struct tty_struct *, const u8 *, const u8 *, size_t)' {aka 'void (*)(struct tty_struct *, const unsigned char *, const unsigned char *, unsigned int)'} from incompatible pointer type 'void (*)(struct tty_struct *, const u8 *, const char *, int)' {aka 'void (*)(struct tty_struct *, const unsigned char *, const char *, int)'} [-Werror=incompatible-pointer-types]
> > > 403 | .receive_buf = cx81801_receive,
> > >
> > > Fix it.
> > >
> > > Fixes: e8161447bb0c ("tty: make tty_ldisc_ops::*buf*() hooks operate on size_t")
> > > Fixes: 892bc209f250 ("tty: use u8 for flags")
> > > Signed-off-by: Janusz Krzysztofik <[email protected]>
> > > ---
> > > sound/soc/ti/ams-delta.c | 4 ++--
> > > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > Odd no built-bots caught this, maybe no one normally builds this file?
>
> The driver depends on SND, SND_SOC and TTY, but can't be selected
> individually, only via its user.

Sorry, that was an ASoC board driver, not a CODEC driver, that required the
fix.

> Then, it usually builds when
> CONFIG_SND_SOC_OMAP_AMS_DELTA=y, and that's probably uncommon due to
> specific dependencies.

In addition to SOUND, SND, SND_SOC and TTY, this ASoC board driver depends
on MACH_AMS_DELTA, then on ARM, MMU, ARCH_MULTI_V4T, !ARCH_MULTI_V6,
!ARCH_MULTI_V7, CPU_LITTLE_ENDIAN, ATAGS, ARCH_OMAP1 and ARCH_OMAP15XX.
Let me check if it builds without those machine dependencies, then we can
cover it by COMPILE_TEST.

Thanks,
Janusz

> However, cx20442 can also be selected and built
> with CONFIG_COMPILE_TEST=y and CONFIG_SND_SOC_ALL_CODECS=y. Since similar
> approach seems to apply to quite a number of ASoC CODECs, maybe build-bots
> should pay special attention to select SND_SOC_ALL_CODECS more frequently,
> like they probably do with COMPILE_TEST.
>
> Thanks,
> Janusz
>
> > Anyway, I'll pick this up in my tty tree now, thanks!
> >
> > greg k-h
> >
>
>


Attachments:
signature.asc (499.00 B)
This is a digitally signed message part.

2023-10-09 06:04:53

by Jiri Slaby

[permalink] [raw]
Subject: Re: [PATCH] ASoC: ti: ams-delta: Fix cx81801_receive() argument types

On 07. 10. 23, 23:38, Janusz Krzysztofik wrote:
> Since types of arguments accepted by tty_ldis_ops::receive_buf() have
> changed, the driver no longer builds.
>
> .../linux/sound/soc/ti/ams-delta.c:403:24: error: initialization of 'void (*)(struct tty_struct *, const u8 *, const u8 *, size_t)' {aka 'void (*)(struct tty_struct *, const unsigned char *, const unsigned char *, unsigned int)'} from incompatible pointer type 'void (*)(struct tty_struct *, const u8 *, const char *, int)' {aka 'void (*)(struct tty_struct *, const unsigned char *, const char *, int)'} [-Werror=incompatible-pointer-types]
> 403 | .receive_buf = cx81801_receive,
>
> Fix it.
>
> Fixes: e8161447bb0c ("tty: make tty_ldisc_ops::*buf*() hooks operate on size_t")
> Fixes: 892bc209f250 ("tty: use u8 for flags")
> Signed-off-by: Janusz Krzysztofik <[email protected]>

Reviewed-by: Jiri Slaby <[email protected]>

> ---
> sound/soc/ti/ams-delta.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/sound/soc/ti/ams-delta.c b/sound/soc/ti/ams-delta.c
> index 371943350fdf..666057d50ea0 100644
> --- a/sound/soc/ti/ams-delta.c
> +++ b/sound/soc/ti/ams-delta.c
> @@ -336,8 +336,8 @@ static void cx81801_hangup(struct tty_struct *tty)
> }
>
> /* Line discipline .receive_buf() */
> -static void cx81801_receive(struct tty_struct *tty, const u8 *cp,
> - const char *fp, int count)
> +static void cx81801_receive(struct tty_struct *tty, const u8 *cp, const u8 *fp,
> + size_t count)

Thanks for fixing this. Funny enough that I managed to switch cp, but
not the others. Yeah, there was a lot to overlook in those big changes.

regards,
--
js
suse labs

2023-10-09 12:06:08

by Mark Brown

[permalink] [raw]
Subject: Re: [PATCH] ASoC: ti: ams-delta: Fix cx81801_receive() argument types

On Sat, Oct 07, 2023 at 11:38:18PM +0200, Janusz Krzysztofik wrote:
> Since types of arguments accepted by tty_ldis_ops::receive_buf() have
> changed, the driver no longer builds.

Acked-by: Mark Brown <[email protected]>


Attachments:
(No filename) (228.00 B)
signature.asc (499.00 B)
Download all attachments