diff mbox series

firmware: meson_sm: Fix memcpy vs iomem type warnings

Message ID 20221012185234.never.936-kees@kernel.org (mailing list archive)
State New, archived
Commit 7dc69c7d073e6004a281db8f7f15cf6ebf702ea0
Headers show
Series firmware: meson_sm: Fix memcpy vs iomem type warnings | expand

Commit Message

Kees Cook Oct. 12, 2022, 6:53 p.m. UTC
Use memcpy_{toio,fromio}() instead of memcpy(). Silences warnings from
Sparse:

drivers/firmware/meson/meson_sm.c:170:17: warning: incorrect type in argument 1 (different address spaces)
drivers/firmware/meson/meson_sm.c:170:17:    expected void const *
drivers/firmware/meson/meson_sm.c:170:17:    got void [noderef] __iomem *sm_shmem_out_base
drivers/firmware/meson/meson_sm.c:170:17: warning: incorrect type in argument 2 (different address spaces)
drivers/firmware/meson/meson_sm.c:170:17:    expected void const *
drivers/firmware/meson/meson_sm.c:170:17:    got void [noderef] __iomem *sm_shmem_out_base
drivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)
drivers/firmware/meson/meson_sm.c:206:9:    expected void const *
drivers/firmware/meson/meson_sm.c:206:9:    got void [noderef] __iomem *sm_shmem_in_base
drivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)
drivers/firmware/meson/meson_sm.c:206:9:    expected void const *
drivers/firmware/meson/meson_sm.c:206:9:    got void [noderef] __iomem *sm_shmem_in_base
drivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)
drivers/firmware/meson/meson_sm.c:206:9:    expected void const *
drivers/firmware/meson/meson_sm.c:206:9:    got void [noderef] __iomem *sm_shmem_in_base
drivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)
drivers/firmware/meson/meson_sm.c:206:9:    expected void *
drivers/firmware/meson/meson_sm.c:206:9:    got void [noderef] __iomem *sm_shmem_in_base

While here, fix this warning as well:

drivers/firmware/meson/meson_sm.c:85:24: warning: Using plain integer as NULL pointer

Reported-by: kernel test robot <lkp@intel.com>
Link: https://lore.kernel.org/lkml/202210122023.zF56nCzM-lkp@intel.com
Cc: Neil Armstrong <narmstrong@baylibre.com>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Jerome Brunet <jbrunet@baylibre.com>
Cc: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-amlogic@lists.infradead.org
Signed-off-by: Kees Cook <keescook@chromium.org>
---
 drivers/firmware/meson/meson_sm.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Neil Armstrong Oct. 13, 2022, 6:35 a.m. UTC | #1
