drivers/i2c/ptn3460: Use cb_err in mb_adjust_cfg

Return generic coreboot error codes from the mb_adjust_cfg
callback used in mainboards instead of '-1' constant and
a driver-specific success-indicating define.

BUG=none
TEST=Boards siemens/mc_apl{1,4,5,7} and siemens/mc_ehl3
build correctly.

Change-Id: I5e0d4e67703db518ed239a845f43047f569b94ec
Signed-off-by: Jan Samek <jan.samek@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72071
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
This commit is contained in:
Jan Samek 2023-01-18 13:28:50 +01:00 committed by Felix Held
parent b6730e03e2
commit 79312afdde
7 changed files with 34 additions and 35 deletions

View File

@ -108,7 +108,7 @@ static void ptn3460_init(struct device *dev)
}
/* Mainboard can modify the configuration data.
Write back configuration data to PTN3460 if modified by mainboard */
if (mb_adjust_cfg(&cfg) == PTN_CFG_MODIFIED) {
if (mb_adjust_cfg(&cfg) == CB_SUCCESS) {
ptr = (uint8_t *)&cfg;
for (i = 0; i < sizeof(struct ptn_3460_config); i++) {
val = i2c_dev_writeb_at(dev, PTN_CONFIG_OFF + i, *ptr++);
@ -131,9 +131,9 @@ __weak uint8_t mb_select_edid_table(void)
{
return 0;
}
__weak int mb_adjust_cfg(struct ptn_3460_config *cfg_ptr)
__weak enum cb_err mb_adjust_cfg(struct ptn_3460_config *cfg_ptr)
{
return 0;
return CB_ERR;
}
static struct device_operations ptn3460_ops = {

View File

@ -16,7 +16,6 @@
/* Define some error codes that can be used */
#define PTN_SUCCESS 0x00000000
#define PTN_CFG_MODIFIED 0x00000001
#define PTN_BUS_ERROR 0x10000000
#define PTN_INVALID_EDID 0x20000000
#define PTN_INVALID_EDID_BLOCK 0x30000000
@ -55,6 +54,6 @@ struct ptn_3460_flash {
/* These functions can be implemented somewhere else but must exist. */
extern enum cb_err mb_get_edid(uint8_t edid_data[0x80]);
extern uint8_t mb_select_edid_table(void);
extern int mb_adjust_cfg(struct ptn_3460_config *cfg_ptr);
extern enum cb_err mb_adjust_cfg(struct ptn_3460_config *cfg_ptr);
#endif /* _I2C_PTN3460_H_ */

View File

@ -39,9 +39,9 @@ uint8_t mb_select_edid_table(void)
/** \brief Function to enable mainboard to adjust the config data of PTN3460. For reference,
* see NXP document AN11128 - PTN3460 Programming guide.
* @param *cfg_ptr Pointer to the PTN config structure to modify
* @return -1 on error; PTN_CFG_MODIFIED if data was modified and needs to be updated.
* @return CB_SUCCESS if data was modified and needs to be updated; CB_ERR on error
*/
int mb_adjust_cfg(struct ptn_3460_config *cfg)
enum cb_err mb_adjust_cfg(struct ptn_3460_config *cfg)
{
const char *hwi_block = "hwinfo.hex";
uint8_t disp_con = 0, color_depth = 0;
@ -49,16 +49,16 @@ int mb_adjust_cfg(struct ptn_3460_config *cfg)
/* Get display-specific configuration from hwinfo. */
if (hwilib_find_blocks(hwi_block) != CB_SUCCESS) {
printk(BIOS_ERR, "LCD: Info block \"%s\" not found!\n", hwi_block);
return -1;
return CB_ERR;
}
if (hwilib_get_field(PF_DisplCon, &disp_con, sizeof(disp_con)) != sizeof(disp_con)) {
printk(BIOS_ERR, "LCD: Missing panel features from %s\n", hwi_block);
return -1;
return CB_ERR;
}
if (hwilib_get_field(PF_Color_Depth, &color_depth,
sizeof(color_depth)) != sizeof(color_depth)) {
printk(BIOS_ERR, "LCD: Missing panel features from %s\n", hwi_block);
return -1;
return CB_ERR;
}
/* Set up PTN3460 registers based on hwinfo and fixed board-specific parameters: */
@ -91,5 +91,5 @@ int mb_adjust_cfg(struct ptn_3460_config *cfg)
/* Enable backlight control. */
cfg->backlight_ctrl = 0x00;
return PTN_CFG_MODIFIED;
return CB_SUCCESS;
}

View File

@ -39,9 +39,9 @@ uint8_t mb_select_edid_table(void)
/** \brief Function to enable mainboard to adjust the config data of PTN3460. For reference,
* see NXP document AN11128 - PTN3460 Programming guide.
* @param *cfg_ptr Pointer to the PTN config structure to modify
* @return -1 on error; PTN_CFG_MODIFIED if data was modified and needs to be updated.
* @return CB_SUCCESS if data was modified and needs to be updated; CB_ERR on error
*/
int mb_adjust_cfg(struct ptn_3460_config *cfg)
enum cb_err mb_adjust_cfg(struct ptn_3460_config *cfg)
{
const char *hwi_block = "hwinfo.hex";
uint8_t disp_con = 0, color_depth = 0;
@ -49,16 +49,16 @@ int mb_adjust_cfg(struct ptn_3460_config *cfg)
/* Get display-specific configuration from hwinfo. */
if (hwilib_find_blocks(hwi_block) != CB_SUCCESS) {
printk(BIOS_ERR, "LCD: Info block \"%s\" not found!\n", hwi_block);
return -1;
return CB_ERR;
}
if (hwilib_get_field(PF_DisplCon, &disp_con, sizeof(disp_con)) != sizeof(disp_con)) {
printk(BIOS_ERR, "LCD: Missing panel features from %s\n", hwi_block);
return -1;
return CB_ERR;
}
if (hwilib_get_field(PF_Color_Depth, &color_depth,
sizeof(color_depth)) != sizeof(color_depth)) {
printk(BIOS_ERR, "LCD: Missing panel features from %s\n", hwi_block);
return -1;
return CB_ERR;
}
/* Set up PTN3460 registers based on hwinfo and fixed board-specific parameters: */
@ -91,5 +91,5 @@ int mb_adjust_cfg(struct ptn_3460_config *cfg)
/* Enable backlight control. */
cfg->backlight_ctrl = 0x00;
return PTN_CFG_MODIFIED;
return CB_SUCCESS;
}

View File

@ -64,9 +64,9 @@ uint8_t mb_select_edid_table(void)
/** \brief Function to enable mainboard to adjust the config data of PTN3460. For reference,
* see NXP document AN11128 - PTN3460 Programming guide.
* @param *cfg_ptr Pointer to the PTN config structure to modify
* @return -1 on error; PTN_CFG_MODIFIED if data was modified and needs to be updated.
* @return CB_SUCCESS if data was modified and needs to be updated; CB_ERR on error
*/
int mb_adjust_cfg(struct ptn_3460_config *cfg)
enum cb_err mb_adjust_cfg(struct ptn_3460_config *cfg)
{
const char *hwi_block = "hwinfo.hex";
uint8_t disp_con = 0, color_depth = 0;
@ -74,16 +74,16 @@ int mb_adjust_cfg(struct ptn_3460_config *cfg)
/* Get display-specific configuration from hwinfo. */
if (hwilib_find_blocks(hwi_block) != CB_SUCCESS) {
printk(BIOS_ERR, "LCD: Info block \"%s\" not found!\n", hwi_block);
return -1;
return CB_ERR;
}
if (hwilib_get_field(PF_DisplCon, &disp_con, sizeof(disp_con)) != sizeof(disp_con)) {
printk(BIOS_ERR, "LCD: Missing panel features from %s\n", hwi_block);
return -1;
return CB_ERR;
}
if (hwilib_get_field(PF_Color_Depth, &color_depth,
sizeof(color_depth)) != sizeof(color_depth)) {
printk(BIOS_ERR, "LCD: Missing panel features from %s\n", hwi_block);
return -1;
return CB_ERR;
}
/* Set up PTN3460 registers based on hwinfo and fixed board-specific parameters: */
@ -116,5 +116,5 @@ int mb_adjust_cfg(struct ptn_3460_config *cfg)
/* Enable backlight control. */
cfg->backlight_ctrl = 0x00;
return PTN_CFG_MODIFIED;
return CB_SUCCESS;
}

View File

@ -39,9 +39,9 @@ uint8_t mb_select_edid_table(void)
/** \brief Function to enable mainboard to adjust the config data of PTN3460. For reference,
* see NXP document AN11128 - PTN3460 Programming guide.
* @param *cfg_ptr Pointer to the PTN config structure to modify
* @return -1 on error; PTN_CFG_MODIFIED if data was modified and needs to be updated.
* @return CB_SUCCESS if data was modified and needs to be updated; CB_ERR on error
*/
int mb_adjust_cfg(struct ptn_3460_config *cfg)
enum cb_err mb_adjust_cfg(struct ptn_3460_config *cfg)
{
const char *hwi_block = "hwinfo.hex";
uint8_t disp_con = 0, color_depth = 0;
@ -49,16 +49,16 @@ int mb_adjust_cfg(struct ptn_3460_config *cfg)
/* Get display-specific configuration from hwinfo. */
if (hwilib_find_blocks(hwi_block) != CB_SUCCESS) {
printk(BIOS_ERR, "LCD: Info block \"%s\" not found!\n", hwi_block);
return -1;
return CB_ERR;
}
if (hwilib_get_field(PF_DisplCon, &disp_con, sizeof(disp_con)) != sizeof(disp_con)) {
printk(BIOS_ERR, "LCD: Missing panel features from %s\n", hwi_block);
return -1;
return CB_ERR;
}
if (hwilib_get_field(PF_Color_Depth, &color_depth,
sizeof(color_depth)) != sizeof(color_depth)) {
printk(BIOS_ERR, "LCD: Missing panel features from %s\n", hwi_block);
return -1;
return CB_ERR;
}
/* Set up PTN3460 registers based on hwinfo and fixed board-specific parameters: */
@ -91,5 +91,5 @@ int mb_adjust_cfg(struct ptn_3460_config *cfg)
/* Enable backlight control. */
cfg->backlight_ctrl = 0x00;
return PTN_CFG_MODIFIED;
return CB_SUCCESS;
}

View File

@ -39,9 +39,9 @@ uint8_t mb_select_edid_table(void)
/** \brief Function to enable mainboard to adjust the config data of PTN3460. For reference,
* see NXP document AN11128 - PTN3460 Programming guide.
* @param *cfg_ptr Pointer to the PTN config structure to modify
* @return -1 on error; PTN_CFG_MODIFIED if data was modified and needs to be updated.
* @return CB_SUCCESS if data was modified and needs to be updated; CB_ERR on error
*/
int mb_adjust_cfg(struct ptn_3460_config *cfg)
enum cb_err mb_adjust_cfg(struct ptn_3460_config *cfg)
{
const char *hwi_block = "hwinfo.hex";
uint8_t disp_con = 0, color_depth = 0;
@ -49,16 +49,16 @@ int mb_adjust_cfg(struct ptn_3460_config *cfg)
/* Get display-specific configuration from hwinfo. */
if (hwilib_find_blocks(hwi_block) != CB_SUCCESS) {
printk(BIOS_ERR, "LCD: Info block \"%s\" not found!\n", hwi_block);
return -1;
return CB_ERR;
}
if (hwilib_get_field(PF_DisplCon, &disp_con, sizeof(disp_con)) != sizeof(disp_con)) {
printk(BIOS_ERR, "LCD: Missing panel features from %s\n", hwi_block);
return -1;
return CB_ERR;
}
if (hwilib_get_field(PF_Color_Depth, &color_depth,
sizeof(color_depth)) != sizeof(color_depth)) {
printk(BIOS_ERR, "LCD: Missing panel features from %s\n", hwi_block);
return -1;
return CB_ERR;
}
/* Set up PTN3460 registers based on hwinfo and fixed board-specific parameters: */
@ -91,5 +91,5 @@ int mb_adjust_cfg(struct ptn_3460_config *cfg)
/* Enable backlight control. */
cfg->backlight_ctrl = 0x00;
return PTN_CFG_MODIFIED;
return CB_SUCCESS;
}