Lines Matching refs:tas_fmw
319 static int fw_parse_block_data_kernel(struct tasdevice_fw *tas_fmw,
325 dev_err(tas_fmw->dev, "%s: File Size error\n", __func__);
355 dev_err(tas_fmw->dev, "%s: nSublocks error\n", __func__);
371 static int fw_parse_data_kernel(struct tasdevice_fw *tas_fmw,
380 dev_err(tas_fmw->dev, "%s: File Size error\n", __func__);
396 offset = fw_parse_block_data_kernel(tas_fmw, blk, fmw, offset);
408 struct tasdevice_priv *tas_priv, struct tasdevice_fw *tas_fmw,
414 for (i = 0; i < tas_fmw->nr_programs; i++) {
415 program = &(tas_fmw->programs[i]);
424 offset = fw_parse_data_kernel(tas_fmw, &(program->dev_data),
436 struct tasdevice_fw *tas_fmw, const struct firmware *fmw, int offset)
442 for (i = 0; i < tas_fmw->nr_configurations; i++) {
443 config = &(tas_fmw->configs[i]);
453 offset = fw_parse_data_kernel(tas_fmw, &(config->dev_data),
467 struct tasdevice_fw *tas_fmw = tas_priv->fmw;
468 struct tasdevice_dspfw_hdr *fw_hdr = &(tas_fmw->fw_hdr);
505 tas_fmw->nr_programs = be32_to_cpup((__be32 *)&buf[offset]);
508 if (tas_fmw->nr_programs == 0 || tas_fmw->nr_programs >
515 tas_fmw->programs = kcalloc(tas_fmw->nr_programs,
517 if (!tas_fmw->programs) {
522 for (i = 0; i < tas_fmw->nr_programs; i++) {
523 program = &(tas_fmw->programs[i]);
529 offset += 4 * (TASDEVICE_MAXPROGRAM_NUM_KERNEL - tas_fmw->nr_programs);
531 tas_fmw->nr_configurations = be32_to_cpup((__be32 *)&buf[offset]);
541 if (tas_fmw->nr_configurations == 0 ||
542 tas_fmw->nr_configurations > max_confs) {
554 tas_fmw->configs = kcalloc(tas_fmw->nr_configurations,
556 if (!tas_fmw->configs) {
561 for (i = 0; i < tas_fmw->nr_programs; i++) {
562 config = &(tas_fmw->configs[i]);
568 offset += 4 * (max_confs - tas_fmw->nr_programs);
968 struct tasdevice_fw *tas_fmw = tas_priv->fmw;
969 struct tasdevice_dspfw_hdr *fw_hdr = &(tas_fmw->fw_hdr);
985 static int fw_parse_block_data(struct tasdevice_fw *tas_fmw,
992 dev_err(tas_fmw->dev, "%s: Type error\n", __func__);
999 if (tas_fmw->fw_hdr.fixed_hdr.drv_ver >= PPC_DRIVER_CRCCHK) {
1001 dev_err(tas_fmw->dev, "PChkSumPresent error\n");
1026 dev_err(tas_fmw->dev,
1047 static int fw_parse_data(struct tasdevice_fw *tas_fmw,
1057 dev_err(tas_fmw->dev, "%s: Name error\n", __func__);
1067 dev_err(tas_fmw->dev, "%s: Description error\n", __func__);
1083 offset = fw_parse_block_data(tas_fmw, blk, fmw, offset);
1098 struct tasdevice_fw *tas_fmw, const struct firmware *fmw, int offset)
1109 tas_fmw->nr_programs = be16_to_cpup((__be16 *)&buf[offset]);
1112 if (tas_fmw->nr_programs == 0) {
1119 tas_fmw->programs =
1120 kcalloc(tas_fmw->nr_programs, sizeof(struct tasdevice_prog),
1122 if (!tas_fmw->programs) {
1126 for (i = 0; i < tas_fmw->nr_programs; i++) {
1129 program = &(tas_fmw->programs[i]);
1148 offset = fw_parse_data(tas_fmw, &(program->dev_data), fmw,
1163 struct tasdevice_fw *tas_fmw,
1176 tas_fmw->nr_configurations = be16_to_cpup((__be16 *)&data[offset]);
1179 if (tas_fmw->nr_configurations == 0) {
1184 tas_fmw->configs = kcalloc(tas_fmw->nr_configurations,
1186 if (!tas_fmw->configs) {
1190 for (i = 0; i < tas_fmw->nr_configurations; i++) {
1191 config = &(tas_fmw->configs[i]);
1210 offset = fw_parse_data(tas_fmw, &(config->dev_data),
1786 struct tasdevice_fw *tas_fmw, const struct firmware *fmw, int offset)
1788 struct tasdevice_dspfw_hdr *fw_hdr = &(tas_fmw->fw_hdr);
1827 struct tasdevice_fw *tas_fmw, const struct firmware *fmw, int offset)
1829 struct tasdevice_dspfw_hdr *fw_hdr = &(tas_fmw->fw_hdr);
1850 struct tasdevice_fw *tas_fmw, const struct firmware *fmw, int offset)
1861 tas_fmw->nr_calibrations = be16_to_cpup((__be16 *)&data[offset]);
1864 if (tas_fmw->nr_calibrations != 1) {
1867 __func__, tas_fmw->nr_calibrations);
1871 tas_fmw->calibrations = kcalloc(tas_fmw->nr_calibrations,
1873 if (!tas_fmw->calibrations) {
1877 for (i = 0; i < tas_fmw->nr_calibrations; i++) {
1883 calibration = &(tas_fmw->calibrations[i]);
1896 offset = fw_parse_data(tas_fmw, &(calibration->dev_data), fmw,
1912 struct tasdevice_fw *tas_fmw;
1933 tas_fmw = tasdev->cali_data_fmw = kzalloc(sizeof(struct tasdevice_fw),
1939 tas_fmw->dev = tas_priv->dev;
1940 offset = fw_parse_header(tas_priv, tas_fmw, &fmw, offset);
1946 offset = fw_parse_variable_hdr_cal(tas_priv, tas_fmw, &fmw, offset);
1953 offset = fw_parse_program_data(tas_priv, tas_fmw, &fmw, offset);
1959 offset = fw_parse_configuration_data(tas_priv, tas_fmw, &fmw, offset);
1965 offset = fw_parse_calibration_data(tas_priv, tas_fmw, &fmw, offset);
1985 struct tasdevice_fw *tas_fmw;
2001 tas_fmw = tas_priv->fmw;
2002 tas_fmw->dev = tas_priv->dev;
2003 offset = fw_parse_header(tas_priv, tas_fmw, fmw, offset);
2009 fw_fixed_hdr = &(tas_fmw->fw_hdr.fixed_hdr);
2049 offset = tas_priv->fw_parse_program_data(tas_priv, tas_fmw, fmw,
2056 tas_fmw, fmw, offset);
2087 static void tas2781_clear_calfirmware(struct tasdevice_fw *tas_fmw)
2095 if (!tas_fmw->calibrations)
2098 for (i = 0; i < tas_fmw->nr_calibrations; i++) {
2099 calibration = &(tas_fmw->calibrations[i]);
2116 kfree(tas_fmw->calibrations);
2118 kfree(tas_fmw);
2190 struct tasdevice_fw *tas_fmw = tas_priv->fmw;
2196 if (!tas_fmw) {
2201 if (cfg_no >= tas_fmw->nr_configurations) {
2204 __func__, cfg_no, tas_fmw->nr_configurations);
2208 if (prm_no >= tas_fmw->nr_programs) {
2211 __func__, prm_no, tas_fmw->nr_programs);
2238 program = &(tas_fmw->programs[prm_no]);
2273 conf = &(tas_fmw->configs[cfg_no]);
2299 struct tasdevice_fw *tas_fmw = tas_priv->fmw;
2304 if (!tas_fmw) {
2309 if (prm_no >= tas_fmw->nr_programs) {
2312 __func__, prm_no, tas_fmw->nr_programs);
2325 program = &(tas_fmw->programs[prm_no]);
2344 struct tasdevice_fw *tas_fmw = tas_priv->fmw;
2349 if (!tas_fmw) {
2354 if (prm_no >= tas_fmw->nr_programs) {
2357 __func__, prm_no, tas_fmw->nr_programs);
2371 program = &(tas_fmw->programs[prm_no]);
2403 struct tasdevice_fw *tas_fmw = tas_priv->fmw;
2412 if (tas_priv->cur_prog < tas_fmw->nr_programs) {