On 12/10/2022 20:53, Kees Cook wrote:
> Use memcpy_{toio,fromio}() instead of memcpy(). Silences warnings from
> Sparse:
> 
> drivers/firmware/meson/meson_sm.c:170:17: warning: incorrect type in argument 1 (different address spaces)
> drivers/firmware/meson/meson_sm.c:170:17:    expected void const *
> drivers/firmware/meson/meson_sm.c:170:17:    got void [noderef] __iomem *sm_shmem_out_base
> drivers/firmware/meson/meson_sm.c:170:17: warning: incorrect type in argument 2 (different address spaces)
> drivers/firmware/meson/meson_sm.c:170:17:    expected void const *
> drivers/firmware/meson/meson_sm.c:170:17:    got void [noderef] __iomem *sm_shmem_out_base
> drivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)
> drivers/firmware/meson/meson_sm.c:206:9:    expected void const *
> drivers/firmware/meson/meson_sm.c:206:9:    got void [noderef] __iomem *sm_shmem_in_base
> drivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)
> drivers/firmware/meson/meson_sm.c:206:9:    expected void const *
> drivers/firmware/meson/meson_sm.c:206:9:    got void [noderef] __iomem *sm_shmem_in_base
> drivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)
> drivers/firmware/meson/meson_sm.c:206:9:    expected void const *
> drivers/firmware/meson/meson_sm.c:206:9:    got void [noderef] __iomem *sm_shmem_in_base
> drivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)
> drivers/firmware/meson/meson_sm.c:206:9:    expected void *
> drivers/firmware/meson/meson_sm.c:206:9:    got void [noderef] __iomem *sm_shmem_in_base
> 
> While here, fix this warning as well:
> 
> drivers/firmware/meson/meson_sm.c:85:24: warning: Using plain integer as NULL pointer
> 
> Reported-by: kernel test robot <lkp@intel.com>
> Link: https://lore.kernel.org/lkml/202210122023.zF56nCzM-lkp@intel.com
> Cc: Neil Armstrong <narmstrong@baylibre.com>
> Cc: Kevin Hilman <khilman@baylibre.com>
> Cc: Jerome Brunet <jbrunet@baylibre.com>
> Cc: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-amlogic@lists.infradead.org
> Signed-off-by: Kees Cook <keescook@chromium.org>
> ---
>   drivers/firmware/meson/meson_sm.c | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/firmware/meson/meson_sm.c b/drivers/firmware/meson/meson_sm.c
> index 77aa5c6398aa..4efde225a580 100644
> --- a/drivers/firmware/meson/meson_sm.c
> +++ b/drivers/firmware/meson/meson_sm.c
> @@ -82,7 +82,7 @@ static void __iomem *meson_sm_map_shmem(u32 cmd_shmem, unsigned int size)
>   
>   	sm_phy_base = __meson_sm_call(cmd_shmem, 0, 0, 0, 0, 0);
>   	if (!sm_phy_base)
> -		return 0;
> +		return NULL;
>   
>   	return ioremap_cache(sm_phy_base, size);
>   }
> @@ -167,7 +167,7 @@ int meson_sm_call_read(struct meson_sm_firmware *fw, void *buffer,
>   		size = bsize;
>   
>   	if (buffer)
> -		memcpy(buffer, fw->sm_shmem_out_base, size);
> +		memcpy_fromio(buffer, fw->sm_shmem_out_base, size);
>   
>   	return ret;
>   }
> @@ -203,7 +203,7 @@ int meson_sm_call_write(struct meson_sm_firmware *fw, void *buffer,
>   	if (!fw->chip->cmd_shmem_in_base)
>   		return -EINVAL;
>   
> -	memcpy(fw->sm_shmem_in_base, buffer, size);
> +	memcpy_toio(fw->sm_shmem_in_base, buffer, size);
>   
>   	if (meson_sm_call(fw, cmd_index, &written, arg0, arg1, arg2, arg3, arg4) < 0)
>   		return -EINVAL;

Thanks,

Acked-by: Neil Armstrong <neil.armstrong@linaro.org>
Neil Armstrong Oct. 17, 2022, 3:25 p.m. UTC | #2
Hi,

On Wed, 12 Oct 2022 11:53:16 -0700, Kees Cook wrote:
> Use memcpy_{toio,fromio}() instead of memcpy(). Silences warnings from
> Sparse:
> 
> drivers/firmware/meson/meson_sm.c:170:17: warning: incorrect type in argument 1 (different address spaces)
> drivers/firmware/meson/meson_sm.c:170:17:    expected void const *
> drivers/firmware/meson/meson_sm.c:170:17:    got void [noderef] __iomem *sm_shmem_out_base
> drivers/firmware/meson/meson_sm.c:170:17: warning: incorrect type in argument 2 (different address spaces)
> drivers/firmware/meson/meson_sm.c:170:17:    expected void const *
> drivers/firmware/meson/meson_sm.c:170:17:    got void [noderef] __iomem *sm_shmem_out_base
> drivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)
> drivers/firmware/meson/meson_sm.c:206:9:    expected void const *
> drivers/firmware/meson/meson_sm.c:206:9:    got void [noderef] __iomem *sm_shmem_in_base
> drivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)
> drivers/firmware/meson/meson_sm.c:206:9:    expected void const *
> drivers/firmware/meson/meson_sm.c:206:9:    got void [noderef] __iomem *sm_shmem_in_base
> drivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)
> drivers/firmware/meson/meson_sm.c:206:9:    expected void const *
> drivers/firmware/meson/meson_sm.c:206:9:    got void [noderef] __iomem *sm_shmem_in_base
> drivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)
> drivers/firmware/meson/meson_sm.c:206:9:    expected void *
> drivers/firmware/meson/meson_sm.c:206:9:    got void [noderef] __iomem *sm_shmem_in_base
> 
> [...]

Thanks, Applied to https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git (v6.2/drivers)

[1/1] firmware: meson_sm: Fix memcpy vs iomem type warnings
      https://git.kernel.org/amlogic/c/7dc69c7d073e6004a281db8f7f15cf6ebf702ea0

