Lines Matching refs:tas_priv
88 struct tasdevice_priv *tas_priv, unsigned char *config_data,
110 if (tas_priv->rcabin.fw_hdr.binary_version_num >= 0x105) {
113 dev_err(tas_priv->dev, "add conf: Out of boundary\n");
121 dev_err(tas_priv->dev, "add config: Out of boundary\n");
146 dev_err(tas_priv->dev,
166 (1 << tas_priv->ndev) - 1;
186 dev_err(tas_priv->dev,
209 struct tasdevice_priv *tas_priv = context;
219 rca = &(tas_priv->rcabin);
222 dev_err(tas_priv->dev, "Failed to read %s\n",
223 tas_priv->rca_binaryname);
224 tas_priv->fw_state = TASDEVICE_DSP_FW_FAIL;
233 dev_err(tas_priv->dev,
236 tas_priv->fw_state = TASDEVICE_DSP_FW_FAIL;
245 dev_err(tas_priv->dev, "File version 0x%04x is too low",
247 tas_priv->fw_state = TASDEVICE_DSP_FW_FAIL;
262 if (fw_hdr->ndev != tas_priv->ndev) {
263 dev_err(tas_priv->dev,
265 fw_hdr->ndev, tas_priv->ndev);
266 tas_priv->fw_state = TASDEVICE_DSP_FW_FAIL;
271 dev_err(tas_priv->dev, "rca_ready: Out of boundary!\n");
273 tas_priv->fw_state = TASDEVICE_DSP_FW_FAIL;
290 dev_err(tas_priv->dev, "Bin file error!\n");
292 tas_priv->fw_state = TASDEVICE_DSP_FW_FAIL;
299 tas_priv->fw_state = TASDEVICE_DSP_FW_FAIL;
306 cfg_info[i] = tasdevice_add_config(tas_priv, &buf[offset],
309 tas_priv->fw_state = TASDEVICE_DSP_FW_FAIL;
408 struct tasdevice_priv *tas_priv, struct tasdevice_fw *tas_fmw,
417 dev_err(tas_priv->dev, "%s: mpName error\n", __func__);
435 struct tasdevice_priv *tas_priv,
445 dev_err(tas_priv->dev, "%s: mpName error\n", __func__);
464 struct tasdevice_priv *tas_priv, const struct firmware *fmw,
467 struct tasdevice_fw *tas_fmw = tas_priv->fmw;
476 dev_err(tas_priv->dev, "%s: File Size error\n", __func__);
482 dev_err(tas_priv->dev, "%s:not TAS device\n", __func__);
490 dev_err(tas_priv->dev, "Unsupported dev %d\n", fw_hdr->device);
497 if (fw_hdr->ndev != tas_priv->ndev) {
498 dev_err(tas_priv->dev,
500 __func__, fw_hdr->ndev, tas_priv->ndev);
510 dev_err(tas_priv->dev, "mnPrograms is invalid\n");
543 dev_err(tas_priv->dev, "%s: Conf is invalid\n", __func__);
549 dev_err(tas_priv->dev, "%s: mpConfigurations err\n", __func__);
577 struct tasdevice_priv *tas_priv = (struct tasdevice_priv *)context;
589 chnend = tas_priv->ndev;
593 if (tas_priv->tasdevice[chn].is_loading == false)
605 dev_err(tas_priv->dev,
612 rc = tasdevice_dev_write(tas_priv, chn,
619 dev_err(tas_priv->dev,
631 dev_err(tas_priv->dev,
638 dev_err(tas_priv->dev,
644 rc = tasdevice_dev_bulk_write(tas_priv, chn,
651 dev_err(tas_priv->dev,
662 dev_err(tas_priv->dev,
675 dev_err(tas_priv->dev,
681 rc = tasdevice_dev_update_bits(tas_priv, chn,
689 dev_err(tas_priv->dev,
700 tas_priv->tasdevice[chn].cur_prog = -1;
701 tas_priv->tasdevice[chn].cur_conf = -1;
703 tas_priv->tasdevice[chn].cur_conf = -1;
713 struct tasdevice_priv *tas_priv = (struct tasdevice_priv *) pContext;
714 struct tasdevice_rca *rca = &(tas_priv->rcabin);
720 dev_err(tas_priv->dev, "conf_no should be not more than %u\n",
730 dev_err(tas_priv->dev,
743 chnend = tas_priv->ndev;
746 tas_priv->tasdevice[chn].is_loading = true;
748 rc = tasdevice_process_block(tas_priv,
754 dev_err(tas_priv->dev,
762 dev_err(tas_priv->dev, "%s: %u %u size is not same\n",
927 *tas_priv, struct tasdevice_dspfw_hdr *fw_hdr,
936 dev_err(tas_priv->dev, "%s: File Size error\n", __func__);
945 dev_err(tas_priv->dev, "%s: not TAS device\n", __func__);
954 dev_err(tas_priv->dev, "Unsupported dev %d\n", fw_hdr->device);
966 *tas_priv, const struct firmware *fmw, int offset)
968 struct tasdevice_fw *tas_fmw = tas_priv->fmw;
971 offset = fw_parse_variable_hdr(tas_priv, fw_hdr, fmw, offset);
974 if (fw_hdr->ndev != tas_priv->ndev) {
975 dev_err(tas_priv->dev,
977 __func__, fw_hdr->ndev, tas_priv->ndev);
1097 static int fw_parse_program_data(struct tasdevice_priv *tas_priv,
1105 dev_err(tas_priv->dev, "%s: File Size error\n", __func__);
1114 dev_info(tas_priv->dev, "%s: No Programs data, maybe calbin\n",
1131 dev_err(tas_priv->dev, "%s: mpName error\n", __func__);
1141 dev_err(tas_priv->dev, "Description err\n");
1162 struct tasdevice_priv *tas_priv,
1172 dev_err(tas_priv->dev, "%s: File Size error\n", __func__);
1180 dev_err(tas_priv->dev, "%s: Conf is zero\n", __func__);
1193 dev_err(tas_priv->dev, "File Size err\n");
1203 dev_err(tas_priv->dev, "Description err\n");
1457 static int tasdev_bytes_chksum(struct tasdevice_priv *tas_priv,
1465 ret = tasdev_multibytes_chksum(tas_priv, chn, book, page, reg,
1468 ret = do_singlereg_checksum(tas_priv, chn, book, page, reg,
1483 set_err_prg_cfg(block->type, &tas_priv->tasdevice[chn]);
1489 static int tasdev_multibytes_wr(struct tasdevice_priv *tas_priv,
1498 ret = tasdevice_dev_bulk_write(tas_priv, chn,
1503 ret = tasdev_bytes_chksum(tas_priv, block, chn,
1506 ret = tasdevice_dev_write(tas_priv, chn,
1511 ret = tasdev_bytes_chksum(tas_priv, block, chn, book,
1525 static int tasdev_block_chksum(struct tasdevice_priv *tas_priv,
1531 ret = tasdevice_dev_read(tas_priv, chn, TASDEVICE_I2CChecksum,
1534 dev_err(tas_priv->dev, "%s: Chn %d\n", __func__, chn);
1535 set_err_prg_cfg(block->type, &tas_priv->tasdevice[chn]);
1540 dev_err(tas_priv->dev, "%s: Blk PChkSum Chn %d ", __func__,
1542 dev_err(tas_priv->dev, "PChkSum = 0x%x, Reg = 0x%x\n",
1544 tas_priv->tasdevice[chn].err_code |= ERROR_PRAM_CRCCHK;
1550 &tas_priv->tasdevice[chn]);
1552 tas_priv->tasdevice[chn].err_code &= ~ERROR_PRAM_CRCCHK;
1558 static int tasdev_load_blk(struct tasdevice_priv *tas_priv,
1574 ret = tasdevice_dev_write(tas_priv, chn,
1596 ret = tasdevice_dev_write(tas_priv, chn,
1602 ret = tasdev_bytes_chksum(tas_priv,
1624 ret = tasdev_multibytes_wr(tas_priv,
1638 ret = tasdev_block_chksum(tas_priv, block, chn);
1648 dev_err(tas_priv->dev,
1652 tas_priv->tasdevice[chn].err_code &=
1664 static int tasdevice_load_block(struct tasdevice_priv *tas_priv,
1675 chnend = tas_priv->ndev;
1702 dev_dbg(tas_priv->dev, "load blk: Other Type = 0x%02x\n",
1709 if (tas_priv->tasdevice[chn].is_loading == false)
1711 ret = tasdev_load_blk(tas_priv, block, chn);
1713 dev_err(tas_priv->dev, "dev %d, Blk (%d) load error\n",
1721 static int dspfw_default_callback(struct tasdevice_priv *tas_priv,
1728 tas_priv->fw_parse_variable_header =
1730 tas_priv->fw_parse_program_data =
1732 tas_priv->fw_parse_configuration_data =
1734 tas_priv->tasdevice_load_block =
1739 tas_priv->fw_parse_variable_header =
1741 tas_priv->fw_parse_program_data =
1743 tas_priv->fw_parse_configuration_data =
1745 tas_priv->tasdevice_load_block =
1749 dev_err(tas_priv->dev,
1752 dev_err(tas_priv->dev, " Current:0x%02x\n",
1759 dev_err(tas_priv->dev,
1761 dev_err(tas_priv->dev, "current is 0x%02x\n", drv_ver);
1768 static int load_calib_data(struct tasdevice_priv *tas_priv,
1777 ret = tasdevice_load_block(tas_priv, block);
1785 static int fw_parse_header(struct tasdevice_priv *tas_priv,
1794 dev_err(tas_priv->dev, "%s: File Size error\n", __func__);
1799 dev_err(tas_priv->dev, "%s: Magic num NOT match\n", __func__);
1811 dev_err(tas_priv->dev, "File size not match, %lu %u",
1826 static int fw_parse_variable_hdr_cal(struct tasdevice_priv *tas_priv,
1831 offset = fw_parse_variable_hdr(tas_priv, fw_hdr, fmw, offset);
1835 dev_err(tas_priv->dev,
1849 static int fw_parse_calibration_data(struct tasdevice_priv *tas_priv,
1857 dev_err(tas_priv->dev, "%s: Calibrations error\n", __func__);
1865 dev_err(tas_priv->dev,
1879 dev_err(tas_priv->dev, "Calibrations error\n");
1890 dev_err(tas_priv->dev, "Description err\n");
1909 struct tasdevice_priv *tas_priv = (struct tasdevice_priv *)context;
1910 struct tasdevice *tasdev = &(tas_priv->tasdevice[i]);
1917 ret = request_firmware(&fw_entry, file_name, tas_priv->dev);
1919 dev_err(tas_priv->dev, "%s: Request firmware %s failed\n",
1925 dev_err(tas_priv->dev, "%s: file read error: size = %lu\n",
1939 tas_fmw->dev = tas_priv->dev;
1940 offset = fw_parse_header(tas_priv, tas_fmw, &fmw, offset);
1942 dev_err(tas_priv->dev, "fw_parse_header EXIT!\n");
1946 offset = fw_parse_variable_hdr_cal(tas_priv, tas_fmw, &fmw, offset);
1948 dev_err(tas_priv->dev,
1953 offset = fw_parse_program_data(tas_priv, tas_fmw, &fmw, offset);
1955 dev_err(tas_priv->dev, "fw_parse_program_data EXIT!\n");
1959 offset = fw_parse_configuration_data(tas_priv, tas_fmw, &fmw, offset);
1961 dev_err(tas_priv->dev, "fw_parse_configuration_data EXIT!\n");
1965 offset = fw_parse_calibration_data(tas_priv, tas_fmw, &fmw, offset);
1967 dev_err(tas_priv->dev, "fw_parse_calibration_data EXIT!\n");
1983 struct tasdevice_priv *tas_priv = (struct tasdevice_priv *) context;
1990 dev_err(tas_priv->dev, "%s: Failed to read firmware %s\n",
1991 __func__, tas_priv->coef_binaryname);
1996 tas_priv->fmw = kzalloc(sizeof(struct tasdevice_fw), GFP_KERNEL);
1997 if (!tas_priv->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);
2016 tas_priv->fw_parse_variable_header =
2018 tas_priv->fw_parse_program_data =
2020 tas_priv->fw_parse_configuration_data =
2022 tas_priv->tasdevice_load_block =
2027 tas_priv->fw_parse_variable_header =
2029 tas_priv->fw_parse_program_data =
2031 tas_priv->fw_parse_configuration_data =
2033 tas_priv->tasdevice_load_block =
2037 ret = dspfw_default_callback(tas_priv,
2044 offset = tas_priv->fw_parse_variable_header(tas_priv, fmw, offset);
2049 offset = tas_priv->fw_parse_program_data(tas_priv, tas_fmw, fmw,
2055 offset = tas_priv->fw_parse_configuration_data(tas_priv,
2066 struct tasdevice_priv *tas_priv = (struct tasdevice_priv *)context;
2070 ret = request_firmware(&fw_entry, tas_priv->coef_binaryname,
2071 tas_priv->dev);
2073 dev_err(tas_priv->dev, "%s: load %s error\n", __func__,
2074 tas_priv->coef_binaryname);
2078 ret = tasdevice_dspfw_ready(fw_entry, tas_priv);
2123 struct tasdevice_priv *tas_priv = (struct tasdevice_priv *) context;
2127 if (!tas_priv)
2130 for (i = 0; i < tas_priv->ndev; i++) {
2131 tasdev = &(tas_priv->tasdevice[i]);
2142 struct tasdevice_priv *tas_priv = (struct tasdevice_priv *) context;
2143 struct tasdevice_rca *rca = &(tas_priv->rcabin);
2167 static int tasdevice_load_data(struct tasdevice_priv *tas_priv,
2176 ret = tas_priv->tasdevice_load_block(tas_priv, block);
2187 struct tasdevice_priv *tas_priv = (struct tasdevice_priv *) context;
2188 struct tasdevice_rca *rca = &(tas_priv->rcabin);
2190 struct tasdevice_fw *tas_fmw = tas_priv->fmw;
2197 dev_err(tas_priv->dev, "%s: Firmware is NULL\n", __func__);
2202 dev_err(tas_priv->dev,
2209 dev_err(tas_priv->dev,
2217 dev_err(tas_priv->dev,
2223 for (i = 0, prog_status = 0; i < tas_priv->ndev; i++) {
2226 && (tas_priv->tasdevice[i].cur_prog != prm_no
2227 || tas_priv->force_fwload_status)) {
2228 tas_priv->tasdevice[i].cur_conf = -1;
2229 tas_priv->tasdevice[i].is_loading = true;
2233 tas_priv->tasdevice[i].is_loading = false;
2234 tas_priv->tasdevice[i].is_loaderr = false;
2239 tasdevice_load_data(tas_priv, &(program->dev_data));
2240 for (i = 0; i < tas_priv->ndev; i++) {
2241 if (tas_priv->tasdevice[i].is_loaderr == true)
2243 else if (tas_priv->tasdevice[i].is_loaderr == false
2244 && tas_priv->tasdevice[i].is_loading == true) {
2246 tas_priv->tasdevice[i].cali_data_fmw;
2253 load_calib_data(tas_priv,
2256 tas_priv->tasdevice[i].cur_prog = prm_no;
2261 for (i = 0, status = 0; i < tas_priv->ndev; i++) {
2263 && tas_priv->tasdevice[i].cur_conf != cfg_no
2265 && (tas_priv->tasdevice[i].is_loaderr == false)) {
2267 tas_priv->tasdevice[i].is_loading = true;
2269 tas_priv->tasdevice[i].is_loading = false;
2275 tasdevice_load_data(tas_priv, &(conf->dev_data));
2276 for (i = 0; i < tas_priv->ndev; i++) {
2277 if (tas_priv->tasdevice[i].is_loaderr == true) {
2280 } else if (tas_priv->tasdevice[i].is_loaderr == false
2281 && tas_priv->tasdevice[i].is_loading == true)
2282 tas_priv->tasdevice[i].cur_conf = cfg_no;
2285 dev_dbg(tas_priv->dev, "%s: Unneeded loading dsp conf %d\n",
2298 struct tasdevice_priv *tas_priv = (struct tasdevice_priv *) context;
2299 struct tasdevice_fw *tas_fmw = tas_priv->fmw;
2305 dev_err(tas_priv->dev, "%s: Firmware is NULL\n", __func__);
2310 dev_err(tas_priv->dev,
2316 for (i = 0, prog_status = 0; i < tas_priv->ndev; i++) {
2317 if (prm_no >= 0 && tas_priv->tasdevice[i].cur_prog != prm_no) {
2318 tas_priv->tasdevice[i].cur_conf = -1;
2319 tas_priv->tasdevice[i].is_loading = true;
2326 tasdevice_load_data(tas_priv, &(program->dev_data));
2327 for (i = 0; i < tas_priv->ndev; i++) {
2328 if (tas_priv->tasdevice[i].is_loaderr == true)
2330 else if (tas_priv->tasdevice[i].is_loaderr == false
2331 && tas_priv->tasdevice[i].is_loading == true)
2332 tas_priv->tasdevice[i].cur_prog = prm_no;
2343 struct tasdevice_priv *tas_priv = (struct tasdevice_priv *) context;
2344 struct tasdevice_fw *tas_fmw = tas_priv->fmw;
2350 dev_err(tas_priv->dev, "%s: Firmware is NULL\n", __func__);
2355 dev_err(tas_priv->dev,
2361 for (i = 0, prog_status = 0; i < tas_priv->ndev; i++) {
2362 if (prm_no >= 0 && tas_priv->tasdevice[i].cur_prog != prm_no) {
2363 tas_priv->tasdevice[i].cur_conf = -1;
2364 tas_priv->tasdevice[i].is_loading = true;
2367 tas_priv->tasdevice[i].is_loaderr = false;
2372 tasdevice_load_data(tas_priv, &(program->dev_data));
2373 for (i = 0; i < tas_priv->ndev; i++) {
2374 if (tas_priv->tasdevice[i].is_loaderr == true)
2376 else if (tas_priv->tasdevice[i].is_loaderr == false
2377 && tas_priv->tasdevice[i].is_loading == true) {
2379 tas_priv->tasdevice[i].cali_data_fmw;
2386 load_calib_data(tas_priv,
2389 tas_priv->tasdevice[i].cur_prog = prm_no;
2402 struct tasdevice_priv *tas_priv = (struct tasdevice_priv *) context;
2403 struct tasdevice_fw *tas_fmw = tas_priv->fmw;
2404 int profile_cfg_id = tas_priv->rcabin.profile_cfg_id;
2406 if (tas_priv->fw_state == TASDEVICE_DSP_FW_FAIL) {
2407 dev_err(tas_priv->dev, "DSP bin file not loaded\n");
2412 if (tas_priv->cur_prog < tas_fmw->nr_programs) {
2414 profile_cfg_id = tas_priv->rcabin.profile_cfg_id;
2415 tasdevice_select_tuningprm_cfg(tas_priv,
2416 tas_priv->cur_prog, tas_priv->cur_conf,
2420 tasdevice_select_cfg_blk(tas_priv, profile_cfg_id,
2423 tasdevice_select_cfg_blk(tas_priv, profile_cfg_id,