@@ -367,8 +367,9 @@ static int lcd_putarea(FAR struct lcd_dev_s *dev, fb_coord_t row_start, fb_coord
367367 ASSERT (get_errno () == EINTR );
368368 }
369369 if (priv -> power == 0 ) {
370+ lcddbg ("ERROR: LCD is off. putarea failed\n" );
370371 sem_post (& priv -> sem );
371- return ERROR ;
372+ return - EIO ;
372373 }
373374 //coordinate shift from (0,0) -> (1,1) and (XRES-1,YRES-1) -> (XRES,YRES)
374375 row_start += 1 ;
@@ -423,7 +424,10 @@ static int lcd_getrun(FAR struct lcd_dev_s *dev, fb_coord_t row, fb_coord_t col,
423424
424425static int lcd_getvideoinfo (FAR struct lcd_dev_s * dev , FAR struct fb_videoinfo_s * vinfo )
425426{
426- DEBUGASSERT (dev && vinfo );
427+ DEBUGASSERT (dev );
428+ if (!vinfo ) {
429+ return - EINVAL ;
430+ }
427431 //vinfo->fmt = st7785_COLORFMT; /* Color format: RGB16-565: RRRR RGGG GGGB BBBB */
428432#if defined(CONFIG_LCD_SW_ROTATION )
429433 vinfo -> xres = LCD_YRES ; /* Horizontal resolution in pixel columns */
@@ -470,6 +474,10 @@ static int lcd_getlcdinfo(FAR struct lcd_dev_s *dev, FAR struct lcd_info_s *lcdi
470474
471475static int lcd_getplaneinfo (FAR struct lcd_dev_s * dev , unsigned int planeno , FAR struct lcd_planeinfo_s * pinfo )
472476{
477+ DEBUGASSERT (dev );
478+ if (!pinfo ) {
479+ return - EINVAL ;
480+ }
473481 DEBUGASSERT (dev && pinfo && planeno == 0 );
474482 pinfo -> putrun = (struct lcd_planeinfo_s * )& lcd_putrun ; /* Put a run into LCD memory */
475483 pinfo -> putarea = (struct lcd_planeinfo_s * )& lcd_putarea ; /* Put an area into LCD */
@@ -485,6 +493,7 @@ static int lcd_getplaneinfo(FAR struct lcd_dev_s *dev, unsigned int planeno, FAR
485493
486494static int lcd_getpower (FAR struct lcd_dev_s * dev )
487495{
496+ DEBUGASSERT (dev );
488497 FAR struct mipi_lcd_dev_s * priv = (FAR struct mipi_lcd_dev_s * )dev ;
489498 return priv -> power ;
490499}
@@ -504,6 +513,8 @@ static int lcd_getpower(FAR struct lcd_dev_s *dev)
504513
505514static int lcd_power_off (FAR struct mipi_lcd_dev_s * priv )
506515{
516+ int ret ;
517+
507518 if (priv -> lcdonoff == LCD_OFF ) {
508519 lcddbg ("LCD already powered off\n" );
509520 return OK ;
@@ -513,13 +524,14 @@ static int lcd_power_off(FAR struct mipi_lcd_dev_s *priv)
513524 priv -> config -> mipi_mode_switch (CMD_MODE );
514525
515526 lcm_setting_table_t display_off_cmd = {0x28 , 0 , {0x00 }};
516- if (send_cmd (priv , display_off_cmd ) != OK ) {
517- lcddbg ("ERROR: LCD power off failed\n" );
518- return ERROR ;
527+ ret = send_cmd (priv , display_off_cmd );
528+ if (ret != OK ) {
529+ lcddbg ("ERROR: LCD power off failed ret : %d\n" , ret );
530+ return ret ;
519531 }
520532
521- priv -> lcdonoff = LCD_OFF ;
522533 priv -> config -> power_off ();
534+ priv -> lcdonoff = LCD_OFF ;
523535
524536 return OK ;
525537}
@@ -567,7 +579,7 @@ static int lcd_power_on(FAR struct mipi_lcd_dev_s *priv)
567579
568580 if (retries <= 0 ) {
569581 lcddbg ("ERROR: LCD Init sequence failed\n" );
570- return ERROR ;
582+ return - EIO ;
571583 }
572584
573585 return OK ;
@@ -580,6 +592,8 @@ static int lcd_power_on(FAR struct mipi_lcd_dev_s *priv)
580592
581593static int lcd_setpower (FAR struct lcd_dev_s * dev , int power )
582594{
595+ DEBUGASSERT (dev );
596+ int ret ;
583597 FAR struct mipi_lcd_dev_s * priv = (FAR struct mipi_lcd_dev_s * )dev ;
584598 if (power > CONFIG_LCD_MAXPOWER ) {
585599 lcddbg ("Power exceeds CONFIG_LCD_MAXPOWER %d\n" , power );
@@ -591,25 +605,29 @@ static int lcd_setpower(FAR struct lcd_dev_s *dev, int power)
591605 }
592606
593607 if (power == priv -> power ) {
594- lcddbg ("ERROR: Already in the requested power state(%d)\n" , power );
608+ lcddbg ("Already in the requested power state(%d)\n" , power );
595609 sem_post (& priv -> sem );
596610 return OK ;
597611 }
598612
599613 if (power == 0 ) {
600614 lcddbg ("Powering down the LCD\n" );
601615 priv -> config -> backlight (power );
602- if (lcd_power_off (priv ) != OK ) {
616+ ret = lcd_power_off (priv );
617+ if (ret != OK ) {
618+ lcddbg ("ERROR: LCD power off failed ret : %d\n" , ret );
603619 sem_post (& priv -> sem );
604- return ERROR ;
620+ return ret ;
605621 }
606622 } else {
607623 /* The power on must operate only when LCD is OFF */
608624 if (priv -> power == 0 ) {
609625 /* The power on must operate only when LCD is OFF */
610- if (lcd_power_on (priv ) != OK ) {
626+ ret = lcd_power_on (priv );
627+ if (ret != OK ) {
628+ lcddbg ("ERROR: LCD power on failed ret : %d\n" , ret );
611629 sem_post (& priv -> sem );
612- return ERROR ;
630+ return - EIO ;
613631 }
614632 }
615633 priv -> config -> backlight (power );
@@ -631,6 +649,7 @@ static int lcd_setpower(FAR struct lcd_dev_s *dev, int power)
631649
632650static int lcd_init (FAR struct lcd_dev_s * dev )
633651{
652+ DEBUGASSERT (dev );
634653 FAR struct mipi_lcd_dev_s * priv = (FAR struct mipi_lcd_dev_s * )dev ;
635654 priv -> config -> reset ();
636655 if (check_lcd_vendor_send_init_cmd (priv ) == OK ) {
@@ -691,7 +710,7 @@ static int lcd_render_bmp(FAR struct lcd_dev_s *dev, const char *bmp_filename)
691710 FILE * bmp_file = fopen (bmp_filename , "rb" );
692711 if (!bmp_file ) {
693712 lcddbg ("Failed to open BMP file\n" );
694- return ERROR ;
713+ return - ENOENT ;
695714 }
696715 bmp_header_t header ;
697716 bmp_info_header_t info_header ;
@@ -794,7 +813,7 @@ static int lcd_render_bmp(FAR struct lcd_dev_s *dev, const char *bmp_filename)
794813 kmm_free (fullscreen_buffer );
795814 }
796815#endif
797- return ERROR ;
816+ return - EIO ;
798817}
799818
800819/****************************************************************************
@@ -829,7 +848,7 @@ FAR int lcd_init_put_image(FAR struct lcd_dev_s *dev)
829848 FILE * test_file = fopen (bmp_file_path , "rb" );
830849 if (!test_file ) {
831850 lcddbg ("BMP file not found at %s. LCD OFF\n" , bmp_file_path );
832- return ERROR ;
851+ return - ENOENT ;
833852 }
834853 fclose (test_file );
835854
@@ -848,7 +867,7 @@ FAR int lcd_init_put_image(FAR struct lcd_dev_s *dev)
848867 if (ret != OK ) {
849868 if (lcd_power_off (priv ) != OK ) {
850869 sem_post (& priv -> sem );
851- return ERROR ;
870+ return - EIO ;
852871 }
853872 sem_post (& priv -> sem );
854873 return ret ;
0 commit comments