am335x_lcdc: Fix error: array subscript 0 is outside array bounds of 'volatile uint32_t[0]'

Error: /github/workspace/sources/nuttx/arch/arm/src/common/arm_internal.h:141:51: error: array subscript 0 is outside array bounds of 'volatile uint32_t[0]' {aka 'volatile long unsigned int[]'} [-Werror=array-bounds=]
  141 | #define putreg32(v,a)  (*(volatile uint32_t *)(a) = (v))
      |                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
chip/am335x_lcdc.c:387:3: note: in expansion of macro 'putreg32'
  387 |   putreg32(AM335X_CM_WKUP_CLKMODE_DPLL_DISP, 0x4);
      |   ^~~~~~~~
In function 'am335x_lcd_initialize':
cc1: note: source object is likely at address zero
In function 'am335x_set_refclk',
    inlined from 'am335x_lcd_initialize' at chip/am335x_lcdc.c:607:9:
Error: /github/workspace/sources/nuttx/arch/arm/src/common/arm_internal.h:141:51: error: array subscript 0 is outside array bounds of 'volatile uint32_t[0]' {aka 'volatile long unsigned int[]'} [-Werror=array-bounds=]
  141 | #define putreg32(v,a)  (*(volatile uint32_t *)(a) = (v))
      |                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
chip/am335x_lcdc.c:430:3: note: in expansion of macro 'putreg32'
  430 |   putreg32(AM335X_CM_WKUP_CLKMODE_DPLL_DISP, 0x7);
      |   ^~~~~~~~
In function 'am335x_lcd_initialize':
cc1: note: source object is likely at address zero
Error: /github/workspace/sources/nuttx/arch/arm/src/common/arm_internal.h:141:25: error: array subscript 0 is outside array bounds of 'volatile uint32_t[0]' {aka 'volatile long unsigned int[]'} [-Werror=array-bounds=]
  141 | #define putreg32(v,a)  (*(volatile uint32_t *)(a) = (v))
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~
chip/am335x_lcdc.c:780:3: note: in expansion of macro 'putreg32'
  780 |   putreg32(AM335X_LCD_CLKC_ENABLE,
      |   ^~~~~~~~
cc1: note: source object is likely at address zero
Error: /github/workspace/sources/nuttx/arch/arm/src/common/arm_internal.h:141:25: error: array subscript 0 is outside array bounds of 'volatile uint32_t[0]' {aka 'volatile long unsigned int[]'} [-Werror=array-bounds=]
  141 | #define putreg32(v,a)  (*(volatile uint32_t *)(a) = (v))
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~
chip/am335x_lcdc.c:784:3: note: in expansion of macro 'putreg32'
  784 |   putreg32(AM335X_LCD_CLKC_RESET, LCD_CLKC_RESET_MAIN);
      |   ^~~~~~~~
cc1: note: source object is likely at address zero
Error: /github/workspace/sources/nuttx/arch/arm/src/common/arm_internal.h:141:25: error: array subscript 0 is outside array bounds of 'volatile uint32_t[0]' {aka 'volatile long unsigned int[]'} [-Werror=array-bounds=]
  141 | #define putreg32(v,a)  (*(volatile uint32_t *)(a) = (v))
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~
chip/am335x_lcdc.c:790:3: note: in expansion of macro 'putreg32'
  790 |   putreg32(AM335X_LCD_IRQ_EN_SET, regval);
      |   ^~~~~~~~
cc1: note: source object is likely at address zero
Error: /github/workspace/sources/nuttx/arch/arm/src/common/arm_internal.h:141:25: error: array subscript 0 is outside array bounds of 'volatile uint32_t[0]' {aka 'volatile long unsigned int[]'} [-Werror=array-bounds=]
  141 | #define putreg32(v,a)  (*(volatile uint32_t *)(a) = (v))
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~
chip/am335x_lcdc.c:796:3: note: in expansion of macro 'putreg32'
  796 |   putreg32(AM335X_LCD_SYSC, LCD_SYSC_IDLE_SMART | LCD_SYSC_STANDBY_SMART);
      |   ^~~~~~~~

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
This commit is contained in:
Xiang Xiao
2023-12-18 21:32:54 +08:00
committed by archer
parent 0d0867484a
commit d54c79126a
+8 -9
View File
@@ -384,7 +384,7 @@ static int am335x_set_refclk(uint32_t frequency)
/* Bypass mode */
putreg32(AM335X_CM_WKUP_CLKMODE_DPLL_DISP, 0x4);
putreg32(0x4, AM335X_CM_WKUP_CLKMODE_DPLL_DISP);
/* Make sure it's in bypass mode */
@@ -427,7 +427,7 @@ static int am335x_set_refclk(uint32_t frequency)
/* Locked mode */
putreg32(AM335X_CM_WKUP_CLKMODE_DPLL_DISP, 0x7);
putreg32(0x7, AM335X_CM_WKUP_CLKMODE_DPLL_DISP);
timeout = 10000;
while ((getreg32(AM335X_CM_WKUP_IDLEST_DPLL_DISP) & (1 << 0)) == 0 &&
@@ -777,23 +777,22 @@ int am335x_lcd_initialize(const struct am335x_panel_info_s *panel)
putreg32(AM335X_LCD_RASTER_CTRL, regval);
putreg32(AM335X_LCD_CLKC_ENABLE,
LCD_CLKC_ENABLE_CORE | LCD_CLKC_ENABLE_LIDD |
LCD_CLKC_ENABLE_DMA);
putreg32(LCD_CLKC_ENABLE_CORE | LCD_CLKC_ENABLE_LIDD |
LCD_CLKC_ENABLE_DMA, AM335X_LCD_CLKC_ENABLE);
putreg32(AM335X_LCD_CLKC_RESET, LCD_CLKC_RESET_MAIN);
putreg32(LCD_CLKC_RESET_MAIN, AM335X_LCD_CLKC_RESET);
up_udelay(100);
putreg32(AM335X_LCD_CLKC_RESET, 0);
putreg32(0, AM335X_LCD_CLKC_RESET);
regval = LCD_IRQ_DONE | LCD_IRQ_RR_DONE | LCD_IRQ_SYNC | LCD_IRQ_ACB |
LCD_IRQ_PL | LCD_IRQ_FUF | LCD_IRQ_EOF0 | LCD_IRQ_EOF1;
putreg32(AM335X_LCD_IRQ_EN_SET, regval);
putreg32(regval, AM335X_LCD_IRQ_EN_SET);
regval = getreg32(AM335X_LCD_RASTER_CTRL);
regval |= LCD_RASTER_CTRL_LCD_EN;
putreg32(AM335X_LCD_RASTER_CTRL, regval);
putreg32(AM335X_LCD_SYSC, LCD_SYSC_IDLE_SMART | LCD_SYSC_STANDBY_SMART);
putreg32(LCD_SYSC_IDLE_SMART | LCD_SYSC_STANDBY_SMART, AM335X_LCD_SYSC);
#ifdef CONFIG_AM335X_LCDC_BACKLIGHT
/* Turn on the back light