Thread (25 messages) 25 messages, 5 authors, 2024-11-18

Re: [PATCH v2 2/2] firmware: add exynos acpm driver

From: Tudor Ambarus <tudor.ambarus@linaro.org>
Date: 2024-10-23 10:02:10
Also in: linux-samsung-soc, lkml


On 10/23/24 10:53 AM, Tudor Ambarus wrote:

On 10/23/24 10:00 AM, Krzysztof Kozlowski wrote:
quoted
quoted
quoted
quoted
quoted
I also cannot find any piece of code setting several of above, e.g. tx_base
I'm not writing any SRAM configuration fields, these fields are used to
read/retrive the channel parameters from SRAM.
I meany tx_base is always 0. Where is this property set? Ever?
It's not zero. My assumption is it is set in the acpm firmware, but I
Where is any assignment to this member?
In probe() you'll see that exynos_acpm->shmem is a pointer in SRAM to a
struct exynos_acpm_shmem __iomem *shmem;

Then in:

static int exynos_acpm_chans_init()
{
	struct exynos_acpm_shmem_chan __iomem *shmem_chans, *shmem_chan;
	struct exynos_acpm_shmem __iomem *shmem = exynos_acpm->shmem;
	...

	shmem_chans = exynos_acpm_get_iomem_addr(exynos_acpm->sram_base,
						 &shmem->chans);
	...
}

shmem->chans is not initialized (or tx_base). I'm using its address in
SRAM (&shmem->chans) which I then read it with readl_relaxed().

I guess one can do the same using offsetof:
shmem_chans = readl_realaxed(shmem + offsetof(struct exynos_acpm_shmem,
					      chans));
I forgot to add the sram_base, the counter example should have been:

shmem_chans = exynos_acpm->sram_base +
	      readl_realaxed(shmem + offsetof(struct exynos_acpm_shmem,
					      chans));
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help