Merge series from Mark Brown <broonie@kernel.org>: The recently added pcm-test selftest has pointed out that systems with the tda998x driver end up advertising that they support capture when in reality as far as I can see the tda998x devices are transmit only. The DAIs registered through hdmi-codec are bidirectional, meaning that for I2S systems when combined with a typical bidrectional CPU DAI the overall capability of the PCM is bidirectional. In most cases the I2S links will clock OK but no useful audio will be returned which isn't so bad but we should still not advertise the useless capability, and some systems may notice problems for example due to pinmux management. This is happening due to the hdmi-codec helpers not providing any mechanism for indicating unidirectional audio so add one and use it in the tda998x driver. It is likely other hdmi-codec users are also affected but I don't have those systems to hand. Mark Brown (2): ASoC: hdmi-codec: Allow playback and capture to be disabled drm: tda99x: Don't advertise non-existent capture support drivers/gpu/drm/i2c/tda998x_drv.c | 2 ++ include/sound/hdmi-codec.h | 4 ++++ sound/soc/codecs/hdmi-codec.c | 30 +++++++++++++++++++++++++----- 3 files changed, 31 insertions(+), 5 deletions(-) base-commit: f0c4d9fc9cc9462659728d168387191387e903cc -- 2.30.2
Showing the changes to include/uapi (2 of 298 files). Show all
Unified · Split
| @@ -100,8 +100,10 @@ struct iphdr { · 99 unmodified lines | |||
| 100 | __u8 ttl; | 100 | __u8 ttl; |
| 101 | __u8 protocol; | 101 | __u8 protocol; |
| 102 | __sum16 check; | 102 | __sum16 check; |
| 103 | __be32 saddr; | 103 | __struct_group(/* no tag */, addrs, /* no attrs */, |
| 104 | __be32 daddr; | 104 | __be32 saddr; |
| 105 | __be32 daddr; | ||
| 106 | ); | ||
| 105 | /*The options start here. */ | 107 | /*The options start here. */ |
| 106 | }; | 108 | }; |
| 107 | 109 | ||
| @@ -130,8 +130,10 @@ struct ipv6hdr { · 129 unmodified lines | |||
| 130 | __u8 nexthdr; | 130 | __u8 nexthdr; |
| 131 | __u8 hop_limit; | 131 | __u8 hop_limit; |
| 132 | 132 | ||
| 133 | struct in6_addr saddr; | 133 | __struct_group(/* no tag */, addrs, /* no attrs */, |
| 134 | struct in6_addr daddr; | 134 | struct in6_addr saddr; |
| 135 | struct in6_addr daddr; | ||
| 136 | ); | ||
| 135 | }; | 137 | }; |
| 136 | 138 | ||
| 137 | 139 | ||