From: Cezary Rojewski <cezary.rojewski@intel.com>
To: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>,
<alsa-devel@alsa-project.org>
Cc: upstream@semihalf.com, harshapriya.n@intel.com, rad@semihalf.com,
tiwai@suse.com, pierre-louis.bossart@linux.intel.com,
hdegoede@redhat.com, broonie@kernel.org,
amadeuszx.slawinski@linux.intel.com, cujomalainey@chromium.org,
lma@semihalf.com
Subject: Re: [PATCH v3 14/17] ASoC: Intel: avs: General code loading flow
Date: Fri, 4 Mar 2022 19:29:02 +0100 [thread overview]
Message-ID: <6e8a0a82-295c-4b0b-cc2b-d7942b6cff79@intel.com> (raw)
In-Reply-To: <0c3e200bd14536534115e2a44fa744a102faa107.camel@linux.intel.com>
On 2022-03-04 5:54 PM, Ranjani Sridharan wrote:
> On Fri, 2022-03-04 at 15:57 +0100, Cezary Rojewski wrote:
...
>> +static int avs_fw_manifest_strip_verify(struct avs_dev *adev, struct
>> firmware *fw,
>> + const struct avs_fw_version
>> *min)
>> +{
>> + struct avs_fw_manifest *man;
>> + int offset, ret;
>> +
>> + ret = avs_fw_ext_manifest_strip(fw);
>> + if (ret)
>> + return ret;
>> +
>> + offset = avs_fw_manifest_offset(fw);
>> + if (offset < 0)
>> + return offset;
>> +
>> + if (fw->size < offset + sizeof(*man))
>> + return -EINVAL;
>> + if (!min)
>> + return 0;
>> +
>> + man = (struct avs_fw_manifest *)(fw->data + offset);
>> + if (man->version.major != min->major ||
>> + man->version.minor != min->minor ||
>> + man->version.hotfix != min->hotfix ||
>> + man->version.build < min->build) {
> Isnt this check a bit too strict? Isnt a check major enough?
Unfortunately not. I share the similar thinking but the build system has
its history and several things which should not happen, had happened.
There could be _large_ API changes without any meaningful version
updates at all. To prevent any unwanted behavior, this check is as
strict as it can get.
>> + dev_warn(adev->dev, "bad FW version %d.%d.%d.%d,
>> expected %d.%d.%d.%d or newer\n",
>> + man->version.major, man->version.minor,
>> + man->version.hotfix, man->version.build,
>> + min->major, min->minor, min->hotfix, min-
>>> build);
>> +
>> + if (!debug_ignore_fw_version)
>> + return -EINVAL;
>> + }
>> +
>> + return 0;
>> +}
...
>> +int avs_dsp_boot_firmware(struct avs_dev *adev, bool purge)
>> +{
>> + int ret, i;
>> +
>> + /* Full boot, clear cached data except for basefw (slot 0). */
> Does this mean IMR restore is only available for base FW and not for
> module libraries? Do I understand this correctly?
Loop below just clears the data. The new snapshot will be received once
the basefw and libraries get loaded. The execution of library loading is
not part of this patch anymore as it is dependent on the
avs-soc-component stuff. To make things easier to review, request was to
split main series into chucks. I do believe it is easier to read and
review indeed.
>> + for (i = 1; i < adev->fw_cfg.max_libs_count; i++)
>> + memset(adev->lib_names[i], 0, AVS_LIB_NAME_SIZE);
>> +
>> + avs_hda_clock_gating_enable(adev, false);
>> + avs_hda_l1sen_enable(adev, false);
>> +
>> + ret = avs_dsp_load_basefw(adev);
>> +
>> + avs_hda_l1sen_enable(adev, true);
>> + avs_hda_clock_gating_enable(adev, true);
>> +
>> + if (ret < 0)
>> + return ret;
>> +
>> + /* With all code loaded, refresh module information. */
>> + ret = avs_module_info_init(adev, true);
> It is not clear if this required only after first boot or after a
> suspend/resume as well.
avs_dsp_boot_firmware() and avs_dsp_first_boot_firmware() (found just
below this one) are two separate functions. Only the latter has things
done once. Anything else can happen several times throughout the
lifetime of the avs-driver.
Regards,
Czarek
next prev parent reply other threads:[~2022-03-04 18:30 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-04 14:57 [PATCH v3 00/17] ASoC: Intel: AVS - Audio DSP for cAVS Cezary Rojewski
2022-03-04 14:57 ` [PATCH v3 01/17] ALSA: hda: Add helper macros for DSP capable devices Cezary Rojewski
2022-03-04 14:57 ` [PATCH v3 02/17] ASoC: Export DAI register and widget ctor and dctor functions Cezary Rojewski
2022-03-04 14:57 ` [PATCH v3 03/17] ASoC: Intel: Introduce AVS driver Cezary Rojewski
2022-03-04 15:51 ` Ranjani Sridharan
2022-03-04 16:43 ` Cezary Rojewski
2022-03-04 14:57 ` [PATCH v3 04/17] ASoC: Intel: avs: Inter process communication Cezary Rojewski
2022-03-04 16:09 ` Ranjani Sridharan
2022-03-04 17:11 ` Cezary Rojewski
2022-03-07 16:15 ` Ranjani Sridharan
2022-03-07 16:23 ` Cezary Rojewski
2022-03-04 14:57 ` [PATCH v3 05/17] ASoC: Intel: avs: Add code loading requests Cezary Rojewski
2022-03-04 14:57 ` [PATCH v3 06/17] ASoC: Intel: avs: Add pipeline management requests Cezary Rojewski
2022-03-04 16:13 ` Ranjani Sridharan
2022-03-04 17:15 ` Cezary Rojewski
2022-03-04 14:57 ` [PATCH v3 07/17] ASoC: Intel: avs: Add module " Cezary Rojewski
2022-03-04 16:21 ` Ranjani Sridharan
2022-03-04 17:21 ` Cezary Rojewski
2022-03-07 16:39 ` Ranjani Sridharan
2022-03-07 16:58 ` Cezary Rojewski
2022-03-07 17:05 ` Ranjani Sridharan
2022-03-07 17:27 ` Cezary Rojewski
2022-03-07 17:47 ` Pierre-Louis Bossart
2022-03-04 14:57 ` [PATCH v3 08/17] ASoC: Intel: avs: Add power " Cezary Rojewski
2022-03-04 16:24 ` Ranjani Sridharan
2022-03-04 17:30 ` Cezary Rojewski
2022-03-04 14:57 ` [PATCH v3 09/17] ASoC: Intel: avs: Add ROM requests Cezary Rojewski
2022-03-04 16:26 ` Ranjani Sridharan
2022-03-04 17:33 ` Cezary Rojewski
2022-03-04 14:57 ` [PATCH v3 10/17] ASoC: Intel: avs: Add basefw runtime-parameter requests Cezary Rojewski
2022-03-04 16:31 ` Ranjani Sridharan
2022-03-04 17:37 ` Cezary Rojewski
2022-03-07 16:41 ` Ranjani Sridharan
2022-03-07 17:02 ` Cezary Rojewski
2022-03-07 17:06 ` Ranjani Sridharan
2022-03-07 17:28 ` Cezary Rojewski
2022-03-04 14:57 ` [PATCH v3 11/17] ASoC: Intel: avs: Firmware resources management utilities Cezary Rojewski
2022-03-04 16:41 ` Ranjani Sridharan
2022-03-04 18:02 ` Cezary Rojewski
2022-03-07 16:46 ` Ranjani Sridharan
2022-03-07 17:13 ` Cezary Rojewski
2022-03-07 17:30 ` Ranjani Sridharan
2022-03-08 16:57 ` Cezary Rojewski
2022-03-08 17:22 ` Ranjani Sridharan
2022-03-08 18:07 ` Cezary Rojewski
2022-03-08 18:26 ` Ranjani Sridharan
2022-03-08 18:31 ` Cezary Rojewski
2022-03-08 19:42 ` Pierre-Louis Bossart
2022-03-09 17:23 ` Cezary Rojewski
2022-03-04 14:57 ` [PATCH v3 12/17] ASoC: Intel: avs: Declare module configuration types Cezary Rojewski
2022-03-04 16:43 ` Ranjani Sridharan
2022-03-04 18:10 ` Cezary Rojewski
2022-03-04 14:57 ` [PATCH v3 13/17] ASoC: Intel: avs: Dynamic firmware resources management Cezary Rojewski
2022-03-04 16:47 ` Ranjani Sridharan
2022-03-04 18:15 ` Cezary Rojewski
2022-03-04 14:57 ` [PATCH v3 14/17] ASoC: Intel: avs: General code loading flow Cezary Rojewski
2022-03-04 16:54 ` Ranjani Sridharan
2022-03-04 18:29 ` Cezary Rojewski [this message]
2022-03-04 14:57 ` [PATCH v3 15/17] ASoC: Intel: avs: Implement CLDMA transfer Cezary Rojewski
2022-03-04 14:57 ` [PATCH v3 16/17] ASoC: Intel: avs: Code loading over CLDMA Cezary Rojewski
2022-03-04 14:57 ` [PATCH v3 17/17] ASoC: Intel: avs: Code loading over HDA Cezary Rojewski
2022-03-04 16:59 ` Ranjani Sridharan
2022-03-04 18:44 ` Cezary Rojewski
2022-03-04 18:56 ` Pierre-Louis Bossart
2022-03-07 14:31 ` Cezary Rojewski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6e8a0a82-295c-4b0b-cc2b-d7942b6cff79@intel.com \
--to=cezary.rojewski@intel.com \
--cc=alsa-devel@alsa-project.org \
--cc=amadeuszx.slawinski@linux.intel.com \
--cc=broonie@kernel.org \
--cc=cujomalainey@chromium.org \
--cc=harshapriya.n@intel.com \
--cc=hdegoede@redhat.com \
--cc=lma@semihalf.com \
--cc=pierre-louis.bossart@linux.intel.com \
--cc=rad@semihalf.com \
--cc=ranjani.sridharan@linux.intel.com \
--cc=tiwai@suse.com \
--cc=upstream@semihalf.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox