Lines Matching defs:fw_save
429 struct sst_fw_save *fw_save;
466 fw_save = kzalloc(sizeof(*fw_save), GFP_KERNEL);
467 if (!fw_save)
469 fw_save->iram = kvzalloc(ctx->iram_end - ctx->iram_base, GFP_KERNEL);
470 if (!fw_save->iram) {
474 fw_save->dram = kvzalloc(ctx->dram_end - ctx->dram_base, GFP_KERNEL);
475 if (!fw_save->dram) {
479 fw_save->sram = kvzalloc(SST_MAILBOX_SIZE, GFP_KERNEL);
480 if (!fw_save->sram) {
485 fw_save->ddr = kvzalloc(ctx->ddr_end - ctx->ddr_base, GFP_KERNEL);
486 if (!fw_save->ddr) {
491 memcpy32_fromio(fw_save->iram, ctx->iram, ctx->iram_end - ctx->iram_base);
492 memcpy32_fromio(fw_save->dram, ctx->dram, ctx->dram_end - ctx->dram_base);
493 memcpy32_fromio(fw_save->sram, ctx->mailbox, SST_MAILBOX_SIZE);
494 memcpy32_fromio(fw_save->ddr, ctx->ddr, ctx->ddr_end - ctx->ddr_base);
496 ctx->fw_save = fw_save;
500 kvfree(fw_save->sram);
502 kvfree(fw_save->dram);
504 kvfree(fw_save->iram);
506 kfree(fw_save);
513 struct sst_fw_save *fw_save = ctx->fw_save;
517 if (!fw_save)
525 ctx->fw_save = NULL;
527 memcpy32_toio(ctx->iram, fw_save->iram, ctx->iram_end - ctx->iram_base);
528 memcpy32_toio(ctx->dram, fw_save->dram, ctx->dram_end - ctx->dram_base);
529 memcpy32_toio(ctx->mailbox, fw_save->sram, SST_MAILBOX_SIZE);
530 memcpy32_toio(ctx->ddr, fw_save->ddr, ctx->ddr_end - ctx->ddr_base);
532 kvfree(fw_save->sram);
533 kvfree(fw_save->dram);
534 kvfree(fw_save->iram);
535 kvfree(fw_save->ddr);
536 kfree(fw_save);