Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 16c796e8 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

Merge branch 'for-linus' into topic/virmidi



Pull the latest ALSA sequencer fixes for the further development of
virmidi.

Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parents f69548ff f59cf9a0
Loading
Loading
Loading
Loading
+2 −6
Original line number Diff line number Diff line
@@ -242,16 +242,12 @@ int snd_dma_alloc_pages_fallback(int type, struct device *device, size_t size,
	int err;

	while ((err = snd_dma_alloc_pages(type, device, size, dmab)) < 0) {
		size_t aligned_size;
		if (err != -ENOMEM)
			return err;
		if (size <= PAGE_SIZE)
			return -ENOMEM;
		aligned_size = PAGE_SIZE << get_order(size);
		if (size != aligned_size)
			size = aligned_size;
		else
		size >>= 1;
		size = PAGE_SIZE << get_order(size);
	}
	if (! dmab->area)
		return -ENOMEM;
+1 −1
Original line number Diff line number Diff line
@@ -203,7 +203,7 @@ odev_poll(struct file *file, poll_table * wait)
	struct seq_oss_devinfo *dp;
	dp = file->private_data;
	if (snd_BUG_ON(!dp))
		return -ENXIO;
		return EPOLLERR;
	return snd_seq_oss_poll(dp, file, wait);
}

+1 −1
Original line number Diff line number Diff line
@@ -1101,7 +1101,7 @@ static __poll_t snd_seq_poll(struct file *file, poll_table * wait)

	/* check client structures are in place */
	if (snd_BUG_ON(!client))
		return -ENXIO;
		return EPOLLERR;

	if ((snd_seq_file_flags(file) & SNDRV_SEQ_LFLG_INPUT) &&
	    client->data.user.fifo) {
+10 −0
Original line number Diff line number Diff line
@@ -163,6 +163,7 @@ static void snd_virmidi_output_trigger(struct snd_rawmidi_substream *substream,
	int count, res;
	unsigned char buf[32], *pbuf;
	unsigned long flags;
	bool check_resched = !in_atomic();

	if (up) {
		vmidi->trigger = 1;
@@ -200,6 +201,15 @@ static void snd_virmidi_output_trigger(struct snd_rawmidi_substream *substream,
					vmidi->event.type = SNDRV_SEQ_EVENT_NONE;
				}
			}
			if (!check_resched)
				continue;
			/* do temporary unlock & cond_resched() for avoiding
			 * CPU soft lockup, which may happen via a write from
			 * a huge rawmidi buffer
			 */
			spin_unlock_irqrestore(&substream->runtime->lock, flags);
			cond_resched();
			spin_lock_irqsave(&substream->runtime->lock, flags);
		}
	out:
		spin_unlock_irqrestore(&substream->runtime->lock, flags);
+3 −3
Original line number Diff line number Diff line
@@ -67,9 +67,9 @@ struct cs5535audio_dma_ops {
};

struct cs5535audio_dma_desc {
	u32 addr;
	u16 size;
	u16 ctlreserved;
	__le32 addr;
	__le16 size;
	__le16 ctlreserved;
};

struct cs5535audio_dma {
Loading