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

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

Merge "msm: smd: Add probe deferral support"

parents ef00eaca 087d698a
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -746,6 +746,8 @@ const char *smd_edge_to_pil_str(uint32_t type)
	const char *pil_str = NULL;

	if (type < ARRAY_SIZE(edge_to_pids)) {
		if (!edge_to_pids[type].initialized)
			return ERR_PTR(-EPROBE_DEFER);
		if (!remote_info[smd_edge_to_remote_pid(type)].skip_pil) {
			pil_str = edge_to_pids[type].subsys_name;
			if (pil_str[0] == 0x0)
@@ -770,6 +772,8 @@ const char *smd_edge_to_subsystem(uint32_t type)
		subsys = edge_to_pids[type].subsys_name;
		if (subsys[0] == 0x0)
			subsys = NULL;
		if (!edge_to_pids[type].initialized)
			subsys = ERR_PTR(-EPROBE_DEFER);
	}
	return subsys;
}
@@ -790,6 +794,10 @@ const char *smd_pid_to_subsystem(uint32_t pid)

	for (i = 0; i < ARRAY_SIZE(edge_to_pids); ++i) {
		if (pid == edge_to_pids[i].remote_pid) {
			if (!edge_to_pids[i].initialized) {
				subsys = ERR_PTR(-EPROBE_DEFER);
				break;
			}
			if (edge_to_pids[i].subsys_name[0] != 0x0) {
				subsys = edge_to_pids[i].subsys_name;
				break;
@@ -1801,7 +1809,7 @@ int smd_named_open_on_edge(const char *name, uint32_t edge,

	if (!smd_edge_inited(edge)) {
		SMD_INFO("smd_open() before smd_init()\n");
		return -ENODEV;
		return -EPROBE_DEFER;
	}

	SMD_DBG("smd_open('%s', %p, %p)\n", name, priv, notify);
+1 −1
Original line number Diff line number Diff line
@@ -59,7 +59,7 @@ static void debug_int_stats(struct seq_file *s)

	for (subsys = 0; subsys < NUM_SMD_SUBSYSTEMS; ++subsys) {
		subsys_name = smd_pid_to_subsystem(subsys);
		if (subsys_name) {
		if (!IS_ERR_OR_NULL(subsys_name)) {
			seq_printf(s, "%-10s %4s |    %9d | %9u | %9u |\n",
				smd_pid_to_subsystem(subsys), "smd",
				stats->smd_interrupt_id,
+1 −1
Original line number Diff line number Diff line
@@ -1079,7 +1079,7 @@ int smd_pkt_open(struct inode *inode, struct file *file)
		}

		peripheral = smd_edge_to_pil_str(smd_pkt_devp->edge);
		if (peripheral) {
		if (!IS_ERR_OR_NULL(peripheral)) {
			smd_pkt_devp->pil = subsystem_get(peripheral);
			if (IS_ERR(smd_pkt_devp->pil)) {
				r = PTR_ERR(smd_pkt_devp->pil);
+2 −2
Original line number Diff line number Diff line
@@ -449,7 +449,7 @@ static void *msm_ipc_load_subsystem(uint32_t edge)
	const char *peripheral;

	peripheral = smd_edge_to_pil_str(edge);
	if (peripheral) {
	if (!IS_ERR_OR_NULL(peripheral)) {
		pil = subsystem_get(peripheral);
		if (IS_ERR(pil)) {
			pr_err("%s: Failed to load %s\n",
@@ -551,7 +551,7 @@ void *msm_ipc_load_default_node(void)
	const char *peripheral;

	peripheral = smd_edge_to_pil_str(SMD_APPS_MODEM);
	if (peripheral && !strncmp(peripheral, "modem", 6)) {
	if (!IS_ERR_OR_NULL(peripheral) && !strcmp(peripheral, "modem")) {
		pil = subsystem_get(peripheral);
		if (IS_ERR(pil)) {
			pr_err("%s: Failed to load %s\n",
+1 −1
Original line number Diff line number Diff line
@@ -549,7 +549,7 @@ static int smd_tty_port_activate(struct tty_port *tport,
	}

	peripheral = smd_edge_to_pil_str(smd_tty[n].edge);
	if (peripheral) {
	if (!IS_ERR_OR_NULL(peripheral)) {
		info->pil = subsystem_get(peripheral);
		if (IS_ERR(info->pil)) {
			SMD_TTY_INFO(