video: da8xx-fb: improve readability of code
PATCH v3 11/20 video: da8xx-fb: improve readability of code
Change the lcd_disable_raster funtion from using a bool to an enum as the function is very confusing with the current api. This helps make it clearer what the parameter is really doing.
Signed-off-by Darren Etheridge <[email protected]>
--- drivers/video/da8xx-fb.c | 24 +++++++++++++----------- include/video/da8xx-fb.h | 5 +++++ 2 files changed, 18 insertions(+), 11 deletions(-)
drivers/video/da8xx-fb.c +13 -11
@@ -271,7 +271,8 @@ static inline void lcd_enable_raster(void) }/* Disable the Raster Engine of the LCD Controller */ -static inline void lcd_disable_raster (bool wait_for_frame_done) +static inline void lcd_disable_raster (enum da8xx_frame_complete + wait_for_frame_done) {u32 reg;int ret;
@@ -283,7 +284,8 @@ static inline void lcd_disable_raster(bool wait_for_frame_done)/* return if already disabled */ return ; -if ((wait_for_frame_done = true) && (lcd_revision =LCD_VERSION_2 )) { +if ((wait_for_frame_done =DA8XX_FRAME_WAIT ) && + (lcd_revision =LCD_VERSION_2 )) { frame_done_flag =0 ; ret = wait_event_interruptible_timeout(frame_done_wq, frame_done_flag != 0,
@@ -771,7 +773,7 @@ static irqreturn_t lcdc_irq_handler_rev02(int irq, void *arg)u32 stat =lcdc_read (LCD_MASKED_STAT_REG );if ((stat &LCD_SYNC_LOST ) && (stat &LCD_FIFO_UNDERFLOW )) { -lcd_disable_raster (false); +lcd_disable_raster (DA8XX_FRAME_NOWAIT );lcdc_write (stat,LCD_MASKED_STAT_REG );lcd_enable_raster (); }else if (stat &LCD_PL_LOAD_DONE ) {
@@ -781,7 +783,7 @@ static irqreturn_t lcdc_irq_handler_rev02(int irq, void *arg)* interrupt via the following write to the status register. If * this is done after then one gets multiple PL done interrupts. */ -lcd_disable_raster (false); +lcd_disable_raster (DA8XX_FRAME_NOWAIT );lcdc_write (stat,LCD_MASKED_STAT_REG );
@@ -834,7 +836,7 @@ static irqreturn_t lcdc_irq_handler_rev01(int irq, void *arg)u32 reg_ras;if ((stat &LCD_SYNC_LOST ) && (stat &LCD_FIFO_UNDERFLOW )) { -lcd_disable_raster (false); +lcd_disable_raster (DA8XX_FRAME_NOWAIT );lcdc_write (stat,LCD_STAT_REG );lcd_enable_raster (); }else if (stat &LCD_PL_LOAD_DONE ) {
@@ -844,7 +846,7 @@ static irqreturn_t lcdc_irq_handler_rev01(int irq, void *arg)* interrupt via the following write to the status register. If * this is done after then one gets multiple PL done interrupts. */ -lcd_disable_raster (false); +lcd_disable_raster (DA8XX_FRAME_NOWAIT );lcdc_write (stat,LCD_STAT_REG );
@@ -986,7 +988,7 @@ static int lcd_da8xx_cpufreq_transition(struct notifier_block *nb,if (val =CPUFREQ_POSTCHANGE ) {if (par->lcd_fck_rate !=clk_get_rate (par->lcdc_clk)) { par->lcd_fck_rate =clk_get_rate (par->lcdc_clk); -lcd_disable_raster (true); +lcd_disable_raster (DA8XX_FRAME_WAIT );da8xx_fb_calc_config_clk_divider (par, &par->mode);if (par->blank =FB_BLANK_UNBLANK )lcd_enable_raster ();
@@ -1024,7 +1026,7 @@ static int fb_remove(struct platform_device *dev)if (par->panel_power_ctrl) par->panel_power_ctrl (0 ); -lcd_disable_raster (true); +lcd_disable_raster (DA8XX_FRAME_WAIT );lcdc_write (0 ,LCD_RASTER_CTRL_REG );/* disable DMA */
@@ -1140,7 +1142,7 @@ static int cfb_blank(int blank, struct fb_info *info)if (par->panel_power_ctrl) par->panel_power_ctrl (0 ); -lcd_disable_raster (true); +lcd_disable_raster (DA8XX_FRAME_WAIT );break ;default : ret = -EINVAL ;
@@ -1208,7 +1210,7 @@ static int da8xxfb_set_par(struct fb_info *info)bool raster =da8xx_fb_is_raster_enabled ();if (raster) -lcd_disable_raster (true); +lcd_disable_raster (DA8XX_FRAME_WAIT );fb_var_to_videomode (&par->mode, &info->var);
@@ -1569,7 +1571,7 @@ static int fb_suspend(struct platform_device *dev, pm_message_t state) par->panel_power_ctrl (0 );fb_set_suspend (info,1 ); -lcd_disable_raster (true); +lcd_disable_raster (DA8XX_FRAME_WAIT );lcd_context_save ();pm_runtime_put_sync (&dev->dev);console_unlock ();
include/video/da8xx-fb.h +5 -0
@@ -23,6 +23,11 @@ enum raster_load_mode { LOAD_PALETTE, }; +enum da8xx_frame_complete { +DA8XX_FRAME_WAIT , +DA8XX_FRAME_NOWAIT , +}; +struct da8xx_lcdc_platform_data {const char manu_name[10 ];void *controller_data;
Signature · 1 line
1.7.0.4