Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'asoc-fix-v6.19-rc3' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus

ASoC: Fixes for v6.19

A small collection of driver speciifc fixes, mostly relatively minor,
plus an adjustment to the topology file naming for Intel systems with
Bluetooth required for disambiguation.

+20 -28
+2 -15
sound/soc/codecs/pm4125.c
··· 1505 1505 struct device_link *devlink; 1506 1506 int ret; 1507 1507 1508 - /* Initialize device pointers to NULL for safe cleanup */ 1509 - pm4125->rxdev = NULL; 1510 - pm4125->txdev = NULL; 1511 - 1512 1508 /* Give the soundwire subdevices some more time to settle */ 1513 1509 usleep_range(15000, 15010); 1514 1510 ··· 1533 1537 1534 1538 pm4125->sdw_priv[AIF1_CAP] = dev_get_drvdata(pm4125->txdev); 1535 1539 pm4125->sdw_priv[AIF1_CAP]->pm4125 = pm4125; 1536 - 1537 1540 pm4125->tx_sdw_dev = dev_to_sdw_dev(pm4125->txdev); 1538 - if (!pm4125->tx_sdw_dev) { 1539 - dev_err(dev, "could not get txslave with matching of dev\n"); 1540 - ret = -EINVAL; 1541 - goto error_put_tx; 1542 - } 1543 1541 1544 1542 /* 1545 1543 * As TX is the main CSR reg interface, which should not be suspended first. ··· 1614 1624 device_link_remove(dev, pm4125->rxdev); 1615 1625 device_link_remove(pm4125->rxdev, pm4125->txdev); 1616 1626 1617 - /* Release device references acquired in bind */ 1618 - if (pm4125->txdev) 1619 - put_device(pm4125->txdev); 1620 - if (pm4125->rxdev) 1621 - put_device(pm4125->rxdev); 1627 + put_device(pm4125->txdev); 1628 + put_device(pm4125->rxdev); 1622 1629 1623 1630 component_unbind_all(dev, pm4125); 1624 1631 }
-5
sound/soc/codecs/wcd937x.c
··· 2763 2763 wcd937x->sdw_priv[AIF1_CAP] = dev_get_drvdata(wcd937x->txdev); 2764 2764 wcd937x->sdw_priv[AIF1_CAP]->wcd937x = wcd937x; 2765 2765 wcd937x->tx_sdw_dev = dev_to_sdw_dev(wcd937x->txdev); 2766 - if (!wcd937x->tx_sdw_dev) { 2767 - dev_err(dev, "could not get txslave with matching of dev\n"); 2768 - ret = -EINVAL; 2769 - goto err_put_txdev; 2770 - } 2771 2766 2772 2767 /* 2773 2768 * As TX is the main CSR reg interface, which should not be suspended first.
+3 -3
sound/soc/intel/boards/sof_sdw_common.h
··· 46 46 #define SOC_SDW_NO_AGGREGATION BIT(14) 47 47 48 48 /* BT audio offload: reserve 3 bits for future */ 49 - #define SOF_BT_OFFLOAD_SSP_SHIFT 15 50 - #define SOF_BT_OFFLOAD_SSP_MASK (GENMASK(17, 15)) 49 + #define SOF_BT_OFFLOAD_SSP_SHIFT 18 50 + #define SOF_BT_OFFLOAD_SSP_MASK (GENMASK(20, 18)) 51 51 #define SOF_BT_OFFLOAD_SSP(quirk) \ 52 52 (((quirk) << SOF_BT_OFFLOAD_SSP_SHIFT) & SOF_BT_OFFLOAD_SSP_MASK) 53 - #define SOF_SSP_BT_OFFLOAD_PRESENT BIT(18) 53 + #define SOF_SSP_BT_OFFLOAD_PRESENT BIT(21) 54 54 55 55 struct intel_mc_ctx { 56 56 struct sof_hdmi_private hdmi;
-4
sound/soc/sdw_utils/soc_sdw_utils.c
··· 1414 1414 } 1415 1415 1416 1416 slave = dev_to_sdw_dev(sdw_dev); 1417 - if (!slave) { 1418 - ret = -EINVAL; 1419 - goto put_device; 1420 - } 1421 1417 1422 1418 /* Make sure BIOS provides SDCA properties */ 1423 1419 if (!slave->sdca_data.interface_revision) {
+13 -1
sound/soc/sof/intel/hda.c
··· 1549 1549 * name string if quirk flag is set. 1550 1550 */ 1551 1551 if (mach) { 1552 + const struct sof_intel_dsp_desc *chip = get_chip_info(sdev->pdata); 1552 1553 bool tplg_fixup = false; 1553 1554 bool dmic_fixup = false; 1554 1555 ··· 1599 1598 sof_pdata->tplg_filename = tplg_filename; 1600 1599 } 1601 1600 1601 + if (tplg_fixup && mach->mach_params.bt_link_mask && 1602 + chip->hw_ip_version >= SOF_INTEL_ACE_4_0) { 1603 + int bt_port = fls(mach->mach_params.bt_link_mask) - 1; 1604 + 1605 + tplg_filename = devm_kasprintf(sdev->dev, GFP_KERNEL, "%s-ssp%d-bt", 1606 + sof_pdata->tplg_filename, bt_port); 1607 + if (!tplg_filename) 1608 + return NULL; 1609 + 1610 + sof_pdata->tplg_filename = tplg_filename; 1611 + } 1612 + 1602 1613 if (mach->link_mask) { 1603 1614 mach->mach_params.links = mach->links; 1604 1615 mach->mach_params.link_mask = mach->link_mask; ··· 1622 1609 if (tplg_fixup && 1623 1610 mach->tplg_quirk_mask & SND_SOC_ACPI_TPLG_INTEL_SSP_NUMBER && 1624 1611 mach->mach_params.i2s_link_mask) { 1625 - const struct sof_intel_dsp_desc *chip = get_chip_info(sdev->pdata); 1626 1612 int ssp_num; 1627 1613 int mclk_mask; 1628 1614
+2
sound/soc/sunxi/sun4i-spdif.c
··· 171 171 * @reg_dac_txdata: TX FIFO offset for DMA config. 172 172 * @has_reset: SoC needs reset deasserted. 173 173 * @val_fctl_ftx: TX FIFO flush bitmask. 174 + * @mclk_multiplier: ratio of internal MCLK divider 175 + * @tx_clk_name: name of TX module clock if split clock design 174 176 */ 175 177 struct sun4i_spdif_quirks { 176 178 unsigned int reg_dac_txdata;