These changes has been applied on the intermediate git tree [1].

The v6.2/drivers branch will then be sent via a formal Pull Request to the Linux SoC maintainers
for inclusion in their intermediate git branches in order to be sent to Linus during
the next merge window, or sooner if it's a set of fixes.

In the cases of fixes, those will be merged in the current release candidate
kernel and as soon they appear on the Linux master branch they will be
backported to the previous Stable and Long-Stable kernels [2].

The intermediate git branches are merged daily in the linux-next tree [3],
people are encouraged testing these pre-release kernels and report issues on the
relevant mailing-lists.

If problems are discovered on those changes, please submit a signed-off-by revert
patch followed by a corrective changeset.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
[3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
Kees Cook May 17, 2023, 6:25 p.m. UTC | #3
*thread necromancy*

On Mon, Oct 17, 2022 at 05:25:13PM +0200, Neil Armstrong wrote:
> Hi,
> 
> On Wed, 12 Oct 2022 11:53:16 -0700, Kees Cook wrote:
> > Use memcpy_{toio,fromio}() instead of memcpy(). Silences warnings from
> > Sparse:
> > 
> > drivers/firmware/meson/meson_sm.c:170:17: warning: incorrect type in argument 1 (different address spaces)
> > drivers/firmware/meson/meson_sm.c:170:17:    expected void const *
> > drivers/firmware/meson/meson_sm.c:170:17:    got void [noderef] __iomem *sm_shmem_out_base
> > drivers/firmware/meson/meson_sm.c:170:17: warning: incorrect type in argument 2 (different address spaces)
> > drivers/firmware/meson/meson_sm.c:170:17:    expected void const *
> > drivers/firmware/meson/meson_sm.c:170:17:    got void [noderef] __iomem *sm_shmem_out_base
> > drivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)
> > drivers/firmware/meson/meson_sm.c:206:9:    expected void const *
> > drivers/firmware/meson/meson_sm.c:206:9:    got void [noderef] __iomem *sm_shmem_in_base
> > drivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)
> > drivers/firmware/meson/meson_sm.c:206:9:    expected void const *
> > drivers/firmware/meson/meson_sm.c:206:9:    got void [noderef] __iomem *sm_shmem_in_base
> > drivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)
> > drivers/firmware/meson/meson_sm.c:206:9:    expected void const *
> > drivers/firmware/meson/meson_sm.c:206:9:    got void [noderef] __iomem *sm_shmem_in_base
> > drivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)
> > drivers/firmware/meson/meson_sm.c:206:9:    expected void *
> > drivers/firmware/meson/meson_sm.c:206:9:    got void [noderef] __iomem *sm_shmem_in_base
> > 
> > [...]
> 
> Thanks, Applied to https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git (v6.2/drivers)
> 
> [1/1] firmware: meson_sm: Fix memcpy vs iomem type warnings
>       https://git.kernel.org/amlogic/c/7dc69c7d073e6004a281db8f7f15cf6ebf702ea0
> 
> These changes has been applied on the intermediate git tree [1].
> 
> The v6.2/drivers branch will then be sent via a formal Pull Request to the Linux SoC maintainers
> for inclusion in their intermediate git branches in order to be sent to Linus during
> the next merge window, or sooner if it's a set of fixes.
> 
> In the cases of fixes, those will be merged in the current release candidate
> kernel and as soon they appear on the Linux master branch they will be
> backported to the previous Stable and Long-Stable kernels [2].
> 
> The intermediate git branches are merged daily in the linux-next tree [3],
> people are encouraged testing these pre-release kernels and report issues on the
> relevant mailing-lists.
> 
> If problems are discovered on those changes, please submit a signed-off-by revert
> patch followed by a corrective changeset.
> 
> [1] https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git
> [2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
> [3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git

Hi! This change seems to have never been mainlined and seems to have
disappeared from linux-next.
Neil Armstrong May 31, 2023, 8:59 a.m. UTC | #4
On 17/05/2023 20:25, Kees Cook wrote:
> *thread necromancy*
> 
> On Mon, Oct 17, 2022 at 05:25:13PM +0200, Neil Armstrong wrote:
>> Hi,
>>
>> On Wed, 12 Oct 2022 11:53:16 -0700, Kees Cook wrote:
>>> Use memcpy_{toio,fromio}() instead of memcpy(). Silences warnings from
>>> Sparse:
>>>
>>> drivers/firmware/meson/meson_sm.c:170:17: warning: incorrect type in argument 1 (different address spaces)
>>> drivers/firmware/meson/meson_sm.c:170:17:    expected void const *
>>> drivers/firmware/meson/meson_sm.c:170:17:    got void [noderef] __iomem *sm_shmem_out_base
>>> drivers/firmware/meson/meson_sm.c:170:17: warning: incorrect type in argument 2 (different address spaces)
>>> drivers/firmware/meson/meson_sm.c:170:17:    expected void const *
>>> drivers/firmware/meson/meson_sm.c:170:17:    got void [noderef] __iomem *sm_shmem_out_base
>>> drivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)
>>> drivers/firmware/meson/meson_sm.c:206:9:    expected void const *
>>> drivers/firmware/meson/meson_sm.c:206:9:    got void [noderef] __iomem *sm_shmem_in_base
>>> drivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)
>>> drivers/firmware/meson/meson_sm.c:206:9:    expected void const *
>>> drivers/firmware/meson/meson_sm.c:206:9:    got void [noderef] __iomem *sm_shmem_in_base
>>> drivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)
>>> drivers/firmware/meson/meson_sm.c:206:9:    expected void const *
>>> drivers/firmware/meson/meson_sm.c:206:9:    got void [noderef] __iomem *sm_shmem_in_base
>>> drivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)
>>> drivers/firmware/meson/meson_sm.c:206:9:    expected void *
>>> drivers/firmware/meson/meson_sm.c:206:9:    got void [noderef] __iomem *sm_shmem_in_base
>>>
>>> [...]
>>
>> Thanks, Applied to https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git (v6.2/drivers)
>>
>> [1/1] firmware: meson_sm: Fix memcpy vs iomem type warnings
>>        https://git.kernel.org/amlogic/c/7dc69c7d073e6004a281db8f7f15cf6ebf702ea0
>>
>> These changes has been applied on the intermediate git tree [1].
>>
>> The v6.2/drivers branch will then be sent via a formal Pull Request to the Linux SoC maintainers
>> for inclusion in their intermediate git branches in order to be sent to Linus during
>> the next merge window, or sooner if it's a set of fixes.
>>
>> In the cases of fixes, those will be merged in the current release candidate
>> kernel and as soon they appear on the Linux master branch they will be
>> backported to the previous Stable and Long-Stable kernels [2].
>>
>> The intermediate git branches are merged daily in the linux-next tree [3],
>> people are encouraged testing these pre-release kernels and report issues on the
>> relevant mailing-lists.
>>
>> If problems are discovered on those changes, please submit a signed-off-by revert
>> patch followed by a corrective changeset.
>>
>> [1] https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git
>> [2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
>> [3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
> 
> Hi! This change seems to have never been mainlined and seems to have
> disappeared from linux-next.
> 
Hi,

Indeed it was rejected by Arnd, but I failed to find time to investigate how to fix it

https://lore.kernel.org/all/4a6b34ef-f5d2-4e56-a7f6-6a7c9cdda416@app.fastmail.com/

Neil
Kees Cook June 1, 2023, 2:16 p.m. UTC | #5
On Wed, May 31, 2023 at 10:59:14AM +0200, Neil Armstrong wrote:
> On 17/05/2023 20:25, Kees Cook wrote:
> > *thread necromancy*
> > 
> > On Mon, Oct 17, 2022 at 05:25:13PM +0200, Neil Armstrong wrote:
> > > Hi,
> > > 
> > > On Wed, 12 Oct 2022 11:53:16 -0700, Kees Cook wrote:
> > > > Use memcpy_{toio,fromio}() instead of memcpy(). Silences warnings from
> > > > Sparse:
> > > > 
> > > > drivers/firmware/meson/meson_sm.c:170:17: warning: incorrect type in argument 1 (different address spaces)
> > > > drivers/firmware/meson/meson_sm.c:170:17:    expected void const *
> > > > drivers/firmware/meson/meson_sm.c:170:17:    got void [noderef] __iomem *sm_shmem_out_base
> > > > drivers/firmware/meson/meson_sm.c:170:17: warning: incorrect type in argument 2 (different address spaces)
> > > > drivers/firmware/meson/meson_sm.c:170:17:    expected void const *
> > > > drivers/firmware/meson/meson_sm.c:170:17:    got void [noderef] __iomem *sm_shmem_out_base
> > > > drivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)
> > > > drivers/firmware/meson/meson_sm.c:206:9:    expected void const *
> > > > drivers/firmware/meson/meson_sm.c:206:9:    got void [noderef] __iomem *sm_shmem_in_base
> > > > drivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)
> > > > drivers/firmware/meson/meson_sm.c:206:9:    expected void const *
> > > > drivers/firmware/meson/meson_sm.c:206:9:    got void [noderef] __iomem *sm_shmem_in_base
> > > > drivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)
> > > > drivers/firmware/meson/meson_sm.c:206:9:    expected void const *
> > > > drivers/firmware/meson/meson_sm.c:206:9:    got void [noderef] __iomem *sm_shmem_in_base
> > > > drivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)
> > > > drivers/firmware/meson/meson_sm.c:206:9:    expected void *
> > > > drivers/firmware/meson/meson_sm.c:206:9:    got void [noderef] __iomem *sm_shmem_in_base
> > > > 
> > > > [...]
> > > 
> > > Thanks, Applied to https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git (v6.2/drivers)
> > > 
> > > [1/1] firmware: meson_sm: Fix memcpy vs iomem type warnings
> > >        https://git.kernel.org/amlogic/c/7dc69c7d073e6004a281db8f7f15cf6ebf702ea0
> > > 
> > > These changes has been applied on the intermediate git tree [1].
> > > 
> > > The v6.2/drivers branch will then be sent via a formal Pull Request to the Linux SoC maintainers
> > > for inclusion in their intermediate git branches in order to be sent to Linus during
> > > the next merge window, or sooner if it's a set of fixes.
> > > 
> > > In the cases of fixes, those will be merged in the current release candidate
> > > kernel and as soon they appear on the Linux master branch they will be
> > > backported to the previous Stable and Long-Stable kernels [2].
> > > 
> > > The intermediate git branches are merged daily in the linux-next tree [3],
> > > people are encouraged testing these pre-release kernels and report issues on the
> > > relevant mailing-lists.
> > > 
> > > If problems are discovered on those changes, please submit a signed-off-by revert
> > > patch followed by a corrective changeset.
> > > 
> > > [1] https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git
> > > [2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
> > > [3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
> > 
> > Hi! This change seems to have never been mainlined and seems to have
> > disappeared from linux-next.
> > 
> Hi,
> 
> Indeed it was rejected by Arnd, but I failed to find time to investigate how to fix it
> 
> https://lore.kernel.org/all/4a6b34ef-f5d2-4e56-a7f6-6a7c9cdda416@app.fastmail.com/

Ah-ha! Thanks for the pointer.
diff mbox series

Patch

diff --git a/drivers/firmware/meson/meson_sm.c b/drivers/firmware/meson/meson_sm.c
index 77aa5c6398aa..4efde225a580 100644
--- a/drivers/firmware/meson/meson_sm.c
+++ b/drivers/firmware/meson/meson_sm.c
@@ -82,7 +82,7 @@  static void __iomem *meson_sm_map_shmem(u32 cmd_shmem, unsigned int size)
 
 	sm_phy_base = __meson_sm_call(cmd_shmem, 0, 0, 0, 0, 0);
 	if (!sm_phy_base)
-		return 0;
+		return NULL;
 
 	return ioremap_cache(sm_phy_base, size);
 }
@@ -167,7 +167,7 @@  int meson_sm_call_read(struct meson_sm_firmware *fw, void *buffer,
 		size = bsize;
 
 	if (buffer)
-		memcpy(buffer, fw->sm_shmem_out_base, size);
+		memcpy_fromio(buffer, fw->sm_shmem_out_base, size);
 
 	return ret;
 }
@@ -203,7 +203,7 @@  int meson_sm_call_write(struct meson_sm_firmware *fw, void *buffer,
 	if (!fw->chip->cmd_shmem_in_base)
 		return -EINVAL;
 
-	memcpy(fw->sm_shmem_in_base, buffer, size);
+	memcpy_toio(fw->sm_shmem_in_base, buffer, size);
 
 	if (meson_sm_call(fw, cmd_index, &written, arg0, arg1, arg2, arg3, arg4) < 0)
 		return -EINVAL;