Skip to content

Commit f44d154

Browse files
committed
Merge tag 'soc-fixes-6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
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
2 parents dc690bc + f578281 commit f44d154

File tree

7 files changed

+23
-18
lines changed

7 files changed

+23
-18
lines changed

arch/arm64/boot/dts/arm/fvp-base-revc.dts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@
233233
#interrupt-cells = <0x1>;
234234
compatible = "pci-host-ecam-generic";
235235
device_type = "pci";
236-
bus-range = <0x0 0x1>;
236+
bus-range = <0x0 0xff>;
237237
reg = <0x0 0x40000000 0x0 0x10000000>;
238238
ranges = <0x2000000 0x0 0x50000000 0x0 0x50000000 0x0 0x10000000>;
239239
interrupt-map = <0 0 0 1 &gic 0 0 GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,

drivers/firmware/arm_ffa/bus.c

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -187,13 +187,18 @@ bool ffa_device_is_valid(struct ffa_device *ffa_dev)
187187
return valid;
188188
}
189189

190-
struct ffa_device *ffa_device_register(const uuid_t *uuid, int vm_id,
191-
const struct ffa_ops *ops)
190+
struct ffa_device *
191+
ffa_device_register(const struct ffa_partition_info *part_info,
192+
const struct ffa_ops *ops)
192193
{
193194
int id, ret;
195+
uuid_t uuid;
194196
struct device *dev;
195197
struct ffa_device *ffa_dev;
196198

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

212217
ffa_dev->id = id;
213-
ffa_dev->vm_id = vm_id;
218+
ffa_dev->vm_id = part_info->id;
219+
ffa_dev->properties = part_info->properties;
214220
ffa_dev->ops = ops;
215-
uuid_copy(&ffa_dev->uuid, uuid);
221+
import_uuid(&uuid, (u8 *)part_info->uuid);
222+
uuid_copy(&ffa_dev->uuid, &uuid);
216223

217224
ret = device_register(&ffa_dev->dev);
218225
if (ret) {

drivers/firmware/arm_ffa/driver.c

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1387,7 +1387,6 @@ static struct notifier_block ffa_bus_nb = {
13871387
static int ffa_setup_partitions(void)
13881388
{
13891389
int count, idx, ret;
1390-
uuid_t uuid;
13911390
struct ffa_device *ffa_dev;
13921391
struct ffa_dev_part_info *info;
13931392
struct ffa_partition_info *pbuf, *tpbuf;
@@ -1406,23 +1405,19 @@ static int ffa_setup_partitions(void)
14061405

14071406
xa_init(&drv_info->partition_info);
14081407
for (idx = 0, tpbuf = pbuf; idx < count; idx++, tpbuf++) {
1409-
import_uuid(&uuid, (u8 *)tpbuf->uuid);
1410-
14111408
/* Note that if the UUID will be uuid_null, that will require
14121409
* ffa_bus_notifier() to find the UUID of this partition id
14131410
* with help of ffa_device_match_uuid(). FF-A v1.1 and above
14141411
* provides UUID here for each partition as part of the
14151412
* discovery API and the same is passed.
14161413
*/
1417-
ffa_dev = ffa_device_register(&uuid, tpbuf->id, &ffa_drv_ops);
1414+
ffa_dev = ffa_device_register(tpbuf, &ffa_drv_ops);
14181415
if (!ffa_dev) {
14191416
pr_err("%s: failed to register partition ID 0x%x\n",
14201417
__func__, tpbuf->id);
14211418
continue;
14221419
}
14231420

1424-
ffa_dev->properties = tpbuf->properties;
1425-
14261421
if (drv_info->version > FFA_VERSION_1_0 &&
14271422
!(tpbuf->properties & FFA_PARTITION_AARCH64_EXEC))
14281423
ffa_mode_32bit_set(ffa_dev);

drivers/firmware/arm_scmi/vendors/imx/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ config IMX_SCMI_BBM_EXT
1515
config IMX_SCMI_MISC_EXT
1616
tristate "i.MX SCMI MISC EXTENSION"
1717
depends on ARM_SCMI_PROTOCOL || (COMPILE_TEST && OF)
18+
depends on IMX_SCMI_MISC_DRV
1819
default y if ARCH_MXC
1920
help
2021
This enables i.MX System MISC control logic such as gpio expander

drivers/firmware/imx/Kconfig

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ config IMX_SCU
2525

2626
config IMX_SCMI_MISC_DRV
2727
tristate "IMX SCMI MISC Protocol driver"
28-
depends on IMX_SCMI_MISC_EXT || COMPILE_TEST
2928
default y if ARCH_MXC
3029
help
3130
The System Controller Management Interface firmware (SCMI FW) is

include/linux/arm_ffa.h

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -166,19 +166,22 @@ static inline void *ffa_dev_get_drvdata(struct ffa_device *fdev)
166166
return dev_get_drvdata(&fdev->dev);
167167
}
168168

169+
struct ffa_partition_info;
170+
169171
#if IS_REACHABLE(CONFIG_ARM_FFA_TRANSPORT)
170-
struct ffa_device *ffa_device_register(const uuid_t *uuid, int vm_id,
171-
const struct ffa_ops *ops);
172+
struct ffa_device *
173+
ffa_device_register(const struct ffa_partition_info *part_info,
174+
const struct ffa_ops *ops);
172175
void ffa_device_unregister(struct ffa_device *ffa_dev);
173176
int ffa_driver_register(struct ffa_driver *driver, struct module *owner,
174177
const char *mod_name);
175178
void ffa_driver_unregister(struct ffa_driver *driver);
176179
bool ffa_device_is_valid(struct ffa_device *ffa_dev);
177180

178181
#else
179-
static inline
180-
struct ffa_device *ffa_device_register(const uuid_t *uuid, int vm_id,
181-
const struct ffa_ops *ops)
182+
static inline struct ffa_device *
183+
ffa_device_register(const struct ffa_partition_info *part_info,
184+
const struct ffa_ops *ops)
182185
{
183186
return NULL;
184187
}

sound/soc/fsl/Kconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ config SND_SOC_FSL_SAI
2929
config SND_SOC_FSL_MQS
3030
tristate "Medium Quality Sound (MQS) module support"
3131
depends on SND_SOC_FSL_SAI
32+
depends on IMX_SCMI_MISC_DRV || !IMX_SCMI_MISC_DRV
3233
select REGMAP_MMIO
33-
select IMX_SCMI_MISC_DRV if IMX_SCMI_MISC_EXT !=n
3434
help
3535
Say Y if you want to add Medium Quality Sound (MQS)
3636
support for the Freescale CPUs.

0 commit comments

Comments
 (0)