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

Commit 1b1f2e23 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "mhi: cntrl: qcom: remove boot monitor thread to use status cb"

parents 41e492f3 97160593
Loading
Loading
Loading
Loading
+7 −41
Original line number Diff line number Diff line
@@ -27,7 +27,6 @@ struct arch_info {
	u32 bus_client;
	struct msm_pcie_register_event pcie_reg_event;
	struct pci_saved_state *pcie_state;
	async_cookie_t cookie;
	void *boot_ipc_log;
	void *tsync_ipc_log;
	struct mhi_device *boot_dev;
@@ -200,7 +199,7 @@ static int mhi_arch_esoc_ops_power_on(void *priv, unsigned int flags)
		return 0;
	}

	MHI_LOG("Enter\n");
	MHI_LOG("Enter: mdm_crashed:%d\n", flags & ESOC_HOOK_MDM_CRASH);

	/* reset rpm state */
	pm_runtime_set_active(&pci_dev->dev);
@@ -221,7 +220,6 @@ static int mhi_arch_esoc_ops_power_on(void *priv, unsigned int flags)
		return ret;
	}

	mhi_dev->mdm_state = (flags & ESOC_HOOK_MDM_CRASH);
	return mhi_pci_probe(pci_dev, NULL);
}

@@ -282,9 +280,6 @@ static void mhi_arch_esoc_ops_power_off(void *priv, unsigned int flags)
	mhi_deinit_pci_dev(mhi_cntrl);
	mhi_arch_link_off(mhi_cntrl);

	/* wait for boot monitor to exit */
	async_synchronize_cookie(arch_info->cookie + 1);

	mhi_arch_pcie_deinit(mhi_cntrl);
	mhi_cntrl->dev = NULL;

@@ -333,50 +328,21 @@ static void mhi_bl_remove(struct mhi_device *mhi_device)
		       HLOG "Received Remove notif.\n");
}

static void mhi_boot_monitor(void *data, async_cookie_t cookie)
{
	struct mhi_controller *mhi_cntrl = data;
	struct mhi_dev *mhi_dev = mhi_controller_get_devdata(mhi_cntrl);
	struct arch_info *arch_info = mhi_dev->arch_info;
	/* 15 sec timeout for booting device */
	const u32 timeout = msecs_to_jiffies(15000);

	/* wait for device to enter boot stage */
	wait_event_timeout(mhi_cntrl->state_event, mhi_cntrl->ee == MHI_EE_AMSS
			   || mhi_cntrl->ee == MHI_EE_DISABLE_TRANSITION
			   || mhi_cntrl->power_down,
			   timeout);

	ipc_log_string(arch_info->boot_ipc_log, HLOG "Device current ee = %s\n",
		       TO_MHI_EXEC_STR(mhi_cntrl->ee));

	/* if we successfully booted to amss, enable runtime pm */
	if (mhi_cntrl->ee == MHI_EE_AMSS)
		if (!mhi_dev->drv_supported || arch_info->drv_connected)
			pm_runtime_allow(&mhi_dev->pci_dev->dev);
}

int mhi_arch_power_up(struct mhi_controller *mhi_cntrl)
{
	struct mhi_dev *mhi_dev = mhi_controller_get_devdata(mhi_cntrl);
	struct arch_info *arch_info = mhi_dev->arch_info;

	/* start a boot monitor if not in crashed state */
	if (!mhi_dev->mdm_state)
		arch_info->cookie = async_schedule(mhi_boot_monitor, mhi_cntrl);

	return 0;
}

void mhi_arch_mission_mode_enter(struct mhi_controller *mhi_cntrl)
{
	struct mhi_dev *mhi_dev = mhi_controller_get_devdata(mhi_cntrl);
	struct arch_info *arch_info = mhi_dev->arch_info;
	struct mhi_device *boot_dev = arch_info->boot_dev;

	ipc_log_string(arch_info->boot_ipc_log,
		       HLOG "Device entered mission mode\n");

	/* disable boot logger channel */
	if (boot_dev)
		mhi_unprepare_from_transfer(boot_dev);

	if (!mhi_dev->drv_supported || arch_info->drv_connected)
		pm_runtime_allow(&mhi_dev->pci_dev->dev);
}

static  int mhi_arch_pcie_scale_bw(struct mhi_controller *mhi_cntrl,
+0 −4
Original line number Diff line number Diff line
@@ -576,10 +576,6 @@ static int mhi_qcom_power_up(struct mhi_controller *mhi_cntrl)
	mhi_cntrl->ee = 0;
	mhi_cntrl->power_down = false;

	ret = mhi_arch_power_up(mhi_cntrl);
	if (ret)
		return ret;

	ret = mhi_async_power_up(mhi_cntrl);

	/* Update modem serial Info */
+0 −7
Original line number Diff line number Diff line
@@ -50,7 +50,6 @@ struct mhi_dev {
	int resn;
	void *arch_info;
	bool powered_on;
	bool mdm_state;
	dma_addr_t iova_start;
	dma_addr_t iova_stop;
	enum mhi_suspend_mode suspend_mode;
@@ -72,7 +71,6 @@ void mhi_reg_write_work(struct work_struct *w);
#ifdef CONFIG_ARCH_QCOM

void mhi_arch_mission_mode_enter(struct mhi_controller *mhi_cntrl);
int mhi_arch_power_up(struct mhi_controller *mhi_cntrl);
int mhi_arch_pcie_init(struct mhi_controller *mhi_cntrl);
void mhi_arch_pcie_deinit(struct mhi_controller *mhi_cntrl);
int mhi_arch_link_suspend(struct mhi_controller *mhi_cntrl);
@@ -99,11 +97,6 @@ static inline int mhi_arch_link_resume(struct mhi_controller *mhi_cntrl)
	return 0;
}

static inline int mhi_arch_power_up(struct mhi_controller *mhi_cntrl)
{
	return 0;
}

static inline void mhi_arch_mission_mode_enter(struct mhi_controller *mhi_cntrl)
{
}