History log of /netbsd-current/sys/dev/hdaudio/hdafg.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.32 29-Jan-2024 riastradh

hdaudio(4): KNF, no functional change intended


# 1.31 29-Jan-2024 riastradh

hdaudio(4): Tighten hdafg_freem.

The fix for PR kern/57890 in hdafg.c 1.29 included more conditionals
than needed, covering cases that can't happen: if allocm returns
null, audio(4) does not call freem; and if hdafg_allocm returns
nonnull, then what audio(4) passes to hdafg_freem had better be
either the playback or the capture buffer address.


Revision tags: thorpej-ifq-base thorpej-altq-separation-base
# 1.30 18-Jul-2023 riastradh

hdafg(4): Do hotplug detection in kthread, not callout.

This can sometimes take a while (~1ms), and the logic to suspend the
callout on device suspend/resume was racy (PR kern/57322).

XXX pullup-8
XXX pullup-9
XXX pullup-10


# 1.29 05-Jan-2023 kardel

ignore NULL for hdaudio_audiodev in hdafg_freem
also guard against NULL in ad_{capture,playback}
observed during shutdown on Lenovo W510


Revision tags: netbsd-10-0-RC3 netbsd-10-0-RC2 netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
# 1.28 24-May-2022 andvar

fix various typos in comments, docs and log messages.


# 1.27 21-Mar-2022 jmcneill

hdaudio: Obsolete HDAUDIO_ENABLE_DISPLAYPORT and HDAUDIO_ENABLE_HDMI

Enable display port and HDMI devices by default rather than making this
a compile time option.


# 1.26 07-Jan-2022 mlelstv

Safe vendor/product for reporting. Avoids repeated loading/unloading
of hdaudioverbose module.


# 1.25 17-Dec-2021 kre

One build break fixed, another appears...

Use the correct pointer, not the one used in the other piece of
code that changed at the same time..


# 1.24 17-Dec-2021 christos

If the step is 0, use 1 instead of always incrementing step by one to avoid
zerodivide (from RVP)


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
# 1.23 11-Jun-2020 thorpej

Update for proplib(3) API changes.


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
# 1.22 19-Apr-2020 isaki

Make round_blocksize satisfy all of
- restrictions that existed before merging isaki-audio2 branch.
- better support for 6 channels hardware.
- audio layer's requirement.
This may help PR kern/54474.


Revision tags: phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
# 1.21 15-Feb-2020 isaki

branches: 1.21.4;
Enumerating probably always starts from sc->sc_startnode.


# 1.20 30-Jan-2020 jmcneill

Only dump ELD info if HDAFG_HDMI_DEBUG is defined


Revision tags: ad-namecache-base2
# 1.19 18-Jan-2020 jmcneill

Make sure we have at least one of playback or capture streams setup before
attaching the audio layer.


Revision tags: netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609
# 1.18 08-Jun-2019 isaki

branches: 1.18.2; 1.18.4;
Clean get_props().
- Make get_props() return AUDIO_PROP_{PLAYBACK,CAPTURE} properly.
This eliminates need for audio.c to take care of such (old)
drivers which don't return both of PLAYBACK and CAPTURE.
- All get_props() doesn't need to return AUDIO_PROP_MMAP.
It is handled in the audio layer now.


# 1.17 08-May-2019 isaki

Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c


Revision tags: isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.16 27-Sep-2018 manu

branches: 1.16.2;
Fix hdaudio device configuration

When disabling unassociated devices, we have a special handling
for pins of type COP_AWCAP_TYPE_PIN_COMPLEX, but it came after code
that may disable any pins, including the ones that should be handled
as COP_AWCAP_TYPE_PIN_COMPLEX.

The result was that hdaudio could fail to detect some devices. We
fix the situation by making sure that COP_AWCAP_TYPE_PIN_COMPLEX
pins always get their specific handling.

The change makes the built-in speaker work on Dell OptiPlex 5060


Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.15 14-Feb-2018 maya

branches: 1.15.2; 1.15.4;
Remove dead code.

From David Binderman in PR kern/53029


# 1.14 04-Jan-2018 khorben

Fix off-by-one when calling snprintf(9) in hdafg_getdev()

This is actually harmless, since:
- the offset is too short rather than too long (no overflow)
- the struct audio_device comes from userland (no information leak)

"looks good to me" nat@


Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825
# 1.13 04-Aug-2017 mrg

branches: 1.13.2;
put all the ELD debugging messages under #ifdef HDAFG_HDMI_DEBUG.
this silences a frequent and largely useless series of messages
in my dmesg. ok jmcneill.


Revision tags: perseant-stdc-iso10646-base netbsd-8-base
# 1.12 01-Jun-2017 chs

branches: 1.12.2;
remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.11 18-Apr-2017 maya

remove redundant assignments
nchan is overwritten before it is used in all cases. so is i.

from clang static analyzer
ok riastradh


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104
# 1.10 25-Oct-2016 pgoyette

branches: 1.10.2;
Replace numeric magic-number constant with something a bit more meaningful.


Revision tags: nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.9 15-Nov-2015 jmcneill

branches: 1.9.2;
disable data island packet transmission on Tegra124 HDMI codec


# 1.8 04-Nov-2015 christos

mute the mixer with that has input children


# 1.7 04-Nov-2015 christos

Remove trailing and stray whitespace.


# 1.6 04-Nov-2015 christos

more complex version to determine what is an input.


# 1.5 04-Nov-2015 christos

be more selective and mute only mic's. Suggested by jmcneill


# 1.4 04-Nov-2015 christos

Startup with the mic muted to avoid feedback and spying.


Revision tags: nick-nhusb-base-20150921
# 1.3 26-Jul-2015 jmcneill

- Support multi-channel (> 2) output to HDMI sinks.
- Fix a bug in hdafg_set_params that could program converters using the
wrong audio_params_t if auconv is in use
- Force Tegra124 HDMI codec to a fixed rate 44.1kHz


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406
# 1.2 28-Mar-2015 jmcneill

branches: 1.2.2;
replace hdaudio_config.h with defflags


# 1.1 28-Mar-2015 jmcneill

Split hdaudio and PCI attach glue. Even though the driver was written with
this separation in mind, all of the code lived in sys/dev/pci/hdaudio. Move
common parts to sys/dev/hdaudio and PCI attach glue to sys/dev/pci.


# 1.30 18-Jul-2023 riastradh

hdafg(4): Do hotplug detection in kthread, not callout.

This can sometimes take a while (~1ms), and the logic to suspend the
callout on device suspend/resume was racy (PR kern/57322).

XXX pullup-8
XXX pullup-9
XXX pullup-10


# 1.29 05-Jan-2023 kardel

ignore NULL for hdaudio_audiodev in hdafg_freem
also guard against NULL in ad_{capture,playback}
observed during shutdown on Lenovo W510


Revision tags: netbsd-10-base bouyer-sunxi-drm-base
# 1.28 24-May-2022 andvar

fix various typos in comments, docs and log messages.


# 1.27 21-Mar-2022 jmcneill

hdaudio: Obsolete HDAUDIO_ENABLE_DISPLAYPORT and HDAUDIO_ENABLE_HDMI

Enable display port and HDMI devices by default rather than making this
a compile time option.


# 1.26 07-Jan-2022 mlelstv

Safe vendor/product for reporting. Avoids repeated loading/unloading
of hdaudioverbose module.


# 1.25 17-Dec-2021 kre

One build break fixed, another appears...

Use the correct pointer, not the one used in the other piece of
code that changed at the same time..


# 1.24 17-Dec-2021 christos

If the step is 0, use 1 instead of always incrementing step by one to avoid
zerodivide (from RVP)


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
# 1.23 11-Jun-2020 thorpej

Update for proplib(3) API changes.


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
# 1.22 19-Apr-2020 isaki

Make round_blocksize satisfy all of
- restrictions that existed before merging isaki-audio2 branch.
- better support for 6 channels hardware.
- audio layer's requirement.
This may help PR kern/54474.


Revision tags: phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
# 1.21 15-Feb-2020 isaki

branches: 1.21.4;
Enumerating probably always starts from sc->sc_startnode.


# 1.20 30-Jan-2020 jmcneill

Only dump ELD info if HDAFG_HDMI_DEBUG is defined


Revision tags: ad-namecache-base2
# 1.19 18-Jan-2020 jmcneill

Make sure we have at least one of playback or capture streams setup before
attaching the audio layer.


Revision tags: netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609
# 1.18 08-Jun-2019 isaki

branches: 1.18.2; 1.18.4;
Clean get_props().
- Make get_props() return AUDIO_PROP_{PLAYBACK,CAPTURE} properly.
This eliminates need for audio.c to take care of such (old)
drivers which don't return both of PLAYBACK and CAPTURE.
- All get_props() doesn't need to return AUDIO_PROP_MMAP.
It is handled in the audio layer now.


# 1.17 08-May-2019 isaki

Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c


Revision tags: isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.16 27-Sep-2018 manu

branches: 1.16.2;
Fix hdaudio device configuration

When disabling unassociated devices, we have a special handling
for pins of type COP_AWCAP_TYPE_PIN_COMPLEX, but it came after code
that may disable any pins, including the ones that should be handled
as COP_AWCAP_TYPE_PIN_COMPLEX.

The result was that hdaudio could fail to detect some devices. We
fix the situation by making sure that COP_AWCAP_TYPE_PIN_COMPLEX
pins always get their specific handling.

The change makes the built-in speaker work on Dell OptiPlex 5060


Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.15 14-Feb-2018 maya

branches: 1.15.2; 1.15.4;
Remove dead code.

From David Binderman in PR kern/53029


# 1.14 04-Jan-2018 khorben

Fix off-by-one when calling snprintf(9) in hdafg_getdev()

This is actually harmless, since:
- the offset is too short rather than too long (no overflow)
- the struct audio_device comes from userland (no information leak)

"looks good to me" nat@


Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825
# 1.13 04-Aug-2017 mrg

branches: 1.13.2;
put all the ELD debugging messages under #ifdef HDAFG_HDMI_DEBUG.
this silences a frequent and largely useless series of messages
in my dmesg. ok jmcneill.


Revision tags: perseant-stdc-iso10646-base netbsd-8-base
# 1.12 01-Jun-2017 chs

branches: 1.12.2;
remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.11 18-Apr-2017 maya

remove redundant assignments
nchan is overwritten before it is used in all cases. so is i.

from clang static analyzer
ok riastradh


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104
# 1.10 25-Oct-2016 pgoyette

branches: 1.10.2;
Replace numeric magic-number constant with something a bit more meaningful.


Revision tags: nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.9 15-Nov-2015 jmcneill

branches: 1.9.2;
disable data island packet transmission on Tegra124 HDMI codec


# 1.8 04-Nov-2015 christos

mute the mixer with that has input children


# 1.7 04-Nov-2015 christos

Remove trailing and stray whitespace.


# 1.6 04-Nov-2015 christos

more complex version to determine what is an input.


# 1.5 04-Nov-2015 christos

be more selective and mute only mic's. Suggested by jmcneill


# 1.4 04-Nov-2015 christos

Startup with the mic muted to avoid feedback and spying.


Revision tags: nick-nhusb-base-20150921
# 1.3 26-Jul-2015 jmcneill

- Support multi-channel (> 2) output to HDMI sinks.
- Fix a bug in hdafg_set_params that could program converters using the
wrong audio_params_t if auconv is in use
- Force Tegra124 HDMI codec to a fixed rate 44.1kHz


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406
# 1.2 28-Mar-2015 jmcneill

branches: 1.2.2;
replace hdaudio_config.h with defflags


# 1.1 28-Mar-2015 jmcneill

Split hdaudio and PCI attach glue. Even though the driver was written with
this separation in mind, all of the code lived in sys/dev/pci/hdaudio. Move
common parts to sys/dev/hdaudio and PCI attach glue to sys/dev/pci.


# 1.29 05-Jan-2023 kardel

ignore NULL for hdaudio_audiodev in hdafg_freem
also guard against NULL in ad_{capture,playback}
observed during shutdown on Lenovo W510


Revision tags: netbsd-10-base bouyer-sunxi-drm-base
# 1.28 24-May-2022 andvar

fix various typos in comments, docs and log messages.


# 1.27 21-Mar-2022 jmcneill

hdaudio: Obsolete HDAUDIO_ENABLE_DISPLAYPORT and HDAUDIO_ENABLE_HDMI

Enable display port and HDMI devices by default rather than making this
a compile time option.


# 1.26 07-Jan-2022 mlelstv

Safe vendor/product for reporting. Avoids repeated loading/unloading
of hdaudioverbose module.


# 1.25 17-Dec-2021 kre

One build break fixed, another appears...

Use the correct pointer, not the one used in the other piece of
code that changed at the same time..


# 1.24 17-Dec-2021 christos

If the step is 0, use 1 instead of always incrementing step by one to avoid
zerodivide (from RVP)


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
# 1.23 11-Jun-2020 thorpej

Update for proplib(3) API changes.


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
# 1.22 19-Apr-2020 isaki

Make round_blocksize satisfy all of
- restrictions that existed before merging isaki-audio2 branch.
- better support for 6 channels hardware.
- audio layer's requirement.
This may help PR kern/54474.


Revision tags: phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
# 1.21 15-Feb-2020 isaki

branches: 1.21.4;
Enumerating probably always starts from sc->sc_startnode.


# 1.20 30-Jan-2020 jmcneill

Only dump ELD info if HDAFG_HDMI_DEBUG is defined


Revision tags: ad-namecache-base2
# 1.19 18-Jan-2020 jmcneill

Make sure we have at least one of playback or capture streams setup before
attaching the audio layer.


Revision tags: netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609
# 1.18 08-Jun-2019 isaki

branches: 1.18.2; 1.18.4;
Clean get_props().
- Make get_props() return AUDIO_PROP_{PLAYBACK,CAPTURE} properly.
This eliminates need for audio.c to take care of such (old)
drivers which don't return both of PLAYBACK and CAPTURE.
- All get_props() doesn't need to return AUDIO_PROP_MMAP.
It is handled in the audio layer now.


# 1.17 08-May-2019 isaki

Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c


Revision tags: isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.16 27-Sep-2018 manu

branches: 1.16.2;
Fix hdaudio device configuration

When disabling unassociated devices, we have a special handling
for pins of type COP_AWCAP_TYPE_PIN_COMPLEX, but it came after code
that may disable any pins, including the ones that should be handled
as COP_AWCAP_TYPE_PIN_COMPLEX.

The result was that hdaudio could fail to detect some devices. We
fix the situation by making sure that COP_AWCAP_TYPE_PIN_COMPLEX
pins always get their specific handling.

The change makes the built-in speaker work on Dell OptiPlex 5060


Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.15 14-Feb-2018 maya

branches: 1.15.2; 1.15.4;
Remove dead code.

From David Binderman in PR kern/53029


# 1.14 04-Jan-2018 khorben

Fix off-by-one when calling snprintf(9) in hdafg_getdev()

This is actually harmless, since:
- the offset is too short rather than too long (no overflow)
- the struct audio_device comes from userland (no information leak)

"looks good to me" nat@


Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825
# 1.13 04-Aug-2017 mrg

branches: 1.13.2;
put all the ELD debugging messages under #ifdef HDAFG_HDMI_DEBUG.
this silences a frequent and largely useless series of messages
in my dmesg. ok jmcneill.


Revision tags: perseant-stdc-iso10646-base netbsd-8-base
# 1.12 01-Jun-2017 chs

branches: 1.12.2;
remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.11 18-Apr-2017 maya

remove redundant assignments
nchan is overwritten before it is used in all cases. so is i.

from clang static analyzer
ok riastradh


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104
# 1.10 25-Oct-2016 pgoyette

branches: 1.10.2;
Replace numeric magic-number constant with something a bit more meaningful.


Revision tags: nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.9 15-Nov-2015 jmcneill

branches: 1.9.2;
disable data island packet transmission on Tegra124 HDMI codec


# 1.8 04-Nov-2015 christos

mute the mixer with that has input children


# 1.7 04-Nov-2015 christos

Remove trailing and stray whitespace.


# 1.6 04-Nov-2015 christos

more complex version to determine what is an input.


# 1.5 04-Nov-2015 christos

be more selective and mute only mic's. Suggested by jmcneill


# 1.4 04-Nov-2015 christos

Startup with the mic muted to avoid feedback and spying.


Revision tags: nick-nhusb-base-20150921
# 1.3 26-Jul-2015 jmcneill

- Support multi-channel (> 2) output to HDMI sinks.
- Fix a bug in hdafg_set_params that could program converters using the
wrong audio_params_t if auconv is in use
- Force Tegra124 HDMI codec to a fixed rate 44.1kHz


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406
# 1.2 28-Mar-2015 jmcneill

branches: 1.2.2;
replace hdaudio_config.h with defflags


# 1.1 28-Mar-2015 jmcneill

Split hdaudio and PCI attach glue. Even though the driver was written with
this separation in mind, all of the code lived in sys/dev/pci/hdaudio. Move
common parts to sys/dev/hdaudio and PCI attach glue to sys/dev/pci.


# 1.28 24-May-2022 andvar

fix various typos in comments, docs and log messages.


# 1.27 21-Mar-2022 jmcneill

hdaudio: Obsolete HDAUDIO_ENABLE_DISPLAYPORT and HDAUDIO_ENABLE_HDMI

Enable display port and HDMI devices by default rather than making this
a compile time option.


# 1.26 07-Jan-2022 mlelstv

Safe vendor/product for reporting. Avoids repeated loading/unloading
of hdaudioverbose module.


# 1.25 17-Dec-2021 kre

One build break fixed, another appears...

Use the correct pointer, not the one used in the other piece of
code that changed at the same time..


# 1.24 17-Dec-2021 christos

If the step is 0, use 1 instead of always incrementing step by one to avoid
zerodivide (from RVP)


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
# 1.23 11-Jun-2020 thorpej

Update for proplib(3) API changes.


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
# 1.22 19-Apr-2020 isaki

Make round_blocksize satisfy all of
- restrictions that existed before merging isaki-audio2 branch.
- better support for 6 channels hardware.
- audio layer's requirement.
This may help PR kern/54474.


Revision tags: phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
# 1.21 15-Feb-2020 isaki

branches: 1.21.4;
Enumerating probably always starts from sc->sc_startnode.


# 1.20 30-Jan-2020 jmcneill

Only dump ELD info if HDAFG_HDMI_DEBUG is defined


Revision tags: ad-namecache-base2
# 1.19 18-Jan-2020 jmcneill

Make sure we have at least one of playback or capture streams setup before
attaching the audio layer.


Revision tags: netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609
# 1.18 08-Jun-2019 isaki

branches: 1.18.2; 1.18.4;
Clean get_props().
- Make get_props() return AUDIO_PROP_{PLAYBACK,CAPTURE} properly.
This eliminates need for audio.c to take care of such (old)
drivers which don't return both of PLAYBACK and CAPTURE.
- All get_props() doesn't need to return AUDIO_PROP_MMAP.
It is handled in the audio layer now.


# 1.17 08-May-2019 isaki

Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c


Revision tags: isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.16 27-Sep-2018 manu

branches: 1.16.2;
Fix hdaudio device configuration

When disabling unassociated devices, we have a special handling
for pins of type COP_AWCAP_TYPE_PIN_COMPLEX, but it came after code
that may disable any pins, including the ones that should be handled
as COP_AWCAP_TYPE_PIN_COMPLEX.

The result was that hdaudio could fail to detect some devices. We
fix the situation by making sure that COP_AWCAP_TYPE_PIN_COMPLEX
pins always get their specific handling.

The change makes the built-in speaker work on Dell OptiPlex 5060


Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.15 14-Feb-2018 maya

branches: 1.15.2; 1.15.4;
Remove dead code.

From David Binderman in PR kern/53029


# 1.14 04-Jan-2018 khorben

Fix off-by-one when calling snprintf(9) in hdafg_getdev()

This is actually harmless, since:
- the offset is too short rather than too long (no overflow)
- the struct audio_device comes from userland (no information leak)

"looks good to me" nat@


Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825
# 1.13 04-Aug-2017 mrg

branches: 1.13.2;
put all the ELD debugging messages under #ifdef HDAFG_HDMI_DEBUG.
this silences a frequent and largely useless series of messages
in my dmesg. ok jmcneill.


Revision tags: perseant-stdc-iso10646-base netbsd-8-base
# 1.12 01-Jun-2017 chs

branches: 1.12.2;
remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.11 18-Apr-2017 maya

remove redundant assignments
nchan is overwritten before it is used in all cases. so is i.

from clang static analyzer
ok riastradh


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104
# 1.10 25-Oct-2016 pgoyette

branches: 1.10.2;
Replace numeric magic-number constant with something a bit more meaningful.


Revision tags: nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.9 15-Nov-2015 jmcneill

branches: 1.9.2;
disable data island packet transmission on Tegra124 HDMI codec


# 1.8 04-Nov-2015 christos

mute the mixer with that has input children


# 1.7 04-Nov-2015 christos

Remove trailing and stray whitespace.


# 1.6 04-Nov-2015 christos

more complex version to determine what is an input.


# 1.5 04-Nov-2015 christos

be more selective and mute only mic's. Suggested by jmcneill


# 1.4 04-Nov-2015 christos

Startup with the mic muted to avoid feedback and spying.


Revision tags: nick-nhusb-base-20150921
# 1.3 26-Jul-2015 jmcneill

- Support multi-channel (> 2) output to HDMI sinks.
- Fix a bug in hdafg_set_params that could program converters using the
wrong audio_params_t if auconv is in use
- Force Tegra124 HDMI codec to a fixed rate 44.1kHz


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406
# 1.2 28-Mar-2015 jmcneill

branches: 1.2.2;
replace hdaudio_config.h with defflags


# 1.1 28-Mar-2015 jmcneill

Split hdaudio and PCI attach glue. Even though the driver was written with
this separation in mind, all of the code lived in sys/dev/pci/hdaudio. Move
common parts to sys/dev/hdaudio and PCI attach glue to sys/dev/pci.


# 1.27 21-Mar-2022 jmcneill

hdaudio: Obsolete HDAUDIO_ENABLE_DISPLAYPORT and HDAUDIO_ENABLE_HDMI

Enable display port and HDMI devices by default rather than making this
a compile time option.


# 1.26 07-Jan-2022 mlelstv

Safe vendor/product for reporting. Avoids repeated loading/unloading
of hdaudioverbose module.


# 1.25 17-Dec-2021 kre

One build break fixed, another appears...

Use the correct pointer, not the one used in the other piece of
code that changed at the same time..


# 1.24 17-Dec-2021 christos

If the step is 0, use 1 instead of always incrementing step by one to avoid
zerodivide (from RVP)


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
# 1.23 11-Jun-2020 thorpej

Update for proplib(3) API changes.


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
# 1.22 19-Apr-2020 isaki

Make round_blocksize satisfy all of
- restrictions that existed before merging isaki-audio2 branch.
- better support for 6 channels hardware.
- audio layer's requirement.
This may help PR kern/54474.


Revision tags: phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
# 1.21 15-Feb-2020 isaki

branches: 1.21.4;
Enumerating probably always starts from sc->sc_startnode.


# 1.20 30-Jan-2020 jmcneill

Only dump ELD info if HDAFG_HDMI_DEBUG is defined


Revision tags: ad-namecache-base2
# 1.19 18-Jan-2020 jmcneill

Make sure we have at least one of playback or capture streams setup before
attaching the audio layer.


Revision tags: netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609
# 1.18 08-Jun-2019 isaki

branches: 1.18.2; 1.18.4;
Clean get_props().
- Make get_props() return AUDIO_PROP_{PLAYBACK,CAPTURE} properly.
This eliminates need for audio.c to take care of such (old)
drivers which don't return both of PLAYBACK and CAPTURE.
- All get_props() doesn't need to return AUDIO_PROP_MMAP.
It is handled in the audio layer now.


# 1.17 08-May-2019 isaki

Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c


Revision tags: isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.16 27-Sep-2018 manu

branches: 1.16.2;
Fix hdaudio device configuration

When disabling unassociated devices, we have a special handling
for pins of type COP_AWCAP_TYPE_PIN_COMPLEX, but it came after code
that may disable any pins, including the ones that should be handled
as COP_AWCAP_TYPE_PIN_COMPLEX.

The result was that hdaudio could fail to detect some devices. We
fix the situation by making sure that COP_AWCAP_TYPE_PIN_COMPLEX
pins always get their specific handling.

The change makes the built-in speaker work on Dell OptiPlex 5060


Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.15 14-Feb-2018 maya

branches: 1.15.2; 1.15.4;
Remove dead code.

From David Binderman in PR kern/53029


# 1.14 04-Jan-2018 khorben

Fix off-by-one when calling snprintf(9) in hdafg_getdev()

This is actually harmless, since:
- the offset is too short rather than too long (no overflow)
- the struct audio_device comes from userland (no information leak)

"looks good to me" nat@


Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825
# 1.13 04-Aug-2017 mrg

branches: 1.13.2;
put all the ELD debugging messages under #ifdef HDAFG_HDMI_DEBUG.
this silences a frequent and largely useless series of messages
in my dmesg. ok jmcneill.


Revision tags: perseant-stdc-iso10646-base netbsd-8-base
# 1.12 01-Jun-2017 chs

branches: 1.12.2;
remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.11 18-Apr-2017 maya

remove redundant assignments
nchan is overwritten before it is used in all cases. so is i.

from clang static analyzer
ok riastradh


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104
# 1.10 25-Oct-2016 pgoyette

branches: 1.10.2;
Replace numeric magic-number constant with something a bit more meaningful.


Revision tags: nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.9 15-Nov-2015 jmcneill

branches: 1.9.2;
disable data island packet transmission on Tegra124 HDMI codec


# 1.8 04-Nov-2015 christos

mute the mixer with that has input children


# 1.7 04-Nov-2015 christos

Remove trailing and stray whitespace.


# 1.6 04-Nov-2015 christos

more complex version to determine what is an input.


# 1.5 04-Nov-2015 christos

be more selective and mute only mic's. Suggested by jmcneill


# 1.4 04-Nov-2015 christos

Startup with the mic muted to avoid feedback and spying.


Revision tags: nick-nhusb-base-20150921
# 1.3 26-Jul-2015 jmcneill

- Support multi-channel (> 2) output to HDMI sinks.
- Fix a bug in hdafg_set_params that could program converters using the
wrong audio_params_t if auconv is in use
- Force Tegra124 HDMI codec to a fixed rate 44.1kHz


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406
# 1.2 28-Mar-2015 jmcneill

branches: 1.2.2;
replace hdaudio_config.h with defflags


# 1.1 28-Mar-2015 jmcneill

Split hdaudio and PCI attach glue. Even though the driver was written with
this separation in mind, all of the code lived in sys/dev/pci/hdaudio. Move
common parts to sys/dev/hdaudio and PCI attach glue to sys/dev/pci.


# 1.26 07-Jan-2022 mlelstv

Safe vendor/product for reporting. Avoids repeated loading/unloading
of hdaudioverbose module.


# 1.25 17-Dec-2021 kre

One build break fixed, another appears...

Use the correct pointer, not the one used in the other piece of
code that changed at the same time..


# 1.24 17-Dec-2021 christos

If the step is 0, use 1 instead of always incrementing step by one to avoid
zerodivide (from RVP)


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
# 1.23 11-Jun-2020 thorpej

Update for proplib(3) API changes.


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
# 1.22 19-Apr-2020 isaki

Make round_blocksize satisfy all of
- restrictions that existed before merging isaki-audio2 branch.
- better support for 6 channels hardware.
- audio layer's requirement.
This may help PR kern/54474.


Revision tags: phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
# 1.21 15-Feb-2020 isaki

branches: 1.21.4;
Enumerating probably always starts from sc->sc_startnode.


# 1.20 30-Jan-2020 jmcneill

Only dump ELD info if HDAFG_HDMI_DEBUG is defined


Revision tags: ad-namecache-base2
# 1.19 18-Jan-2020 jmcneill

Make sure we have at least one of playback or capture streams setup before
attaching the audio layer.


Revision tags: netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609
# 1.18 08-Jun-2019 isaki

branches: 1.18.2; 1.18.4;
Clean get_props().
- Make get_props() return AUDIO_PROP_{PLAYBACK,CAPTURE} properly.
This eliminates need for audio.c to take care of such (old)
drivers which don't return both of PLAYBACK and CAPTURE.
- All get_props() doesn't need to return AUDIO_PROP_MMAP.
It is handled in the audio layer now.


# 1.17 08-May-2019 isaki

Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c


Revision tags: isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.16 27-Sep-2018 manu

branches: 1.16.2;
Fix hdaudio device configuration

When disabling unassociated devices, we have a special handling
for pins of type COP_AWCAP_TYPE_PIN_COMPLEX, but it came after code
that may disable any pins, including the ones that should be handled
as COP_AWCAP_TYPE_PIN_COMPLEX.

The result was that hdaudio could fail to detect some devices. We
fix the situation by making sure that COP_AWCAP_TYPE_PIN_COMPLEX
pins always get their specific handling.

The change makes the built-in speaker work on Dell OptiPlex 5060


Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.15 14-Feb-2018 maya

branches: 1.15.2; 1.15.4;
Remove dead code.

From David Binderman in PR kern/53029


# 1.14 04-Jan-2018 khorben

Fix off-by-one when calling snprintf(9) in hdafg_getdev()

This is actually harmless, since:
- the offset is too short rather than too long (no overflow)
- the struct audio_device comes from userland (no information leak)

"looks good to me" nat@


Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825
# 1.13 04-Aug-2017 mrg

branches: 1.13.2;
put all the ELD debugging messages under #ifdef HDAFG_HDMI_DEBUG.
this silences a frequent and largely useless series of messages
in my dmesg. ok jmcneill.


Revision tags: perseant-stdc-iso10646-base netbsd-8-base
# 1.12 01-Jun-2017 chs

branches: 1.12.2;
remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.11 18-Apr-2017 maya

remove redundant assignments
nchan is overwritten before it is used in all cases. so is i.

from clang static analyzer
ok riastradh


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104
# 1.10 25-Oct-2016 pgoyette

branches: 1.10.2;
Replace numeric magic-number constant with something a bit more meaningful.


Revision tags: nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.9 15-Nov-2015 jmcneill

branches: 1.9.2;
disable data island packet transmission on Tegra124 HDMI codec


# 1.8 04-Nov-2015 christos

mute the mixer with that has input children


# 1.7 04-Nov-2015 christos

Remove trailing and stray whitespace.


# 1.6 04-Nov-2015 christos

more complex version to determine what is an input.


# 1.5 04-Nov-2015 christos

be more selective and mute only mic's. Suggested by jmcneill


# 1.4 04-Nov-2015 christos

Startup with the mic muted to avoid feedback and spying.


Revision tags: nick-nhusb-base-20150921
# 1.3 26-Jul-2015 jmcneill

- Support multi-channel (> 2) output to HDMI sinks.
- Fix a bug in hdafg_set_params that could program converters using the
wrong audio_params_t if auconv is in use
- Force Tegra124 HDMI codec to a fixed rate 44.1kHz


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406
# 1.2 28-Mar-2015 jmcneill

branches: 1.2.2;
replace hdaudio_config.h with defflags


# 1.1 28-Mar-2015 jmcneill

Split hdaudio and PCI attach glue. Even though the driver was written with
this separation in mind, all of the code lived in sys/dev/pci/hdaudio. Move
common parts to sys/dev/hdaudio and PCI attach glue to sys/dev/pci.


# 1.25 17-Dec-2021 kre

One build break fixed, another appears...

Use the correct pointer, not the one used in the other piece of
code that changed at the same time..


# 1.24 17-Dec-2021 christos

If the step is 0, use 1 instead of always incrementing step by one to avoid
zerodivide (from RVP)


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
# 1.23 11-Jun-2020 thorpej

Update for proplib(3) API changes.


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
# 1.22 19-Apr-2020 isaki

Make round_blocksize satisfy all of
- restrictions that existed before merging isaki-audio2 branch.
- better support for 6 channels hardware.
- audio layer's requirement.
This may help PR kern/54474.


Revision tags: phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
# 1.21 15-Feb-2020 isaki

branches: 1.21.4;
Enumerating probably always starts from sc->sc_startnode.


# 1.20 30-Jan-2020 jmcneill

Only dump ELD info if HDAFG_HDMI_DEBUG is defined


Revision tags: ad-namecache-base2
# 1.19 18-Jan-2020 jmcneill

Make sure we have at least one of playback or capture streams setup before
attaching the audio layer.


Revision tags: netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609
# 1.18 08-Jun-2019 isaki

branches: 1.18.2; 1.18.4;
Clean get_props().
- Make get_props() return AUDIO_PROP_{PLAYBACK,CAPTURE} properly.
This eliminates need for audio.c to take care of such (old)
drivers which don't return both of PLAYBACK and CAPTURE.
- All get_props() doesn't need to return AUDIO_PROP_MMAP.
It is handled in the audio layer now.


# 1.17 08-May-2019 isaki

Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c


Revision tags: isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.16 27-Sep-2018 manu

branches: 1.16.2;
Fix hdaudio device configuration

When disabling unassociated devices, we have a special handling
for pins of type COP_AWCAP_TYPE_PIN_COMPLEX, but it came after code
that may disable any pins, including the ones that should be handled
as COP_AWCAP_TYPE_PIN_COMPLEX.

The result was that hdaudio could fail to detect some devices. We
fix the situation by making sure that COP_AWCAP_TYPE_PIN_COMPLEX
pins always get their specific handling.

The change makes the built-in speaker work on Dell OptiPlex 5060


Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.15 14-Feb-2018 maya

branches: 1.15.2; 1.15.4;
Remove dead code.

From David Binderman in PR kern/53029


# 1.14 04-Jan-2018 khorben

Fix off-by-one when calling snprintf(9) in hdafg_getdev()

This is actually harmless, since:
- the offset is too short rather than too long (no overflow)
- the struct audio_device comes from userland (no information leak)

"looks good to me" nat@


Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825
# 1.13 04-Aug-2017 mrg

branches: 1.13.2;
put all the ELD debugging messages under #ifdef HDAFG_HDMI_DEBUG.
this silences a frequent and largely useless series of messages
in my dmesg. ok jmcneill.


Revision tags: perseant-stdc-iso10646-base netbsd-8-base
# 1.12 01-Jun-2017 chs

branches: 1.12.2;
remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.11 18-Apr-2017 maya

remove redundant assignments
nchan is overwritten before it is used in all cases. so is i.

from clang static analyzer
ok riastradh


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104
# 1.10 25-Oct-2016 pgoyette

branches: 1.10.2;
Replace numeric magic-number constant with something a bit more meaningful.


Revision tags: nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.9 15-Nov-2015 jmcneill

branches: 1.9.2;
disable data island packet transmission on Tegra124 HDMI codec


# 1.8 04-Nov-2015 christos

mute the mixer with that has input children


# 1.7 04-Nov-2015 christos

Remove trailing and stray whitespace.


# 1.6 04-Nov-2015 christos

more complex version to determine what is an input.


# 1.5 04-Nov-2015 christos

be more selective and mute only mic's. Suggested by jmcneill


# 1.4 04-Nov-2015 christos

Startup with the mic muted to avoid feedback and spying.


Revision tags: nick-nhusb-base-20150921
# 1.3 26-Jul-2015 jmcneill

- Support multi-channel (> 2) output to HDMI sinks.
- Fix a bug in hdafg_set_params that could program converters using the
wrong audio_params_t if auconv is in use
- Force Tegra124 HDMI codec to a fixed rate 44.1kHz


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406
# 1.2 28-Mar-2015 jmcneill

branches: 1.2.2;
replace hdaudio_config.h with defflags


# 1.1 28-Mar-2015 jmcneill

Split hdaudio and PCI attach glue. Even though the driver was written with
this separation in mind, all of the code lived in sys/dev/pci/hdaudio. Move
common parts to sys/dev/hdaudio and PCI attach glue to sys/dev/pci.


# 1.23 11-Jun-2020 thorpej

Update for proplib(3) API changes.


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
# 1.22 19-Apr-2020 isaki

Make round_blocksize satisfy all of
- restrictions that existed before merging isaki-audio2 branch.
- better support for 6 channels hardware.
- audio layer's requirement.
This may help PR kern/54474.


Revision tags: phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
# 1.21 15-Feb-2020 isaki

branches: 1.21.4;
Enumerating probably always starts from sc->sc_startnode.


# 1.20 30-Jan-2020 jmcneill

Only dump ELD info if HDAFG_HDMI_DEBUG is defined


Revision tags: ad-namecache-base2
# 1.19 18-Jan-2020 jmcneill

Make sure we have at least one of playback or capture streams setup before
attaching the audio layer.


Revision tags: netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609
# 1.18 08-Jun-2019 isaki

