mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-22 17:25:35 +03:00
k5.9: Fix linux-5.8-rc3 merge build
Resolve linux-5.8-rc3 merge conflicts in k5.9 branch (currently tracking mainline with linux-5.7.0) Fix build errors in k5.9 branch after merge of linux-5.8-rc3 bug 200617764 Change-Id: I3a358fef6e8b7c5926fd0de05a03cee539547e8f Signed-off-by: Bitan Biswas <bbiswas@nvidia.com>
This commit is contained in:
committed by
Sameer Pujar
parent
ffea8c683b
commit
8e36d59756
@@ -1377,17 +1377,17 @@ static int tegra210_adsp_compr_msg_handler(struct tegra210_adsp_app *app,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Compress call-back APIs */
|
/* Compress call-back APIs */
|
||||||
static int tegra210_adsp_compr_open(struct snd_compr_stream *cstream)
|
static int tegra210_adsp_compr_open(struct snd_soc_component *component,
|
||||||
|
struct snd_compr_stream *cstream)
|
||||||
{
|
{
|
||||||
struct snd_soc_pcm_runtime *rtd = cstream->device->private_data;
|
struct snd_soc_pcm_runtime *rtd = cstream->device->private_data;
|
||||||
struct snd_soc_component *cmpnt = snd_soc_rtdcom_lookup(rtd, DRV_NAME);
|
struct tegra210_adsp *adsp = snd_soc_component_get_drvdata(component);
|
||||||
struct tegra210_adsp *adsp = snd_soc_component_get_drvdata(cmpnt);
|
|
||||||
struct tegra210_adsp_compr_rtd *prtd;
|
struct tegra210_adsp_compr_rtd *prtd;
|
||||||
uint32_t fe_reg = rtd->codec_dai->id + 1;
|
uint32_t fe_reg = rtd->dais[rtd->num_cpus]->id + 1;
|
||||||
int ret;
|
int ret;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
dev_vdbg(adsp->dev, "%s : DAI ID %d", __func__, rtd->codec_dai->id);
|
dev_vdbg(adsp->dev, "%s : DAI ID %d", __func__, rtd->dais[rtd->num_cpus]->id);
|
||||||
|
|
||||||
if (!adsp->init_done)
|
if (!adsp->init_done)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
@@ -1435,7 +1435,8 @@ static int tegra210_adsp_compr_open(struct snd_compr_stream *cstream)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tegra210_adsp_compr_free(struct snd_compr_stream *cstream)
|
static int tegra210_adsp_compr_free(struct snd_soc_component *component,
|
||||||
|
struct snd_compr_stream *cstream)
|
||||||
{
|
{
|
||||||
struct tegra210_adsp_compr_rtd *prtd = cstream->runtime->private_data;
|
struct tegra210_adsp_compr_rtd *prtd = cstream->runtime->private_data;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
@@ -1463,7 +1464,8 @@ static int tegra210_adsp_compr_free(struct snd_compr_stream *cstream)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tegra210_adsp_compr_set_params(struct snd_compr_stream *cstream,
|
static int tegra210_adsp_compr_set_params(struct snd_soc_component *component,
|
||||||
|
struct snd_compr_stream *cstream,
|
||||||
struct snd_compr_params *params)
|
struct snd_compr_params *params)
|
||||||
{
|
{
|
||||||
struct tegra210_adsp_compr_rtd *prtd = cstream->runtime->private_data;
|
struct tegra210_adsp_compr_rtd *prtd = cstream->runtime->private_data;
|
||||||
@@ -1511,7 +1513,8 @@ static int tegra210_adsp_compr_set_params(struct snd_compr_stream *cstream,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tegra210_adsp_compr_get_params(struct snd_compr_stream *cstream,
|
static int tegra210_adsp_compr_get_params(struct snd_soc_component *component,
|
||||||
|
struct snd_compr_stream *cstream,
|
||||||
struct snd_codec *codec)
|
struct snd_codec *codec)
|
||||||
{
|
{
|
||||||
struct tegra210_adsp_compr_rtd *prtd = cstream->runtime->private_data;
|
struct tegra210_adsp_compr_rtd *prtd = cstream->runtime->private_data;
|
||||||
@@ -1520,8 +1523,8 @@ static int tegra210_adsp_compr_get_params(struct snd_compr_stream *cstream,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tegra210_adsp_compr_trigger(struct snd_compr_stream *cstream,
|
static int tegra210_adsp_compr_trigger(struct snd_soc_component *component,
|
||||||
int cmd)
|
struct snd_compr_stream *cstream, int cmd)
|
||||||
{
|
{
|
||||||
struct tegra210_adsp_compr_rtd *prtd = cstream->runtime->private_data;
|
struct tegra210_adsp_compr_rtd *prtd = cstream->runtime->private_data;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
@@ -1590,7 +1593,8 @@ static int tegra210_adsp_compr_trigger(struct snd_compr_stream *cstream,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tegra210_adsp_compr_copy(struct snd_compr_stream *cstream,
|
static int tegra210_adsp_compr_copy(struct snd_soc_component *component,
|
||||||
|
struct snd_compr_stream *cstream,
|
||||||
char __user *buf, size_t count)
|
char __user *buf, size_t count)
|
||||||
{
|
{
|
||||||
struct tegra210_adsp_compr_rtd *prtd = cstream->runtime->private_data;
|
struct tegra210_adsp_compr_rtd *prtd = cstream->runtime->private_data;
|
||||||
@@ -1627,7 +1631,8 @@ static int tegra210_adsp_compr_copy(struct snd_compr_stream *cstream,
|
|||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tegra210_adsp_compr_pointer(struct snd_compr_stream *cstream,
|
static int tegra210_adsp_compr_pointer(struct snd_soc_component *component,
|
||||||
|
struct snd_compr_stream *cstream,
|
||||||
struct snd_compr_tstamp *tstamp)
|
struct snd_compr_tstamp *tstamp)
|
||||||
{
|
{
|
||||||
struct tegra210_adsp_compr_rtd *prtd = cstream->runtime->private_data;
|
struct tegra210_adsp_compr_rtd *prtd = cstream->runtime->private_data;
|
||||||
@@ -1651,7 +1656,8 @@ static int tegra210_adsp_compr_pointer(struct snd_compr_stream *cstream,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tegra210_adsp_compr_get_caps(struct snd_compr_stream *cstream,
|
static int tegra210_adsp_compr_get_caps(struct snd_soc_component *component,
|
||||||
|
struct snd_compr_stream *cstream,
|
||||||
struct snd_compr_caps *caps)
|
struct snd_compr_caps *caps)
|
||||||
{
|
{
|
||||||
if (cstream->direction == SND_COMPRESS_PLAYBACK)
|
if (cstream->direction == SND_COMPRESS_PLAYBACK)
|
||||||
@@ -1664,7 +1670,8 @@ static int tegra210_adsp_compr_get_caps(struct snd_compr_stream *cstream,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tegra210_adsp_compr_codec_caps(struct snd_compr_stream *cstream,
|
static int tegra210_adsp_compr_codec_caps(struct snd_soc_component *component,
|
||||||
|
struct snd_compr_stream *cstream,
|
||||||
struct snd_compr_codec_caps *codec_caps)
|
struct snd_compr_codec_caps *codec_caps)
|
||||||
{
|
{
|
||||||
struct tegra210_adsp_compr_rtd *prtd = cstream->runtime->private_data;
|
struct tegra210_adsp_compr_rtd *prtd = cstream->runtime->private_data;
|
||||||
@@ -1690,7 +1697,7 @@ static int tegra210_adsp_compr_codec_caps(struct snd_compr_stream *cstream,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct snd_compr_ops tegra210_adsp_compr_ops = {
|
static struct snd_compress_ops tegra210_adsp_compress_ops = {
|
||||||
.open = tegra210_adsp_compr_open,
|
.open = tegra210_adsp_compr_open,
|
||||||
.free = tegra210_adsp_compr_free,
|
.free = tegra210_adsp_compr_free,
|
||||||
.set_params = tegra210_adsp_compr_set_params,
|
.set_params = tegra210_adsp_compr_set_params,
|
||||||
@@ -1710,7 +1717,7 @@ static int tegra210_adsp_pcm_open(struct snd_soc_component *component,
|
|||||||
struct snd_soc_component *cmpnt = snd_soc_rtdcom_lookup(rtd, DRV_NAME);
|
struct snd_soc_component *cmpnt = snd_soc_rtdcom_lookup(rtd, DRV_NAME);
|
||||||
struct tegra210_adsp *adsp = snd_soc_component_get_drvdata(cmpnt);
|
struct tegra210_adsp *adsp = snd_soc_component_get_drvdata(cmpnt);
|
||||||
struct tegra210_adsp_pcm_rtd *prtd;
|
struct tegra210_adsp_pcm_rtd *prtd;
|
||||||
uint32_t fe_reg = rtd->codec_dai->id + 1;
|
uint32_t fe_reg = rtd->dais[rtd->num_cpus]->id + 1;
|
||||||
uint32_t source;
|
uint32_t source;
|
||||||
int i, ret = 0;
|
int i, ret = 0;
|
||||||
|
|
||||||
@@ -4403,7 +4410,7 @@ static struct snd_soc_component_driver tegra210_adsp_cmpnt = {
|
|||||||
.trigger = tegra210_adsp_pcm_trigger,
|
.trigger = tegra210_adsp_pcm_trigger,
|
||||||
.pointer = tegra210_adsp_pcm_pointer,
|
.pointer = tegra210_adsp_pcm_pointer,
|
||||||
|
|
||||||
.compr_ops = &tegra210_adsp_compr_ops,
|
.compress_ops = &tegra210_adsp_compress_ops,
|
||||||
.read = tegra210_adsp_read,
|
.read = tegra210_adsp_read,
|
||||||
.write = tegra210_adsp_write,
|
.write = tegra210_adsp_write,
|
||||||
};
|
};
|
||||||
@@ -4660,7 +4667,7 @@ static int tegra210_adsp_audio_probe(struct platform_device *pdev)
|
|||||||
/* enable/disable compr-ops from DT */
|
/* enable/disable compr-ops from DT */
|
||||||
of_property_read_u32(pdev->dev.of_node, "compr-ops", &compr_ops);
|
of_property_read_u32(pdev->dev.of_node, "compr-ops", &compr_ops);
|
||||||
if (!compr_ops)
|
if (!compr_ops)
|
||||||
tegra210_adsp_cmpnt.compr_ops = NULL;
|
tegra210_adsp_cmpnt.compress_ops = NULL;
|
||||||
|
|
||||||
if (of_property_read_u32_index(pdev->dev.of_node, "nvidia,adma_ch_page",
|
if (of_property_read_u32_index(pdev->dev.of_node, "nvidia,adma_ch_page",
|
||||||
0, &adma_ch_page)) {
|
0, &adma_ch_page)) {
|
||||||
|
|||||||
@@ -755,9 +755,9 @@ int tegra_machine_add_codec_jack_control(struct snd_soc_card *card,
|
|||||||
.private_value = (unsigned long)&tegra_machine_jack_state,
|
.private_value = (unsigned long)&tegra_machine_jack_state,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (rtd->codec_dai->component->name_prefix)
|
if (rtd->dais[rtd->num_cpus]->component->name_prefix)
|
||||||
snprintf(name, sizeof(name), "%s Jack-state",
|
snprintf(name, sizeof(name), "%s Jack-state",
|
||||||
rtd->codec_dai->component->name_prefix);
|
rtd->dais[rtd->num_cpus]->component->name_prefix);
|
||||||
else
|
else
|
||||||
snprintf(name, sizeof(name), "Jack-state");
|
snprintf(name, sizeof(name), "Jack-state");
|
||||||
|
|
||||||
|
|||||||
@@ -73,21 +73,17 @@ int tegra_asoc_utils_set_rate(struct tegra_asoc_utils_data *data, int srate,
|
|||||||
data->set_baseclock = 0;
|
data->set_baseclock = 0;
|
||||||
data->set_mclk = 0;
|
data->set_mclk = 0;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
clk_disable_unprepare(data->clk_aud_mclk);
|
|
||||||
clk_disable_unprepare(data->clk_pll_out);
|
|
||||||
clk_disable_unprepare(data->clk_pll);
|
|
||||||
=======
|
|
||||||
clk_disable_unprepare(data->clk_cdev1);
|
clk_disable_unprepare(data->clk_cdev1);
|
||||||
>>>>>>> v5.8-rc3
|
clk_disable_unprepare(data->clk_pll_a_out0);
|
||||||
|
clk_disable_unprepare(data->clk_pll_a);
|
||||||
|
|
||||||
err = clk_set_rate(data->clk_pll, new_baseclock);
|
err = clk_set_rate(data->clk_pll_a, new_baseclock);
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(data->dev, "Can't set base pll rate: %d\n", err);
|
dev_err(data->dev, "Can't set base pll rate: %d\n", err);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
err = clk_set_rate(data->clk_pll_out, mclk);
|
err = clk_set_rate(data->clk_pll_a_out0, mclk);
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(data->dev, "Can't set pll_out rate: %d\n", err);
|
dev_err(data->dev, "Can't set pll_out rate: %d\n", err);
|
||||||
return err;
|
return err;
|
||||||
@@ -95,25 +91,21 @@ int tegra_asoc_utils_set_rate(struct tegra_asoc_utils_data *data, int srate,
|
|||||||
|
|
||||||
/* Don't set cdev1/extern1 rate; it's locked to pll_out */
|
/* Don't set cdev1/extern1 rate; it's locked to pll_out */
|
||||||
|
|
||||||
<<<<<<< HEAD
|
err = clk_prepare_enable(data->clk_pll_a);
|
||||||
err = clk_prepare_enable(data->clk_pll);
|
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(data->dev, "Can't enable pll: %d\n", err);
|
dev_err(data->dev, "Can't enable pll: %d\n", err);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
err = clk_prepare_enable(data->clk_pll_out);
|
err = clk_prepare_enable(data->clk_pll_a_out0);
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(data->dev, "Can't enable pll_out: %d\n", err);
|
dev_err(data->dev, "Can't enable pll_out: %d\n", err);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
err = clk_prepare_enable(data->clk_aud_mclk);
|
|
||||||
=======
|
|
||||||
err = clk_prepare_enable(data->clk_cdev1);
|
err = clk_prepare_enable(data->clk_cdev1);
|
||||||
>>>>>>> v5.8-rc3
|
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(data->dev, "Can't enable aud_mclk: %d\n", err);
|
dev_err(data->dev, "Can't enable clk_cdev1: %d\n", err);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -130,25 +122,21 @@ int tegra_asoc_utils_set_ac97_rate(struct tegra_asoc_utils_data *data)
|
|||||||
const int ac97_rate = 24576000;
|
const int ac97_rate = 24576000;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
clk_disable_unprepare(data->clk_aud_mclk);
|
|
||||||
clk_disable_unprepare(data->clk_pll_out);
|
|
||||||
clk_disable_unprepare(data->clk_pll);
|
|
||||||
=======
|
|
||||||
clk_disable_unprepare(data->clk_cdev1);
|
clk_disable_unprepare(data->clk_cdev1);
|
||||||
>>>>>>> v5.8-rc3
|
clk_disable_unprepare(data->clk_pll_a_out0);
|
||||||
|
clk_disable_unprepare(data->clk_pll_a);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* AC97 rate is fixed at 24.576MHz and is used for both the host
|
* AC97 rate is fixed at 24.576MHz and is used for both the host
|
||||||
* controller and the external codec
|
* controller and the external codec
|
||||||
*/
|
*/
|
||||||
err = clk_set_rate(data->clk_pll, pll_rate);
|
err = clk_set_rate(data->clk_pll_a, pll_rate);
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(data->dev, "Can't set pll_a rate: %d\n", err);
|
dev_err(data->dev, "Can't set pll_a rate: %d\n", err);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
err = clk_set_rate(data->clk_pll_out, ac97_rate);
|
err = clk_set_rate(data->clk_pll_a_out0, ac97_rate);
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(data->dev, "Can't set pll_a_out0 rate: %d\n", err);
|
dev_err(data->dev, "Can't set pll_a_out0 rate: %d\n", err);
|
||||||
return err;
|
return err;
|
||||||
@@ -156,23 +144,19 @@ int tegra_asoc_utils_set_ac97_rate(struct tegra_asoc_utils_data *data)
|
|||||||
|
|
||||||
/* Don't set cdev1/extern1 rate; it's locked to pll_a_out0 */
|
/* Don't set cdev1/extern1 rate; it's locked to pll_a_out0 */
|
||||||
|
|
||||||
<<<<<<< HEAD
|
err = clk_prepare_enable(data->clk_pll_a);
|
||||||
err = clk_prepare_enable(data->clk_pll);
|
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(data->dev, "Can't enable pll_a: %d\n", err);
|
dev_err(data->dev, "Can't enable pll_a: %d\n", err);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
err = clk_prepare_enable(data->clk_pll_out);
|
err = clk_prepare_enable(data->clk_pll_a_out0);
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(data->dev, "Can't enable pll_a_out0: %d\n", err);
|
dev_err(data->dev, "Can't enable pll_a_out0: %d\n", err);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
err = clk_prepare_enable(data->clk_aud_mclk);
|
|
||||||
=======
|
|
||||||
err = clk_prepare_enable(data->clk_cdev1);
|
err = clk_prepare_enable(data->clk_cdev1);
|
||||||
>>>>>>> v5.8-rc3
|
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(data->dev, "Can't enable cdev1: %d\n", err);
|
dev_err(data->dev, "Can't enable cdev1: %d\n", err);
|
||||||
return err;
|
return err;
|
||||||
@@ -220,9 +204,9 @@ int tegra_asoc_utils_set_tegra210_rate(struct tegra_asoc_utils_data *data,
|
|||||||
aud_mclk = sample_rate * data->mclk_fs;
|
aud_mclk = sample_rate * data->mclk_fs;
|
||||||
|
|
||||||
if (data->set_baseclock != new_pll_base) {
|
if (data->set_baseclock != new_pll_base) {
|
||||||
err = clk_set_rate(data->clk_pll, new_pll_base);
|
err = clk_set_rate(data->clk_pll_a, new_pll_base);
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(data->dev, "Can't set clk_pll rate: %d\n",
|
dev_err(data->dev, "Can't set clk_pll_a rate: %d\n",
|
||||||
err);
|
err);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@@ -230,9 +214,9 @@ int tegra_asoc_utils_set_tegra210_rate(struct tegra_asoc_utils_data *data,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (data->set_pll_out != pll_out) {
|
if (data->set_pll_out != pll_out) {
|
||||||
err = clk_set_rate(data->clk_pll_out, pll_out);
|
err = clk_set_rate(data->clk_pll_a_out0, pll_out);
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(data->dev, "Can't set clk_pll_out rate: %d\n",
|
dev_err(data->dev, "Can't set clk_pll_a_out0 rate: %d\n",
|
||||||
err);
|
err);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@@ -240,7 +224,7 @@ int tegra_asoc_utils_set_tegra210_rate(struct tegra_asoc_utils_data *data,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (data->set_mclk != aud_mclk) {
|
if (data->set_mclk != aud_mclk) {
|
||||||
err = clk_set_rate(data->clk_aud_mclk, aud_mclk);
|
err = clk_set_rate(data->clk_cdev1, aud_mclk);
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(data->dev, "Can't set clk_cdev1 rate: %d\n",
|
dev_err(data->dev, "Can't set clk_cdev1 rate: %d\n",
|
||||||
err);
|
err);
|
||||||
@@ -257,9 +241,9 @@ int tegra_asoc_utils_clk_enable(struct tegra_asoc_utils_data *data)
|
|||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
err = clk_prepare_enable(data->clk_aud_mclk);
|
err = clk_prepare_enable(data->clk_cdev1);
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(data->dev, "Can't enable clock aud_mclk\n");
|
dev_err(data->dev, "Can't enable clock cdev1\n");
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -269,7 +253,7 @@ EXPORT_SYMBOL_GPL(tegra_asoc_utils_clk_enable);
|
|||||||
|
|
||||||
void tegra_asoc_utils_clk_disable(struct tegra_asoc_utils_data *data)
|
void tegra_asoc_utils_clk_disable(struct tegra_asoc_utils_data *data)
|
||||||
{
|
{
|
||||||
clk_disable_unprepare(data->clk_aud_mclk);
|
clk_disable_unprepare(data->clk_cdev1);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(tegra_asoc_utils_clk_disable);
|
EXPORT_SYMBOL_GPL(tegra_asoc_utils_clk_disable);
|
||||||
|
|
||||||
@@ -300,36 +284,6 @@ int tegra_asoc_utils_init(struct tegra_asoc_utils_data *data,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
data->clk_pll = devm_clk_get(dev, "pll_a");
|
|
||||||
if (IS_ERR(data->clk_pll)) {
|
|
||||||
dev_err(data->dev, "Can't retrieve clk pll_a\n");
|
|
||||||
return PTR_ERR(data->clk_pll);
|
|
||||||
}
|
|
||||||
|
|
||||||
data->clk_pll_out = devm_clk_get(dev, "pll_a_out0");
|
|
||||||
if (IS_ERR(data->clk_pll_out)) {
|
|
||||||
dev_err(data->dev, "Can't retrieve clk pll_a_out0\n");
|
|
||||||
return PTR_ERR(data->clk_pll_out);
|
|
||||||
}
|
|
||||||
|
|
||||||
data->clk_aud_mclk = devm_clk_get(dev, "extern1");
|
|
||||||
if (IS_ERR(data->clk_aud_mclk)) {
|
|
||||||
dev_err(data->dev, "Can't retrieve clk aud_mclk\n");
|
|
||||||
return PTR_ERR(data->clk_aud_mclk);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (data->soc < TEGRA_ASOC_UTILS_SOC_TEGRA210) {
|
|
||||||
ret = tegra_asoc_utils_set_rate(data, 44100, 256 * 44100);
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (data->soc < TEGRA_ASOC_UTILS_SOC_TEGRA186)
|
|
||||||
data->pll_base_rate = tegra210_pll_base_rate;
|
|
||||||
else
|
|
||||||
data->pll_base_rate = tegra186_pll_base_rate;
|
|
||||||
=======
|
|
||||||
data->clk_pll_a = devm_clk_get(dev, "pll_a");
|
data->clk_pll_a = devm_clk_get(dev, "pll_a");
|
||||||
if (IS_ERR(data->clk_pll_a)) {
|
if (IS_ERR(data->clk_pll_a)) {
|
||||||
dev_err(data->dev, "Can't retrieve clk pll_a\n");
|
dev_err(data->dev, "Can't retrieve clk pll_a\n");
|
||||||
@@ -342,12 +296,23 @@ int tegra_asoc_utils_init(struct tegra_asoc_utils_data *data,
|
|||||||
return PTR_ERR(data->clk_pll_a_out0);
|
return PTR_ERR(data->clk_pll_a_out0);
|
||||||
}
|
}
|
||||||
|
|
||||||
data->clk_cdev1 = devm_clk_get(dev, "mclk");
|
/* FIXME: data->clk_cdev1 = devm_clk_get(dev, "mclk"); */
|
||||||
|
data->clk_cdev1 = devm_clk_get(dev, "extern1");
|
||||||
if (IS_ERR(data->clk_cdev1)) {
|
if (IS_ERR(data->clk_cdev1)) {
|
||||||
dev_err(data->dev, "Can't retrieve clk cdev1\n");
|
dev_err(data->dev, "Can't retrieve clk cdev1\n");
|
||||||
return PTR_ERR(data->clk_cdev1);
|
return PTR_ERR(data->clk_cdev1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (data->soc < TEGRA_ASOC_UTILS_SOC_TEGRA210) {
|
||||||
|
ret = tegra_asoc_utils_set_rate(data, 44100, 256 * 44100);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (data->soc < TEGRA_ASOC_UTILS_SOC_TEGRA186)
|
||||||
|
data->pll_base_rate = tegra210_pll_base_rate;
|
||||||
|
else
|
||||||
|
data->pll_base_rate = tegra186_pll_base_rate;
|
||||||
/*
|
/*
|
||||||
* If clock parents are not set in DT, configure here to use clk_out_1
|
* If clock parents are not set in DT, configure here to use clk_out_1
|
||||||
* as mclk and extern1 as parent for Tegra30 and higher.
|
* as mclk and extern1 as parent for Tegra30 and higher.
|
||||||
@@ -397,7 +362,6 @@ int tegra_asoc_utils_init(struct tegra_asoc_utils_data *data,
|
|||||||
dev_err(data->dev, "Can't enable cdev1: %d\n", ret);
|
dev_err(data->dev, "Can't enable cdev1: %d\n", ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
>>>>>>> v5.8-rc3
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,9 +25,9 @@ enum tegra_asoc_utils_soc {
|
|||||||
struct tegra_asoc_utils_data {
|
struct tegra_asoc_utils_data {
|
||||||
struct device *dev;
|
struct device *dev;
|
||||||
enum tegra_asoc_utils_soc soc;
|
enum tegra_asoc_utils_soc soc;
|
||||||
struct clk *clk_pll;
|
struct clk *clk_pll_a;
|
||||||
struct clk *clk_pll_out;
|
struct clk *clk_pll_a_out0;
|
||||||
struct clk *clk_aud_mclk;
|
struct clk *clk_cdev1;
|
||||||
int set_baseclock;
|
int set_baseclock;
|
||||||
int set_mclk;
|
int set_mclk;
|
||||||
unsigned int set_pll_out;
|
unsigned int set_pll_out;
|
||||||
|
|||||||
@@ -183,12 +183,12 @@ static int tegra_machine_dai_init(struct snd_soc_pcm_runtime *runtime,
|
|||||||
if (fmt == SND_SOC_DAIFMT_DSP_A ||
|
if (fmt == SND_SOC_DAIFMT_DSP_A ||
|
||||||
fmt == SND_SOC_DAIFMT_DSP_B) {
|
fmt == SND_SOC_DAIFMT_DSP_B) {
|
||||||
err = snd_soc_dai_set_tdm_slot(
|
err = snd_soc_dai_set_tdm_slot(
|
||||||
rtd->cpu_dai, mask,
|
rtd->dais[0], mask,
|
||||||
mask, 0, 0);
|
mask, 0, 0);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
dev_err(card->dev,
|
dev_err(card->dev,
|
||||||
"%s cpu DAI slot mask not set\n",
|
"%s cpu DAI slot mask not set\n",
|
||||||
rtd->cpu_dai->name);
|
rtd->dais[0]->name);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -196,10 +196,10 @@ static int tegra_machine_dai_init(struct snd_soc_pcm_runtime *runtime,
|
|||||||
|
|
||||||
rtd = get_pcm_runtime(card, "rt565x-playback");
|
rtd = get_pcm_runtime(card, "rt565x-playback");
|
||||||
if (rtd) {
|
if (rtd) {
|
||||||
err = snd_soc_dai_set_sysclk(rtd->codec_dai, RT5659_SCLK_S_MCLK,
|
err = snd_soc_dai_set_sysclk(rtd->dais[rtd->num_cpus], RT5659_SCLK_S_MCLK,
|
||||||
aud_mclk, SND_SOC_CLOCK_IN);
|
aud_mclk, SND_SOC_CLOCK_IN);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
dev_err(card->dev, "codec_dai clock not set\n");
|
dev_err(card->dev, "dais[%d] clock not set\n", rtd->num_cpus);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -228,7 +228,7 @@ static int tegra_machine_dai_init(struct snd_soc_pcm_runtime *runtime,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
err = snd_soc_dai_set_pll(rtd->codec_dai, 0,
|
err = snd_soc_dai_set_pll(rtd->dais[rtd->num_cpus], 0,
|
||||||
RT5659_PLL1_S_BCLK1,
|
RT5659_PLL1_S_BCLK1,
|
||||||
bclk_rate, srate * 256);
|
bclk_rate, srate * 256);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
@@ -236,22 +236,22 @@ static int tegra_machine_dai_init(struct snd_soc_pcm_runtime *runtime,
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
err = snd_soc_dai_set_sysclk(rtd->codec_dai, RT5659_SCLK_S_PLL1,
|
err = snd_soc_dai_set_sysclk(rtd->dais[rtd->num_cpus], RT5659_SCLK_S_PLL1,
|
||||||
srate * 256, SND_SOC_CLOCK_IN);
|
srate * 256, SND_SOC_CLOCK_IN);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
dev_err(card->dev, "codec_dai clock not set\n");
|
dev_err(card->dev, "dais[%d] clock not set\n", rtd->num_cpus);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rtd = get_pcm_runtime(card, "dspk-playback-r");
|
rtd = get_pcm_runtime(card, "dspk-playback-r");
|
||||||
if (rtd) {
|
if (rtd) {
|
||||||
if (!strcmp(rtd->codec_dai->name, "tas2552-amplifier")) {
|
if (!strcmp(rtd->dais[rtd->num_cpus]->name, "tas2552-amplifier")) {
|
||||||
err = snd_soc_dai_set_sysclk(rtd->codec_dai,
|
err = snd_soc_dai_set_sysclk(rtd->dais[rtd->num_cpus],
|
||||||
TAS2552_PDM_CLK_IVCLKIN, aud_mclk,
|
TAS2552_PDM_CLK_IVCLKIN, aud_mclk,
|
||||||
SND_SOC_CLOCK_IN);
|
SND_SOC_CLOCK_IN);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
dev_err(card->dev, "codec_dai clock not set\n");
|
dev_err(card->dev, "dais[%d] clock not set\n", rtd->num_cpus);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -259,12 +259,12 @@ static int tegra_machine_dai_init(struct snd_soc_pcm_runtime *runtime,
|
|||||||
|
|
||||||
rtd = get_pcm_runtime(card, "dspk-playback-l");
|
rtd = get_pcm_runtime(card, "dspk-playback-l");
|
||||||
if (rtd) {
|
if (rtd) {
|
||||||
if (!strcmp(rtd->codec_dai->name, "tas2552-amplifier")) {
|
if (!strcmp(rtd->dais[rtd->num_cpus]->name, "tas2552-amplifier")) {
|
||||||
err = snd_soc_dai_set_sysclk(rtd->codec_dai,
|
err = snd_soc_dai_set_sysclk(rtd->dais[rtd->num_cpus],
|
||||||
TAS2552_PDM_CLK_IVCLKIN, aud_mclk,
|
TAS2552_PDM_CLK_IVCLKIN, aud_mclk,
|
||||||
SND_SOC_CLOCK_IN);
|
SND_SOC_CLOCK_IN);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
dev_err(card->dev, "codec_dai clock not set\n");
|
dev_err(card->dev, "dais[%d] clock not set\n", rtd->num_cpus);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -367,7 +367,7 @@ static int tegra_machine_respeaker_init(struct snd_soc_pcm_runtime *rtd)
|
|||||||
* and source as PLL irrespective of args passed through
|
* and source as PLL irrespective of args passed through
|
||||||
* this callback
|
* this callback
|
||||||
*/
|
*/
|
||||||
err = snd_soc_dai_set_sysclk(rtd->codec_dai, 0, 24000000,
|
err = snd_soc_dai_set_sysclk(rtd->dais[rtd->num_cpus], 0, 24000000,
|
||||||
SND_SOC_CLOCK_IN);
|
SND_SOC_CLOCK_IN);
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(dev, "failed to set ac108 sysclk!\n");
|
dev_err(dev, "failed to set ac108 sysclk!\n");
|
||||||
@@ -382,7 +382,7 @@ static int tegra_machine_fepi_init(struct snd_soc_pcm_runtime *rtd)
|
|||||||
struct device *dev = rtd->card->dev;
|
struct device *dev = rtd->card->dev;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
err = snd_soc_dai_set_sysclk(rtd->codec_dai, SGTL5000_SYSCLK, 12288000,
|
err = snd_soc_dai_set_sysclk(rtd->dais[rtd->num_cpus], SGTL5000_SYSCLK, 12288000,
|
||||||
SND_SOC_CLOCK_IN);
|
SND_SOC_CLOCK_IN);
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(dev, "failed to set sgtl5000 sysclk!\n");
|
dev_err(dev, "failed to set sgtl5000 sysclk!\n");
|
||||||
@@ -418,7 +418,7 @@ static int tegra_machine_rt565x_init(struct snd_soc_pcm_runtime *rtd)
|
|||||||
|
|
||||||
/* FIXME */
|
/* FIXME */
|
||||||
#if 0
|
#if 0
|
||||||
err = rt5659_set_jack_detect(rtd->codec_dai->component, jack);
|
err = rt5659_set_jack_detect(rtd->dais[rtd->num_cpus]->component, jack);
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(card->dev, "Failed to set jack for RT565x: %d\n", err);
|
dev_err(card->dev, "Failed to set jack for RT565x: %d\n", err);
|
||||||
return err;
|
return err;
|
||||||
|
|||||||
Reference in New Issue
Block a user