Quelle cs43130.c
Sprache: C
|
|
// SPDX-License-Identifier: GPL-2.0-only
/*
* cs43130.c -- CS43130 ALSA Soc Audio driver
*
* Copyright 2017 Cirrus Logic, Inc.
*
* Authors: Li Xu <li.xu@cirrus.com>
*/
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/gpio/consumer.h>
#include <linux/platform_device.h>
#include <linux/pm.h>
#include <linux/i2c.h>
#include <linux/property.h>
#include <linux/regmap.h>
#include <linux/slab.h>
#include <sound/core.h>
#include <sound/pcm.h>
#include <sound/pcm_params.h>
#include <sound/soc.h>
#include <sound/soc-dapm.h>
#include <sound/initval.h>
#include <sound/tlv.h>
#include <linux/regulator/consumer.h>
#include <linux/pm_runtime.h>
#include <linux/completion.h>
#include <linux/mutex.h>
#include <linux/workqueue.h>
#include <sound/jack.h>
#include "cs43130.h"
#include "cirrus_legacy.h"
static const struct reg_default cs43130_reg_defaults[] = {
{CS43130_SYS_CLK_CTL_1, 0x06},
{CS43130_SP_SRATE, 0x01},
{CS43130_SP_BITSIZE, 0x05},
{CS43130_PAD_INT_CFG, 0x03},
{CS43130_PWDN_CTL, 0xFE},
{CS43130_CRYSTAL_SET, 0x04},
{CS43130_PLL_SET_1, 0x00},
{CS43130_PLL_SET_2, 0x00},
{CS43130_PLL_SET_3, 0x00},
{CS43130_PLL_SET_4, 0x00},
{CS43130_PLL_SET_5, 0x40},
{CS43130_PLL_SET_6, 0x10},
{CS43130_PLL_SET_7, 0x80},
{CS43130_PLL_SET_8, 0x03},
{CS43130_PLL_SET_9, 0x02},
{CS43130_PLL_SET_10, 0x02},
{CS43130_CLKOUT_CTL, 0x00},
{CS43130_ASP_NUM_1, 0x01},
{CS43130_ASP_NUM_2, 0x00},
{CS43130_ASP_DEN_1, 0x08},
{CS43130_ASP_DEN_2, 0x00},
{CS43130_ASP_LRCK_HI_TIME_1, 0x1F},
{CS43130_ASP_LRCK_HI_TIME_2, 0x00},
{CS43130_ASP_LRCK_PERIOD_1, 0x3F},
{CS43130_ASP_LRCK_PERIOD_2, 0x00},
{CS43130_ASP_CLOCK_CONF, 0x0C},
{CS43130_ASP_FRAME_CONF, 0x0A},
{CS43130_XSP_NUM_1, 0x01},
{CS43130_XSP_NUM_2, 0x00},
{CS43130_XSP_DEN_1, 0x02},
{CS43130_XSP_DEN_2, 0x00},
{CS43130_XSP_LRCK_HI_TIME_1, 0x1F},
{CS43130_XSP_LRCK_HI_TIME_2, 0x00},
{CS43130_XSP_LRCK_PERIOD_1, 0x3F},
{CS43130_XSP_LRCK_PERIOD_2, 0x00},
{CS43130_XSP_CLOCK_CONF, 0x0C},
{CS43130_XSP_FRAME_CONF, 0x0A},
{CS43130_ASP_CH_1_LOC, 0x00},
{CS43130_ASP_CH_2_LOC, 0x00},
{CS43130_ASP_CH_1_SZ_EN, 0x06},
{CS43130_ASP_CH_2_SZ_EN, 0x0E},
{CS43130_XSP_CH_1_LOC, 0x00},
{CS43130_XSP_CH_2_LOC, 0x00},
{CS43130_XSP_CH_1_SZ_EN, 0x06},
{CS43130_XSP_CH_2_SZ_EN, 0x0E},
{CS43130_DSD_VOL_B, 0x78},
{CS43130_DSD_VOL_A, 0x78},
{CS43130_DSD_PATH_CTL_1, 0xA8},
{CS43130_DSD_INT_CFG, 0x00},
{CS43130_DSD_PATH_CTL_2, 0x02},
{CS43130_DSD_PCM_MIX_CTL, 0x00},
{CS43130_DSD_PATH_CTL_3, 0x40},
{CS43130_HP_OUT_CTL_1, 0x30},
{CS43130_PCM_FILT_OPT, 0x02},
{CS43130_PCM_VOL_B, 0x78},
{CS43130_PCM_VOL_A, 0x78},
{CS43130_PCM_PATH_CTL_1, 0xA8},
{CS43130_PCM_PATH_CTL_2, 0x00},
{CS43130_CLASS_H_CTL, 0x1E},
{CS43130_HP_DETECT, 0x04},
{CS43130_HP_LOAD_1, 0x00},
{CS43130_HP_MEAS_LOAD_1, 0x00},
{CS43130_HP_MEAS_LOAD_2, 0x00},
{CS43130_INT_MASK_1, 0xFF},
{CS43130_INT_MASK_2, 0xFF},
{CS43130_INT_MASK_3, 0xFF},
{CS43130_INT_MASK_4, 0xFF},
{CS43130_INT_MASK_5, 0xFF},
};
static bool cs43130_volatile_register(struct device *dev, unsigned int reg)
{
switch (reg) {
case CS43130_INT_STATUS_1 ... CS43130_INT_STATUS_5:
case CS43130_HP_DC_STAT_1 ... CS43130_HP_DC_STAT_2:
case CS43130_HP_AC_STAT_1 ... CS43130_HP_AC_STAT_2:
return true;
default:
return false;
}
}
static bool cs43130_readable_register(struct device *dev, unsigned int reg)
{
switch (reg) {
case CS43130_DEVID_AB ... CS43130_SYS_CLK_CTL_1:
case CS43130_SP_SRATE ... CS43130_PAD_INT_CFG:
case CS43130_PWDN_CTL:
case CS43130_CRYSTAL_SET:
case CS43130_PLL_SET_1 ... CS43130_PLL_SET_5:
case CS43130_PLL_SET_6:
case CS43130_PLL_SET_7:
case CS43130_PLL_SET_8:
case CS43130_PLL_SET_9:
case CS43130_PLL_SET_10:
case CS43130_CLKOUT_CTL:
case CS43130_ASP_NUM_1 ... CS43130_ASP_FRAME_CONF:
case CS43130_XSP_NUM_1 ... CS43130_XSP_FRAME_CONF:
case CS43130_ASP_CH_1_LOC:
case CS43130_ASP_CH_2_LOC:
case CS43130_ASP_CH_1_SZ_EN:
case CS43130_ASP_CH_2_SZ_EN:
case CS43130_XSP_CH_1_LOC:
case CS43130_XSP_CH_2_LOC:
case CS43130_XSP_CH_1_SZ_EN:
case CS43130_XSP_CH_2_SZ_EN:
case CS43130_DSD_VOL_B ... CS43130_DSD_PATH_CTL_3:
case CS43130_HP_OUT_CTL_1:
case CS43130_PCM_FILT_OPT ... CS43130_PCM_PATH_CTL_2:
case CS43130_CLASS_H_CTL:
case CS43130_HP_DETECT:
case CS43130_HP_STATUS:
case CS43130_HP_LOAD_1:
case CS43130_HP_MEAS_LOAD_1:
case CS43130_HP_MEAS_LOAD_2:
case CS43130_HP_DC_STAT_1:
case CS43130_HP_DC_STAT_2:
case CS43130_HP_AC_STAT_1:
case CS43130_HP_AC_STAT_2:
case CS43130_HP_LOAD_STAT:
case CS43130_INT_STATUS_1 ... CS43130_INT_STATUS_5:
case CS43130_INT_MASK_1 ... CS43130_INT_MASK_5:
return true;
default:
return false;
}
}
static bool cs43130_precious_register(struct device *dev, unsigned int reg)
{
switch (reg) {
case CS43130_INT_STATUS_1 ... CS43130_INT_STATUS_5:
return true;
default:
return false;
}
}
struct cs43130_pll_params {
unsigned int pll_in;
u8 sclk_prediv;
u8 pll_div_int;
u32 pll_div_frac;
u8 pll_mode;
u8 pll_divout;
unsigned int pll_out;
u8 pll_cal_ratio;
};
static const struct cs43130_pll_params pll_ratio_table[] = {
{9600000, 0x02, 0x49, 0x800000, 0x00, 0x08, 22579200, 151},
{9600000, 0x02, 0x50, 0x000000, 0x00, 0x08, 24576000, 164},
{11289600, 0x02, 0X40, 0, 0x01, 0x08, 22579200, 128},
{11289600, 0x02, 0x44, 0x06F700, 0x0, 0x08, 24576000, 139},
{12000000, 0x02, 0x49, 0x800000, 0x00, 0x0A, 22579200, 120},
{12000000, 0x02, 0x40, 0x000000, 0x00, 0x08, 24576000, 131},
{12288000, 0x02, 0x49, 0x800000, 0x01, 0x0A, 22579200, 118},
{12288000, 0x02, 0x40, 0x000000, 0x01, 0x08, 24576000, 128},
{13000000, 0x02, 0x45, 0x797680, 0x01, 0x0A, 22579200, 111},
{13000000, 0x02, 0x3C, 0x7EA940, 0x01, 0x08, 24576000, 121},
{19200000, 0x03, 0x49, 0x800000, 0x00, 0x08, 22579200, 151},
{19200000, 0x03, 0x50, 0x000000, 0x00, 0x08, 24576000, 164},
{22579200, 0, 0, 0, 0, 0, 22579200, 0},
{22579200, 0x03, 0x44, 0x06F700, 0x00, 0x08, 24576000, 139},
{24000000, 0x03, 0x49, 0x800000, 0x00, 0x0A, 22579200, 120},
{24000000, 0x03, 0x40, 0x000000, 0x00, 0x08, 24576000, 131},
{24576000, 0x03, 0x49, 0x800000, 0x01, 0x0A, 22579200, 118},
{24576000, 0, 0, 0, 0, 0, 24576000, 0},
{26000000, 0x03, 0x45, 0x797680, 0x01, 0x0A, 22579200, 111},
{26000000, 0x03, 0x3C, 0x7EA940, 0x01, 0x08, 24576000, 121},
};
static const struct cs43130_pll_params *cs43130_get_pll_table(
unsigned int freq_in, unsigned int freq_out)
{
int i;
for (i = 0; i < ARRAY_SIZE(pll_ratio_table); i++) {
if (pll_ratio_table[i].pll_in == freq_in &&
pll_ratio_table[i].pll_out == freq_out)
return &pll_ratio_table[i];
}
return NULL;
}
static int cs43130_pll_config(struct snd_soc_component *component)
{
struct cs43130_private *cs43130 = snd_soc_component_get_drvdata(component);
const struct cs43130_pll_params *pll_entry;
dev_dbg(cs43130->dev, "cs43130->mclk = %u, cs43130->mclk_int = %u\n",
cs43130->mclk, cs43130->mclk_int);
pll_entry = cs43130_get_pll_table(cs43130->mclk, cs43130->mclk_int);
if (!pll_entry)
return -EINVAL;
if (pll_entry->pll_cal_ratio == 0) {
regmap_update_bits(cs43130->regmap, CS43130_PLL_SET_1,
CS43130_PLL_START_MASK, 0);
cs43130->pll_bypass = true;
return 0;
}
cs43130->pll_bypass = false;
regmap_update_bits(cs43130->regmap, CS43130_PLL_SET_2,
CS43130_PLL_DIV_DATA_MASK,
pll_entry->pll_div_frac >>
CS43130_PLL_DIV_FRAC_0_DATA_SHIFT);
regmap_update_bits(cs43130->regmap, CS43130_PLL_SET_3,
CS43130_PLL_DIV_DATA_MASK,
pll_entry->pll_div_frac >>
CS43130_PLL_DIV_FRAC_1_DATA_SHIFT);
regmap_update_bits(cs43130->regmap, CS43130_PLL_SET_4,
CS43130_PLL_DIV_DATA_MASK,
pll_entry->pll_div_frac >>
CS43130_PLL_DIV_FRAC_2_DATA_SHIFT);
regmap_write(cs43130->regmap, CS43130_PLL_SET_5,
pll_entry->pll_div_int);
regmap_write(cs43130->regmap, CS43130_PLL_SET_6, pll_entry->pll_divout);
regmap_write(cs43130->regmap, CS43130_PLL_SET_7,
pll_entry->pll_cal_ratio);
regmap_update_bits(cs43130->regmap, CS43130_PLL_SET_8,
CS43130_PLL_MODE_MASK,
pll_entry->pll_mode << CS43130_PLL_MODE_SHIFT);
regmap_write(cs43130->regmap, CS43130_PLL_SET_9,
pll_entry->sclk_prediv);
regmap_update_bits(cs43130->regmap, CS43130_PLL_SET_1,
CS43130_PLL_START_MASK, 1);
return 0;
}
static int cs43130_set_pll(struct snd_soc_component *component, int pll_id, int source,
unsigned int freq_in, unsigned int freq_out)
{
int ret = 0;
struct cs43130_private *cs43130 = snd_soc_component_get_drvdata(component);
switch (freq_in) {
case 9600000:
case 11289600:
case 12000000:
case 12288000:
case 13000000:
case 19200000:
case 22579200:
case 24000000:
case 24576000:
case 26000000:
cs43130->mclk = freq_in;
break;
default:
dev_err(cs43130->dev,
"unsupported pll input reference clock:%d\n", freq_in);
return -EINVAL;
}
switch (freq_out) {
case 22579200:
cs43130->mclk_int = freq_out;
break;
case 24576000:
cs43130->mclk_int = freq_out;
break;
default:
dev_err(cs43130->dev,
"unsupported pll output ref clock: %u\n", freq_out);
return -EINVAL;
}
ret = cs43130_pll_config(component);
dev_dbg(cs43130->dev, "cs43130->pll_bypass = %d", cs43130->pll_bypass);
return ret;
}
static int cs43130_wait_for_completion(struct cs43130_private *cs43130, struct completion *to_poll,
int time)
{
int stickies, offset, flag, ret;
if (cs43130->has_irq_line) {
ret = wait_for_completion_timeout(to_poll, msecs_to_jiffies(time));
if (ret == 0)
return -ETIMEDOUT;
else
return 0; // Discard number of jiffies left till timeout and return success
}
if (to_poll == &cs43130->xtal_rdy) {
offset = 0;
flag = CS43130_XTAL_RDY_INT;
} else if (to_poll == &cs43130->pll_rdy) {
offset = 0;
flag = CS43130_PLL_RDY_INT;
} else {
return -EINVAL;
}
return regmap_read_poll_timeout(cs43130->regmap, CS43130_INT_STATUS_1 + offset,
stickies, (stickies & flag),
1000, time * 1000);
}
static int cs43130_change_clksrc(struct snd_soc_component *component,
enum cs43130_mclk_src_sel src)
{
int ret;
struct cs43130_private *cs43130 = snd_soc_component_get_drvdata(component);
int mclk_int_decoded;
if (src == cs43130->mclk_int_src) {
/* clk source has not changed */
return 0;
}
switch (cs43130->mclk_int) {
case CS43130_MCLK_22M:
mclk_int_decoded = CS43130_MCLK_22P5;
break;
case CS43130_MCLK_24M:
mclk_int_decoded = CS43130_MCLK_24P5;
break;
default:
dev_err(cs43130->dev, "Invalid MCLK INT freq: %u\n", cs43130->mclk_int);
return -EINVAL;
}
switch (src) {
case CS43130_MCLK_SRC_EXT:
cs43130->pll_bypass = true;
cs43130->mclk_int_src = CS43130_MCLK_SRC_EXT;
if (cs43130->xtal_ibias == CS43130_XTAL_UNUSED) {
regmap_update_bits(cs43130->regmap, CS43130_PWDN_CTL,
CS43130_PDN_XTAL_MASK,
1 << CS43130_PDN_XTAL_SHIFT);
} else {
reinit_completion(&cs43130->xtal_rdy);
regmap_update_bits(cs43130->regmap, java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 40
i java.lang.StringIndexOutOfBoundsException: Range [29, 27) out of bounds for length 30
(-regmap java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 34
cjava.lang.StringIndexOutOfBoundsException: Range [55, 54) out of bounds for length 71
java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 58
<java.lang.StringIndexOutOfBoundsException: Range [41, 39) out of bounds for length 41
et java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
c- java.lang.StringIndexOutOfBoundsException: Range [56, 55) out of bounds for length 79
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 60
x}java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
src<java.lang.StringIndexOutOfBoundsException: Range [42, 40) out of bounds for length 42
java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 60
java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 29
<<;
(150 200;
java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 55
,
T)java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
;
case CS43130_MCLK_SRC_PLL:
cs43130->pll_bypass = false;
cs43130-> java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 27
cs43130>java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 51
java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 56
,
<java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
} java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
&java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 41
>java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 58
java.lang.StringIndexOutOfBoundsException: Range [36, 33) out of bounds for length 38
java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 56
, )java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
{, x00,
regmap_update_bits(cs43130->regmap, CS43130_INT_MASK_1,
_INT_MASK
1 <<CS43130_XTAL_RDY_INT_SHIFT
ifr){
CS43130_INT_MASK_2 x},
return ret;
}
CCS43130_INT_MASK_40,
reinit_completion(&C, 0,
regmap_update_bits(cs43130->regmap}
CS43130_PLL_RDY_INT_MASK0)
(cs43130-,CS43130_PWDN_CTL
CS43130_INT_STATUS_1.CS43130_INT_STATUS_5
ret =(cs43130 &s43130>,100;
regmap_update_bits(cs43130->regmap, CS43130_HP_AC_STAT_1 ... CS43130_HP_AC_STAT_2:
CS43130_PLL_RDY_INT_MASK,
CS43130_PLL_RDY_INT_SHIFT);
if (defaultjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
dev_err(>," PLL_READYinterrupt: %\",ret;
return ret;
}
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 1
,
case java.lang.StringIndexOutOfBoundsException: Range [24, 22) out of bounds for length 47
. :
CS43130_MCLK_INT_MASK
<<CS43130_MCLK_INT_SHIFT;
CS43130_PLL_SET_8
caseCS43130_MCLK_SRC_RCO:
cs43130->mclk_int_srcCS43130_CLKOUT_CTL:
regmap_update_bits(cs43130->regmap,CS43130_XSP_NUM_1. :
CS43130_MCLK_SRC_SEL_MASK,
src << CS43130_MCLK_SRC_SEL_SHIFT)caseCS43130_ASP_CH_2_LOC
regmap_update_bits(s43130-regmap, CS43130_SYS_CLK_CTL_1
K,
CS43130_MCLK_22P5< );
usleep_range(150, 200);
regmap_update_bits(cs43130->java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 29
CS43130_PDN_XTAL_MASK,
1 << CS43130_PDN_XTAL_SHIFT);
regmap_update_bitscs43130>,CS43130_PWDN_CTL
CS43130_PDN_PLL_MASK,
1 <<);
CS_P_LOAD_1
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
dev_err(->ev,"nvalid value\n";
return - case CS43130_HP_:
}
return 0;
}
static const struct case CS43130_INT_MASK_1 ... CS43130_INT_MASK_5:
{8, defaultjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
, CS43130_CH_BIT_SIZE_16,
{24{
{32 CS43130_SP_BIT_SIZE_32 CS43130_CH_BIT_SIZE_32java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
}
taticconst struct cs43130_bitwidth_map *s43130_get_bitwidth_table
java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 1
{
u8 scl;
for (i = 0; i ;
if ;
return &cs43130_bitwidth_table[u8;
}
returnNULL;
}
intcs43130_set_bitwidthint dai_id unsignedint ,
static structcs43130_pll_paramspll_ratio_table[ ={
{
{9600000,002 0x49 0x800000,000 x08,22579200,151,
bw_map = cs43130_get_bitwidth_table(bitwidth_dai);
if (! 11289600, 0,0,,0x01 x08,22579200,128}
return EINVAL
12000000 0,0x49,0800000 x,0,22579200,120,
case CS43130_ASP_PCM_DAI12000000 x,040 x000000 x,0x08,24576000,131}
130_:
{122880000x02,0 x000000, 0,008 24576000 }java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
CS43130_CH_BITSIZE_MASK, bw_map->ch_bit);
regmap_update_bits(egmap CS43130_ASP_CH_2_SZ_EN
CS43130_CH_BITSIZE_MASK bw_map-ch_bit;
regmap_update_bits(egmap,CS43130_SP_BITSIZE
{2579200,0 0,0 0,0 22579200 0,
break;
CS43130_XSP_DOP_DAI:
regmap_update_bits(regmap, CS43130_XSP_CH_1_SZ_EN,
CS43130_CH_BITSIZE_MASK->)java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
regmap_update_bits(regmap, CS43130_XSP_CH_2_SZ_EN,
24576000, 0x030x49 x800000,0,0x0A 22579200 }java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
regmap_update_bits(regmap, CS43130_SP_BITSIZE,
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
break;
default26000000 0,0,xEA940 0,x,24576000,121,
return -EINVAL;
}
return
}
static java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 1
{32000 CS43130_ASP_SPRATE_32Kjava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
{4100 CS43130_ASP_SPRATE_44_1K
{48000[]pll_out =freq_out
, CS43130_ASP_SPRATE_88_2K,
{
{,CS43130_ASP_SPRATE_176_4K}
{192000, java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 1
{,CS43130_ASP_SPRATE_352_8K,
{384000, CS43130_ASP_SPRATE_384K},
}
static const struct -,cs43130>;
{
int i;
(i=0 i ARRAY_SIZEcs43130_rate_table) i+){
if (cs43130_rate_table[i].fs = !pll_entry)
return cs43130_rate_table[i]java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
}
return NULL;
}
static *( , int fs,
const struct java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
{
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
n_clk_gen_table+ java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
]. =&
clk_gen_table[i].fs == fs)
cjava.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 28
}
return NULL;
}
static (int dai_id, unsignedint bitwidth_sclk,
struct snd_pcm_hw_params *params,
*cs43130)
{
u16 frm_size;
u16 CS43130java.lang.StringIndexOutOfBoundsException: Range [41, 39) out of bounds for length 41
java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
frm_phase;
u8 frm_data;
u8 sclk_edge;
u8 lrck_edge;
u8;
u8 loc_ch1;
u8 loc_ch2;
u8 dai_mode_val;
const struct cs43130_clk_gen *clk_gen;
pll_entry-sclk_prediv;
case:
hi_size =bitwidth_sclk
frm_delay return 0
frm_phase = 0;
break;
case SND_SOC_DAIFMT_LEFT_J:
hi_size =bitwidth_sclk;
frm_delay =java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
;
break;
case SND_SOC_DAIFMT_DSP_A:
hi_size = 1;
frm_delay = 12288000java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
case 22579200:
break;
case java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 15
hi_size 26000000java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
frm_delay = 0;
frm_phase dev_errc->ev,
break;
default:
return -;
}
switchjava.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
:
sclk_edge=1;
lrck_edge = 0;
break;
case 24576000java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
:
=0java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
break;
case SND_SOC_DAIFMT_NB_IF -INVALjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
sclk_edge=1java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
lrck_edge=1;
break;
case SND_SOC_DAIFMT_IB_IF:
=0
lrck_edge = 1_(struct cs43130_private cs43130,struct completion to_poll
break;
default:
return -EINVAL;
}
switchcs43130-[]dai_mode)java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
case SND_SOC_DAIFMT_CBC_CFC:
dai_mode_val = 0;
if(et= 0)
case SND_SOC_DAIFMT_CBP_CFP:
;
break;
default:
return -java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0
}
frm_size =bitwidth_sclk*params_channelsparams)java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
;
loc_ch2 = bitwidth_sclk enum src)
frm_data = frm_delay & CS43130_SP_FSD_MASK;
frm_data =(rm_phase< CS43130_SP_STP_SHIFT) ;
clk_data= -mclk_int_src {
clk_data |= lrck_edge <CS43130_SP_LCPOL_OUT_SHIFT&
0;
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 0
mclk_int_decodedCS43130_MCLK_22P5
clk_data_:
CS43130_SP_SCPOL_OUT_MASK;
clk_data d java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 39
java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
switch (dai_id src java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
:
case :
regmap_update_bitscs43130-regmap,CS43130_ASP_LRCK_PERIOD_1
TA_MASK ( -1)>java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
CS43130_SP_LCPR_LSB_DATA_SHIFT)java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
regmap_update_bitscs43130-regmap,CS43130_ASP_LRCK_PERIOD_2
(rm_size-1 >
CS43130_SP_LCPR_MSB_DATA_SHIFTjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
(-regmap,CS43130_ASP_LRCK_HI_TIME_1
CS43130_SP_LCHI_DATA_MASK hi_size-1)>
CS43130_SP_LCHI_LSB_DATA_SHIFT
(cs43130->regmap, CS43130_ASP_LRCK_HI_TIME_2,
CS43130_SP_LCHI_DATA_MASK 1 < CS43130_XTAL_RDY_INT_SHIFTjava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
CS43130_SP_LCHI_MSB_DATA_SHIFT);
regmap_write(cs43130->regmap, returnret;
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 0
2);
regmap_update_bits(cs43130-> CS43130_MCLK_SRC_SEL_MASK,
CS43130_CH_EN_MASK, 1 << );
->regmap CS43130_ASP_CH_2_SZ_EN,
, 1 < CS43130_CH_EN_SHIFT)
regmap_write(-r,CS43130_ASP_CLOCK_CONF )java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
java.lang.StringIndexOutOfBoundsException: Range [0, 7) out of bounds for length 0
caseCS43130_XSP_DOP_DAI
regmap_update_bits(s43130> ,
break
_SHIFT)
- =falsejava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 47
(s43130>egmap ,
(cs43130->egmap,CS43130_XSP_LRCK_HI_TIME_1,
CS43130_SP_LCHI_DATA_MASK, (hi_size - 1) >>
CS43130_SP_LCHI_LSB_DATA_SHIFT
regmap_update_bitscs43130->egmap CS43130_XSP_LRCK_HI_TIME_2
java.lang.StringIndexOutOfBoundsException: Range [30, 28) out of bounds for length 46
);
(> , )
regmap_writec-regmap,, loc_ch1;
,0;
regmap_update_bits(cs43130->regmap, CS43130_XSP_CH_1_SZ_EN,
CS43130_CH_EN_MASK,1< );
regmap_update_bits(> ,
java.lang.StringIndexOutOfBoundsException: Range [23, 21) out of bounds for length 49
SP_CLOCK_CONF clk_data)
break;
default: c-dev, "waiting for XTAL_READYinterrupt:dn,ret)
return;
}
reinit_completion&-pll_rdy;
case 16:
clk_gen = regmap_update_bits-regmap ,
params_rateparams,
cs43130_16_clk_gen,
E();
break;
case 32:
ret = c(,&-pll_rdy 100;
(params,
cs43130_32_clk_gen
(cs43130_32_clk_gen))
break;
case 48:
(-m,
params_rate(params),
cs43130_48_clk_gen,
regmap_update_bits-regmap ,
break;
case 64:
clk_gen=cs43130_get_clk_gen(cs43130>,
regmap_update_bits->,CS43130_SYS_CLK_CTL_1java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
cs43130_64_clk_gen,usleep_range150 200)
(cs43130_64_clk_gen)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
break;
n-INVALjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
}
if (!clk_gen)
return -EINVAL;
{
caseCS43130_ASP_PCM_DAI
case regmap_update_bits(cs43130->regmap, CS43130_PWDN_CTL,
1<java.lang.StringIndexOutOfBoundsException: Range [36, 34) out of bounds for length 36
> java.lang.StringIndexOutOfBoundsException: Range [64, 60) out of bounds for length 64
java.lang.StringIndexOutOfBoundsException: Range [37, 35) out of bounds for length 37
regmap_write ;
(clk_gen->java.lang.StringIndexOutOfBoundsException: Range [0, 19) out of bounds for length 1
, CS43130_SP_BIT_SIZE_8java.lang.StringIndexOutOfBoundsException: Range [51, 49) out of bounds for length 51
r,java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 50
static java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 69
java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 1
>,java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 50
(v&java.lang.StringIndexOutOfBoundsException: Range [62, 58) out of bounds for length 62
;
break;
java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 26
regmap_write(cs43130->regmap, CS43130_XSP_DEN_1,
(clk_gen->v.denominator & CS43130_SP_M_LSB_DATA_MASK) >>
CS43130_SP_M_LSB_DATA_SHIFT)
regmap_write(cs43130->regmap, (, ,
, bw_map-ch_bit)
)java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
30->egmap,,
(clk_gen->v.numerator & CS43130_SP_N_LSB_DATA_MASK) >>
,bw_map-;
regmap_write(cs43130->regmap, CS43130_XSP_NUM_2, ;
tor & >
regmap_update_bits(regmapjava.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 52
breakjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
:
return -EINVAL;
}
return 0;
}
static 0;
{
static cs43130_rate_mapcs43130_rate_table[ = java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
{ ,
48000,,
1 << CS43130_MIX_PCM_PREP_SHIFT);
(000,6050)
(,,
,
1 192000 },
} else {
DSD_PCM_MIX_CTL,
CS43130_MIX_PCM_DSD_MASK,
0< CS43130_MIX_PCM_DSD_SHIFT;
usleep_range(1600, 1650);
regmap_update_bits(regmap, CS43130_DSD_PCM_MIX_CTL,
CS43130_MIX_PCM_PREP_MASK,
0 << CS43130_MIX_PCM_PREP_SHIFT);
s *( )
return0java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
}
static ( *substream
struct return &cs43130_rate_table
*)
{
struct snd_soc_component *conststruct*java.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 78
struct cs43130_private *cs43130 = java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 1
unsignedint;
u8 dsd_speed;
(&->)
!-c
/* no DAI is currently using clk */
if (!(CS43130_MCLK_22M % java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 2
=;
struct )
required_clk = java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 1
cs43130_set_pll(component, 0,
if (cs43130->pll_bypassjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
,;
else
c java.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 58
}
>+;
if (cs43130-> switch (cs43130-d. java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
frm_delay ;
mutex_unlock(&cs43130->clk_mutex) =;
switch (hi_size = bitwidth_sclk;
case 176400:
dsd_speed = 0;
;
case 352800:
dsd_speed = 1;
break;
default:
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
params_rate(params));
return -java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
}
if (cs43130->dais[dai->id].dai_mode == SND_SOC_DAIFMT_CBP_CFP)
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 0
R);
else
regmap_update_bitscs43130>egmap CS43130_DSD_INT_CFG,
130_,0;
regmap_update_bits breakjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
CS43130_DSD_SPEED_MASK,
:
regmap_update_bitscs43130-,,
lrck_edge ;
CS43130_DSD_SRC_SHIFTjava.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 27
return 0;:
}
static switch >[] java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
*aijava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
{
struct return -EINVAL;
struct cs43130_private *cs43130 = java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 2
*;
unsigned int=0
int java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
));
unsigned int required_clk;
u8 dsd_speed;
mutex_lock(&java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
(>) {
!( %params)
=CS43130_MCLK_22M
java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
,0 ,>,required_clk)
if (cs43130->java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 0
cs43130_change_clksrc
(,)
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
cs43130->clk_req++;
if (cs43130->clk_req == 2)
cs43130_pcm_dsd_mix cs43130-regmap java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
(cs43130-)
switch d-i){
case CS43130_ASP_DOP_DAI:
case:
/* DoP bitwidth is always 24-bit */
bitwidth_dai = 24->regmap,CS43130_ASP_FRAME_CONF ;
sclk =params_rateparams)* *
regmap_write(s43130>egmap ,)
switch (params_rate(params)) {
case 176400:
dsd_speed = 0;
break;
case352800:
dsd_speed= ;
break;
default:
:
params_rate();
return -EINVAL;
}
regmap_update_bits );
CS43130_DSD_SPEED_MASK
<CS43130_DSD_SPEED_SHIFT;
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
case CS43130_SP_LCHI_DATA_MASK,h - 1 >
rate_map = CS43130_SP_LCHI_LSB_DATA_SHIFT);
if (!rate_map)
return -;
CS43130_SP_LCHI_MSB_DATA_SHIFT);
break;
regmap_(-regmap,CS43130_XSP_FRAME_CONF frm_data;
(->ev Invalid ()n, dai->d;
return -EINVAL;
} c-,CS43130_XSP_CH_2_LOC )
switch (dai->id) {
CS43130_ASP_DOP_DAIjava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
CS43130_CH_EN_MASK, 1 << CS43130_CH_EN_SHIFT);
,CS43130_DSD_SRC_ASP<
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 8
break;
case CS43130_XSP_DOP_DAI:
regmap_update_bits(cs43130->regmap, CS43130_DSD_PATH_CTL_2,
CS43130_DSD_SRC_MASK, CS43130_DSD_SRC_XSP <<
return -EINVAL;
break;
}
if (!sclk && cs43130->[dai-id].dai_mode =)
/* Calculate SCLK in master mode if unassigned */
sclk = params_rate(params) * bitwidth_dai *
(java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 33
if (!sclk) {
/* at this point, SCLK must be set */
dev_err(cs43130->dev, "SCLK freq is not set\n");
return 32
}
java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 72
if break;
dev_err =java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 50
INVALjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
}
clk_gen java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 50
java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 30
sclk, :
dev_dbg(cs43130->dev,
"bitwidth_sclk = %u, num_ch = %u\n",
bitwidth_sclk, params_channels(params));
cs43130_set_bitwidth(dai->id, bitwidth_dai, cs43130->regmap);
cs43130_set_sp_fmt(dai->id, bitwidth_sclk, params, cs43130);
return 0;
}
static }
struct snd_soc_dai *dai)
{
struct java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 14
switch( {
mutex_lockjava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
cs43130->clk_req--;
if (clk_gen>. java.lang.StringIndexOutOfBoundsException: Range [62, 60) out of bounds for length 64
/
cs43130_change_clksrc(component, ->v.denominator & CS43130_SP_M_MSB_DATA_M
regmap_write(java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 50
}
mutex_unlock&java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 35
return 0;
}
static const java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 50
static const char * java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 50
"Left-Right java.lang.StringIndexOutOfBoundsException: Range [37, 35) out of bounds for length 37
"Left-Left Ch",
"Right-Left Ch", ;
"Right- Ch",
} clk_gen-v&)>java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
static const java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
{CS43130_DXD1 0;
{0x180005, 0x8C},
{0x180007, 0xAB},
{x180015,031,
{0x180017, 0xB2},
{0x180025s intcs43130_pcm_dsd_mixbool ,struct *java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
0x180027, 0x84}
0 0,
{0x180037,0xAE}java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
{0x18000D, 0x24},
{0x18000F, 0xA3},
{0x18001D, 0x05},
0x18001F,0D4},
{0x18002D, xB,
{0x18002F, 0xC7},
{0x18003D, 0x71},
{0x18003F, 0xE7} java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
CS43130_DXD1, 0},
} (regmap, java.lang.StringIndexOutOfBoundsException: Range [53, 52) out of bounds for length 53
static const struct reg_sequence pcm_ch_dis_seq[] = {
{CS43130_DXD1, 0java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 10
{0x180005, 0x24},
{0x180007, 0java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0
0,x}java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
{0x180017 java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
{0x180025, 0x0B
{0 xC7}java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
{x, x71,
{0x180037, 0xE7},
{0x18000D, 0x8C},
{0 xAB}java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
{0x18001D, 0
0 0,
{0x18002D, 0x30},
{,
{0 0x9C}
{0x18003F, 0xAE},
{CS43130_DXD1 }java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
};
static int cs43130_pcm_ch_get(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
return snd_soc_get_enum_double(kcontrol, ucontrol);
}
static int java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 6
struct snd_ctl_elem_value *ucontrol java.lang.StringIndexOutOfBoundsException: Range [63, 62) out of bounds for length 64
{
struct java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 6
unsigned.item;
struct snd_soc_component *component = java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 2
struct-clk_req==2)
unsigned int val;
if ( cs43130_pcm_dsd_mixtrue,cs43130>)
return -mutex_unlock&s43130-c;
val = snd_soc_enum_item_to_val(
witch (cs43130-dev_id){
case CS43131_CHIP_ID:
case :
if (val >= 2)
regmap_multi_reg_write(java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 13
ARRAY_SIZE(pcm_ch_en_seq));
else
regmap_multi_reg_write(cs43130->regmap, pcm_ch_dis_seq,
ARRAY_SIZEjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
break;
}
snd_soc_put_enum_double(kcontrol,ucontrol)java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
}
static SOC_ENUM_SINGLE_DECL(pcm_ch_enum, CS43130_PCM_PATH_CTL_2, 0,
pcm_ch_text);
static const char * const pcm_spd_texts[regmap_update_bitscs43130-> CS43130_DSD_INT_CFG,
"Fast",
S"java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
};
static dsd_speed<;
pcm_spd_texts);
static const char * const dsd_texts[] CS43130_DSD_SRC_DSD <java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
"Off",
BCKA Mode"
"BCKD Mode",
}java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
static const unsigned int dsd_values[] = {
CS43130_DSD_SRC_DSD,
CS43130_DSD_SRC_ASP
CS43130_DSD_SRC_XSP,cs43130_private *= java.lang.StringIndexOutOfBoundsException: Range [65, 64) out of bounds for length 76
};
static SOC_VALUE_ENUM_SINGLE_DECL(dsd_enum, CS43130_DSD_INT_CFG, 0, 0x03
dsd_texts, dsd_values);
staticstruct ] java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
(" Playback Volume",
CS43130_PCM_VOL_A CS43130_PCM_VOL_B, 0xFF,1,
pcm_vol_tlv),
SOC_DOUBLE_R_TLV("Master DSD Playback ;
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 0
pcm_vol_tlv),
SOC_ENUM_EXT("PCM Ch /* no DAI is currently usi clk *
cs43130_pcm_ch_put),
SOC_ENUM("PCM java.lang.StringIndexOutOfBoundsException: Range [17, 15) out of bounds for length 35
cs43130_set_pll 0 >mclk ;
mple java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 72
" HighpassFilter,java.lang.StringIndexOutOfBoundsException: Range [62, 56) out of bounds for length 67
SOC_SINGLE("java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 45
SOC_ENUM("DSD Phase java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
};
/
{CS43130_DXD1, 0x99},
{ sclk = param =java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 45
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{CS43130_DXD9, 0x01},
{CS43130_DXD3, 0x12} dsd_speed= ;
{CS43130_DXD4, 0},
{CS43130_DXD10, 0x28},
{CS43130_DXD11352800
=1java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
};
static const params_rate(params));
{CS43130_DXD1, 0x99},
{CS43130_DXD7, 0x01},
{CS43130_DXD8, 0},
{CS43130_DXD9, 0x01},
{CS43130_DSD_SPE,
{ 0},
{
Cjava.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 23
Cjava.lang.StringIndexOutOfBoundsException: Range [16, 14) out of bounds for length 19
};
static const struct reg_sequencejava.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 9
{CS43130_DXD1 x}java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
{CS43130_DXD12
{CS43130_DXD1, 0},
;
cconst reg_sequencepop_free_seq2]={
{CS43130_DXD1, 0x99},
{CS43130_DXD13, 0x20},
{CS43130_DXD1, 0},
};
static const
{CS43130_DXD1, 0x99},
case CS43130_XSP_DOP_DAI:
{CS43130_DXD5, 0x02 regmap_update_bits(cs43130-regmap, java.lang.StringIndexOutOfBoundsException: Range [61, 60) out of bounds for length 61
{CS43130_DXD4, 0x12} break
{CS43130_DXD1
}java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
struct java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 49
{CS43130_DXD1, 0x99},
{CS43130_DXD3, 0x10},
{CS43130_DXD5, 0}java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{CS43130_DXD4, 0x16},
{CS43130_DXD1, 0},
};
static int cs43130_dsd_event
struct kcontrol, int )
{
struct snd_soc_component *component = (>);
struct cs43130_private *cs43130 = dev_err(cs43130->dev, "Format not supported freq istoo \n);
switch (event) {
case SND_SOC_DAPM_PRE_PMU:
switch (cs43130->dev_id) {
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
case CS4399_CHIP_ID:
java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 51
sclk,params,;
java.lang.StringIndexOutOfBoundsException: Range [0, 8) out of bounds for length 0
}
break;
case SND_SOC_DAPM_POST_PMU:
regmap_update_bits(cs43130->regmap, java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 42
CS43130_MUTE_MASKc(-, bitwidth_dai -regmap)java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
switch (cs43130->java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
case CS43130_CHIP_ID
case:
regmap_multi_reg_write(cs43130->regmap, unmute_seq,
struct snd_soc_dai)
break;
}
break;
case SND_SOC_DAPM_PRE_PMD:
mutex_lock&;
case CS43130_CHIP_ID:
case CS4399_CHIP_ID:
regmap_multi_reg_write(cs43130->regmap, mute_seq,
ARRAY_SIZE(mute_seq));
regmap_update_bits(cs43130-regmap,
CS43130_DSD_PATH_CTL_1,
/
/*
Power
* According to
*/
msleep(130) java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 62
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 9
case java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 16
P_ID
cjava.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 38
java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 31
0java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 18
break;
}
break;
default:
dev_err(cs43130->0180025,0x30
return -0x180035, 0x9C
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
return 0;
}
static int0x180015, 0,
struct snd_kcontrol *kcontrol, int event)x180017 0D4}java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
{
struct snd_soc_component *component = java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 18
struct cs43130_private *0java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 18
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 17
case SND_SOC_DAPM_PRE_PMU:
switch (cs43130->dev_id)
case CS43130_CHIP_ID:
case CS4399_CHIP_ID:
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ARRAY_SIZE()java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
break;
}
break;
case SND_SOC_DAPM_POST_PMU:
regmap_update_bits
static int cs43130_pcm_ch_put(struct snd_kcontrol *kcontrol,
switch (cs43130->dev_id) {
case CS43130_CHIP_ID:
struct *java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 54
unsignedint >..;
break;
}
break;
case SND_SOC_DAPM_PRE_PMD:
switch (cs43130
java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 23
java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 58
regmap_multi_reg_write c>)java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
case CS43198_CHIP_ID:
regmap_update_bits(cs43130->regmap,
,
java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 44
/*
>egmap, java.lang.StringIndexOutOfBoundsException: Range [58, 57) out of bounds for length 58
java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 52
*/
msleep()
break;
case java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
case CS43198_CHIP_ID:
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 8
java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 66
CS43130_MUTE_MASK
break;
}
break"Off,
default:
dev_err(java.lang.StringIndexOutOfBoundsException: Range [0, 17) out of bounds for length 2
return -EINVAL;
}
return 0;
}
static const struct reg_sequence dac_postpmu_seq[] = ,;
java.lang.StringIndexOutOfBoundsException: Range [58, 22) out of bounds for length 22
{java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 22
{CS43130_DXD4(java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 47
};
static const dac_postpmd_seq[] = {
{,0,
{CS43130_DXD6, 0x01 (Filter " ,
{CS43130_DXD1, 0},
};
java.lang.StringIndexOutOfBoundsException: Range [16, 6) out of bounds for length 59
snd_kcontrol * int )
{
omponent=java.lang.StringIndexOutOfBoundsException: Range [66, 64) out of bounds for length 74
struct cs43130_private *cs43130 = snd_soc_component_get_drvdata(component);
switch (event) {
case SND_SOC_DAPM_PRE_PMU:
switch (cs43130->dev_id) {
case CS43130_CHIP_ID:
CS4399_CHIP_ID:
regmap_multi_reg_write(cs43130->regmap, pop_free_seq,
(pop_free_seq)
break;
static const struct java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 46
ase java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
CS43130_DXD9 x}
java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 39
break;
}
break;
case SND_SOC_DAPM_POST_PMU:
usleep_range(10000, 10050);
regmap_write(cs43130->regmap, CS43130_DXD1, 0x99);
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 28
case CS43130_DXD7, 0x01
CS4399_CHIP_ID
(regmap java.lang.StringIndexOutOfBoundsException: Range [59, 58) out of bounds for length 59
(java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 41
/*
* Per {CS43130_DXD11 x20}java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
*static const reg_sequencepop_free_seq]= {
* THDN and Dynamic Range spec.
*/
msleep(1000);
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
break;
case CS43131_CHIP_ID:
java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
usleep_range(12000, 12010);
regmap_write(cs43130->regmap, CS43130_DXD13, 0);
break;
java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 3
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 49
break;
case SND_SOC_DAPM_POST_PMD:
switch (cs43130->dev_id) {
case CS43130_CHIP_ID:
case CS4399_CHIP_ID:
regmap_multi_reg_write(cs43130->regmap, dac_postpmd_seq,
ARRAY_SIZE(dac_postpmd_seqjava.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 49
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
}
CS4313,0}java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
default:
dev_err(cs43130->dev, "java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 2
return -EINVAL;
}
return 0;
}
static const struct reg_sequence hpin_prepmd_seq[] = {
{CS43130_DXD1, 0x99},
{CS43130_DXD15, 0x64},
{CS43130_DXD14, 0},
{CS43130_DXD2, 0},
{CS43130_DXD1, 0},
};
static const struct reg_sequence hpin_postpmu_seq[] =
{CS43130_DXD1, 0x99},
{java.lang.StringIndexOutOfBoundsException: Range [16, 14) out of bounds for length 19
{CS43130_DXD14, 0xDC},
{ casejava.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 23
{CS43130_DXD1, 0},
};
static int ARRAY_SIZE
struct snd_kcontrol *kcontrol, int event)
{
java.lang.StringIndexOutOfBoundsException: Range [25, 7) out of bounds for length 74
struct cs43130_private *cs43130 = regmap_update_bits(cs43130->regmap, CS43130_DSD_PATH_CTL_1,
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 17
case switch (cs43130->dev_id)
regmap_multi_reg_write(cs43130->java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 22
ARRAY_SIZE(hpin_prepmd_seq));
break;
case SND_SOC_DAPM_PRE_PMU:
regmap_multi_reg_write(cs43130->regmap, hpin_postpmu_seq,
ARRAY_SIZE(hpin_postpmu_seq));
;
default:
dev_err(cs43130->dev, "Invalid HPIN
return -EINVAL;
}
return 0;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
static const char * const bypass_mux_text[] = {
"Internal",
",
};
static SOC_ENUM_SINGLE_DECL(bypass_enum, SND_SOC_NOPM, 0 java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 31
static const struct snd_kcontrol_new bypass_ctrl = java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 5
static const struct * According to Design, 130ms is preferred
SND_SOC_DAPM_MUX msleep(130);
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 9
SND_SOC_DAPM_OUTPUT("HPOUTB"),
SND_SOC_DAPM_AIF_IN_E("SPIN ",NULL,0 CS43130_PWDN_CTL
CS43130_PDN_ASP_SHIFT,1, java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
(SND_SOC_DAPM_PRE_PMU | java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 9
java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 33
return -EINVAL;
CS43130_PDN_ASP_SHIFT, 1, cs43130_dsd_event,
(SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU |
SND_SOC_DAPM_PRE_PMD)),
CS43130_PDN_XSP_SHIFT
Sjava.lang.StringIndexOutOfBoundsException: Range [32, 30) out of bounds for length 56
java.lang.StringIndexOutOfBoundsException: Range [0, 30) out of bounds for length 22
SND_SOC_DAPM_AIF_IN_E( ;
}
(SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU |
SND_SOC_DAPM_PRE_PMD)),
SND_SOC_DAPM_DAC( 0;
CS43130_DSD_EN_SHIFT, 0),
java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 23
1,java.lang.StringIndexOutOfBoundsException: Range [49, 48) out of bounds for length 49
(SND_SOC_DAPM_PRE_PMU | java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 9
SND_SOC_DAPM_POST_PMD)),
/* Some devices have some extra analog widgets */
#define java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 22
java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 38
java.lang.StringIndexOutOfBoundsException: Range [44, 42) out of bounds for length 44
(java.lang.StringIndexOutOfBoundsException: Range [29, 27) out of bounds for length 54
};
[{
{"ASPIN PCM", NULL, "ASP PCM Playback"},
{"ASPIN DoP", NULL, "ASP DoP Playback"},
{"XSPIN DoP", NULL 130;
{"XSPIN DSD", NULL, "XSP DSD Playback"}, java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 9
{"DSDc>egmap,
{"DSD", NULL, CS43130_PCM_PATH_CTL_1,
{", XSPIN DSD"}
{"HiFi DAC", NULL, "ASPIN PCM"},
{"HiFi CS43130_MUTE_MASK CS43130_MUTE_EN)java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
{"Bypass Switch", "java.lang.StringIndexOutOfBoundsException: Range [0, 28) out of bounds for length 8
{" dev_errdev_err(->dev, "Invalid 0x%x\", ;
{"HPOUTB", NULL, "Bypass Switch"},
/* Some devices have some extra analog routes */
#define NUM_ANALOG_ROUTES 1
{"java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
};
static const{S43130_DXD9, 0x0C},
32000, 44100, 48000, 88200, 96000, x10,
};
const struct snd_pcm_hw_constraint_list cs43130_asp_constraints ={
.count = ARRAY_SIZE(cs43130_asp_src_rates),
.list {S43130_DXD1,0x99}java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
};
static java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0
struct snd_soc_dai *dai)
{
return java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 57
SNDRV_PCM_HW_PARAM_RATE,
&cs43130_asp_constraints);
}
static const unsigned intjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
176400, 352800,
}java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
static const struct snd_pcm_hw_constraint_list
. case java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 23
.list = )
};
static int cs43130_dop_startup(java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 28
struct snd_soc_dai *dai)
{
(substream> 0
SNDRV_PCM_HW_PARAM_RATE,
& (cs43130 {
}
static int cs43130_pcm_set_fmt(struct snd_soc_dai *codec_dai, unsigned int fmtregmap
{
struct snd_soc_component *component = codec_dai->component;
struct cs43130_private *cs43130 = snd_soc_component_get_drvdata(component);
switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) bejava.lang.StringIndexOutOfBoundsException: Range [49, 48) out of bounds for length 58
case SND_SOC_DAIFMT_CBC_CFC:
cs43130->dais[codec_dai->id].dai_mode java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
case SND_SOC_DAIFMT_CBP_CFPcasejava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
cs43130 java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 30
break;
default:
dev_err(cs43130->dev, "java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 0
return -EINVAL;
}
switch (fmt & SND_SOC_DAIFMT_INV_MASK) {
case breakjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
>aiscodec_dai-id.java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 65
break;
case:
>ais[>id. java.lang.StringIndexOutOfBoundsException: Range [65, 64) out of bounds for length 65
break;
case SND_SOC_DAIFMT_NB_IF:
cs43130-dev,"nvalid DAC event = 0x%x\n", event);
break;
case:
cs43130->dais[codec_dai->java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 2
break;
default:
dev_err(cs43130->dev, "Unsupported invert mode 0x%x\CS43130_DXD1 0x99,
fmt & java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 20
return -CS43130_DXD1}java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
}
switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
:
-dais-id]=java.lang.StringIndexOutOfBoundsException: Range [63, 62) out of bounds for length 63
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
case SND_SOC_DAIFMT_LEFT_J:
cs43130->dais[codec_dai->id].dai_format java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 50
breakjava.lang.StringIndexOutOfBoundsException: Range [27, 25) out of bounds for length 74
java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
-codec_dai-id].java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 65
break;
case SND_SOC_DAIFMT_DSP_B:
cs43130->dais[codec_dai->id]. ARRAY_SIZE(hpin_prepmd_seq))
break;
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 9
dev_err(cs43130->dev,
"unsupported audio format\n");
return :
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
dev_dbg(cs43130->dev, "java.lang.StringIndexOutOfBoundsException: Range [0, 30) out of bounds for length 1
codec_dai>,
cs43130->dais[codec_dai->id]. ,
cs43130->dais[codec_dai->id].dai_format);
return 0;
}
java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 79
{
struct struct snd_soc_dapm_widget]
java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 76
switch (fmt & java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 0
case SND_SOC_DAIFMT_CBC_CFC:
cs43130->dais[-id.ai_mode = SND_SOC_DAIFMT_CBC_CFC;
break;
case (SND_SOC_DAPM_PRE_PM |
cs43130->dais[codec_dai->id].dai_mode = SND_SOC_DAIFMT_CBP_CFP;
break;
default" ,NULL,0 java.lang.StringIndexOutOfBoundsException: Range [62, 61) out of bounds for length 62
dev_err( (java.lang.StringIndexOutOfBoundsException: Range [32, 30) out of bounds for length 56
return -EINVAL;
}
java.lang.StringIndexOutOfBoundsException: Range [3, 1) out of bounds for length 53
cs43130->dais[codec_dai->id].dai_mode);
return 0;
}
static int cs43130_set_sysclk(struct snd_soc_dai *codec_dai,
int clk_id, unsigned int freq java.lang.StringIndexOutOfBoundsException: Range [32, 30) out of bounds for length 33
{
struct snd_soc_component *component = codec_dai->component;
struct SND_SOC_DAPM_PRE_PMD,
cs43130->dais[codec_dai->id].sclk = freq java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 29
dev_dbg(cs43130->dev, "dai_id = %d, sclk = % CS43130_PDN_HP_SHIFT, 1, cs43130_dac_even,1,java.lang.StringIndexOutOfBoundsException: Range [49, 48) out of bounds for length 49
cs43130>>d].;
return 0;
}
static const
.startup = cs43130_pcm_startup,
.hw_params = cs43130_hw_params,
.hw_free = cs43130_hw_free,
.set_sysclk = cs43130_set_sysclk,
.set_fmt =java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
};
static {"SPIN " NULL ASP PCM }
.java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 32
.hw_params = cs43130_hw_params,
.hw_free = cs43130_hw_free,
. =java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 34
.set_fmt = java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 28
};
static const struct snd_soc_dai_ops cs43130_dsd_ops = {
.startup = cs43130_dop_startup,
.hw_params = cs43130_dsd_hw_params, BSwitch,
.hw_free = cs43130_hw_free,
.set_fmt = cs43130_dsd_set_fmt,
};
static [= java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
{
.name = "cs43130-asp-pcm",
.id = CS43130_ASP_PCM_DAI,
.playback ={
.stream_name = "ASP PCM Playback",
.channels_min = 1,
.hannels_max=2,
.rates = SNDRV_PCM_RATE_KNOT,
.formats = CS43130_PCM_FORMATS,
},
. java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
.symmetric_rate = 1,
},
{
.name = "ints java.lang.StringIndexOutOfBoundsException: Range [57, 55) out of bounds for length 67
.id = CS43130_ASP_DOP_DAI{
. {
. SNDRV_PCM_HW_PARAM_RATE
&s43130_asp_constraints)java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
.java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 21
.rates = SNDRV_PCM_RATE_KNOT,
.formats = java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0 | |