History log of /linux-master/sound/pci/oxygen/oxygen_pcm.c
Revision Date Author Comments
# e2d413f9 09-Jul-2020 Takashi Iwai <tiwai@suse.de>

ALSA: Replace with fallthrough pseudo keyword in the remaining places

A few places (except for ASoC) are left unconverted for the new
fallthrough pseudo keyword. Now replace them all.

Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Link: https://lore.kernel.org/r/20200709111750.8337-4-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# d34e1b7b 09-Dec-2019 Takashi Iwai <tiwai@suse.de>

ALSA: pci: Drop superfluous ioctl PCM ops

PCM core deals the empty ioctl field now as default(*).
Let's kill the redundant lines.

(*) commit fc033cbf6fb7 ("ALSA: pcm: Allow NULL ioctl ops")

Link: https://lore.kernel.org/r/20191210061145.24641-16-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# fdaad162 09-Dec-2019 Takashi Iwai <tiwai@suse.de>

ALSA: oxygen: Use managed buffer allocation

Clean up the drivers with the new managed buffer allocation API.
The superfluous snd_pcm_lib_malloc_pages() and
snd_pcm_lib_free_pages() calls are dropped.

Link: https://lore.kernel.org/r/20191209094943.14984-49-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 6974f8ad 05-Nov-2019 Takashi Iwai <tiwai@suse.de>

ALSA: pci: Avoid non-standard macro usage

Pass the device pointer from the PCI pointer directly, instead of a
non-standard macro. The macro didn't give any better readability.

Link: https://lore.kernel.org/r/20191105151856.10785-24-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 9c9cf6be 01-Jun-2019 Thomas Gleixner <tglx@linutronix.de>

treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 404

Based on 1 normalized pattern(s):

this driver is free software you can redistribute it and or modify
it under the terms of the gnu general public license version 2 this
driver is distributed in the hope that it will be useful but without
any warranty without even the implied warranty of merchantability or
fitness for a particular purpose see the gnu general public license
for more details you should have received a copy of the gnu general
public license along with this driver if not write to the free
software foundation inc 59 temple place suite 330 boston ma 02111
1307 usa

extracted by the scancode license scanner the SPDX license identifier

GPL-2.0-only

has been chosen to replace the boilerplate/reference in 6 file(s).

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Allison Randal <allison@lohutok.net>
Reviewed-by: Armijn Hemel <armijn@tjaldur.nl>
Cc: linux-spdx@vger.kernel.org
Link: https://lkml.kernel.org/r/20190531190112.130218438@linutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>


# bc9a910b 01-Sep-2016 Julia Lawall <Julia.Lawall@lip6.fr>

ALSA: oxygen: constify snd_pcm_ops structures

Check for snd_pcm_ops structures that are only stored in the ops field of a
snd_soc_platform_driver structure or passed as the third argument to
snd_pcm_set_ops. The corresponding field or parameter is declared const,
so snd_pcm_ops structures that have this property can be declared as const
also.

The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)

// <smpl>
@r disable optional_qualifier@
identifier i;
position p;
@@
static struct snd_pcm_ops i@p = { ... };

@ok1@
identifier r.i;
struct snd_soc_platform_driver e;
position p;
@@
e.ops = &i@p;

@ok2@
identifier r.i;
expression e1, e2;
position p;
@@
snd_pcm_set_ops(e1, e2, &i@p)

@bad@
position p != {r.p,ok1.p,ok2.p};
identifier r.i;
struct snd_pcm_ops e;
@@
e@i@p

@depends on !bad disable optional_qualifier@
identifier r.i;
@@
static
+const
struct snd_pcm_ops i = { ... };
// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Acked-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 0902fbb9 16-Jan-2015 Clemens Ladisch <clemens@ladisch.de>

ALSA: oxygen: add support for third analog input

Make it possible for cards to have three stereo analog input pairs.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# ef394acb 02-Jan-2015 Lars-Peter Clausen <lars@metafoo.de>

ALSA: oxygen: Remove unnecessary snd_pcm_lib_preallocate_free_for_all()

The ALSA core takes care that all preallocated memory is freed when the PCM
itself is freed. There is no need to do this manually in the driver.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 4e9c58cb 21-Sep-2014 Clemens Ladisch <clemens@ladisch.de>

ALSA: oxygen: set fifo_size

Allow the driver to report the hardware FIFO size.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# f4b1e98a 17-Jun-2011 Clemens Ladisch <clemens@ladisch.de>

