sunxi: Explicitly cast u32 pointer conversions

Some parts of the sunxi code cast explicitly between u32 values and pointers.
This is not a problem in practice, because all 64bit SoCs today only use the
lower 32 bits for their phyical address space. But we need to make sure that
the compiler is sure this is not an accident as well.

Signed-off-by: Alexander Graf <agraf@suse.de>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
master
Alexander Graf 9 years ago committed by Hans de Goede
parent 8434f03576
commit 0ea5a04fbc
  1. 2
      arch/arm/mach-sunxi/cpu_info.c
  2. 4
      arch/arm/mach-sunxi/dram_helpers.c
  3. 2
      arch/arm/mach-sunxi/usb_phy.c
  4. 2
      drivers/mmc/sunxi_mmc.c

@ -105,7 +105,7 @@ int sunxi_get_sid(unsigned int *sid)
int i;
for (i = 0; i< 4; i++)
sid[i] = readl(SUNXI_SID_BASE + 4 * i);
sid[i] = readl((ulong)SUNXI_SID_BASE + 4 * i);
return 0;
#else

@ -30,8 +30,8 @@ bool mctl_mem_matches(u32 offset)
{
/* Try to write different values to RAM at two addresses */
writel(0, CONFIG_SYS_SDRAM_BASE);
writel(0xaa55aa55, CONFIG_SYS_SDRAM_BASE + offset);
writel(0xaa55aa55, (ulong)CONFIG_SYS_SDRAM_BASE + offset);
/* Check if the same value is actually observed when reading back */
return readl(CONFIG_SYS_SDRAM_BASE) ==
readl(CONFIG_SYS_SDRAM_BASE + offset);
readl((ulong)CONFIG_SYS_SDRAM_BASE + offset);
}

@ -52,7 +52,7 @@ static struct sunxi_usb_phy {
int id;
int init_count;
int power_on_count;
int base;
ulong base;
} sunxi_usb_phy[] = {
{
.usb_rst_mask = CCM_USB_CTRL_PHY0_RST | CCM_USB_CTRL_PHY0_CLK,

@ -339,7 +339,7 @@ static int sunxi_mmc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd,
cmdval |= SUNXI_MMC_CMD_CHK_RESPONSE_CRC;
if (data) {
if ((u32) data->dest & 0x3) {
if ((u32)(long)data->dest & 0x3) {
error = -1;
goto out;
}

Loading…
Cancel
Save