ringhd = (volatile struct sblock_ring_header *)(&sblock->ring->header->ring);
poolhd = (volatile struct sblock_ring_header *)(&sblock->ring->header->pool);
- seq_printf(m, "sblock dst 0x%0x, channel: 0x%0x, state: %d, smem_virt: 0x%lx, smem_addr: 0x%0x, smem_size: 0x%0x, txblksz: %d, rxblksz: %d \n",
+ seq_printf(m, "sblock dst 0x%0x, channel: 0x%0x, state: %d, smem_virt: %p, smem_addr: 0x%0x, smem_size: 0x%0x, txblksz: %d, rxblksz: %d \n",
sblock->dst, sblock->channel, sblock->state,
- (size_t)sblock->smem_virt, sblock->smem_addr,
+ sblock->smem_virt, sblock->smem_addr,
sblock->smem_size, sblock->txblksz, sblock->rxblksz );
- seq_printf(m, "sblock ring: txblk_virt :0x%lx, rxblk_virt :0x%lx \n",
- (size_t)ring->txblk_virt, (size_t)ring->rxblk_virt);
+ seq_printf(m, "sblock ring: txblk_virt :%p, rxblk_virt :%p \n",
+ ring->txblk_virt, ring->rxblk_virt);
seq_printf(m, "sblock ring header: rxblk_addr :0x%0x, rxblk_rdptr :0x%0x, rxblk_wrptr :0x%0x, rxblk_size :%d, rxblk_count :%d, rxblk_blks: 0x%0x \n",
ringhd->rxblk_addr, ringhd->rxblk_rdptr,
ringhd->rxblk_wrptr, ringhd->rxblk_size,
for (i = 0; i < num; i++) {
base = (size_t)ioremap_nocache((uint32_t)info[i].ring_base, info[i].ring_size);
- if(base == NULL){
- pr_info("sipc:[%d] ioremap return NULL\n");
+ if(!base){
+ pr_info("sipc:[%d] ioremap return NULL\n", i);
return ENOMEM;
}
- pr_info("sipc:[%d] after ioremap vbase=0x%lx, pbase=0x%x, size=0x%x\n",
+ pr_info("sipc:[%d] after ioremap vbase=0x%zx, pbase=0x%x, size=0x%x\n",
i, base, info[i].ring_base, info[i].ring_size);
inst[i].txbuf_size = SMSG_TXBUF_SIZE / sizeof(struct smsg);
inst[i].txbuf_addr = base + SMSG_TXBUF_ADDR;
}
info[i].cp2ap_int_ctrl = SPRD_DEV_P2V(int_ctrl_phy[1]);
- pr_info("sipc:[%d] ap2cp_int_ctrl=0x%lx, ap2cp_ctrl_phy=0x%x, cp2ap_int_ctrl=0x%lx, cp2ap_ctrl_phy=0x%x\n",
+ pr_info("sipc:[%d] ap2cp_int_ctrl=0x%x, ap2cp_ctrl_phy=0x%x, cp2ap_int_ctrl=0x%x, cp2ap_ctrl_phy=0x%x\n",
i, info[i].ap2cp_int_ctrl, int_ctrl_phy[0], info[i].cp2ap_int_ctrl, int_ctrl_phy[1]);
ret = of_property_read_u32(nchd, "sprd,trig", &info[i].ap2cp_bit_trig);
ipc->rxirq_clear();
}
- while (readl(ipc->rxbuf_wrptr) != readl(ipc->rxbuf_rdptr)) {
- rxpos = (readl(ipc->rxbuf_rdptr) & (ipc->rxbuf_size - 1)) *
+ while (readl((void __iomem __force *)ipc->rxbuf_wrptr) !=
+ readl((void __iomem __force *)ipc->rxbuf_rdptr)) {
+ rxpos = (readl((void __iomem __force *)ipc->rxbuf_rdptr) &
+ (ipc->rxbuf_size - 1)) *
sizeof (struct smsg) + ipc->rxbuf_addr;
msg = (struct smsg *)rxpos;
pr_debug("irq get smsg: wrptr=%u, rdptr=%u, rxpos=0x%lx\n",
- readl(ipc->rxbuf_wrptr), readl(ipc->rxbuf_rdptr), rxpos);
+ readl((void __iomem __force *)ipc->rxbuf_wrptr),
+ readl((void __iomem __force *)ipc->rxbuf_rdptr), rxpos);
pr_debug("irq read smsg: channel=%d, type=%d, flag=0x%04x, value=0x%08x\n",
msg->channel, msg->type, msg->flag, msg->value);
if(msg->type == SMSG_TYPE_DIE) {
panic("cpcrash");
else {
/* update smsg rdptr */
- writel(readl(ipc->rxbuf_rdptr) + 1, ipc->rxbuf_rdptr);
+ writel(readl((void __iomem __force *)ipc->rxbuf_rdptr) + 1,
+ (void __iomem __force *)ipc->rxbuf_rdptr);
continue;
}
msg->channel, msg->type, msg->flag, msg->value);
/* update smsg rdptr */
- writel(readl(ipc->rxbuf_rdptr) + 1, ipc->rxbuf_rdptr);
+ writel(readl((void __iomem __force *)ipc->rxbuf_rdptr) + 1,
+ (void __iomem __force *)ipc->rxbuf_rdptr);
continue;
}
msg->channel, msg->type, msg->flag, msg->value);
}
/* update smsg rdptr */
- writel(readl(ipc->rxbuf_rdptr) + 1, ipc->rxbuf_rdptr);
+ writel(readl((void __iomem __force *)ipc->rxbuf_rdptr) + 1,
+ (void __iomem __force *)ipc->rxbuf_rdptr);
continue;
}
}
/* update smsg rdptr */
- writel(readl(ipc->rxbuf_rdptr) + 1, ipc->rxbuf_rdptr);
+ writel(readl((void __iomem __force *)ipc->rxbuf_rdptr) + 1,
+ (void __iomem __force *)ipc->rxbuf_rdptr);
wake_up_interruptible_all(&(ch->rxwait));
msg->channel, msg->type, msg->flag, msg->value);
spin_lock_irqsave(&(ipc->txpinlock), flags);
- if ((int)(readl(ipc->txbuf_wrptr) -
- readl(ipc->txbuf_rdptr)) >= ipc->txbuf_size) {
+ if ((int)(readl((void __iomem __force *)ipc->txbuf_wrptr) -
+ readl((void __iomem __force *)ipc->txbuf_rdptr)) >=
+ ipc->txbuf_size) {
printk(KERN_WARNING "smsg txbuf is full!\n");
rval = -EBUSY;
goto send_failed;
}
/* calc txpos and write smsg */
- txpos = (readl(ipc->txbuf_wrptr) & (ipc->txbuf_size - 1)) *
+ txpos = (readl((void __iomem __force *)ipc->txbuf_wrptr)
+ & (ipc->txbuf_size - 1)) *
sizeof(struct smsg) + ipc->txbuf_addr;
memcpy((void *)txpos, msg, sizeof(struct smsg));
pr_debug("write smsg: wrptr=%u, rdptr=%u, txpos=0x%lx\n",
- readl(ipc->txbuf_wrptr),
- readl(ipc->txbuf_rdptr), txpos);
+ readl((void __iomem __force *)ipc->txbuf_wrptr),
+ readl((void __iomem __force *)ipc->txbuf_rdptr), txpos);
/* update wrptr */
- writel(readl(ipc->txbuf_wrptr) + 1, ipc->txbuf_wrptr);
+ writel(readl((void __iomem __force *)ipc->txbuf_wrptr) + 1,
+ (void __iomem __force *)ipc->txbuf_wrptr);
ipc->txirq_trigger();
send_failed:
seq_printf(m, "sipc: %s: \n", smsg_sipc->name);
seq_printf(m, "dst: 0x%0x, irq: 0x%0x\n",
smsg_sipc->dst, smsg_sipc->irq);
- seq_printf(m, "txbufAddr: 0x%0x, txbufsize: 0x%0x, txbufrdptr: [0x%0x]=%lu, txbufwrptr: [0x%0x]=%lu\n",
- smsg_sipc->txbuf_addr, smsg_sipc->txbuf_size, smsg_sipc->txbuf_rdptr, readl(smsg_sipc->txbuf_rdptr), smsg_sipc->txbuf_wrptr, readl(smsg_sipc->txbuf_wrptr));
- seq_printf(m, "rxbufAddr: 0x%0x, rxbufsize: 0x%0x, rxbufrdptr: [0x%0x]=%lu, rxbufwrptr: [0x%0x]=%lu\n",
- smsg_sipc->rxbuf_addr, smsg_sipc->rxbuf_size, smsg_sipc->rxbuf_rdptr, readl(smsg_sipc->rxbuf_rdptr), smsg_sipc->rxbuf_wrptr, readl(smsg_sipc->rxbuf_wrptr));
+ seq_printf(m, "txbufAddr: 0x%0lx, txbufsize: 0x%0x, txbufrdptr: [0x%0lx]=%u, txbufwrptr: [0x%0lx]=%u\n",
+ smsg_sipc->txbuf_addr, smsg_sipc->txbuf_size, smsg_sipc->txbuf_rdptr, readl((void __iomem __force *)smsg_sipc->txbuf_rdptr), smsg_sipc->txbuf_wrptr, readl((void __iomem __force *)smsg_sipc->txbuf_wrptr));
+ seq_printf(m, "rxbufAddr: 0x%0lx, rxbufsize: 0x%0x, rxbufrdptr: [0x%0lx]=%u, rxbufwrptr: [0x%0lx]=%u\n",
+ smsg_sipc->rxbuf_addr, smsg_sipc->rxbuf_size, smsg_sipc->rxbuf_rdptr, readl((void __iomem __force *)smsg_sipc->rxbuf_rdptr), smsg_sipc->rxbuf_wrptr, readl((void __iomem __force *)smsg_sipc->rxbuf_wrptr));
for (j=0; j<SMSG_CH_NR; j++) {
seq_printf(m, "channel[%d] states: %d\n", j, smsg_sipc->states[j]);