ALSA: firewire-speakers, oxygen, ua101: allow > 10 s periods

Since commit f2b3614cefb6 (Don't check DMA time-out too shortly),
drivers need no longer restrict their PCM period length to be shorter
than 10 seconds.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 5b8bf2a5 10-Jan-2011 Clemens Ladisch <clemens@ladisch.de>

ALSA: oxygen: simplify model-specific MCLK handling

Replace the get_i2s_mclk callback with tables of MCLK values. This
simplifies the MCLK-handling code in both the framework and the model-
specific drivers.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 1f4d7be7 10-Jan-2011 Clemens Ladisch <clemens@ladisch.de>

ALSA: oxygen: allow different number of PCM and mixer channels

For cards like the Xonar HDAV1.3, differentiate between the number of
PCM channels that can be played and the number of channels whose volume
can be adjusted.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 075140ea 15-Nov-2010 Clemens Ladisch <clemens@ladisch.de>

ALSA: oxygen: support for period wakeup disabling

Allow disabling period wakeup interrupts for all PCM streams.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 93943beb 06-Oct-2010 Clemens Ladisch <clemens@ladisch.de>

ALSA: oxygen: reduce minimum period count

The interrupt counter is independent of the buffer counter, so there are
no restrictions on the period size. Having fewer periods also makes
PulseAudio happy.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 76ffe1e3 28-Sep-2009 Clemens Ladisch <clemens@ladisch.de>

sound: oxygen: allow custom MCLK rates

Add a callback that allows model drivers to modify the default I2S MCLK
rate.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 3d8bb454 28-Sep-2009 Clemens Ladisch <clemens@ladisch.de>

sound: oxygen: add stereo upmixing to center/LFE channels

Add the possibility to route a mix of the two channels of stereo data to
the center and LFE outputs. This is implemented only for models where
the DACs support this, i.e., for the Xonar D1 and DX.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# b91ab72b 01-Sep-2009 Clemens Ladisch <clemens@ladisch.de>

sound: oxygen: fix MCLK rate for 192 kHz playback

Do not forget to program the MCLK ratio for the I2S output.
Otherwise, the master clock frequency can be too high for
the DACs at sample frequencies above 96 kHz.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Cc: <stable@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 345c03ef 25-May-2009 Clemens Ladisch <clemens@ladisch.de>

sound: oxygen: reset DMA when stream is closed

When a PCM stream is closed, flush the corresponding DMA channel.
Otherwise, the DMA controller would continue to output the last sample
which would result in a DC offset on the output.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 79c50e23 22-Sep-2008 Clemens Ladisch <clemens@ladisch.de>

ALSA: oxygen: rename first PCM device

Rename the first PCM device from "Analog" to "Multichannel" because it
can be used for HDMI output on the Xonar HDAV.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>


# d76596b1 22-Sep-2008 Clemens Ladisch <clemens@ladisch.de>

ALSA: oxygen: rename pcm_dev_cfg

Rename the pcm_dev_cfg field to device_config because there will be
additional flags that do not describe PCM devices.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>


# 9bd6a73a 22-Sep-2008 Clemens Ladisch <clemens@ladisch.de>

ALSA: oxygen: use a copy of the model struct

Put a copy of the model structure into the chip structure so that model-
specific drivers can modify it depending on a particular device
instance.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>


# ca1f30ad 13-May-2008 Clemens Ladisch <clemens@ladisch.de>

[ALSA] virtuoso: restrict period time to less than 10 s

Add a constraint for the period time so that there are less than ten
seconds between interrupts so that ALSA does not assume that the device
is dead.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# d55d7a1c 13-May-2008 Clemens Ladisch <clemens@ladisch.de>

[ALSA] oxygen: add symbols for buffer/period size constraints

Introduce symbols for the buffer/period size constraints so that their
limits and relationships become clearer.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 4a4bc53b 13-May-2008 Clemens Ladisch <clemens@ladisch.de>

[ALSA] oxygen: add PM support

Add suspend/resume support.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# f009ad9b 19-Mar-2008 Clemens Ladisch <clemens@ladisch.de>

[ALSA] oxygen: change model-specific PCM device configuration

When specifying which PCM devices to use, model drivers now use flags
that also specify the routing between PCM devices and DMA channels
instead of just DMA channel bits. This simplifies some code that checks
for these flags.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# f007dc04 22-Feb-2008 Takashi Iwai <tiwai@suse.de>

[ALSA] oxygen - Fix section mismatch

Removed invalid __devinit and __devexit that are remaining after
split to a helper module.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>


# 5f7b9b45 28-Jan-2008 Clemens Ladisch <clemens@ladisch.de>

[ALSA] oxygen: add front panel capture

When a second AC97 codec is present, add a PCM device for capturing from
the front panel.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# b78e3dbb 25-Jan-2008 Clemens Ladisch <clemens@ladisch.de>

[ALSA] oxygen: more initialization

Initialize more registers of the controller and the second AC97 codec.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 976cd627 25-Jan-2008 Clemens Ladisch <clemens@ladisch.de>

[ALSA] oxygen: make the number of analog output configurable

Add a field to struct oxygen_model to allow model drivers for cards with
less than eight output channels.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 33c646e4 24-Jan-2008 Clemens Ladisch <clemens@ladisch.de>

[ALSA] oxygen: fix SPDIF input rates

Fix up SPDIF input sample rates again: 32 kHz and 64 kHz are not
supported.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# c57cccc0 21-Jan-2008 Clemens Ladisch <clemens@ladisch.de>

[ALSA] oxygen: optimize snd_pcm_hardware structures

Add one more indirection to the lookup of the snd_pcm_hardware
structures so that we can save the space of the duplicate ones.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 7f0b8946 21-Jan-2008 Clemens Ladisch <clemens@ladisch.de>

[ALSA] oxygen: add 192 kHz SPDIF input support

Change the oxygen_spdif_input_bits_changed() function so that clock
changes on the SPDIF input are correctly detected. This means that
sample rates greater than 96 kHz are now supported.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# db2396d4 21-Jan-2008 Clemens Ladisch <clemens@ladisch.de>

[ALSA] oxygen: fix pause handling

Use the DMA_PAUSE register for pausing instead of stopping DMA.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# c9946b2c 21-Jan-2008 Clemens Ladisch <clemens@ladisch.de>

[ALSA] oxygen: remove magic numbers

Replace some magic numbers with register symbols.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# c2353a08 18-Jan-2008 Clemens Ladisch <clemens@ladisch.de>

[ALSA] oxygen: add register definitions

Add more symbols for registers and register fields.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 05855ba3 17-Jan-2008 Clemens Ladisch <clemens@ladisch.de>

[ALSA] oxygen: make the I2S format configurable

Add proper register bit symbols for the I2S format field, and allow card
models to configure the I2S format to be used for the DACs and ADCs.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 747c6016 16-Jan-2008 Clemens Ladisch <clemens@ladisch.de>

[ALSA] oxygen: make PCM limits configurable

Add a callback to the model structure to allow modification of the
hardware PCM limits.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# e85e0925 16-Jan-2008 Clemens Ladisch <clemens@ladisch.de>

[ALSA] oxygen: make all DMA channels configurable

Allow the card models to specify whether each of the hardware DMA
channels is used.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 31c77643 16-Jan-2008 Clemens Ladisch <clemens@ladisch.de>

[ALSA] oxygen: make AC97 codec optional

Only initialize and create mixer controls for the first AC97 codec when
one has actually been detected.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 01a3affb 14-Jan-2008 Clemens Ladisch <clemens@ladisch.de>

[ALSA] oxygen: use an array of snd_kcontrol pointers

Use an array for the pointers to known controls so that it is easier to
add more.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 9004acc7 08-Jan-2008 Takashi Iwai <tiwai@suse.de>

[ALSA] Remove sound/driver.h

This header file exists only for some hacks to adapt alsa-driver
tree. It's useless for building in the kernel. Let's move a few
lines in it to sound/core.h and remove it.
With this patch, sound/driver.h isn't removed but has just a single
compile warning to include it. This should be really killed in
future.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 740eb835 04-Jan-2008 Clemens Ladisch <clemens@ladisch.de>

[ALSA] oxygen: use uintptr_t in pointer casts

When we store the DMA channel number in the substream's private_data
pointer, use uintptr_t as an intermediate step when casting from/to
unsigned int to prevent the compiler from whining when the pointer size
is different.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# d0ce9946 23-Dec-2007 Clemens Ladisch <clemens@ladisch.de>

[ALSA] add CMI8788 driver

Add the snd-oxygen driver for the C-Media CMI8788 (Oxygen) chip, used on
the Asound A-8788, AuzenTech X-Meridian, Bgears b-Enspirer,
Club3D Theatron DTS, HT-Omega Claro, Razer Barracuda AC-1,
Sondigo Inferno, and TempoTec HIFIER sound cards.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>