firmware: arm_scpi: silence sparse warnings
authorHeiner Kallweit <hkallweit1@gmail.com>
Fri, 6 Oct 2017 18:59:05 +0000 (20:59 +0200)
committerSudeep Holla <sudeep.holla@arm.com>
Mon, 9 Oct 2017 09:20:02 +0000 (10:20 +0100)
At several positions in the code sparse complains about incorrect access
to __iomem annotated memory. Fix this and make sparse happy.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
drivers/firmware/arm_scpi.c

index f0c37a4..dfb373c 100644 (file)
@@ -405,19 +405,20 @@ static void scpi_process_cmd(struct scpi_chan *ch, u32 cmd)
                unsigned int len;
 
                if (scpi_info->is_legacy) {
-                       struct legacy_scpi_shared_mem *mem = ch->rx_payload;
+                       struct legacy_scpi_shared_mem __iomem *mem =
+                                                       ch->rx_payload;
 
                        /* RX Length is not replied by the legacy Firmware */
                        len = match->rx_len;
 
-                       match->status = le32_to_cpu(mem->status);
+                       match->status = ioread32(&mem->status);
                        memcpy_fromio(match->rx_buf, mem->payload, len);
                } else {
-                       struct scpi_shared_mem *mem = ch->rx_payload;
+                       struct scpi_shared_mem __iomem *mem = ch->rx_payload;
 
                        len = min(match->rx_len, CMD_SIZE(cmd));
 
-                       match->status = le32_to_cpu(mem->status);
+                       match->status = ioread32(&mem->status);
                        memcpy_fromio(match->rx_buf, mem->payload, len);
                }
 
@@ -431,11 +432,11 @@ static void scpi_process_cmd(struct scpi_chan *ch, u32 cmd)
 static void scpi_handle_remote_msg(struct mbox_client *c, void *msg)
 {
        struct scpi_chan *ch = container_of(c, struct scpi_chan, cl);
-       struct scpi_shared_mem *mem = ch->rx_payload;
+       struct scpi_shared_mem __iomem *mem = ch->rx_payload;
        u32 cmd = 0;
 
        if (!scpi_info->is_legacy)
-               cmd = le32_to_cpu(mem->command);
+               cmd = ioread32(&mem->command);
 
        scpi_process_cmd(ch, cmd);
 }
@@ -445,7 +446,7 @@ static void scpi_tx_prepare(struct mbox_client *c, void *msg)
        unsigned long flags;
        struct scpi_xfer *t = msg;
        struct scpi_chan *ch = container_of(c, struct scpi_chan, cl);
-       struct scpi_shared_mem *mem = ch->tx_payload;
+       struct scpi_shared_mem __iomem *mem = ch->tx_payload;
 
        if (t->tx_buf) {
                if (scpi_info->is_legacy)
@@ -464,7 +465,7 @@ static void scpi_tx_prepare(struct mbox_client *c, void *msg)
        }
 
        if (!scpi_info->is_legacy)
-               mem->command = cpu_to_le32(t->cmd);
+               iowrite32(t->cmd, &mem->command);
 }
 
 static struct scpi_xfer *get_scpi_xfer(struct scpi_chan *ch)