Commit ad797a04 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

Merge branch 'for-linus' into for-next

parents 9732c148 dc0dc8a7
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -19992,7 +19992,8 @@ F: Documentation/devicetree/bindings/extcon/wlf,arizona.yaml
F:	Documentation/devicetree/bindings/mfd/wlf,arizona.yaml
F:	Documentation/devicetree/bindings/mfd/wm831x.txt
F:	Documentation/devicetree/bindings/regulator/wlf,arizona.yaml
F:	Documentation/devicetree/bindings/sound/wlf,arizona.yaml
F:	Documentation/devicetree/bindings/sound/wlf,*.yaml
F:	Documentation/devicetree/bindings/sound/wm*
F:	Documentation/hwmon/wm83??.rst
F:	arch/arm/mach-s3c/mach-crag6410*
F:	drivers/clk/clk-wm83*.c
+4 −1
Original line number Diff line number Diff line
@@ -251,7 +251,10 @@ static bool hw_support_mmap(struct snd_pcm_substream *substream)

	switch (substream->dma_buffer.dev.type) {
	case SNDRV_DMA_TYPE_UNKNOWN:
		return false;
		/* we can't know the device, so just assume that the driver does
		 * everything right
		 */
		return true;
	case SNDRV_DMA_TYPE_CONTINUOUS:
	case SNDRV_DMA_TYPE_VMALLOC:
		return true;
+27 −12
Original line number Diff line number Diff line
@@ -514,7 +514,8 @@ static int check_and_subscribe_port(struct snd_seq_client *client,
	return err;
}

static void delete_and_unsubscribe_port(struct snd_seq_client *client,
/* called with grp->list_mutex held */
static void __delete_and_unsubscribe_port(struct snd_seq_client *client,
					  struct snd_seq_client_port *port,
					  struct snd_seq_subscribers *subs,
					  bool is_src, bool ack)
@@ -525,7 +526,6 @@ static void delete_and_unsubscribe_port(struct snd_seq_client *client,

	grp = is_src ? &port->c_src : &port->c_dest;
	list = is_src ? &subs->src_list : &subs->dest_list;
	down_write(&grp->list_mutex);
	write_lock_irq(&grp->list_lock);
	empty = list_empty(list);
	if (!empty)
@@ -535,6 +535,18 @@ static void delete_and_unsubscribe_port(struct snd_seq_client *client,

	if (!empty)
		unsubscribe_port(client, port, grp, &subs->info, ack);
}

static void delete_and_unsubscribe_port(struct snd_seq_client *client,
					struct snd_seq_client_port *port,
					struct snd_seq_subscribers *subs,
					bool is_src, bool ack)
{
	struct snd_seq_port_subs_info *grp;

	grp = is_src ? &port->c_src : &port->c_dest;
	down_write(&grp->list_mutex);
	__delete_and_unsubscribe_port(client, port, subs, is_src, ack);
	up_write(&grp->list_mutex);
}

@@ -590,27 +602,30 @@ int snd_seq_port_disconnect(struct snd_seq_client *connector,
			    struct snd_seq_client_port *dest_port,
			    struct snd_seq_port_subscribe *info)
{
	struct snd_seq_port_subs_info *src = &src_port->c_src;
	struct snd_seq_port_subs_info *dest = &dest_port->c_dest;
	struct snd_seq_subscribers *subs;
	int err = -ENOENT;

	down_write(&src->list_mutex);
	/* always start from deleting the dest port for avoiding concurrent
	 * deletions
	 */
	down_write(&dest->list_mutex);
	/* look for the connection */
	list_for_each_entry(subs, &src->list_head, src_list) {
	list_for_each_entry(subs, &dest->list_head, dest_list) {
		if (match_subs_info(info, &subs->info)) {
			atomic_dec(&subs->ref_count); /* mark as not ready */
			__delete_and_unsubscribe_port(dest_client, dest_port,
						      subs, false,
						      connector->number != dest_client->number);
			err = 0;
			break;
		}
	}
	up_write(&src->list_mutex);
	up_write(&dest->list_mutex);
	if (err < 0)
		return err;

	delete_and_unsubscribe_port(src_client, src_port, subs, true,
				    connector->number != src_client->number);
	delete_and_unsubscribe_port(dest_client, dest_port, subs, false,
				    connector->number != dest_client->number);
	kfree(subs);
	return 0;
}
+1 −0
Original line number Diff line number Diff line
@@ -8465,6 +8465,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
	SND_PCI_QUIRK(0x1043, 0x16e3, "ASUS UX50", ALC269_FIXUP_STEREO_DMIC),
	SND_PCI_QUIRK(0x1043, 0x1740, "ASUS UX430UA", ALC295_FIXUP_ASUS_DACS),
	SND_PCI_QUIRK(0x1043, 0x17d1, "ASUS UX431FL", ALC294_FIXUP_ASUS_DUAL_SPK),
	SND_PCI_QUIRK(0x1043, 0x1662, "ASUS GV301QH", ALC294_FIXUP_ASUS_DUAL_SPK),
	SND_PCI_QUIRK(0x1043, 0x1881, "ASUS Zephyrus S/M", ALC294_FIXUP_ASUS_GX502_PINS),
	SND_PCI_QUIRK(0x1043, 0x18b1, "Asus MJ401TA", ALC256_FIXUP_ASUS_HEADSET_MIC),
	SND_PCI_QUIRK(0x1043, 0x18f1, "Asus FX505DT", ALC256_FIXUP_ASUS_HEADSET_MIC),
+1 −0
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ config SND_SOC_COMPRESS

config SND_SOC_TOPOLOGY
	bool
	select SND_DYNAMIC_MINORS

config SND_SOC_TOPOLOGY_KUNIT_TEST
	tristate "KUnit tests for SoC topology"
Loading