Commit 41c39cfc authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge tag 'soc-fsl-next-v5.13' of...

Merge tag 'soc-fsl-next-v5.13' of git://git.kernel.org/pub/scm/linux/kernel/git/leo/linux into arm/drivers

NXP/FSL SoC driver updates for v5.13

- Add ACPI support for RCPM driver
- Use generic io{read,write} for QE drivers after performance optimized
  for PowerPC
- Fix QBMAN probe to cleanup HW states correctly for kexec
- Various cleanup and style fix for QBMAN/QE/GUTS drivers

* tag 'soc-fsl-next-v5.13' of git://git.kernel.org/pub/scm/linux/kernel/git/leo/linux:
  soc: fsl: enable acpi support in RCPM driver
  Revert "soc: fsl: qe: introduce qe_io{read,write}* wrappers"
  tty: serial: ucc_uart: replace qe_io{read,write}* wrappers by generic io{read,write}*
  soc: fsl: qe: replace qe_io{read,write}* wrappers by generic io{read,write}*
  soc: fsl: guts: fix comment syntax in file
  soc: fsl: guts: remove unneeded semicolon
  soc: fsl: qe: Use DEFINE_SPINLOCK() for spinlock
  soc: fsl: qbman: Delete useless kfree code
  soc: fsl: qbman: Ensure device cleanup is run for kexec

Link: https://lore.kernel.org/r/20210409205719.27927-1-leoyang.li@nxp.com


Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents 5418db1f 242b0b39
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -117,7 +117,7 @@ static const struct fsl_soc_die_attr *fsl_soc_die_match(
		if (matches->svr == (svr & matches->mask))
			return matches;
		matches++;
	};
	}
	return NULL;
}

+0 −1
Original line number Diff line number Diff line
@@ -709,7 +709,6 @@ struct bman_pool *bman_new_pool(void)
	return pool;
err:
	bm_release_bpid(bpid);
	kfree(pool);
	return NULL;
}
EXPORT_SYMBOL(bman_new_pool);
+2 −1
Original line number Diff line number Diff line
@@ -160,7 +160,7 @@ static int bman_portal_probe(struct platform_device *pdev)
		__bman_portals_probed = 1;
		/* unassigned portal, skip init */
		spin_unlock(&bman_lock);
		return 0;
		goto check_cleanup;
	}

	cpumask_set_cpu(cpu, &portal_cpus);
@@ -176,6 +176,7 @@ static int bman_portal_probe(struct platform_device *pdev)
	if (!cpu_online(cpu))
		bman_offline_cpu(cpu);

check_cleanup:
	if (__bman_portals_probed == 1 && bman_requires_cleanup()) {
		/*
		 * BMan wasn't reset prior to boot (Kexec for example)
+2 −1
Original line number Diff line number Diff line
@@ -302,7 +302,7 @@ static int qman_portal_probe(struct platform_device *pdev)
		__qman_portals_probed = 1;
		/* unassigned portal, skip init */
		spin_unlock(&qman_lock);
		return 0;
		goto check_cleanup;
	}

	cpumask_set_cpu(cpu, &portal_cpus);
@@ -323,6 +323,7 @@ static int qman_portal_probe(struct platform_device *pdev)
	if (!cpu_online(cpu))
		qman_offline_cpu(cpu);

check_cleanup:
	if (__qman_portals_probed == 1 && qman_requires_cleanup()) {
		/*
		 * QMan wasn't reset prior to boot (Kexec for example)
+10 −10
Original line number Diff line number Diff line
@@ -41,13 +41,13 @@ static void qe_gpio_save_regs(struct of_mm_gpio_chip *mm_gc)
		container_of(mm_gc, struct qe_gpio_chip, mm_gc);
	struct qe_pio_regs __iomem *regs = mm_gc->regs;

	qe_gc->cpdata = qe_ioread32be(&regs->cpdata);
	qe_gc->cpdata = ioread32be(&regs->cpdata);
	qe_gc->saved_regs.cpdata = qe_gc->cpdata;
	qe_gc->saved_regs.cpdir1 = qe_ioread32be(&regs->cpdir1);
	qe_gc->saved_regs.cpdir2 = qe_ioread32be(&regs->cpdir2);
	qe_gc->saved_regs.cppar1 = qe_ioread32be(&regs->cppar1);
	qe_gc->saved_regs.cppar2 = qe_ioread32be(&regs->cppar2);
	qe_gc->saved_regs.cpodr = qe_ioread32be(&regs->cpodr);
	qe_gc->saved_regs.cpdir1 = ioread32be(&regs->cpdir1);
	qe_gc->saved_regs.cpdir2 = ioread32be(&regs->cpdir2);
	qe_gc->saved_regs.cppar1 = ioread32be(&regs->cppar1);
	qe_gc->saved_regs.cppar2 = ioread32be(&regs->cppar2);
	qe_gc->saved_regs.cpodr = ioread32be(&regs->cpodr);
}

static int qe_gpio_get(struct gpio_chip *gc, unsigned int gpio)
@@ -56,7 +56,7 @@ static int qe_gpio_get(struct gpio_chip *gc, unsigned int gpio)
	struct qe_pio_regs __iomem *regs = mm_gc->regs;
	u32 pin_mask = 1 << (QE_PIO_PINS - 1 - gpio);

	return !!(qe_ioread32be(&regs->cpdata) & pin_mask);
	return !!(ioread32be(&regs->cpdata) & pin_mask);
}

static void qe_gpio_set(struct gpio_chip *gc, unsigned int gpio, int val)
@@ -74,7 +74,7 @@ static void qe_gpio_set(struct gpio_chip *gc, unsigned int gpio, int val)
	else
		qe_gc->cpdata &= ~pin_mask;

	qe_iowrite32be(qe_gc->cpdata, &regs->cpdata);
	iowrite32be(qe_gc->cpdata, &regs->cpdata);

	spin_unlock_irqrestore(&qe_gc->lock, flags);
}
@@ -101,7 +101,7 @@ static void qe_gpio_set_multiple(struct gpio_chip *gc,
		}
	}

	qe_iowrite32be(qe_gc->cpdata, &regs->cpdata);
	iowrite32be(qe_gc->cpdata, &regs->cpdata);

	spin_unlock_irqrestore(&qe_gc->lock, flags);
}
@@ -269,7 +269,7 @@ void qe_pin_set_dedicated(struct qe_pin *qe_pin)
	else
		qe_gc->cpdata &= ~mask1;

	qe_iowrite32be(qe_gc->cpdata, &regs->cpdata);
	iowrite32be(qe_gc->cpdata, &regs->cpdata);
	qe_clrsetbits_be32(&regs->cpodr, mask1, sregs->cpodr & mask1);

	spin_unlock_irqrestore(&qe_gc->lock, flags);
Loading