diff mbox

[5/8] hw/dma/omap_dma: Add (uint32_t) casts when shifting uint16_t by 16

Message ID 1399574818-19349-6-git-send-email-peter.maydell@linaro.org
State Superseded
Headers show

Commit Message

Peter Maydell May 8, 2014, 6:46 p.m. UTC
Add missing (uint32_t) casts in cases where we're trying to
put a uint16_t value into the top half of a 32-bit field.
These were already present in some but not all places.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
For new code or code I cared about I'd use deposit32(); but omap
is pretty ancient and unloved, so this is the minimal fix.
---
 hw/dma/omap_dma.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

Comments

Peter Crosthwaite May 9, 2014, 11:47 p.m. UTC | #1
On Fri, May 9, 2014 at 4:46 AM, Peter Maydell <peter.maydell@linaro.org> wrote:
> Add missing (uint32_t) casts in cases where we're trying to
> put a uint16_t value into the top half of a 32-bit field.
> These were already present in some but not all places.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>

> ---
> For new code or code I cared about I'd use deposit32(); but omap
> is pretty ancient and unloved, so this is the minimal fix.
> ---
>  hw/dma/omap_dma.c | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/hw/dma/omap_dma.c b/hw/dma/omap_dma.c
> index 0e8cccd..0f35c42 100644
> --- a/hw/dma/omap_dma.c
> +++ b/hw/dma/omap_dma.c
> @@ -973,7 +973,7 @@ static int omap_dma_ch_reg_write(struct omap_dma_s *s,
>
>      case 0x22: /* DMA_COLOR_U */
>          ch->color &= 0xffff;
> -        ch->color |= value << 16;
> +        ch->color |= (uint32_t)value << 16;
>          break;
>
>      case 0x24: /* DMA_CCR2 */
> @@ -1043,7 +1043,7 @@ static int omap_dma_3_2_lcd_write(struct omap_dma_lcd_channel_s *s, int offset,
>
>      case 0xbca:        /* TOP_B1_U */
>          s->src_f1_top &= 0x0000ffff;
> -        s->src_f1_top |= value << 16;
> +        s->src_f1_top |= (uint32_t)value << 16;
>          break;
>
>      case 0xbcc:        /* BOT_B1_L */
> @@ -1265,7 +1265,7 @@ static int omap_dma_3_1_lcd_write(struct omap_dma_lcd_channel_s *s, int offset,
>
>      case 0x304:        /* SYS_DMA_LCD_TOP_F1_U */
>          s->src_f1_top &= 0x0000ffff;
> -        s->src_f1_top |= value << 16;
> +        s->src_f1_top |= (uint32_t)value << 16;
>          break;
>
>      case 0x306:        /* SYS_DMA_LCD_BOT_F1_L */
> @@ -1275,7 +1275,7 @@ static int omap_dma_3_1_lcd_write(struct omap_dma_lcd_channel_s *s, int offset,
>
>      case 0x308:        /* SYS_DMA_LCD_BOT_F1_U */
>          s->src_f1_bottom &= 0x0000ffff;
> -        s->src_f1_bottom |= value << 16;
> +        s->src_f1_bottom |= (uint32_t)value << 16;
>          break;
>
>      case 0x30a:        /* SYS_DMA_LCD_TOP_F2_L */
> @@ -1285,7 +1285,7 @@ static int omap_dma_3_1_lcd_write(struct omap_dma_lcd_channel_s *s, int offset,
>
>      case 0x30c:        /* SYS_DMA_LCD_TOP_F2_U */
>          s->src_f2_top &= 0x0000ffff;
> -        s->src_f2_top |= value << 16;
> +        s->src_f2_top |= (uint32_t)value << 16;
>          break;
>
>      case 0x30e:        /* SYS_DMA_LCD_BOT_F2_L */
> @@ -1295,7 +1295,7 @@ static int omap_dma_3_1_lcd_write(struct omap_dma_lcd_channel_s *s, int offset,
>
>      case 0x310:        /* SYS_DMA_LCD_BOT_F2_U */
>          s->src_f2_bottom &= 0x0000ffff;
> -        s->src_f2_bottom |= value << 16;
> +        s->src_f2_bottom |= (uint32_t)value << 16;
>          break;
>
>      default:
> --
> 1.9.2
>
>
diff mbox

Patch

diff --git a/hw/dma/omap_dma.c b/hw/dma/omap_dma.c
index 0e8cccd..0f35c42 100644
--- a/hw/dma/omap_dma.c
+++ b/hw/dma/omap_dma.c
@@ -973,7 +973,7 @@  static int omap_dma_ch_reg_write(struct omap_dma_s *s,
 
     case 0x22:	/* DMA_COLOR_U */
         ch->color &= 0xffff;
-        ch->color |= value << 16;
+        ch->color |= (uint32_t)value << 16;
         break;
 
     case 0x24:	/* DMA_CCR2 */
@@ -1043,7 +1043,7 @@  static int omap_dma_3_2_lcd_write(struct omap_dma_lcd_channel_s *s, int offset,
 
     case 0xbca:	/* TOP_B1_U */
         s->src_f1_top &= 0x0000ffff;
-        s->src_f1_top |= value << 16;
+        s->src_f1_top |= (uint32_t)value << 16;
         break;
 
     case 0xbcc:	/* BOT_B1_L */
@@ -1265,7 +1265,7 @@  static int omap_dma_3_1_lcd_write(struct omap_dma_lcd_channel_s *s, int offset,
 
     case 0x304:	/* SYS_DMA_LCD_TOP_F1_U */
         s->src_f1_top &= 0x0000ffff;
-        s->src_f1_top |= value << 16;
+        s->src_f1_top |= (uint32_t)value << 16;
         break;
 
     case 0x306:	/* SYS_DMA_LCD_BOT_F1_L */
@@ -1275,7 +1275,7 @@  static int omap_dma_3_1_lcd_write(struct omap_dma_lcd_channel_s *s, int offset,
 
     case 0x308:	/* SYS_DMA_LCD_BOT_F1_U */
         s->src_f1_bottom &= 0x0000ffff;
-        s->src_f1_bottom |= value << 16;
+        s->src_f1_bottom |= (uint32_t)value << 16;
         break;
 
     case 0x30a:	/* SYS_DMA_LCD_TOP_F2_L */
@@ -1285,7 +1285,7 @@  static int omap_dma_3_1_lcd_write(struct omap_dma_lcd_channel_s *s, int offset,
 
     case 0x30c:	/* SYS_DMA_LCD_TOP_F2_U */
         s->src_f2_top &= 0x0000ffff;
-        s->src_f2_top |= value << 16;
+        s->src_f2_top |= (uint32_t)value << 16;
         break;
 
     case 0x30e:	/* SYS_DMA_LCD_BOT_F2_L */
@@ -1295,7 +1295,7 @@  static int omap_dma_3_1_lcd_write(struct omap_dma_lcd_channel_s *s, int offset,
 
     case 0x310:	/* SYS_DMA_LCD_BOT_F2_U */
         s->src_f2_bottom &= 0x0000ffff;
-        s->src_f2_bottom |= value << 16;
+        s->src_f2_bottom |= (uint32_t)value << 16;
         break;
 
     default: