mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-16 18:08:20 +00:00
soc: fixes for 6.13
There are three small fixes for the soc tree: - A devicetee fix for the Arm Juno reference machine, so allow more interesting PCI configurations - A build fix for SCMI firmware on the NXP i.MX platform - A fix for a race condition in Arm FF-A firmware -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmdgNf4ACgkQYKtH/8kJ Uid99g/9Eve2yPqK+nAqlfFs20NE/cDvdaQ9n2Z+rU5igpvrqR62rBVG2v7AuFHZ w8Awl2iB57y1XdCxG8FE0wQ+TloiN+aLwgmbUh2st2fTjmPh6KgGq6jsGbvDli07 WrlH4PxxMm8axO2HwEWiSLsQBpeoqYvgO+6GDW5eXLtsbr6VuFNBoD6ExC/YVqsQ kCdHG+WrjA+rZyXjYZqlAknLaldLEplVPmh9riZEcdYh02QE5VXU53+ctUtYZENU VGM/638YAlnCANKYH9u5e8YmL2RgiLLNS63xSdO0krv/gCEor3txKvcG6Cie+76d n0bOu13kWdcJbrt0+wVR6ILCffAurhxZZ6L3Q+iSqJ0as/eBXeZtBKYyEl5w6vZf X32TkPmx3cvCTZG8Vs+0e4JlC/5wiPrPCTdQSStTckp7FDEs9sttEpeZWenYJNQY 7hVFj2Nx8SFv0JCB9N68CJB1KkhhRkAqNq6aKymTNJZLxAd72xJm3sOlDmOPRJ43 9j6LwQ6panUk49WNRklwuL0YajcX1jTS/MRHQfKtVCOfBD05A0BaQEDeAUeYfq2V rCFphvZn315fv6h1XLP0LkBTOJ0f+3X+0GcwtMUX8TC/AJXPnKHAuZKmujmVH8Uh mtfvVlUuvnw73LM/QlyAaG/D9Tj2wHtN2HNtTaGl6CY6zdeznRw= =+t0h -----END PGP SIGNATURE----- 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
This commit is contained in:
commit
f44d154d6e
@ -233,7 +233,7 @@
|
|||||||
#interrupt-cells = <0x1>;
|
#interrupt-cells = <0x1>;
|
||||||
compatible = "pci-host-ecam-generic";
|
compatible = "pci-host-ecam-generic";
|
||||||
device_type = "pci";
|
device_type = "pci";
|
||||||
bus-range = <0x0 0x1>;
|
bus-range = <0x0 0xff>;
|
||||||
reg = <0x0 0x40000000 0x0 0x10000000>;
|
reg = <0x0 0x40000000 0x0 0x10000000>;
|
||||||
ranges = <0x2000000 0x0 0x50000000 0x0 0x50000000 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>,
|
interrupt-map = <0 0 0 1 &gic 0 0 GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
@ -187,13 +187,18 @@ bool ffa_device_is_valid(struct ffa_device *ffa_dev)
|
|||||||
return valid;
|
return valid;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct ffa_device *ffa_device_register(const uuid_t *uuid, int vm_id,
|
struct ffa_device *
|
||||||
const struct ffa_ops *ops)
|
ffa_device_register(const struct ffa_partition_info *part_info,
|
||||||
|
const struct ffa_ops *ops)
|
||||||
{
|
{
|
||||||
int id, ret;
|
int id, ret;
|
||||||
|
uuid_t uuid;
|
||||||
struct device *dev;
|
struct device *dev;
|
||||||
struct ffa_device *ffa_dev;
|
struct ffa_device *ffa_dev;
|
||||||
|
|
||||||
|
if (!part_info)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
id = ida_alloc_min(&ffa_bus_id, 1, GFP_KERNEL);
|
id = ida_alloc_min(&ffa_bus_id, 1, GFP_KERNEL);
|
||||||
if (id < 0)
|
if (id < 0)
|
||||||
return NULL;
|
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);
|
dev_set_name(&ffa_dev->dev, "arm-ffa-%d", id);
|
||||||
|
|
||||||
ffa_dev->id = 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;
|
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);
|
ret = device_register(&ffa_dev->dev);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
@ -1387,7 +1387,6 @@ static struct notifier_block ffa_bus_nb = {
|
|||||||
static int ffa_setup_partitions(void)
|
static int ffa_setup_partitions(void)
|
||||||
{
|
{
|
||||||
int count, idx, ret;
|
int count, idx, ret;
|
||||||
uuid_t uuid;
|
|
||||||
struct ffa_device *ffa_dev;
|
struct ffa_device *ffa_dev;
|
||||||
struct ffa_dev_part_info *info;
|
struct ffa_dev_part_info *info;
|
||||||
struct ffa_partition_info *pbuf, *tpbuf;
|
struct ffa_partition_info *pbuf, *tpbuf;
|
||||||
@ -1406,23 +1405,19 @@ static int ffa_setup_partitions(void)
|
|||||||
|
|
||||||
xa_init(&drv_info->partition_info);
|
xa_init(&drv_info->partition_info);
|
||||||
for (idx = 0, tpbuf = pbuf; idx < count; idx++, tpbuf++) {
|
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
|
/* Note that if the UUID will be uuid_null, that will require
|
||||||
* ffa_bus_notifier() to find the UUID of this partition id
|
* ffa_bus_notifier() to find the UUID of this partition id
|
||||||
* with help of ffa_device_match_uuid(). FF-A v1.1 and above
|
* with help of ffa_device_match_uuid(). FF-A v1.1 and above
|
||||||
* provides UUID here for each partition as part of the
|
* provides UUID here for each partition as part of the
|
||||||
* discovery API and the same is passed.
|
* 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) {
|
if (!ffa_dev) {
|
||||||
pr_err("%s: failed to register partition ID 0x%x\n",
|
pr_err("%s: failed to register partition ID 0x%x\n",
|
||||||
__func__, tpbuf->id);
|
__func__, tpbuf->id);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
ffa_dev->properties = tpbuf->properties;
|
|
||||||
|
|
||||||
if (drv_info->version > FFA_VERSION_1_0 &&
|
if (drv_info->version > FFA_VERSION_1_0 &&
|
||||||
!(tpbuf->properties & FFA_PARTITION_AARCH64_EXEC))
|
!(tpbuf->properties & FFA_PARTITION_AARCH64_EXEC))
|
||||||
ffa_mode_32bit_set(ffa_dev);
|
ffa_mode_32bit_set(ffa_dev);
|
||||||
|
@ -15,6 +15,7 @@ config IMX_SCMI_BBM_EXT
|
|||||||
config IMX_SCMI_MISC_EXT
|
config IMX_SCMI_MISC_EXT
|
||||||
tristate "i.MX SCMI MISC EXTENSION"
|
tristate "i.MX SCMI MISC EXTENSION"
|
||||||
depends on ARM_SCMI_PROTOCOL || (COMPILE_TEST && OF)
|
depends on ARM_SCMI_PROTOCOL || (COMPILE_TEST && OF)
|
||||||
|
depends on IMX_SCMI_MISC_DRV
|
||||||
default y if ARCH_MXC
|
default y if ARCH_MXC
|
||||||
help
|
help
|
||||||
This enables i.MX System MISC control logic such as gpio expander
|
This enables i.MX System MISC control logic such as gpio expander
|
||||||
|
@ -25,7 +25,6 @@ config IMX_SCU
|
|||||||
|
|
||||||
config IMX_SCMI_MISC_DRV
|
config IMX_SCMI_MISC_DRV
|
||||||
tristate "IMX SCMI MISC Protocol driver"
|
tristate "IMX SCMI MISC Protocol driver"
|
||||||
depends on IMX_SCMI_MISC_EXT || COMPILE_TEST
|
|
||||||
default y if ARCH_MXC
|
default y if ARCH_MXC
|
||||||
help
|
help
|
||||||
The System Controller Management Interface firmware (SCMI FW) is
|
The System Controller Management Interface firmware (SCMI FW) is
|
||||||
|
@ -166,9 +166,12 @@ static inline void *ffa_dev_get_drvdata(struct ffa_device *fdev)
|
|||||||
return dev_get_drvdata(&fdev->dev);
|
return dev_get_drvdata(&fdev->dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct ffa_partition_info;
|
||||||
|
|
||||||
#if IS_REACHABLE(CONFIG_ARM_FFA_TRANSPORT)
|
#if IS_REACHABLE(CONFIG_ARM_FFA_TRANSPORT)
|
||||||
struct ffa_device *ffa_device_register(const uuid_t *uuid, int vm_id,
|
struct ffa_device *
|
||||||
const struct ffa_ops *ops);
|
ffa_device_register(const struct ffa_partition_info *part_info,
|
||||||
|
const struct ffa_ops *ops);
|
||||||
void ffa_device_unregister(struct ffa_device *ffa_dev);
|
void ffa_device_unregister(struct ffa_device *ffa_dev);
|
||||||
int ffa_driver_register(struct ffa_driver *driver, struct module *owner,
|
int ffa_driver_register(struct ffa_driver *driver, struct module *owner,
|
||||||
const char *mod_name);
|
const char *mod_name);
|
||||||
@ -176,9 +179,9 @@ void ffa_driver_unregister(struct ffa_driver *driver);
|
|||||||
bool ffa_device_is_valid(struct ffa_device *ffa_dev);
|
bool ffa_device_is_valid(struct ffa_device *ffa_dev);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
static inline
|
static inline struct ffa_device *
|
||||||
struct ffa_device *ffa_device_register(const uuid_t *uuid, int vm_id,
|
ffa_device_register(const struct ffa_partition_info *part_info,
|
||||||
const struct ffa_ops *ops)
|
const struct ffa_ops *ops)
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -29,8 +29,8 @@ config SND_SOC_FSL_SAI
|
|||||||
config SND_SOC_FSL_MQS
|
config SND_SOC_FSL_MQS
|
||||||
tristate "Medium Quality Sound (MQS) module support"
|
tristate "Medium Quality Sound (MQS) module support"
|
||||||
depends on SND_SOC_FSL_SAI
|
depends on SND_SOC_FSL_SAI
|
||||||
|
depends on IMX_SCMI_MISC_DRV || !IMX_SCMI_MISC_DRV
|
||||||
select REGMAP_MMIO
|
select REGMAP_MMIO
|
||||||
select IMX_SCMI_MISC_DRV if IMX_SCMI_MISC_EXT !=n
|
|
||||||
help
|
help
|
||||||
Say Y if you want to add Medium Quality Sound (MQS)
|
Say Y if you want to add Medium Quality Sound (MQS)
|
||||||
support for the Freescale CPUs.
|
support for the Freescale CPUs.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user