branches: 1.18.2; 1.18.4;
Clean get_props().
- Make get_props() return AUDIO_PROP_{PLAYBACK,CAPTURE} properly.
This eliminates need for audio.c to take care of such (old)
drivers which don't return both of PLAYBACK and CAPTURE.
- All get_props() doesn't need to return AUDIO_PROP_MMAP.
It is handled in the audio layer now.


# 1.17 08-May-2019 isaki

Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c


Revision tags: isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.16 27-Sep-2018 manu

branches: 1.16.2;
Fix hdaudio device configuration

When disabling unassociated devices, we have a special handling
for pins of type COP_AWCAP_TYPE_PIN_COMPLEX, but it came after code
that may disable any pins, including the ones that should be handled
as COP_AWCAP_TYPE_PIN_COMPLEX.

The result was that hdaudio could fail to detect some devices. We
fix the situation by making sure that COP_AWCAP_TYPE_PIN_COMPLEX
pins always get their specific handling.

The change makes the built-in speaker work on Dell OptiPlex 5060


Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.15 14-Feb-2018 maya

branches: 1.15.2; 1.15.4;
Remove dead code.

From David Binderman in PR kern/53029


# 1.14 04-Jan-2018 khorben

Fix off-by-one when calling snprintf(9) in hdafg_getdev()

This is actually harmless, since:
- the offset is too short rather than too long (no overflow)
- the struct audio_device comes from userland (no information leak)

"looks good to me" nat@


Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825
# 1.13 04-Aug-2017 mrg

branches: 1.13.2;
put all the ELD debugging messages under #ifdef HDAFG_HDMI_DEBUG.
this silences a frequent and largely useless series of messages
in my dmesg. ok jmcneill.


Revision tags: perseant-stdc-iso10646-base netbsd-8-base
# 1.12 01-Jun-2017 chs

branches: 1.12.2;
remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.11 18-Apr-2017 maya

remove redundant assignments
nchan is overwritten before it is used in all cases. so is i.

from clang static analyzer
ok riastradh


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104
# 1.10 25-Oct-2016 pgoyette

branches: 1.10.2;
Replace numeric magic-number constant with something a bit more meaningful.


Revision tags: nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.9 15-Nov-2015 jmcneill

branches: 1.9.2;
disable data island packet transmission on Tegra124 HDMI codec


# 1.8 04-Nov-2015 christos

mute the mixer with that has input children


# 1.7 04-Nov-2015 christos

Remove trailing and stray whitespace.


# 1.6 04-Nov-2015 christos

more complex version to determine what is an input.


# 1.5 04-Nov-2015 christos

be more selective and mute only mic's. Suggested by jmcneill


# 1.4 04-Nov-2015 christos

Startup with the mic muted to avoid feedback and spying.


Revision tags: nick-nhusb-base-20150921
# 1.3 26-Jul-2015 jmcneill

- Support multi-channel (> 2) output to HDMI sinks.
- Fix a bug in hdafg_set_params that could program converters using the
wrong audio_params_t if auconv is in use
- Force Tegra124 HDMI codec to a fixed rate 44.1kHz


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406
# 1.2 28-Mar-2015 jmcneill

branches: 1.2.2;
replace hdaudio_config.h with defflags


# 1.1 28-Mar-2015 jmcneill

Split hdaudio and PCI attach glue. Even though the driver was written with
this separation in mind, all of the code lived in sys/dev/pci/hdaudio. Move
common parts to sys/dev/hdaudio and PCI attach glue to sys/dev/pci.


# 1.22 19-Apr-2020 isaki

Make round_blocksize satisfy all of
- restrictions that existed before merging isaki-audio2 branch.
- better support for 6 channels hardware.
- audio layer's requirement.
This may help PR kern/54474.


Revision tags: phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
# 1.21 15-Feb-2020 isaki

Enumerating probably always starts from sc->sc_startnode.


# 1.20 30-Jan-2020 jmcneill

Only dump ELD info if HDAFG_HDMI_DEBUG is defined


Revision tags: ad-namecache-base2
# 1.19 18-Jan-2020 jmcneill

Make sure we have at least one of playback or capture streams setup before
attaching the audio layer.


Revision tags: netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609
# 1.18 08-Jun-2019 isaki

branches: 1.18.4;
Clean get_props().
- Make get_props() return AUDIO_PROP_{PLAYBACK,CAPTURE} properly.
This eliminates need for audio.c to take care of such (old)
drivers which don't return both of PLAYBACK and CAPTURE.
- All get_props() doesn't need to return AUDIO_PROP_MMAP.
It is handled in the audio layer now.


# 1.17 08-May-2019 isaki

Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c


Revision tags: isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.16 27-Sep-2018 manu

branches: 1.16.2;
Fix hdaudio device configuration

When disabling unassociated devices, we have a special handling
for pins of type COP_AWCAP_TYPE_PIN_COMPLEX, but it came after code
that may disable any pins, including the ones that should be handled
as COP_AWCAP_TYPE_PIN_COMPLEX.

The result was that hdaudio could fail to detect some devices. We
fix the situation by making sure that COP_AWCAP_TYPE_PIN_COMPLEX
pins always get their specific handling.

The change makes the built-in speaker work on Dell OptiPlex 5060


Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.15 14-Feb-2018 maya

branches: 1.15.2; 1.15.4;
Remove dead code.

From David Binderman in PR kern/53029


# 1.14 04-Jan-2018 khorben

Fix off-by-one when calling snprintf(9) in hdafg_getdev()

This is actually harmless, since:
- the offset is too short rather than too long (no overflow)
- the struct audio_device comes from userland (no information leak)

"looks good to me" nat@


Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825
# 1.13 04-Aug-2017 mrg

branches: 1.13.2;
put all the ELD debugging messages under #ifdef HDAFG_HDMI_DEBUG.
this silences a frequent and largely useless series of messages
in my dmesg. ok jmcneill.


Revision tags: perseant-stdc-iso10646-base netbsd-8-base
# 1.12 01-Jun-2017 chs

branches: 1.12.2;
remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.11 18-Apr-2017 maya

remove redundant assignments
nchan is overwritten before it is used in all cases. so is i.

from clang static analyzer
ok riastradh


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104
# 1.10 25-Oct-2016 pgoyette

branches: 1.10.2;
Replace numeric magic-number constant with something a bit more meaningful.


Revision tags: nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.9 15-Nov-2015 jmcneill

branches: 1.9.2;
disable data island packet transmission on Tegra124 HDMI codec


# 1.8 04-Nov-2015 christos

mute the mixer with that has input children


# 1.7 04-Nov-2015 christos

Remove trailing and stray whitespace.


# 1.6 04-Nov-2015 christos

more complex version to determine what is an input.


# 1.5 04-Nov-2015 christos

be more selective and mute only mic's. Suggested by jmcneill


# 1.4 04-Nov-2015 christos

Startup with the mic muted to avoid feedback and spying.


Revision tags: nick-nhusb-base-20150921
# 1.3 26-Jul-2015 jmcneill

- Support multi-channel (> 2) output to HDMI sinks.
- Fix a bug in hdafg_set_params that could program converters using the
wrong audio_params_t if auconv is in use
- Force Tegra124 HDMI codec to a fixed rate 44.1kHz


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406
# 1.2 28-Mar-2015 jmcneill

branches: 1.2.2;
replace hdaudio_config.h with defflags


# 1.1 28-Mar-2015 jmcneill

Split hdaudio and PCI attach glue. Even though the driver was written with
this separation in mind, all of the code lived in sys/dev/pci/hdaudio. Move
common parts to sys/dev/hdaudio and PCI attach glue to sys/dev/pci.


# 1.21 15-Feb-2020 isaki

Enumerating probably always starts from sc->sc_startnode.


# 1.20 30-Jan-2020 jmcneill

Only dump ELD info if HDAFG_HDMI_DEBUG is defined


Revision tags: ad-namecache-base2
# 1.19 18-Jan-2020 jmcneill

Make sure we have at least one of playback or capture streams setup before
attaching the audio layer.


Revision tags: netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609
# 1.18 08-Jun-2019 isaki

branches: 1.18.4;
Clean get_props().
- Make get_props() return AUDIO_PROP_{PLAYBACK,CAPTURE} properly.
This eliminates need for audio.c to take care of such (old)
drivers which don't return both of PLAYBACK and CAPTURE.
- All get_props() doesn't need to return AUDIO_PROP_MMAP.
It is handled in the audio layer now.


# 1.17 08-May-2019 isaki

Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c


Revision tags: isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.16 27-Sep-2018 manu

branches: 1.16.2;
Fix hdaudio device configuration

When disabling unassociated devices, we have a special handling
for pins of type COP_AWCAP_TYPE_PIN_COMPLEX, but it came after code
that may disable any pins, including the ones that should be handled
as COP_AWCAP_TYPE_PIN_COMPLEX.

The result was that hdaudio could fail to detect some devices. We
fix the situation by making sure that COP_AWCAP_TYPE_PIN_COMPLEX
pins always get their specific handling.

The change makes the built-in speaker work on Dell OptiPlex 5060


Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.15 14-Feb-2018 maya

branches: 1.15.2; 1.15.4;
Remove dead code.

From David Binderman in PR kern/53029


# 1.14 04-Jan-2018 khorben

Fix off-by-one when calling snprintf(9) in hdafg_getdev()

