The IEC958 subframe format SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE are used
in HDMI and DisplayPort to describe the audio stream, but hardware device
may need to reorder the IEC958 bits for internal transmission, so need
these standard bits definitions for IEC958 subframe format.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Tested-by: Alexander Stein <alexander.stein@ew.tq-group.com>
---
include/sound/asoundef.h | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/include/sound/asoundef.h b/include/sound/asoundef.h
index 09b2c3dffb30..c4a929d4fd51 100644
--- a/include/sound/asoundef.h
+++ b/include/sound/asoundef.h
@@ -12,6 +12,15 @@
* Digital audio interface *
* *
****************************************************************************/
+/* IEC958 subframe format */
+#define IEC958_SUBFRAME_PREAMBLE_MASK (0xfU)
+#define IEC958_SUBFRAME_AUXILIARY_MASK (0xfU << 4)
+#define IEC958_SUBFRAME_SAMPLE_24_MASK (0xffffffU << 4)
+#define IEC958_SUBFRAME_SAMPLE_20_MASK (0xfffffU << 8)
+#define IEC958_SUBFRAME_VALIDITY (0x1U << 28)
+#define IEC958_SUBFRAME_USER_DATA (0x1U << 29)
+#define IEC958_SUBFRAME_CHANNEL_STATUS (0x1U << 30)
+#define IEC958_SUBFRAME_PARITY (0x1U << 31)
/* AES/IEC958 channel status bits */
#define IEC958_AES0_PROFESSIONAL (1<<0) /* 0 = consumer, 1 = professional */
--
2.34.1
On Tue, Sep 23, 2025 at 01:29:56PM +0800, Shengjiu Wang wrote: > The IEC958 subframe format SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE are used > in HDMI and DisplayPort to describe the audio stream, but hardware device > may need to reorder the IEC958 bits for internal transmission, so need > these standard bits definitions for IEC958 subframe format. > > Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> > Reviewed-by: Takashi Iwai <tiwai@suse.de> > Tested-by: Alexander Stein <alexander.stein@ew.tq-group.com> Would be good to get a formal ack from alsa maintainers before merging through drm, just to be sure. Thanks, Sima > --- > include/sound/asoundef.h | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/include/sound/asoundef.h b/include/sound/asoundef.h > index 09b2c3dffb30..c4a929d4fd51 100644 > --- a/include/sound/asoundef.h > +++ b/include/sound/asoundef.h > @@ -12,6 +12,15 @@ > * Digital audio interface * > * * > ****************************************************************************/ > +/* IEC958 subframe format */ > +#define IEC958_SUBFRAME_PREAMBLE_MASK (0xfU) > +#define IEC958_SUBFRAME_AUXILIARY_MASK (0xfU << 4) > +#define IEC958_SUBFRAME_SAMPLE_24_MASK (0xffffffU << 4) > +#define IEC958_SUBFRAME_SAMPLE_20_MASK (0xfffffU << 8) > +#define IEC958_SUBFRAME_VALIDITY (0x1U << 28) > +#define IEC958_SUBFRAME_USER_DATA (0x1U << 29) > +#define IEC958_SUBFRAME_CHANNEL_STATUS (0x1U << 30) > +#define IEC958_SUBFRAME_PARITY (0x1U << 31) > > /* AES/IEC958 channel status bits */ > #define IEC958_AES0_PROFESSIONAL (1<<0) /* 0 = consumer, 1 = professional */ > -- > 2.34.1 > -- Simona Vetter Software Engineer http://blog.ffwll.ch
Hi Sima, On 10/21/2025, Simona Vetter wrote: > On Tue, Sep 23, 2025 at 01:29:56PM +0800, Shengjiu Wang wrote: >> The IEC958 subframe format SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE are used >> in HDMI and DisplayPort to describe the audio stream, but hardware device >> may need to reorder the IEC958 bits for internal transmission, so need >> these standard bits definitions for IEC958 subframe format. >> >> Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> >> Reviewed-by: Takashi Iwai <tiwai@suse.de> >> Tested-by: Alexander Stein <alexander.stein@ew.tq-group.com> > > Would be good to get a formal ack from alsa maintainers before merging > through drm, just to be sure. Yes, we've got an ack from Takashi for that in the cover letter. I should have recorded that in commit. Sorry for missing that. > > Thanks, Sima > >> --- >> include/sound/asoundef.h | 9 +++++++++ >> 1 file changed, 9 insertions(+) >> >> diff --git a/include/sound/asoundef.h b/include/sound/asoundef.h >> index 09b2c3dffb30..c4a929d4fd51 100644 >> --- a/include/sound/asoundef.h >> +++ b/include/sound/asoundef.h >> @@ -12,6 +12,15 @@ >> * Digital audio interface * >> * * >> ****************************************************************************/ >> +/* IEC958 subframe format */ >> +#define IEC958_SUBFRAME_PREAMBLE_MASK (0xfU) >> +#define IEC958_SUBFRAME_AUXILIARY_MASK (0xfU << 4) >> +#define IEC958_SUBFRAME_SAMPLE_24_MASK (0xffffffU << 4) >> +#define IEC958_SUBFRAME_SAMPLE_20_MASK (0xfffffU << 8) >> +#define IEC958_SUBFRAME_VALIDITY (0x1U << 28) >> +#define IEC958_SUBFRAME_USER_DATA (0x1U << 29) >> +#define IEC958_SUBFRAME_CHANNEL_STATUS (0x1U << 30) >> +#define IEC958_SUBFRAME_PARITY (0x1U << 31) >> >> /* AES/IEC958 channel status bits */ >> #define IEC958_AES0_PROFESSIONAL (1<<0) /* 0 = consumer, 1 = professional */ >> -- >> 2.34.1 >> > -- Regards, Liu Ying
On Tue, Oct 21, 2025 at 10:03:37AM +0200, Simona Vetter wrote: > On Tue, Sep 23, 2025 at 01:29:56PM +0800, Shengjiu Wang wrote: > > The IEC958 subframe format SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE are used > > in HDMI and DisplayPort to describe the audio stream, but hardware device > > may need to reorder the IEC958 bits for internal transmission, so need > > these standard bits definitions for IEC958 subframe format. > > > > Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> > > Reviewed-by: Takashi Iwai <tiwai@suse.de> > > Tested-by: Alexander Stein <alexander.stein@ew.tq-group.com> > > Would be good to get a formal ack from alsa maintainers before merging > through drm, just to be sure. Sorry wasn't fully awake yet, I meant that it should be recorded in the commit. dim has a check for this stuff now and it fired for your patch. -Sima > > Thanks, Sima > > > --- > > include/sound/asoundef.h | 9 +++++++++ > > 1 file changed, 9 insertions(+) > > > > diff --git a/include/sound/asoundef.h b/include/sound/asoundef.h > > index 09b2c3dffb30..c4a929d4fd51 100644 > > --- a/include/sound/asoundef.h > > +++ b/include/sound/asoundef.h > > @@ -12,6 +12,15 @@ > > * Digital audio interface * > > * * > > ****************************************************************************/ > > +/* IEC958 subframe format */ > > +#define IEC958_SUBFRAME_PREAMBLE_MASK (0xfU) > > +#define IEC958_SUBFRAME_AUXILIARY_MASK (0xfU << 4) > > +#define IEC958_SUBFRAME_SAMPLE_24_MASK (0xffffffU << 4) > > +#define IEC958_SUBFRAME_SAMPLE_20_MASK (0xfffffU << 8) > > +#define IEC958_SUBFRAME_VALIDITY (0x1U << 28) > > +#define IEC958_SUBFRAME_USER_DATA (0x1U << 29) > > +#define IEC958_SUBFRAME_CHANNEL_STATUS (0x1U << 30) > > +#define IEC958_SUBFRAME_PARITY (0x1U << 31) > > > > /* AES/IEC958 channel status bits */ > > #define IEC958_AES0_PROFESSIONAL (1<<0) /* 0 = consumer, 1 = professional */ > > -- > > 2.34.1 > > > > -- > Simona Vetter > Software Engineer > http://blog.ffwll.ch -- Simona Vetter Software Engineer http://blog.ffwll.ch
© 2016 - 2026 Red Hat, Inc.