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.

ASoC: Merge up fixes

Merge the for-6.14 to resolve conflicts with simple-card-utils.c due to
parallel delveopment.

+39 -14
+4 -1
include/sound/soc.h
··· 1223 1223 1224 1224 /* mixer control */ 1225 1225 struct soc_mixer_control { 1226 - int min, max, platform_max; 1226 + /* Minimum and maximum specified as written to the hardware */ 1227 + int min, max; 1228 + /* Limited maximum value specified as presented through the control */ 1229 + int platform_max; 1227 1230 int reg, rreg; 1228 1231 unsigned int shift, rshift; 1229 1232 u32 num_channels;
+7
sound/soc/amd/yc/acp6x-mach.c
··· 252 252 .driver_data = &acp6x_card, 253 253 .matches = { 254 254 DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), 255 + DMI_MATCH(DMI_PRODUCT_NAME, "21M6"), 256 + } 257 + }, 258 + { 259 + .driver_data = &acp6x_card, 260 + .matches = { 261 + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), 255 262 DMI_MATCH(DMI_PRODUCT_NAME, "21ME"), 256 263 } 257 264 },
+1 -1
sound/soc/codecs/cs42l43.c
··· 1146 1146 1147 1147 SOC_DOUBLE_R_SX_TLV("ADC Volume", CS42L43_ADC_B_CTRL1, CS42L43_ADC_B_CTRL2, 1148 1148 CS42L43_ADC_PGA_GAIN_SHIFT, 1149 - 0xF, 5, cs42l43_adc_tlv), 1149 + 0xF, 4, cs42l43_adc_tlv), 1150 1150 1151 1151 SOC_DOUBLE("PDM1 Invert Switch", CS42L43_DMIC_PDM_CTRL, 1152 1152 CS42L43_PDM1L_INV_SHIFT, CS42L43_PDM1R_INV_SHIFT, 1, 0),
+4
sound/soc/codecs/rt722-sdca-sdw.c
··· 104 104 case 0x6100067: 105 105 case 0x6100070 ... 0x610007c: 106 106 case 0x6100080: 107 + case SDW_SDCA_CTL(FUNC_NUM_MIC_ARRAY, RT722_SDCA_ENT_FU15, RT722_SDCA_CTL_FU_CH_GAIN, 108 + CH_01) ... 109 + SDW_SDCA_CTL(FUNC_NUM_MIC_ARRAY, RT722_SDCA_ENT_FU15, RT722_SDCA_CTL_FU_CH_GAIN, 110 + CH_04): 107 111 case SDW_SDCA_CTL(FUNC_NUM_MIC_ARRAY, RT722_SDCA_ENT_USER_FU1E, RT722_SDCA_CTL_FU_VOLUME, 108 112 CH_01): 109 113 case SDW_SDCA_CTL(FUNC_NUM_MIC_ARRAY, RT722_SDCA_ENT_USER_FU1E, RT722_SDCA_CTL_FU_VOLUME,
+11 -2
sound/soc/codecs/wm0010.c
··· 920 920 if (ret) { 921 921 dev_err(wm0010->dev, "Failed to set IRQ %d as wake source: %d\n", 922 922 irq, ret); 923 - return ret; 923 + goto free_irq; 924 924 } 925 925 926 926 if (spi->max_speed_hz) ··· 932 932 &soc_component_dev_wm0010, wm0010_dai, 933 933 ARRAY_SIZE(wm0010_dai)); 934 934 if (ret < 0) 935 - return ret; 935 + goto disable_irq_wake; 936 936 937 937 return 0; 938 + 939 + disable_irq_wake: 940 + irq_set_irq_wake(wm0010->irq, 0); 941 + 942 + free_irq: 943 + if (wm0010->irq) 944 + free_irq(wm0010->irq, wm0010); 945 + 946 + return ret; 938 947 } 939 948 940 949 static void wm0010_spi_remove(struct spi_device *spi)
+5 -2
sound/soc/generic/simple-card-utils.c
··· 1103 1103 struct snd_soc_dai_link_component *dlc, int *is_single_link) 1104 1104 { 1105 1105 struct device *dev = simple_priv_to_dev(priv); 1106 + struct device_node *node; 1106 1107 struct of_phandle_args args = {}; 1107 1108 struct snd_soc_dai *dai; 1108 1109 int ret; ··· 1111 1110 if (!ep) 1112 1111 return 0; 1113 1112 1114 - struct device_node *node __free(device_node) = of_graph_get_port_parent(ep); 1113 + node = of_graph_get_port_parent(ep); 1115 1114 1116 1115 /* 1117 1116 * Try to find from DAI node ··· 1154 1153 * if he unbinded CPU or Codec. 1155 1154 */ 1156 1155 ret = snd_soc_get_dlc(&args, dlc); 1157 - if (ret < 0) 1156 + if (ret < 0) { 1157 + of_node_put(node); 1158 1158 goto end; 1159 + } 1159 1160 1160 1161 parse_dai_end: 1161 1162 if (is_single_link)
+7 -8
sound/soc/soc-ops.c
··· 325 325 if (ucontrol->value.integer.value[0] < 0) 326 326 return -EINVAL; 327 327 val = ucontrol->value.integer.value[0]; 328 - if (mc->platform_max && ((int)val + min) > mc->platform_max) 328 + if (mc->platform_max && val > mc->platform_max) 329 329 return -EINVAL; 330 330 if (val > max - min) 331 331 return -EINVAL; ··· 338 338 if (ucontrol->value.integer.value[1] < 0) 339 339 return -EINVAL; 340 340 val2 = ucontrol->value.integer.value[1]; 341 - if (mc->platform_max && ((int)val2 + min) > mc->platform_max) 341 + if (mc->platform_max && val2 > mc->platform_max) 342 342 return -EINVAL; 343 343 if (val2 > max - min) 344 344 return -EINVAL; ··· 491 491 { 492 492 struct soc_mixer_control *mc = 493 493 (struct soc_mixer_control *)kcontrol->private_value; 494 - int platform_max; 495 - int min = mc->min; 494 + int max; 496 495 497 - if (!mc->platform_max) 498 - mc->platform_max = mc->max; 499 - platform_max = mc->platform_max; 496 + max = mc->max - mc->min; 497 + if (mc->platform_max && mc->platform_max < max) 498 + max = mc->platform_max; 500 499 501 500 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; 502 501 uinfo->count = snd_soc_volsw_is_stereo(mc) ? 2 : 1; 503 502 uinfo->value.integer.min = 0; 504 - uinfo->value.integer.max = platform_max - min; 503 + uinfo->value.integer.max = max; 505 504 506 505 return 0; 507 506 }