Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 26258eff authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "soc: qcom: peripheral-loader: Make the PIL shutdown op failure more visible"

parents b7243014 b500efeb
Loading
Loading
Loading
Loading
+9 −2
Original line number Original line Diff line number Diff line
@@ -653,6 +653,9 @@ int pil_boot(struct pil_desc *desc)
	const struct firmware *fw;
	const struct firmware *fw;
	struct pil_priv *priv = desc->priv;
	struct pil_priv *priv = desc->priv;


	if (desc->shutdown_fail)
		pil_err(desc, "Subsystem shutdown failed previously!\n");

	/* Reinitialize for new image */
	/* Reinitialize for new image */
	pil_release_mmap(desc);
	pil_release_mmap(desc);


@@ -763,8 +766,12 @@ void pil_shutdown(struct pil_desc *desc)
{
{
	struct pil_priv *priv = desc->priv;
	struct pil_priv *priv = desc->priv;


	if (desc->ops->shutdown)
	if (desc->ops->shutdown) {
		desc->ops->shutdown(desc);
		if (desc->ops->shutdown(desc))
			desc->shutdown_fail = true;
		else
			desc->shutdown_fail = false;
	}


	if (desc->proxy_unvote_irq) {
	if (desc->proxy_unvote_irq) {
		disable_irq(desc->proxy_unvote_irq);
		disable_irq(desc->proxy_unvote_irq);
+2 −0
Original line number Original line Diff line number Diff line
@@ -34,6 +34,7 @@ struct pil_priv;
 * This defaults to ioremap if not specified.
 * This defaults to ioremap if not specified.
 * @unmap_fw_mem: Custom function used to undo mapping by map_fw_mem.
 * @unmap_fw_mem: Custom function used to undo mapping by map_fw_mem.
 * This defaults to iounmap if not specified.
 * This defaults to iounmap if not specified.
 * @shutdown_fail: Set if PIL op for shutting down subsystem fails.
 */
 */
struct pil_desc {
struct pil_desc {
	const char *name;
	const char *name;
@@ -49,6 +50,7 @@ struct pil_desc {
	void * (*map_fw_mem)(phys_addr_t phys, size_t size, void *data);
	void * (*map_fw_mem)(phys_addr_t phys, size_t size, void *data);
	void (*unmap_fw_mem)(void *virt, size_t size, void *data);
	void (*unmap_fw_mem)(void *virt, size_t size, void *data);
	void *map_data;
	void *map_data;
	bool shutdown_fail;
};
};


/**
/**