mirror of
https://github.com/torvalds/linux
synced 2024-10-03 09:48:02 +00:00
net: ipa: permit GSI firmware loading to be skipped
Define a new value "skip" for the "qcom,gsi-loader" Device Tree property. If used, it indicates that neither the AP nor the modem need to load GSI firmware (because it has already been loaded--for example by the boot loader). Signed-off-by: Alex Elder <elder@linaro.org> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
a49c3ab7d7
commit
7569805ec2
|
@ -87,12 +87,14 @@
|
|||
* @IPA_LOADER_DEFER: System not ready; try again later
|
||||
* @IPA_LOADER_SELF: AP loads GSI firmware
|
||||
* @IPA_LOADER_MODEM: Modem loads GSI firmware, signals when done
|
||||
* @IPA_LOADER_SKIP: Neither AP nor modem need to load GSI firmware
|
||||
* @IPA_LOADER_INVALID: GSI firmware loader specification is invalid
|
||||
*/
|
||||
enum ipa_firmware_loader {
|
||||
IPA_LOADER_DEFER,
|
||||
IPA_LOADER_SELF,
|
||||
IPA_LOADER_MODEM,
|
||||
IPA_LOADER_SKIP,
|
||||
IPA_LOADER_INVALID,
|
||||
};
|
||||
|
||||
|
@ -740,6 +742,10 @@ static enum ipa_firmware_loader ipa_firmware_loader(struct device *dev)
|
|||
if (!strcmp(str, "modem"))
|
||||
return IPA_LOADER_MODEM;
|
||||
|
||||
/* No GSI firmware load is needed for "skip" */
|
||||
if (!strcmp(str, "skip"))
|
||||
return IPA_LOADER_SKIP;
|
||||
|
||||
/* Any value other than "self" is an error */
|
||||
if (strcmp(str, "self"))
|
||||
return IPA_LOADER_INVALID;
|
||||
|
@ -872,10 +878,12 @@ static int ipa_probe(struct platform_device *pdev)
|
|||
if (loader == IPA_LOADER_MODEM)
|
||||
goto done;
|
||||
|
||||
/* The AP is loading GSI firmware; do so now */
|
||||
ret = ipa_firmware_load(dev);
|
||||
if (ret)
|
||||
goto err_deconfig;
|
||||
if (loader == IPA_LOADER_SELF) {
|
||||
/* The AP is loading GSI firmware; do so now */
|
||||
ret = ipa_firmware_load(dev);
|
||||
if (ret)
|
||||
goto err_deconfig;
|
||||
} /* Otherwise loader == IPA_LOADER_SKIP */
|
||||
|
||||
/* GSI firmware is loaded; proceed to setup */
|
||||
ret = ipa_setup(ipa);
|
||||
|
|
Loading…
Reference in a new issue