Commit f44d154d authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull SoC fixes from Arnd Bergmann:
 "Three small fixes for the soc tree:

   - devicetee fix for the Arm Juno reference machine, to allow more
     interesting PCI configurations

   - build fix for SCMI firmware on the NXP i.MX platform

   - fix for a race condition in Arm FF-A firmware"

* tag 'soc-fixes-6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
  arm64: dts: fvp: Update PCIe bus-range property
  firmware: arm_ffa: Fix the race around setting ffa_dev->properties
  firmware: arm_scmi: Fix i.MX build dependency
parents dc690bc2 f5782810
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -233,7 +233,7 @@ pci: pci@40000000 {
		#interrupt-cells = <0x1>;
		compatible = "pci-host-ecam-generic";
		device_type = "pci";
		bus-range = <0x0 0x1>;
		bus-range = <0x0 0xff>;
		reg = <0x0 0x40000000 0x0 0x10000000>;
		ranges = <0x2000000 0x0 0x50000000 0x0 0x50000000 0x0 0x10000000>;
		interrupt-map = <0 0 0 1 &gic 0 0 GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
+11 −4
Original line number Diff line number Diff line
@@ -187,13 +187,18 @@ bool ffa_device_is_valid(struct ffa_device *ffa_dev)
	return valid;
}

struct ffa_device *ffa_device_register(const uuid_t *uuid, int vm_id,
struct ffa_device *
ffa_device_register(const struct ffa_partition_info *part_info,
		    const struct ffa_ops *ops)
{
	int id, ret;
	uuid_t uuid;
	struct device *dev;
	struct ffa_device *ffa_dev;

	if (!part_info)
		return NULL;

	id = ida_alloc_min(&ffa_bus_id, 1, GFP_KERNEL);
	if (id < 0)
		return NULL;
@@ -210,9 +215,11 @@ struct ffa_device *ffa_device_register(const uuid_t *uuid, int vm_id,
	dev_set_name(&ffa_dev->dev, "arm-ffa-%d", id);

	ffa_dev->id = id;
	ffa_dev->vm_id = vm_id;
	ffa_dev->vm_id = part_info->id;
	ffa_dev->properties = part_info->properties;
	ffa_dev->ops = ops;
	uuid_copy(&ffa_dev->uuid, uuid);
	import_uuid(&uuid, (u8 *)part_info->uuid);
	uuid_copy(&ffa_dev->uuid, &uuid);

	ret = device_register(&ffa_dev->dev);
	if (ret) {
+1 −6
Original line number Diff line number Diff line
@@ -1387,7 +1387,6 @@ static struct notifier_block ffa_bus_nb = {
static int ffa_setup_partitions(void)
{
	int count, idx, ret;
	uuid_t uuid;
	struct ffa_device *ffa_dev;
	struct ffa_dev_part_info *info;
	struct ffa_partition_info *pbuf, *tpbuf;
@@ -1406,23 +1405,19 @@ static int ffa_setup_partitions(void)

	xa_init(&drv_info->partition_info);
	for (idx = 0, tpbuf = pbuf; idx < count; idx++, tpbuf++) {
		import_uuid(&uuid, (u8 *)tpbuf->uuid);

		/* Note that if the UUID will be uuid_null, that will require
		 * ffa_bus_notifier() to find the UUID of this partition id
		 * with help of ffa_device_match_uuid(). FF-A v1.1 and above
		 * provides UUID here for each partition as part of the
		 * discovery API and the same is passed.
		 */
		ffa_dev = ffa_device_register(&uuid, tpbuf->id, &ffa_drv_ops);
		ffa_dev = ffa_device_register(tpbuf, &ffa_drv_ops);
		if (!ffa_dev) {
			pr_err("%s: failed to register partition ID 0x%x\n",
			       __func__, tpbuf->id);
			continue;
		}

		ffa_dev->properties = tpbuf->properties;

		if (drv_info->version > FFA_VERSION_1_0 &&
		    !(tpbuf->properties & FFA_PARTITION_AARCH64_EXEC))
			ffa_mode_32bit_set(ffa_dev);
+1 −0
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@ config IMX_SCMI_BBM_EXT
config IMX_SCMI_MISC_EXT
	tristate "i.MX SCMI MISC EXTENSION"
	depends on ARM_SCMI_PROTOCOL || (COMPILE_TEST && OF)
	depends on IMX_SCMI_MISC_DRV
	default y if ARCH_MXC
	help
	  This enables i.MX System MISC control logic such as gpio expander
+0 −1
Original line number Diff line number Diff line
@@ -25,7 +25,6 @@ config IMX_SCU

config IMX_SCMI_MISC_DRV
	tristate "IMX SCMI MISC Protocol driver"
	depends on IMX_SCMI_MISC_EXT || COMPILE_TEST
	default y if ARCH_MXC
	help
	  The System Controller Management Interface firmware (SCMI FW) is
Loading