tree-wide: remove legacy platform_shared_get()#10961
Conversation
There was a problem hiding this comment.
Pull request overview
This PR removes the legacy platform_shared_get() helper across the codebase and updates all call sites to use direct pointers, reflecting that the helper is effectively a no-op on supported builds and avoiding unnecessary indirection.
Changes:
- Replaced
platform_shared_get(&obj, sizeof(obj))with direct pointer usage (&obj/obj) in component registration and various shared-structure initializations. - Deleted the inline
platform_shared_get()definitions from multiple platformmemory.hheaders (including the previously non-trivial cAVS variant). - Dropped a now-redundant
platform_shared_get()call insrc/lib/clk.c.
Reviewed changes
Copilot reviewed 65 out of 65 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/samples/audio/smart_amp_test_ipc3.c | Register component driver info directly. |
| src/samples/audio/detect_test.c | Register component driver info directly. |
| src/platform/qemu_xtensa/include/platform/lib/memory.h | Remove no-op platform_shared_get() definition. |
| src/platform/posix/include/platform/lib/memory.h | Remove no-op platform_shared_get() definition. |
| src/platform/mtk/include/platform/lib/memory.h | Remove no-op platform_shared_get() definition. |
| src/platform/mt8365/platform.c | Use direct pointer for timer_shared. |
| src/platform/mt8365/lib/memory.c | Use direct pointer for memmap. |
| src/platform/mt8365/lib/clk.c | Use direct pointer for platform_clocks_info. |
| src/platform/mt8365/include/platform/lib/memory.h | Remove no-op platform_shared_get() definition. |
| src/platform/mt8196/platform.c | Use direct pointer for timer_shared. |
| src/platform/mt8196/lib/memory.c | Use direct pointer for memmap. |
| src/platform/mt8196/lib/clk.c | Use direct pointer for platform_clocks_info. |
| src/platform/mt8196/include/platform/lib/memory.h | Remove no-op platform_shared_get() definition. |
| src/platform/mt8195/platform.c | Use direct pointer for timer_shared. |
| src/platform/mt8195/lib/memory.c | Use direct pointer for memmap. |
| src/platform/mt8195/lib/clk.c | Use direct pointer for platform_clocks_info. |
| src/platform/mt8195/include/platform/lib/memory.h | Remove no-op platform_shared_get() definition. |
| src/platform/mt8188/platform.c | Use direct pointer for timer_shared. |
| src/platform/mt8188/lib/memory.c | Use direct pointer for memmap. |
| src/platform/mt8188/lib/clk.c | Use direct pointer for platform_clocks_info. |
| src/platform/mt8188/include/platform/lib/memory.h | Remove no-op platform_shared_get() definition. |
| src/platform/mt8186/platform.c | Use direct pointer for timer_shared. |
| src/platform/mt8186/lib/memory.c | Use direct pointer for memmap. |
| src/platform/mt8186/lib/clk.c | Use direct pointer for platform_clocks_info. |
| src/platform/mt8186/include/platform/lib/memory.h | Remove no-op platform_shared_get() definition. |
| src/platform/library/include/platform/lib/memory.h | Remove no-op platform_shared_get() definition. |
| src/platform/intel/cavs/include/cavs/lib/memory.h | Remove platform_shared_get() (previously conditional invalidate/alias). |
| src/platform/intel/ace/include/ace/lib/memory.h | Remove no-op platform_shared_get() definition. |
| src/platform/imx95/include/platform/lib/memory.h | Remove no-op platform_shared_get() definition. |
| src/platform/imx93_a55/include/platform/lib/memory.h | Remove no-op platform_shared_get() definition. |
| src/platform/imx8ulp/lib/memory.c | Use direct pointer for memmap. |
| src/platform/imx8ulp/lib/clk.c | Use direct pointer for platform_clocks_info. |
| src/platform/imx8ulp/include/platform/lib/memory.h | Remove no-op platform_shared_get() definition. |
| src/platform/imx8m/lib/memory.c | Use direct pointer for memmap. |
| src/platform/imx8m/lib/clk.c | Use direct pointer for platform_clocks_info. |
| src/platform/imx8m/include/platform/lib/memory.h | Remove no-op platform_shared_get() definition. |
| src/platform/imx8/lib/memory.c | Use direct pointer for memmap. |
| src/platform/imx8/lib/clk.c | Use direct pointer for platform_clocks_info. |
| src/platform/imx8/include/platform/lib/memory.h | Remove no-op platform_shared_get() definition. |
| src/platform/amd/vangogh/include/platform/lib/memory.h | Remove no-op platform_shared_get() definition. |
| src/platform/amd/renoir/platform.c | Use direct pointer for timer_shared. |
| src/platform/amd/renoir/lib/memory.c | Use direct pointer for memmap. |
| src/platform/amd/renoir/lib/clk.c | Use direct pointer for platform_clocks_info. |
| src/platform/amd/renoir/include/platform/lib/memory.h | Remove no-op platform_shared_get() definition. |
| src/platform/amd/rembrandt/include/platform/lib/memory.h | Remove no-op platform_shared_get() definition. |
| src/platform/amd/acp_7_x/include/platform/lib/memory.h | Remove no-op platform_shared_get() definition. |
| src/platform/amd/acp_7_0/include/platform/lib/memory.h | Remove no-op platform_shared_get() definition. |
| src/platform/amd/acp_6_3/include/platform/lib/memory.h | Remove no-op platform_shared_get() definition. |
| src/lib/notifier.c | Use direct pointer for shared notifier data. |
| src/lib/clk.c | Remove redundant platform_shared_get() call. |
| src/include/sof/audio/module_adapter/module/generic.h | Register module adapter driver info directly. |
| src/idc/idc.c | Use direct pointer for shared IDC payload. |
| src/drivers/interrupt.c | Use direct pointer for shared cascade root. |
| src/audio/tone/tone-ipc3.c | Register component driver info directly. |
| src/audio/selector/selector.c | Register component driver info directly. |
| src/audio/pipeline/pipeline-graph.c | Use direct pointer for shared pipeline position struct. |
| src/audio/kpb.c | Register component driver info directly. |
| src/audio/host-zephyr.c | Register component driver info directly. |
| src/audio/host-legacy.c | Register component driver info directly. |
| src/audio/google/google_hotword_detect.c | Register component driver info directly. |
| src/audio/dai-zephyr.c | Register component driver info directly. |
| src/audio/dai-legacy.c | Register component driver info directly. |
| src/audio/component.c | Use direct pointer for shared component driver list. |
| src/audio/chain_dma.c | Register component driver info directly. |
| src/audio/base_fw.c | Register component driver info directly. |
jsarha
left a comment
There was a problem hiding this comment.
How about adding a macro checking that the address is uncached and putting it in the places that used to have platform_shared_get()?
@jsarha that would be a functional change. Currently it's a NOP everywhere. Why should we change that? |
platform_shared_get() was returning its first argument and not doing anything else in all int implementation but one - cAVS with multicore but with no Zephyr. And such builds haven't been supported in SOF for a long time. Remove platform_shared_get() completely. Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Functional change on in debug build, and its NOP everywhere but one place. There is some information there in the code that suggest's that the piece of memory is shared between the cores. With your change that information is lost, the macro/asssert would keep it in there in some form. But up to you, just a suggestion. |
platform_shared_get() was returning its first argument and not doing anything else in all int implementation but one - cAVS with multicore but with no Zephyr. And such builds haven't been supported in SOF for a long time. Remove platform_shared_get() completely.