diff options
-rw-r--r-- | sound/soc/codecs/wm_adsp.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/sound/soc/codecs/wm_adsp.c b/sound/soc/codecs/wm_adsp.c index 68eda929fbde..a793c7d951ce 100644 --- a/sound/soc/codecs/wm_adsp.c +++ b/sound/soc/codecs/wm_adsp.c | |||
@@ -565,6 +565,22 @@ static int wm_adsp_setup_algs(struct wm_adsp *dsp) | |||
565 | be32_to_cpu(adsp1_id.fw.ver) & 0xff, | 565 | be32_to_cpu(adsp1_id.fw.ver) & 0xff, |
566 | algs); | 566 | algs); |
567 | 567 | ||
568 | region = kzalloc(sizeof(*region), GFP_KERNEL); | ||
569 | if (!region) | ||
570 | return -ENOMEM; | ||
571 | region->type = WMFW_ADSP1_ZM; | ||
572 | region->alg = be32_to_cpu(adsp1_id.fw.id); | ||
573 | region->base = be32_to_cpu(adsp1_id.zm); | ||
574 | list_add_tail(®ion->list, &dsp->alg_regions); | ||
575 | |||
576 | region = kzalloc(sizeof(*region), GFP_KERNEL); | ||
577 | if (!region) | ||
578 | return -ENOMEM; | ||
579 | region->type = WMFW_ADSP1_DM; | ||
580 | region->alg = be32_to_cpu(adsp1_id.fw.id); | ||
581 | region->base = be32_to_cpu(adsp1_id.dm); | ||
582 | list_add_tail(®ion->list, &dsp->alg_regions); | ||
583 | |||
568 | pos = sizeof(adsp1_id) / 2; | 584 | pos = sizeof(adsp1_id) / 2; |
569 | term = pos + ((sizeof(*adsp1_alg) * algs) / 2); | 585 | term = pos + ((sizeof(*adsp1_alg) * algs) / 2); |
570 | break; | 586 | break; |
@@ -590,6 +606,30 @@ static int wm_adsp_setup_algs(struct wm_adsp *dsp) | |||
590 | be32_to_cpu(adsp2_id.fw.ver) & 0xff, | 606 | be32_to_cpu(adsp2_id.fw.ver) & 0xff, |
591 | algs); | 607 | algs); |
592 | 608 | ||
609 | region = kzalloc(sizeof(*region), GFP_KERNEL); | ||
610 | if (!region) | ||
611 | return -ENOMEM; | ||
612 | region->type = WMFW_ADSP2_XM; | ||
613 | region->alg = be32_to_cpu(adsp2_id.fw.id); | ||
614 | region->base = be32_to_cpu(adsp2_id.xm); | ||
615 | list_add_tail(®ion->list, &dsp->alg_regions); | ||
616 | |||
617 | region = kzalloc(sizeof(*region), GFP_KERNEL); | ||
618 | if (!region) | ||
619 | return -ENOMEM; | ||
620 | region->type = WMFW_ADSP2_YM; | ||
621 | region->alg = be32_to_cpu(adsp2_id.fw.id); | ||
622 | region->base = be32_to_cpu(adsp2_id.ym); | ||
623 | list_add_tail(®ion->list, &dsp->alg_regions); | ||
624 | |||
625 | region = kzalloc(sizeof(*region), GFP_KERNEL); | ||
626 | if (!region) | ||
627 | return -ENOMEM; | ||
628 | region->type = WMFW_ADSP2_ZM; | ||
629 | region->alg = be32_to_cpu(adsp2_id.fw.id); | ||
630 | region->base = be32_to_cpu(adsp2_id.zm); | ||
631 | list_add_tail(®ion->list, &dsp->alg_regions); | ||
632 | |||
593 | pos = sizeof(adsp2_id) / 2; | 633 | pos = sizeof(adsp2_id) / 2; |
594 | term = pos + ((sizeof(*adsp2_alg) * algs) / 2); | 634 | term = pos + ((sizeof(*adsp2_alg) * algs) / 2); |
595 | break; | 635 | break; |