Message ID | 1441071594-15941-3-git-send-email-sboyd@codeaurora.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon 31 Aug 18:39 PDT 2015, Stephen Boyd wrote: > We already have a function to do this and it silences some sparse > warnings along the way. > Didn't know that, thanks. Do you know why there's no equivalent for transfers in the other direction? Should we hack one up to do the same simplification in smd_copy_from_fifo()? Reviewed-by: Bjorn Andersson <bjorn.andersson@sonymobile.com> > Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> Regards, Bjorn
On 08/31, Bjorn Andersson wrote: > On Mon 31 Aug 18:39 PDT 2015, Stephen Boyd wrote: > > > We already have a function to do this and it silences some sparse > > warnings along the way. > > > > Didn't know that, thanks. Do you know why there's no equivalent for > transfers in the other direction? Should we hack one up to do the same > simplification in smd_copy_from_fifo()? Don't know. We can certainly write one although it would be nice if we had two users. I'll take a look.
On 09/01/2015 11:03 AM, Stephen Boyd wrote: > On 08/31, Bjorn Andersson wrote: >> On Mon 31 Aug 18:39 PDT 2015, Stephen Boyd wrote: >> >>> We already have a function to do this and it silences some sparse >>> warnings along the way. >>> >> Didn't know that, thanks. Do you know why there's no equivalent for >> transfers in the other direction? Should we hack one up to do the same >> simplification in smd_copy_from_fifo()? > Don't know. We can certainly write one although it would be nice > if we had two users. I'll take a look. > Looks like we can convert smd and bcm47xx_nvram over. Also, we need to add it or move the readl_relaxed() to a __raw_readl() in smd_copy_from_fifo() because it's doing byte swapping that we don't want.
diff --git a/drivers/soc/qcom/smd.c b/drivers/soc/qcom/smd.c index c16547b85e05..91b7f5668962 100644 --- a/drivers/soc/qcom/smd.c +++ b/drivers/soc/qcom/smd.c @@ -371,20 +371,15 @@ static void qcom_smd_channel_set_state(struct qcom_smd_channel *channel, /* * Copy count bytes of data using 32bit accesses, if that's required. */ -static void smd_copy_to_fifo(void __iomem *_dst, - const void *_src, +static void smd_copy_to_fifo(void __iomem *dst, + const void *src, size_t count, bool word_aligned) { - u32 *dst = (u32 *)_dst; - u32 *src = (u32 *)_src; - if (word_aligned) { - count /= sizeof(u32); - while (count--) - writel_relaxed(*src++, dst++); + __iowrite32_copy(dst, src, count / sizeof(u32)); } else { - memcpy_toio(_dst, _src, count); + memcpy_toio(dst, src, count); } }
We already have a function to do this and it silences some sparse warnings along the way. Cc: Bjorn Andersson <bjorn.andersson@sonymobile.com> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> --- drivers/soc/qcom/smd.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-)