Tfa98xx_Error_t patch(Tfa98xx_handle_t handle, const char* fileName) { FILE* f; Tfa98xx_Error_t err; f = fopen(fileName, "rb"); if (f==NULL) { fprintf(stderr, "Unable to open %s for input\n", fileName); err = Tfa98xx_Error_Bad_Parameter; } else { int fileSize, ret; unsigned char* buffer; ret = fseek(f, 0, SEEK_END); assert(ret == 0); fileSize = ftell(f); assert(fileSize>=0); ret = fseek(f, 0, SEEK_SET); assert(ret == 0); buffer = (unsigned char*)malloc(fileSize); assert(buffer != NULL); ret = fread(buffer, 1, fileSize, f); assert(ret == fileSize); fclose(f); err = Tfa98xx_DspPatch(handle, fileSize, buffer); free(buffer); } return err; }
/* load a DSP ROM code patch from file */ static void dspPatch(Tfa98xx_handle_t handle, struct tfa98xx_param_data *patch) { enum Tfa98xx_Error err; if (patch == NULL || patch->data == NULL) { pr_info("%s: not use patch data\n", __func__); return; } err = Tfa98xx_DspPatch(handle, patch->size, patch->data); if (err != Tfa98xx_Error_Ok) pr_err("%s: Tfa98xx_DspPatch failed %d\n", __func__, err); }