Merge branch 'topic/misc' into for-linus
This commit is contained in:
@@ -155,7 +155,7 @@ EXPORT_SYMBOL(snd_jack_new);
|
||||
* @jack: The jack to configure
|
||||
* @parent: The device to set as parent for the jack.
|
||||
*
|
||||
* Set the parent for the jack input device in the device tree. This
|
||||
* Set the parent for the jack devices in the device tree. This
|
||||
* function is only valid prior to registration of the jack. If no
|
||||
* parent is configured then the parent device will be the sound card.
|
||||
*/
|
||||
@@ -179,6 +179,9 @@ EXPORT_SYMBOL(snd_jack_set_parent);
|
||||
* mapping is provided but keys are enabled in the jack type then
|
||||
* BTN_n numeric buttons will be reported.
|
||||
*
|
||||
* If jacks are not reporting via the input API this call will have no
|
||||
* effect.
|
||||
*
|
||||
* Note that this is intended to be use by simple devices with small
|
||||
* numbers of keys that can be reported. It is also possible to
|
||||
* access the input device directly - devices with complex input
|
||||
|
@@ -1894,6 +1894,7 @@ static snd_pcm_sframes_t snd_pcm_lib_write1(struct snd_pcm_substream *substream,
|
||||
struct snd_pcm_runtime *runtime = substream->runtime;
|
||||
snd_pcm_uframes_t xfer = 0;
|
||||
snd_pcm_uframes_t offset = 0;
|
||||
snd_pcm_uframes_t avail;
|
||||
int err = 0;
|
||||
|
||||
if (size == 0)
|
||||
@@ -1917,13 +1918,12 @@ static snd_pcm_sframes_t snd_pcm_lib_write1(struct snd_pcm_substream *substream,
|
||||
}
|
||||
|
||||
runtime->twake = runtime->control->avail_min ? : 1;
|
||||
if (runtime->status->state == SNDRV_PCM_STATE_RUNNING)
|
||||
snd_pcm_update_hw_ptr(substream);
|
||||
avail = snd_pcm_playback_avail(runtime);
|
||||
while (size > 0) {
|
||||
snd_pcm_uframes_t frames, appl_ptr, appl_ofs;
|
||||
snd_pcm_uframes_t avail;
|
||||
snd_pcm_uframes_t cont;
|
||||
if (runtime->status->state == SNDRV_PCM_STATE_RUNNING)
|
||||
snd_pcm_update_hw_ptr(substream);
|
||||
avail = snd_pcm_playback_avail(runtime);
|
||||
if (!avail) {
|
||||
if (nonblock) {
|
||||
err = -EAGAIN;
|
||||
@@ -1971,6 +1971,7 @@ static snd_pcm_sframes_t snd_pcm_lib_write1(struct snd_pcm_substream *substream,
|
||||
offset += frames;
|
||||
size -= frames;
|
||||
xfer += frames;
|
||||
avail -= frames;
|
||||
if (runtime->status->state == SNDRV_PCM_STATE_PREPARED &&
|
||||
snd_pcm_playback_hw_avail(runtime) >= (snd_pcm_sframes_t)runtime->start_threshold) {
|
||||
err = snd_pcm_start(substream);
|
||||
@@ -2111,6 +2112,7 @@ static snd_pcm_sframes_t snd_pcm_lib_read1(struct snd_pcm_substream *substream,
|
||||
struct snd_pcm_runtime *runtime = substream->runtime;
|
||||
snd_pcm_uframes_t xfer = 0;
|
||||
snd_pcm_uframes_t offset = 0;
|
||||
snd_pcm_uframes_t avail;
|
||||
int err = 0;
|
||||
|
||||
if (size == 0)
|
||||
@@ -2141,13 +2143,12 @@ static snd_pcm_sframes_t snd_pcm_lib_read1(struct snd_pcm_substream *substream,
|
||||
}
|
||||
|
||||
runtime->twake = runtime->control->avail_min ? : 1;
|
||||
if (runtime->status->state == SNDRV_PCM_STATE_RUNNING)
|
||||
snd_pcm_update_hw_ptr(substream);
|
||||
avail = snd_pcm_capture_avail(runtime);
|
||||
while (size > 0) {
|
||||
snd_pcm_uframes_t frames, appl_ptr, appl_ofs;
|
||||
snd_pcm_uframes_t avail;
|
||||
snd_pcm_uframes_t cont;
|
||||
if (runtime->status->state == SNDRV_PCM_STATE_RUNNING)
|
||||
snd_pcm_update_hw_ptr(substream);
|
||||
avail = snd_pcm_capture_avail(runtime);
|
||||
if (!avail) {
|
||||
if (runtime->status->state ==
|
||||
SNDRV_PCM_STATE_DRAINING) {
|
||||
@@ -2202,6 +2203,7 @@ static snd_pcm_sframes_t snd_pcm_lib_read1(struct snd_pcm_substream *substream,
|
||||
offset += frames;
|
||||
size -= frames;
|
||||
xfer += frames;
|
||||
avail -= frames;
|
||||
}
|
||||
_end_unlock:
|
||||
runtime->twake = 0;
|
||||
|
@@ -1360,7 +1360,14 @@ static int snd_pcm_prepare(struct snd_pcm_substream *substream,
|
||||
|
||||
static int snd_pcm_pre_drain_init(struct snd_pcm_substream *substream, int state)
|
||||
{
|
||||
substream->runtime->trigger_master = substream;
|
||||
struct snd_pcm_runtime *runtime = substream->runtime;
|
||||
switch (runtime->status->state) {
|
||||
case SNDRV_PCM_STATE_OPEN:
|
||||
case SNDRV_PCM_STATE_DISCONNECTED:
|
||||
case SNDRV_PCM_STATE_SUSPENDED:
|
||||
return -EBADFD;
|
||||
}
|
||||
runtime->trigger_master = substream;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1379,6 +1386,9 @@ static int snd_pcm_do_drain_init(struct snd_pcm_substream *substream, int state)
|
||||
case SNDRV_PCM_STATE_RUNNING:
|
||||
runtime->status->state = SNDRV_PCM_STATE_DRAINING;
|
||||
break;
|
||||
case SNDRV_PCM_STATE_XRUN:
|
||||
runtime->status->state = SNDRV_PCM_STATE_SETUP;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@@ -35,7 +35,7 @@
|
||||
#include <linux/sound.h>
|
||||
#include <linux/mutex.h>
|
||||
|
||||
#define SNDRV_OSS_MINORS 128
|
||||
#define SNDRV_OSS_MINORS 256
|
||||
|
||||
static struct snd_minor *snd_oss_minors[SNDRV_OSS_MINORS];
|
||||
static DEFINE_MUTEX(sound_oss_mutex);
|
||||
@@ -111,7 +111,7 @@ int snd_register_oss_device(int type, struct snd_card *card, int dev,
|
||||
int register1 = -1, register2 = -1;
|
||||
struct device *carddev = snd_card_get_device_link(card);
|
||||
|
||||
if (card && card->number >= 8)
|
||||
if (card && card->number >= SNDRV_MINOR_OSS_DEVICES)
|
||||
return 0; /* ignore silently */
|
||||
if (minor < 0)
|
||||
return minor;
|
||||
@@ -170,7 +170,7 @@ int snd_unregister_oss_device(int type, struct snd_card *card, int dev)
|
||||
int track2 = -1;
|
||||
struct snd_minor *mptr;
|
||||
|
||||
if (card && card->number >= 8)
|
||||
if (card && card->number >= SNDRV_MINOR_OSS_DEVICES)
|
||||
return 0;
|
||||
if (minor < 0)
|
||||
return minor;
|
||||
|
Reference in New Issue
Block a user