This is actually harmless, since:
- the offset is too short rather than too long (no overflow)
- the struct audio_device comes from userland (no information leak)

"looks good to me" nat@


Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825
# 1.13 04-Aug-2017 mrg

branches: 1.13.2;
put all the ELD debugging messages under #ifdef HDAFG_HDMI_DEBUG.
this silences a frequent and largely useless series of messages
in my dmesg. ok jmcneill.


Revision tags: perseant-stdc-iso10646-base netbsd-8-base
# 1.12 01-Jun-2017 chs

branches: 1.12.2;
remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.11 18-Apr-2017 maya

remove redundant assignments
nchan is overwritten before it is used in all cases. so is i.

from clang static analyzer
ok riastradh


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104
# 1.10 25-Oct-2016 pgoyette

branches: 1.10.2;
Replace numeric magic-number constant with something a bit more meaningful.


Revision tags: nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.9 15-Nov-2015 jmcneill

branches: 1.9.2;
disable data island packet transmission on Tegra124 HDMI codec


# 1.8 04-Nov-2015 christos

mute the mixer with that has input children


# 1.7 04-Nov-2015 christos

Remove trailing and stray whitespace.


# 1.6 04-Nov-2015 christos

more complex version to determine what is an input.


# 1.5 04-Nov-2015 christos

be more selective and mute only mic's. Suggested by jmcneill


# 1.4 04-Nov-2015 christos

Startup with the mic muted to avoid feedback and spying.


Revision tags: nick-nhusb-base-20150921
# 1.3 26-Jul-2015 jmcneill

- Support multi-channel (> 2) output to HDMI sinks.
- Fix a bug in hdafg_set_params that could program converters using the
wrong audio_params_t if auconv is in use
- Force Tegra124 HDMI codec to a fixed rate 44.1kHz


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406
# 1.2 28-Mar-2015 jmcneill

branches: 1.2.2;
replace hdaudio_config.h with defflags


# 1.1 28-Mar-2015 jmcneill

Split hdaudio and PCI attach glue. Even though the driver was written with
this separation in mind, all of the code lived in sys/dev/pci/hdaudio. Move
common parts to sys/dev/hdaudio and PCI attach glue to sys/dev/pci.


# 1.20 30-Jan-2020 jmcneill

Only dump ELD info if HDAFG_HDMI_DEBUG is defined


Revision tags: ad-namecache-base2
# 1.19 18-Jan-2020 jmcneill

Make sure we have at least one of playback or capture streams setup before
attaching the audio layer.


Revision tags: ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609
# 1.18 08-Jun-2019 isaki

branches: 1.18.4;
Clean get_props().
- Make get_props() return AUDIO_PROP_{PLAYBACK,CAPTURE} properly.
This eliminates need for audio.c to take care of such (old)
drivers which don't return both of PLAYBACK and CAPTURE.
- All get_props() doesn't need to return AUDIO_PROP_MMAP.
It is handled in the audio layer now.


# 1.17 08-May-2019 isaki

Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c


Revision tags: isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.16 27-Sep-2018 manu

branches: 1.16.2;
Fix hdaudio device configuration

When disabling unassociated devices, we have a special handling
for pins of type COP_AWCAP_TYPE_PIN_COMPLEX, but it came after code
that may disable any pins, including the ones that should be handled
as COP_AWCAP_TYPE_PIN_COMPLEX.

The result was that hdaudio could fail to detect some devices. We
fix the situation by making sure that COP_AWCAP_TYPE_PIN_COMPLEX
pins always get their specific handling.

The change makes the built-in speaker work on Dell OptiPlex 5060


Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.15 14-Feb-2018 maya

branches: 1.15.2; 1.15.4;
Remove dead code.

From David Binderman in PR kern/53029


# 1.14 04-Jan-2018 khorben

Fix off-by-one when calling snprintf(9) in hdafg_getdev()

This is actually harmless, since:
- the offset is too short rather than too long (no overflow)
- the struct audio_device comes from userland (no information leak)

"looks good to me" nat@


Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825
# 1.13 04-Aug-2017 mrg

branches: 1.13.2;
put all the ELD debugging messages under #ifdef HDAFG_HDMI_DEBUG.
this silences a frequent and largely useless series of messages
in my dmesg. ok jmcneill.


Revision tags: perseant-stdc-iso10646-base netbsd-8-base
# 1.12 01-Jun-2017 chs

branches: 1.12.2;
remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.11 18-Apr-2017 maya

remove redundant assignments
nchan is overwritten before it is used in all cases. so is i.

from clang static analyzer
ok riastradh


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104
# 1.10 25-Oct-2016 pgoyette

branches: 1.10.2;
Replace numeric magic-number constant with something a bit more meaningful.


Revision tags: nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.9 15-Nov-2015 jmcneill

branches: 1.9.2;
disable data island packet transmission on Tegra124 HDMI codec


# 1.8 04-Nov-2015 christos

mute the mixer with that has input children


# 1.7 04-Nov-2015 christos

Remove trailing and stray whitespace.


# 1.6 04-Nov-2015 christos

more complex version to determine what is an input.


# 1.5 04-Nov-2015 christos

be more selective and mute only mic's. Suggested by jmcneill


# 1.4 04-Nov-2015 christos

Startup with the mic muted to avoid feedback and spying.


Revision tags: nick-nhusb-base-20150921
# 1.3 26-Jul-2015 jmcneill

- Support multi-channel (> 2) output to HDMI sinks.
- Fix a bug in hdafg_set_params that could program converters using the
wrong audio_params_t if auconv is in use
- Force Tegra124 HDMI codec to a fixed rate 44.1kHz


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406
# 1.2 28-Mar-2015 jmcneill

branches: 1.2.2;
replace hdaudio_config.h with defflags


# 1.1 28-Mar-2015 jmcneill

Split hdaudio and PCI attach glue. Even though the driver was written with
this separation in mind, all of the code lived in sys/dev/pci/hdaudio. Move
common parts to sys/dev/hdaudio and PCI attach glue to sys/dev/pci.


# 1.19 18-Jan-2020 jmcneill

Make sure we have at least one of playback or capture streams setup before
attaching the audio layer.


Revision tags: ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609
# 1.18 08-Jun-2019 isaki

Clean get_props().
- Make get_props() return AUDIO_PROP_{PLAYBACK,CAPTURE} properly.
This eliminates need for audio.c to take care of such (old)
drivers which don't return both of PLAYBACK and CAPTURE.
- All get_props() doesn't need to return AUDIO_PROP_MMAP.
It is handled in the audio layer now.


# 1.17 08-May-2019 isaki

Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c


Revision tags: isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.16 27-Sep-2018 manu

branches: 1.16.2;
Fix hdaudio device configuration

When disabling unassociated devices, we have a special handling
for pins of type COP_AWCAP_TYPE_PIN_COMPLEX, but it came after code
that may disable any pins, including the ones that should be handled
as COP_AWCAP_TYPE_PIN_COMPLEX.

The result was that hdaudio could fail to detect some devices. We
fix the situation by making sure that COP_AWCAP_TYPE_PIN_COMPLEX
pins always get their specific handling.

The change makes the built-in speaker work on Dell OptiPlex 5060


Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.15 14-Feb-2018 maya

branches: 1.15.2; 1.15.4;
Remove dead code.

From David Binderman in PR kern/53029


# 1.14 04-Jan-2018 khorben

Fix off-by-one when calling snprintf(9) in hdafg_getdev()

This is actually harmless, since:
- the offset is too short rather than too long (no overflow)
- the struct audio_device comes from userland (no information leak)

"looks good to me" nat@


Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825
# 1.13 04-Aug-2017 mrg

branches: 1.13.2;
put all the ELD debugging messages under #ifdef HDAFG_HDMI_DEBUG.
this silences a frequent and largely useless series of messages
in my dmesg. ok jmcneill.


Revision tags: perseant-stdc-iso10646-base netbsd-8-base
# 1.12 01-Jun-2017 chs

branches: 1.12.2;
remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.11 18-Apr-2017 maya

remove redundant assignments
nchan is overwritten before it is used in all cases. so is i.

from clang static analyzer
ok riastradh


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104
# 1.10 25-Oct-2016 pgoyette

branches: 1.10.2;
Replace numeric magic-number constant with something a bit more meaningful.


Revision tags: nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.9 15-Nov-2015 jmcneill

branches: 1.9.2;
disable data island packet transmission on Tegra124 HDMI codec


# 1.8 04-Nov-2015 christos

mute the mixer with that has input children


# 1.7 04-Nov-2015 christos

Remove trailing and stray whitespace.


# 1.6 04-Nov-2015 christos

more complex version to determine what is an input.


# 1.5 04-Nov-2015 christos

be more selective and mute only mic's. Suggested by jmcneill


# 1.4 04-Nov-2015 christos

Startup with the mic muted to avoid feedback and spying.


Revision tags: nick-nhusb-base-20150921
# 1.3 26-Jul-2015 jmcneill

- Support multi-channel (> 2) output to HDMI sinks.
- Fix a bug in hdafg_set_params that could program converters using the
wrong audio_params_t if auconv is in use
- Force Tegra124 HDMI codec to a fixed rate 44.1kHz


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406
# 1.2 28-Mar-2015 jmcneill

branches: 1.2.2;
replace hdaudio_config.h with defflags


# 1.1 28-Mar-2015 jmcneill

