Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

ASoC: Use of_reserved_mem_region_to_resource() for "memory-region"

Use the newly added of_reserved_mem_region_to_resource() function to
handle "memory-region" properties.

Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: Tzung-Bi Shih <tzungbi@kernel.org>
Reviewed-by: Cheng-Yi Chiang <cychiang@chromium.org>
Link: https://patch.msgid.link/20250703183523.2075276-1-robh@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Rob Herring (Arm) and committed by
Mark Brown
bc163bae baee26a9

+21 -65
+12 -16
sound/soc/codecs/cros_ec_codec.c
··· 18 18 #include <linux/module.h> 19 19 #include <linux/of.h> 20 20 #include <linux/of_address.h> 21 + #include <linux/of_reserved_mem.h> 21 22 #include <linux/platform_data/cros_ec_commands.h> 22 23 #include <linux/platform_data/cros_ec_proto.h> 23 24 #include <linux/platform_device.h> ··· 962 961 struct ec_response_ec_codec_get_capabilities r; 963 962 int ret; 964 963 #ifdef CONFIG_OF 965 - struct device_node *node; 966 964 struct resource res; 967 965 u64 ec_shm_size; 968 966 const __be32 *regaddr_p; ··· 981 981 priv->ec_shm_addr, priv->ec_shm_len); 982 982 } 983 983 984 - node = of_parse_phandle(dev->of_node, "memory-region", 0); 985 - if (node) { 986 - ret = of_address_to_resource(node, 0, &res); 987 - if (!ret) { 988 - priv->ap_shm_phys_addr = res.start; 989 - priv->ap_shm_len = resource_size(&res); 990 - priv->ap_shm_addr = 991 - (uint64_t)(uintptr_t)devm_ioremap_wc( 992 - dev, priv->ap_shm_phys_addr, 993 - priv->ap_shm_len); 994 - priv->ap_shm_last_alloc = priv->ap_shm_phys_addr; 984 + ret = of_reserved_mem_region_to_resource(dev->of_node, 0, &res); 985 + if (!ret) { 986 + priv->ap_shm_phys_addr = res.start; 987 + priv->ap_shm_len = resource_size(&res); 988 + priv->ap_shm_addr = 989 + (uint64_t)(uintptr_t)devm_ioremap_wc( 990 + dev, priv->ap_shm_phys_addr, 991 + priv->ap_shm_len); 992 + priv->ap_shm_last_alloc = priv->ap_shm_phys_addr; 995 993 996 - dev_dbg(dev, "ap_shm_phys_addr=%#llx len=%#x\n", 997 - priv->ap_shm_phys_addr, priv->ap_shm_len); 998 - } 999 - of_node_put(node); 994 + dev_dbg(dev, "ap_shm_phys_addr=%#llx len=%#x\n", 995 + priv->ap_shm_phys_addr, priv->ap_shm_len); 1000 996 } 1001 997 #endif 1002 998
+7 -29
sound/soc/sof/imx/imx-common.c
··· 282 282 static int imx_parse_ioremap_memory(struct snd_sof_dev *sdev) 283 283 { 284 284 const struct imx_chip_info *chip_info; 285 - struct reserved_mem *reserved; 286 285 struct platform_device *pdev; 287 - struct device_node *res_np; 288 - phys_addr_t base, size; 289 - struct resource *res; 286 + struct resource *res, _res; 290 287 int i, blk_type, ret; 291 288 292 289 pdev = to_platform_device(sdev->dev); ··· 304 307 "failed to fetch %s resource\n", 305 308 chip_info->memory[i].name); 306 309 307 - base = res->start; 308 - size = resource_size(res); 309 310 } else { 310 - ret = of_property_match_string(pdev->dev.of_node, 311 - "memory-region-names", 312 - chip_info->memory[i].name); 311 + ret = of_reserved_mem_region_to_resource_byname(pdev->dev.of_node, 312 + chip_info->memory[i].name, 313 + &_res); 313 314 if (ret < 0) 314 315 return dev_err_probe(sdev->dev, ret, 315 - "no valid index for %s\n", 316 + "no valid entry for %s\n", 316 317 chip_info->memory[i].name); 317 - 318 - res_np = of_parse_phandle(pdev->dev.of_node, 319 - "memory-region", 320 - ret); 321 - if (!res_np) 322 - return dev_err_probe(sdev->dev, -ENODEV, 323 - "failed to parse phandle %s\n", 324 - chip_info->memory[i].name); 325 - 326 - reserved = of_reserved_mem_lookup(res_np); 327 - of_node_put(res_np); 328 - if (!reserved) 329 - return dev_err_probe(sdev->dev, -ENODEV, 330 - "failed to get %s reserved\n", 331 - chip_info->memory[i].name); 332 - 333 - base = reserved->base; 334 - size = reserved->size; 318 + res = &_res; 335 319 } 336 320 337 - sdev->bar[blk_type] = devm_ioremap(sdev->dev, base, size); 321 + sdev->bar[blk_type] = devm_ioremap_resource(sdev->dev, res); 338 322 if (!sdev->bar[blk_type]) 339 323 return dev_err_probe(sdev->dev, 340 324 -ENOMEM,
+1 -10
sound/soc/sof/mediatek/mt8186/mt8186.c
··· 12 12 #include <linux/delay.h> 13 13 #include <linux/firmware.h> 14 14 #include <linux/io.h> 15 - #include <linux/of_address.h> 16 15 #include <linux/of_irq.h> 17 16 #include <linux/of_platform.h> 18 17 #include <linux/of_reserved_mem.h> ··· 45 46 { 46 47 struct resource *mmio; 47 48 struct resource res; 48 - struct device_node *mem_region; 49 49 struct device *dev = &pdev->dev; 50 50 struct mtk_adsp_chip_info *adsp = data; 51 51 int ret; ··· 55 57 return ret; 56 58 } 57 59 58 - mem_region = of_parse_phandle(dev->of_node, "memory-region", 1); 59 - if (!mem_region) { 60 - dev_err(dev, "no memory-region sysmem phandle\n"); 61 - return -ENODEV; 62 - } 63 - 64 - ret = of_address_to_resource(mem_region, 0, &res); 65 - of_node_put(mem_region); 60 + ret = of_reserved_mem_region_to_resource(dev->of_node, 1, &res); 66 61 if (ret) { 67 62 dev_err(dev, "of_address_to_resource sysmem failed\n"); 68 63 return ret;
+1 -10
sound/soc/sof/mediatek/mt8195/mt8195.c
··· 12 12 #include <linux/delay.h> 13 13 #include <linux/firmware.h> 14 14 #include <linux/io.h> 15 - #include <linux/of_address.h> 16 15 #include <linux/of_irq.h> 17 16 #include <linux/of_platform.h> 18 17 #include <linux/of_reserved_mem.h> ··· 45 46 { 46 47 struct resource *mmio; 47 48 struct resource res; 48 - struct device_node *mem_region; 49 49 struct device *dev = &pdev->dev; 50 50 struct mtk_adsp_chip_info *adsp = data; 51 51 int ret; ··· 55 57 return ret; 56 58 } 57 59 58 - mem_region = of_parse_phandle(dev->of_node, "memory-region", 1); 59 - if (!mem_region) { 60 - dev_err(dev, "no memory-region sysmem phandle\n"); 61 - return -ENODEV; 62 - } 63 - 64 - ret = of_address_to_resource(mem_region, 0, &res); 65 - of_node_put(mem_region); 60 + ret = of_reserved_mem_region_to_resource(dev->of_node, 1, &res); 66 61 if (ret) { 67 62 dev_err(dev, "of_address_to_resource sysmem failed\n"); 68 63 return ret;