-
Notifications
You must be signed in to change notification settings - Fork 592
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
os/drivers/lcd/: Remove logo specific code from bus specific files #6614
Open
namanjain7
wants to merge
1
commit into
Samsung:master
Choose a base branch
from
namanjain7:logo_refactor
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,93 @@ | ||||||||||||||||||||||||||||||||||||||
/**************************************************************************** | ||||||||||||||||||||||||||||||||||||||
* | ||||||||||||||||||||||||||||||||||||||
* Copyright 2024 Samsung Electronics All Rights Reserved. | ||||||||||||||||||||||||||||||||||||||
* | ||||||||||||||||||||||||||||||||||||||
* Licensed under the Apache License, Version 2.0 (the "License"); | ||||||||||||||||||||||||||||||||||||||
* you may not use this file except in compliance with the License. | ||||||||||||||||||||||||||||||||||||||
* You may obtain a copy of the License at | ||||||||||||||||||||||||||||||||||||||
* | ||||||||||||||||||||||||||||||||||||||
* http://www.apache.org/licenses/LICENSE-2.0 | ||||||||||||||||||||||||||||||||||||||
* | ||||||||||||||||||||||||||||||||||||||
* Unless required by applicable law or agreed to in writing, software | ||||||||||||||||||||||||||||||||||||||
* distributed under the License is distributed on an "AS IS" BASIS, | ||||||||||||||||||||||||||||||||||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||||||||||||||||||||||||||||||||||
* See the License for the specific language governing permissions and | ||||||||||||||||||||||||||||||||||||||
* limitations under the License. | ||||||||||||||||||||||||||||||||||||||
* | ||||||||||||||||||||||||||||||||||||||
****************************************************************************/ | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
/**************************************************************************** | ||||||||||||||||||||||||||||||||||||||
* Included Files | ||||||||||||||||||||||||||||||||||||||
****************************************************************************/ | ||||||||||||||||||||||||||||||||||||||
#include <sys/types.h> | ||||||||||||||||||||||||||||||||||||||
#include "lcd_logo.h" | ||||||||||||||||||||||||||||||||||||||
#include <debug.h> | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
extern const uint8_t lcd_logo_raw_data[LOGO_XRES * LOGO_YRES * 2]; | ||||||||||||||||||||||||||||||||||||||
uint8_t *lcd_init_fullscreen_image = NULL; | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
#if defined(CONFIG_LCD_SW_ROTATION) | ||||||||||||||||||||||||||||||||||||||
extern uint8_t* get_lcd_buffer(void); | ||||||||||||||||||||||||||||||||||||||
#endif | ||||||||||||||||||||||||||||||||||||||
/* Memory optimization applied in case of software rotation is used in driver Rotation buffer | ||||||||||||||||||||||||||||||||||||||
* If rotation is enabled, then we have two buffers allocated for rotation. | ||||||||||||||||||||||||||||||||||||||
* During bootup, rotation buffer will not be used (No putarea call from application) | ||||||||||||||||||||||||||||||||||||||
* Therefore, the rotation buffer can be safely used for storing logo data. | ||||||||||||||||||||||||||||||||||||||
* | ||||||||||||||||||||||||||||||||||||||
* If rotation is disabled, then we need to allocate memory for full screen data | ||||||||||||||||||||||||||||||||||||||
* and it will allocate memory to lcd_init_fullscreen_image buffer. | ||||||||||||||||||||||||||||||||||||||
* | ||||||||||||||||||||||||||||||||||||||
* If rotation is enabled, then lcd_init_fullscreen_image contains pointer of rotation buffer | ||||||||||||||||||||||||||||||||||||||
* | ||||||||||||||||||||||||||||||||||||||
* Define a callback function in driver get_lcd_buffer() which can return pointer | ||||||||||||||||||||||||||||||||||||||
* of the buffer used for rotation. */ | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
uint8_t* lcd_logo_allocate_buffer(void) | ||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||
#if defined(CONFIG_LCD_SW_ROTATION) | ||||||||||||||||||||||||||||||||||||||
lcd_init_fullscreen_image = get_lcd_buffer(); | ||||||||||||||||||||||||||||||||||||||
#else | ||||||||||||||||||||||||||||||||||||||
lcd_init_fullscreen_image = (uint8_t *)kmm_malloc(CONFIG_LCD_XRES * CONFIG_LCD_YRES * 2 + 1); | ||||||||||||||||||||||||||||||||||||||
if (!lcd_init_fullscreen_image) { | ||||||||||||||||||||||||||||||||||||||
lcddbg("ERROR: LCD logo data memory allocation failed\n"); | ||||||||||||||||||||||||||||||||||||||
return; | ||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||
#endif | ||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
void lcd_logo_release_buffer(void) | ||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||
#if !defined(CONFIG_LCD_SW_ROTATION) | ||||||||||||||||||||||||||||||||||||||
if (lcd_init_fullscreen_image != NULL) { | ||||||||||||||||||||||||||||||||||||||
kmm_free(lcd_init_fullscreen_image); | ||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||
#endif | ||||||||||||||||||||||||||||||||||||||
if (!lcd_init_fullscreen_image) { | ||||||||||||||||||||||||||||||||||||||
lcd_init_fullscreen_image = NULL; | ||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||
Comment on lines
+60
to
+68
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
void lcd_logo_fill_buffer(int xres, int yres) | ||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||
int logo_arr_index = 0; | ||||||||||||||||||||||||||||||||||||||
int lcd_data_col_count = 0; | ||||||||||||||||||||||||||||||||||||||
int lcd_data_index = xres * (yres - LOGO_YRES) + (xres - LOGO_XRES); | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
if (!lcd_init_fullscreen_image) { | ||||||||||||||||||||||||||||||||||||||
lcddbg("ERROR: LOGO buffer is not initialized\n"); | ||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
memset(lcd_init_fullscreen_image, LCD_BLACK_VAL, xres * yres * 2); | ||||||||||||||||||||||||||||||||||||||
#if defined(CONFIG_LCD_LOGO) | ||||||||||||||||||||||||||||||||||||||
while (logo_arr_index < (LOGO_YRES * LOGO_XRES * 2)) { | ||||||||||||||||||||||||||||||||||||||
lcd_init_fullscreen_image[lcd_data_index] = lcd_logo_raw_data[logo_arr_index++]; | ||||||||||||||||||||||||||||||||||||||
lcd_init_fullscreen_image[lcd_data_index + 1] = lcd_logo_raw_data[logo_arr_index++]; | ||||||||||||||||||||||||||||||||||||||
lcd_data_index += 2; | ||||||||||||||||||||||||||||||||||||||
lcd_data_col_count += 1; | ||||||||||||||||||||||||||||||||||||||
if (lcd_data_col_count == LOGO_XRES) { | ||||||||||||||||||||||||||||||||||||||
lcd_data_index += ((xres - LOGO_XRES) * 2); | ||||||||||||||||||||||||||||||||||||||
lcd_data_col_count = 0; | ||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||
#endif | ||||||||||||||||||||||||||||||||||||||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If CONFIG_LCD_FLUSH_THREAD is enabled, we don't need buffer for only lcd logo