Split hdaudio and PCI attach glue. Even though the driver was written with
this separation in mind, all of the code lived in sys/dev/pci/hdaudio. Move
common parts to sys/dev/hdaudio and PCI attach glue to sys/dev/pci.


# 1.18 08-Jun-2019 isaki

Clean get_props().
- Make get_props() return AUDIO_PROP_{PLAYBACK,CAPTURE} properly.
This eliminates need for audio.c to take care of such (old)
drivers which don't return both of PLAYBACK and CAPTURE.
- All get_props() doesn't need to return AUDIO_PROP_MMAP.
It is handled in the audio layer now.


# 1.17 08-May-2019 isaki

Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c


Revision tags: isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.16 27-Sep-2018 manu

branches: 1.16.2;
Fix hdaudio device configuration

When disabling unassociated devices, we have a special handling
for pins of type COP_AWCAP_TYPE_PIN_COMPLEX, but it came after code
that may disable any pins, including the ones that should be handled
as COP_AWCAP_TYPE_PIN_COMPLEX.

The result was that hdaudio could fail to detect some devices. We
fix the situation by making sure that COP_AWCAP_TYPE_PIN_COMPLEX
pins always get their specific handling.

The change makes the built-in speaker work on Dell OptiPlex 5060


Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.15 14-Feb-2018 maya

branches: 1.15.2;
Remove dead code.

From David Binderman in PR kern/53029


# 1.14 04-Jan-2018 khorben

Fix off-by-one when calling snprintf(9) in hdafg_getdev()

This is actually harmless, since:
- the offset is too short rather than too long (no overflow)
- the struct audio_device comes from userland (no information leak)

"looks good to me" nat@


Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825
# 1.13 04-Aug-2017 mrg

branches: 1.13.2;
put all the ELD debugging messages under #ifdef HDAFG_HDMI_DEBUG.
this silences a frequent and largely useless series of messages
in my dmesg. ok jmcneill.


Revision tags: perseant-stdc-iso10646-base netbsd-8-base
# 1.12 01-Jun-2017 chs

branches: 1.12.2;
remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.11 18-Apr-2017 maya

remove redundant assignments
nchan is overwritten before it is used in all cases. so is i.

from clang static analyzer
ok riastradh


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104
# 1.10 25-Oct-2016 pgoyette

branches: 1.10.2;
Replace numeric magic-number constant with something a bit more meaningful.


Revision tags: nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.9 15-Nov-2015 jmcneill

branches: 1.9.2;
disable data island packet transmission on Tegra124 HDMI codec


# 1.8 04-Nov-2015 christos

mute the mixer with that has input children


# 1.7 04-Nov-2015 christos

Remove trailing and stray whitespace.


# 1.6 04-Nov-2015 christos

more complex version to determine what is an input.


# 1.5 04-Nov-2015 christos

be more selective and mute only mic's. Suggested by jmcneill


# 1.4 04-Nov-2015 christos

Startup with the mic muted to avoid feedback and spying.


Revision tags: nick-nhusb-base-20150921
# 1.3 26-Jul-2015 jmcneill

- Support multi-channel (> 2) output to HDMI sinks.
- Fix a bug in hdafg_set_params that could program converters using the
wrong audio_params_t if auconv is in use
- Force Tegra124 HDMI codec to a fixed rate 44.1kHz


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406
# 1.2 28-Mar-2015 jmcneill

branches: 1.2.2;
replace hdaudio_config.h with defflags


# 1.1 28-Mar-2015 jmcneill

Split hdaudio and PCI attach glue. Even though the driver was written with
this separation in mind, all of the code lived in sys/dev/pci/hdaudio. Move
common parts to sys/dev/hdaudio and PCI attach glue to sys/dev/pci.


# 1.17 08-May-2019 isaki

Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c


Revision tags: isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.16 27-Sep-2018 manu

branches: 1.16.2;
Fix hdaudio device configuration

When disabling unassociated devices, we have a special handling
for pins of type COP_AWCAP_TYPE_PIN_COMPLEX, but it came after code
that may disable any pins, including the ones that should be handled
as COP_AWCAP_TYPE_PIN_COMPLEX.

The result was that hdaudio could fail to detect some devices. We
fix the situation by making sure that COP_AWCAP_TYPE_PIN_COMPLEX
pins always get their specific handling.

The change makes the built-in speaker work on Dell OptiPlex 5060


Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.15 14-Feb-2018 maya

branches: 1.15.2;
Remove dead code.

From David Binderman in PR kern/53029


# 1.14 04-Jan-2018 khorben

Fix off-by-one when calling snprintf(9) in hdafg_getdev()

This is actually harmless, since:
- the offset is too short rather than too long (no overflow)
- the struct audio_device comes from userland (no information leak)

"looks good to me" nat@


Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825
# 1.13 04-Aug-2017 mrg

branches: 1.13.2;
put all the ELD debugging messages under #ifdef HDAFG_HDMI_DEBUG.
this silences a frequent and largely useless series of messages
in my dmesg. ok jmcneill.


Revision tags: perseant-stdc-iso10646-base netbsd-8-base
# 1.12 01-Jun-2017 chs

branches: 1.12.2;
remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.11 18-Apr-2017 maya

remove redundant assignments
nchan is overwritten before it is used in all cases. so is i.

from clang static analyzer
ok riastradh


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104
# 1.10 25-Oct-2016 pgoyette

branches: 1.10.2;
Replace numeric magic-number constant with something a bit more meaningful.


Revision tags: nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.9 15-Nov-2015 jmcneill

branches: 1.9.2;
disable data island packet transmission on Tegra124 HDMI codec


# 1.8 04-Nov-2015 christos

mute the mixer with that has input children


# 1.7 04-Nov-2015 christos

Remove trailing and stray whitespace.


# 1.6 04-Nov-2015 christos

more complex version to determine what is an input.


# 1.5 04-Nov-2015 christos

be more selective and mute only mic's. Suggested by jmcneill


# 1.4 04-Nov-2015 christos

Startup with the mic muted to avoid feedback and spying.


Revision tags: nick-nhusb-base-20150921
# 1.3 26-Jul-2015 jmcneill

- Support multi-channel (> 2) output to HDMI sinks.
- Fix a bug in hdafg_set_params that could program converters using the
wrong audio_params_t if auconv is in use
- Force Tegra124 HDMI codec to a fixed rate 44.1kHz


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406
# 1.2 28-Mar-2015 jmcneill

branches: 1.2.2;
replace hdaudio_config.h with defflags


# 1.1 28-Mar-2015 jmcneill

Split hdaudio and PCI attach glue. Even though the driver was written with
this separation in mind, all of the code lived in sys/dev/pci/hdaudio. Move
common parts to sys/dev/hdaudio and PCI attach glue to sys/dev/pci.


Revision tags: isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.16 27-Sep-2018 manu

branches: 1.16.2;
Fix hdaudio device configuration

When disabling unassociated devices, we have a special handling
for pins of type COP_AWCAP_TYPE_PIN_COMPLEX, but it came after code
that may disable any pins, including the ones that should be handled
as COP_AWCAP_TYPE_PIN_COMPLEX.

The result was that hdaudio could fail to detect some devices. We
fix the situation by making sure that COP_AWCAP_TYPE_PIN_COMPLEX
pins always get their specific handling.

The change makes the built-in speaker work on Dell OptiPlex 5060


Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.15 14-Feb-2018 maya

branches: 1.15.2;
Remove dead code.

From David Binderman in PR kern/53029


# 1.14 04-Jan-2018 khorben

Fix off-by-one when calling snprintf(9) in hdafg_getdev()

This is actually harmless, since:
- the offset is too short rather than too long (no overflow)
- the struct audio_device comes from userland (no information leak)

"looks good to me" nat@


Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825
# 1.13 04-Aug-2017 mrg

branches: 1.13.2;
put all the ELD debugging messages under #ifdef HDAFG_HDMI_DEBUG.
this silences a frequent and largely useless series of messages
in my dmesg. ok jmcneill.


Revision tags: perseant-stdc-iso10646-base netbsd-8-base
# 1.12 01-Jun-2017 chs

branches: 1.12.2;
remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.11 18-Apr-2017 maya

remove redundant assignments
nchan is overwritten before it is used in all cases. so is i.

from clang static analyzer
ok riastradh


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104
# 1.10 25-Oct-2016 pgoyette

branches: 1.10.2;
Replace numeric magic-number constant with something a bit more meaningful.


Revision tags: nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.9 15-Nov-2015 jmcneill

branches: 1.9.2;
disable data island packet transmission on Tegra124 HDMI codec


# 1.8 04-Nov-2015 christos

mute the mixer with that has input children


# 1.7 04-Nov-2015 christos

Remove trailing and stray whitespace.


# 1.6 04-Nov-2015 christos

more complex version to determine what is an input.


# 1.5 04-Nov-2015 christos

be more selective and mute only mic's. Suggested by jmcneill


# 1.4 04-Nov-2015 christos

Startup with the mic muted to avoid feedback and spying.


Revision tags: nick-nhusb-base-20150921
# 1.3 26-Jul-2015 jmcneill

- Support multi-channel (> 2) output to HDMI sinks.
- Fix a bug in hdafg_set_params that could program converters using the
wrong audio_params_t if auconv is in use
- Force Tegra124 HDMI codec to a fixed rate 44.1kHz


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406
# 1.2 28-Mar-2015 jmcneill

branches: 1.2.2;
replace hdaudio_config.h with defflags


