mailbox: arm_mhuv2: Fix sparse warnings
This patch fixes a bunch of sparse warnings in the newly added arm_mhuv2 driver. drivers/mailbox/arm_mhuv2.c:506:24: warning: incorrect type in argument 1 (different address spaces) drivers/mailbox/arm_mhuv2.c:506:24: expected void const volatile [noderef] __iomem *addr drivers/mailbox/arm_mhuv2.c:506:24: got unsigned int [usertype] * drivers/mailbox/arm_mhuv2.c:547:42: warning: incorrect type in argument 2 (different address spaces) drivers/mailbox/arm_mhuv2.c:547:42: expected unsigned int [usertype] *reg drivers/mailbox/arm_mhuv2.c:547:42: got unsigned int [noderef] __iomem * drivers/mailbox/arm_mhuv2.c:625:42: warning: incorrect type in argument 2 (different address spaces) drivers/mailbox/arm_mhuv2.c:625:42: expected unsigned int [usertype] *reg drivers/mailbox/arm_mhuv2.c:625:42: got unsigned int [noderef] __iomem * drivers/mailbox/arm_mhuv2.c:972:24: warning: dereference of noderef expression drivers/mailbox/arm_mhuv2.c:973:22: warning: dereference of noderef expression drivers/mailbox/arm_mhuv2.c:993:25: warning: dereference of noderef expression drivers/mailbox/arm_mhuv2.c:1026:24: warning: dereference of noderef expression drivers/mailbox/arm_mhuv2.c:1027:22: warning: dereference of noderef expression drivers/mailbox/arm_mhuv2.c:1048:17: warning: dereference of noderef expression Reported-by: kernel test robot <lkp@intel.com> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
This commit is contained in:
parent
c319f78cba
commit
af59bcff8a
|
@ -238,19 +238,19 @@ struct mhuv2_mbox_chan_priv {
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Macro for reading a bitfield within a physically mapped packed struct */
|
/* Macro for reading a bitfield within a physically mapped packed struct */
|
||||||
#define readl_relaxed_bitfield(_regptr, _field) \
|
#define readl_relaxed_bitfield(_regptr, _type, _field) \
|
||||||
({ \
|
({ \
|
||||||
u32 _regval; \
|
u32 _regval; \
|
||||||
_regval = readl_relaxed((_regptr)); \
|
_regval = readl_relaxed((_regptr)); \
|
||||||
(*(typeof((_regptr)))(&_regval))._field; \
|
(*(_type *)(&_regval))._field; \
|
||||||
})
|
})
|
||||||
|
|
||||||
/* Macro for writing a bitfield within a physically mapped packed struct */
|
/* Macro for writing a bitfield within a physically mapped packed struct */
|
||||||
#define writel_relaxed_bitfield(_value, _regptr, _field) \
|
#define writel_relaxed_bitfield(_value, _regptr, _type, _field) \
|
||||||
({ \
|
({ \
|
||||||
u32 _regval; \
|
u32 _regval; \
|
||||||
_regval = readl_relaxed(_regptr); \
|
_regval = readl_relaxed(_regptr); \
|
||||||
(*(typeof(_regptr))(&_regval))._field = _value; \
|
(*(_type *)(&_regval))._field = _value; \
|
||||||
writel_relaxed(_regval, _regptr); \
|
writel_relaxed(_regval, _regptr); \
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -496,7 +496,7 @@ static const struct mhuv2_protocol_ops mhuv2_data_transfer_ops = {
|
||||||
|
|
||||||
/* Interrupt handlers */
|
/* Interrupt handlers */
|
||||||
|
|
||||||
static struct mbox_chan *get_irq_chan_comb(struct mhuv2 *mhu, u32 *reg)
|
static struct mbox_chan *get_irq_chan_comb(struct mhuv2 *mhu, u32 __iomem *reg)
|
||||||
{
|
{
|
||||||
struct mbox_chan *chans = mhu->mbox.chans;
|
struct mbox_chan *chans = mhu->mbox.chans;
|
||||||
int channel = 0, i, offset = 0, windows, protocol, ch_wn;
|
int channel = 0, i, offset = 0, windows, protocol, ch_wn;
|
||||||
|
@ -969,8 +969,8 @@ static int mhuv2_tx_init(struct amba_device *adev, struct mhuv2 *mhu,
|
||||||
mhu->mbox.ops = &mhuv2_sender_ops;
|
mhu->mbox.ops = &mhuv2_sender_ops;
|
||||||
mhu->send = reg;
|
mhu->send = reg;
|
||||||
|
|
||||||
mhu->windows = readl_relaxed_bitfield(&mhu->send->mhu_cfg, num_ch);
|
mhu->windows = readl_relaxed_bitfield(&mhu->send->mhu_cfg, struct mhu_cfg_t, num_ch);
|
||||||
mhu->minor = readl_relaxed_bitfield(&mhu->send->aidr, arch_minor_rev);
|
mhu->minor = readl_relaxed_bitfield(&mhu->send->aidr, struct aidr_t, arch_minor_rev);
|
||||||
|
|
||||||
spin_lock_init(&mhu->doorbell_pending_lock);
|
spin_lock_init(&mhu->doorbell_pending_lock);
|
||||||
|
|
||||||
|
@ -990,7 +990,7 @@ static int mhuv2_tx_init(struct amba_device *adev, struct mhuv2 *mhu,
|
||||||
mhu->mbox.txdone_poll = false;
|
mhu->mbox.txdone_poll = false;
|
||||||
mhu->irq = adev->irq[0];
|
mhu->irq = adev->irq[0];
|
||||||
|
|
||||||
writel_relaxed_bitfield(1, &mhu->send->int_en, chcomb);
|
writel_relaxed_bitfield(1, &mhu->send->int_en, struct int_en_t, chcomb);
|
||||||
|
|
||||||
/* Disable all channel interrupts */
|
/* Disable all channel interrupts */
|
||||||
for (i = 0; i < mhu->windows; i++)
|
for (i = 0; i < mhu->windows; i++)
|
||||||
|
@ -1023,8 +1023,8 @@ static int mhuv2_rx_init(struct amba_device *adev, struct mhuv2 *mhu,
|
||||||
mhu->mbox.ops = &mhuv2_receiver_ops;
|
mhu->mbox.ops = &mhuv2_receiver_ops;
|
||||||
mhu->recv = reg;
|
mhu->recv = reg;
|
||||||
|
|
||||||
mhu->windows = readl_relaxed_bitfield(&mhu->recv->mhu_cfg, num_ch);
|
mhu->windows = readl_relaxed_bitfield(&mhu->recv->mhu_cfg, struct mhu_cfg_t, num_ch);
|
||||||
mhu->minor = readl_relaxed_bitfield(&mhu->recv->aidr, arch_minor_rev);
|
mhu->minor = readl_relaxed_bitfield(&mhu->recv->aidr, struct aidr_t, arch_minor_rev);
|
||||||
|
|
||||||
mhu->irq = adev->irq[0];
|
mhu->irq = adev->irq[0];
|
||||||
if (!mhu->irq) {
|
if (!mhu->irq) {
|
||||||
|
@ -1045,7 +1045,7 @@ static int mhuv2_rx_init(struct amba_device *adev, struct mhuv2 *mhu,
|
||||||
writel_relaxed(0xFFFFFFFF, &mhu->recv->ch_wn[i].mask_set);
|
writel_relaxed(0xFFFFFFFF, &mhu->recv->ch_wn[i].mask_set);
|
||||||
|
|
||||||
if (mhu->minor)
|
if (mhu->minor)
|
||||||
writel_relaxed_bitfield(1, &mhu->recv->int_en, chcomb);
|
writel_relaxed_bitfield(1, &mhu->recv->int_en, struct int_en_t, chcomb);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue