mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-17 06:52:43 +00:00
ASoC: Intel: Skylake: Register dsp_fw_ops for kabylake
For audio kabylake is same as skylake except the module load approach. This patch registers different dsp_fw_ops for kabylake and next patch adds the module load support for kabylake. Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Acked-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
4e0277d226
commit
89b0d8a5ba
@ -209,7 +209,7 @@ static const struct skl_dsp_ops dsp_ops[] = {
|
||||
{
|
||||
.id = 0x9d71,
|
||||
.loader_ops = skl_get_loader_ops,
|
||||
.init = skl_sst_dsp_init,
|
||||
.init = kbl_sst_dsp_init,
|
||||
.init_fw = skl_sst_init_fw,
|
||||
.cleanup = skl_sst_dsp_cleanup
|
||||
},
|
||||
|
@ -230,6 +230,9 @@ int skl_dsp_boot(struct sst_dsp *ctx);
|
||||
int skl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
|
||||
const char *fw_name, struct skl_dsp_loader_ops dsp_ops,
|
||||
struct skl_sst **dsp);
|
||||
int kbl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
|
||||
const char *fw_name, struct skl_dsp_loader_ops dsp_ops,
|
||||
struct skl_sst **dsp);
|
||||
int bxt_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
|
||||
const char *fw_name, struct skl_dsp_loader_ops dsp_ops,
|
||||
struct skl_sst **dsp);
|
||||
|
@ -470,6 +470,15 @@ static struct skl_dsp_fw_ops skl_fw_ops = {
|
||||
.unload_mod = skl_unload_module,
|
||||
};
|
||||
|
||||
static struct skl_dsp_fw_ops kbl_fw_ops = {
|
||||
.set_state_D0 = skl_set_dsp_D0,
|
||||
.set_state_D3 = skl_set_dsp_D3,
|
||||
.load_fw = skl_load_base_firmware,
|
||||
.get_fw_errcode = skl_get_errorcode,
|
||||
.load_mod = skl_load_module,
|
||||
.unload_mod = skl_unload_module,
|
||||
};
|
||||
|
||||
static struct sst_ops skl_ops = {
|
||||
.irq_handler = skl_dsp_sst_interrupt,
|
||||
.write = sst_shim32_write,
|
||||
@ -512,6 +521,27 @@ int skl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(skl_sst_dsp_init);
|
||||
|
||||
int kbl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
|
||||
const char *fw_name, struct skl_dsp_loader_ops dsp_ops,
|
||||
struct skl_sst **dsp)
|
||||
{
|
||||
struct sst_dsp *sst;
|
||||
int ret;
|
||||
|
||||
ret = skl_sst_dsp_init(dev, mmio_base, irq, fw_name, dsp_ops, dsp);
|
||||
if (ret < 0) {
|
||||
dev_err(dev, "%s: Init failed %d\n", __func__, ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
sst = (*dsp)->dsp;
|
||||
sst->fw_ops = kbl_fw_ops;
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(kbl_sst_dsp_init);
|
||||
|
||||
int skl_sst_init_fw(struct device *dev, struct skl_sst *ctx)
|
||||
{
|
||||
int ret;
|
||||
|
Loading…
x
Reference in New Issue
Block a user