# 1.1 28-Mar-2015 jmcneill

Split hdaudio and PCI attach glue. Even though the driver was written with
this separation in mind, all of the code lived in sys/dev/pci/hdaudio. Move
common parts to sys/dev/hdaudio and PCI attach glue to sys/dev/pci.


# 1.14 04-Jan-2018 khorben

Fix off-by-one when calling snprintf(9) in hdafg_getdev()

This is actually harmless, since:
- the offset is too short rather than too long (no overflow)
- the struct audio_device comes from userland (no information leak)

"looks good to me" nat@


Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825
# 1.13 04-Aug-2017 mrg

branches: 1.13.2;
put all the ELD debugging messages under #ifdef HDAFG_HDMI_DEBUG.
this silences a frequent and largely useless series of messages
in my dmesg. ok jmcneill.


Revision tags: perseant-stdc-iso10646-base netbsd-8-base
# 1.12 01-Jun-2017 chs

branches: 1.12.2;
remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.11 18-Apr-2017 maya

remove redundant assignments
nchan is overwritten before it is used in all cases. so is i.

from clang static analyzer
ok riastradh


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104
# 1.10 25-Oct-2016 pgoyette

branches: 1.10.2;
Replace numeric magic-number constant with something a bit more meaningful.


Revision tags: nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.9 15-Nov-2015 jmcneill

branches: 1.9.2;
disable data island packet transmission on Tegra124 HDMI codec


# 1.8 04-Nov-2015 christos

mute the mixer with that has input children


# 1.7 04-Nov-2015 christos

Remove trailing and stray whitespace.


# 1.6 04-Nov-2015 christos

more complex version to determine what is an input.


# 1.5 04-Nov-2015 christos

be more selective and mute only mic's. Suggested by jmcneill


# 1.4 04-Nov-2015 christos

Startup with the mic muted to avoid feedback and spying.


Revision tags: nick-nhusb-base-20150921
# 1.3 26-Jul-2015 jmcneill

- Support multi-channel (> 2) output to HDMI sinks.
- Fix a bug in hdafg_set_params that could program converters using the
wrong audio_params_t if auconv is in use
- Force Tegra124 HDMI codec to a fixed rate 44.1kHz


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406
# 1.2 28-Mar-2015 jmcneill

branches: 1.2.2;
replace hdaudio_config.h with defflags


# 1.1 28-Mar-2015 jmcneill

Split hdaudio and PCI attach glue. Even though the driver was written with
this separation in mind, all of the code lived in sys/dev/pci/hdaudio. Move
common parts to sys/dev/hdaudio and PCI attach glue to sys/dev/pci.


# 1.13 04-Aug-2017 mrg

put all the ELD debugging messages under #ifdef HDAFG_HDMI_DEBUG.
this silences a frequent and largely useless series of messages
in my dmesg. ok jmcneill.


Revision tags: perseant-stdc-iso10646-base netbsd-8-base
# 1.12 01-Jun-2017 chs

remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.11 18-Apr-2017 maya

remove redundant assignments
nchan is overwritten before it is used in all cases. so is i.

from clang static analyzer
ok riastradh


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104
# 1.10 25-Oct-2016 pgoyette

branches: 1.10.2;
Replace numeric magic-number constant with something a bit more meaningful.


Revision tags: nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.9 15-Nov-2015 jmcneill

branches: 1.9.2;
disable data island packet transmission on Tegra124 HDMI codec


# 1.8 04-Nov-2015 christos

mute the mixer with that has input children


# 1.7 04-Nov-2015 christos

Remove trailing and stray whitespace.


# 1.6 04-Nov-2015 christos

more complex version to determine what is an input.


# 1.5 04-Nov-2015 christos

be more selective and mute only mic's. Suggested by jmcneill


# 1.4 04-Nov-2015 christos

Startup with the mic muted to avoid feedback and spying.


Revision tags: nick-nhusb-base-20150921
# 1.3 26-Jul-2015 jmcneill

- Support multi-channel (> 2) output to HDMI sinks.
- Fix a bug in hdafg_set_params that could program converters using the
wrong audio_params_t if auconv is in use
- Force Tegra124 HDMI codec to a fixed rate 44.1kHz


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406
# 1.2 28-Mar-2015 jmcneill

branches: 1.2.2;
replace hdaudio_config.h with defflags


# 1.1 28-Mar-2015 jmcneill

Split hdaudio and PCI attach glue. Even though the driver was written with
this separation in mind, all of the code lived in sys/dev/pci/hdaudio. Move
common parts to sys/dev/hdaudio and PCI attach glue to sys/dev/pci.


# 1.12 01-Jun-2017 chs

remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.11 18-Apr-2017 maya

remove redundant assignments
nchan is overwritten before it is used in all cases. so is i.

from clang static analyzer
ok riastradh


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104
# 1.10 25-Oct-2016 pgoyette

branches: 1.10.2;
Replace numeric magic-number constant with something a bit more meaningful.


Revision tags: nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.9 15-Nov-2015 jmcneill

branches: 1.9.2;
disable data island packet transmission on Tegra124 HDMI codec


# 1.8 04-Nov-2015 christos

mute the mixer with that has input children


# 1.7 04-Nov-2015 christos

Remove trailing and stray whitespace.


# 1.6 04-Nov-2015 christos

more complex version to determine what is an input.


# 1.5 04-Nov-2015 christos

be more selective and mute only mic's. Suggested by jmcneill


# 1.4 04-Nov-2015 christos

Startup with the mic muted to avoid feedback and spying.


Revision tags: nick-nhusb-base-20150921
# 1.3 26-Jul-2015 jmcneill

- Support multi-channel (> 2) output to HDMI sinks.
- Fix a bug in hdafg_set_params that could program converters using the
wrong audio_params_t if auconv is in use
- Force Tegra124 HDMI codec to a fixed rate 44.1kHz


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406
# 1.2 28-Mar-2015 jmcneill

branches: 1.2.2;
replace hdaudio_config.h with defflags


# 1.1 28-Mar-2015 jmcneill

Split hdaudio and PCI attach glue. Even though the driver was written with
this separation in mind, all of the code lived in sys/dev/pci/hdaudio. Move
common parts to sys/dev/hdaudio and PCI attach glue to sys/dev/pci.


Revision tags: prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.11 18-Apr-2017 maya

remove redundant assignments
nchan is overwritten before it is used in all cases. so is i.

from clang static analyzer
ok riastradh


Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104
# 1.10 25-Oct-2016 pgoyette

branches: 1.10.2;
Replace numeric magic-number constant with something a bit more meaningful.


Revision tags: nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.9 15-Nov-2015 jmcneill

branches: 1.9.2;
disable data island packet transmission on Tegra124 HDMI codec


# 1.8 04-Nov-2015 christos

mute the mixer with that has input children


# 1.7 04-Nov-2015 christos

Remove trailing and stray whitespace.


# 1.6 04-Nov-2015 christos

more complex version to determine what is an input.


# 1.5 04-Nov-2015 christos

be more selective and mute only mic's. Suggested by jmcneill


# 1.4 04-Nov-2015 christos

Startup with the mic muted to avoid feedback and spying.


Revision tags: nick-nhusb-base-20150921
# 1.3 26-Jul-2015 jmcneill

- Support multi-channel (> 2) output to HDMI sinks.
- Fix a bug in hdafg_set_params that could program converters using the
wrong audio_params_t if auconv is in use
- Force Tegra124 HDMI codec to a fixed rate 44.1kHz


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406
# 1.2 28-Mar-2015 jmcneill

branches: 1.2.2;
replace hdaudio_config.h with defflags


# 1.1 28-Mar-2015 jmcneill

Split hdaudio and PCI attach glue. Even though the driver was written with
this separation in mind, all of the code lived in sys/dev/pci/hdaudio. Move
common parts to sys/dev/hdaudio and PCI attach glue to sys/dev/pci.


Revision tags: nick-nhusb-base-20161204 pgoyette-localcount-20161104
# 1.10 25-Oct-2016 pgoyette

Replace numeric magic-number constant with something a bit more meaningful.


Revision tags: nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.9 15-Nov-2015 jmcneill

branches: 1.9.2;
disable data island packet transmission on Tegra124 HDMI codec


# 1.8 04-Nov-2015 christos

mute the mixer with that has input children


# 1.7 04-Nov-2015 christos

Remove trailing and stray whitespace.


# 1.6 04-Nov-2015 christos

more complex version to determine what is an input.


# 1.5 04-Nov-2015 christos

be more selective and mute only mic's. Suggested by jmcneill


# 1.4 04-Nov-2015 christos

Startup with the mic muted to avoid feedback and spying.


Revision tags: nick-nhusb-base-20150921
# 1.3 26-Jul-2015 jmcneill

- Support multi-channel (> 2) output to HDMI sinks.
- Fix a bug in hdafg_set_params that could program converters using the
wrong audio_params_t if auconv is in use
- Force Tegra124 HDMI codec to a fixed rate 44.1kHz


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406
# 1.2 28-Mar-2015 jmcneill

branches: 1.2.2;
replace hdaudio_config.h with defflags


# 1.1 28-Mar-2015 jmcneill

Split hdaudio and PCI attach glue. Even though the driver was written with
this separation in mind, all of the code lived in sys/dev/pci/hdaudio. Move
common parts to sys/dev/hdaudio and PCI attach glue to sys/dev/pci.