drm: mipi: disable Elvss dim of HBM for MIPI DSI
Added 3 MIPI commands to set/get the ELVSS setting information from the MIPI DSI panel. Port from a5b269d7. Change-Id: I3aa1612c7afc35247f0db86ee1dd8484bae8d7b4 Signed-off-by: daiss1 <daiss1@motorola.com> Reviewed-on: https://gerrit.mot.com/1469340 SLTApproved: Slta Waiver SME-Granted: SME Approvals Granted Tested-by: Jira Key Reviewed-by: Guobin Zhang <zhanggb@motorola.com> Submit-Approved: Jira Key Reviewed-by: Bang Nguyen <bangnguyen@motorola.com> Reviewed-by: Dezhen Hou <houdz1@motorola.com> Reviewed-on: https://gerrit.mot.com/1509787 Reviewed-by: Xiangpo Zhao <zhaoxp3@motorola.com>
This commit is contained in:
1 parent
722167830b
commit
58c6b1a5eb
2 files changed
+57
No files matched your search
@@ -1176,6 +1176,59 @@ int mipi_dsi_driver_register_full(struct mipi_dsi_driver *drv,
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(mipi_dsi_driver_register_full);
|
EXPORT_SYMBOL(mipi_dsi_driver_register_full);
|
||||||
|
|
||||||
|
int mipi_dsi_dcs_get_elvss_data(struct mipi_dsi_device *dsi)
|
||||||
|
{
|
||||||
|
u8 payload_f0[2] = { 0x5A, 0x5A };
|
||||||
|
u8 payload_b0 = 0x07;
|
||||||
|
ssize_t err;
|
||||||
|
|
||||||
|
err = mipi_dsi_dcs_write(dsi, 0xF0, payload_f0, sizeof(payload_f0));
|
||||||
|
err = mipi_dsi_dcs_write(dsi, 0xB0, &payload_b0, sizeof(payload_b0));
|
||||||
|
|
||||||
|
if (err < 0)
|
||||||
|
return err;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(mipi_dsi_dcs_get_elvss_data);
|
||||||
|
|
||||||
|
int mipi_dsi_dcs_get_elvss_data_1(struct mipi_dsi_device *dsi)
|
||||||
|
{
|
||||||
|
u8 payload_f0_1[2] = { 0xA5, 0xA5 };
|
||||||
|
ssize_t err;
|
||||||
|
err = mipi_dsi_dcs_write(dsi, 0xF0, payload_f0_1, sizeof(payload_f0_1));
|
||||||
|
|
||||||
|
if (err < 0)
|
||||||
|
return err;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(mipi_dsi_dcs_get_elvss_data_1);
|
||||||
|
|
||||||
|
int mipi_dsi_dcs_set_elvss_dim_off(struct mipi_dsi_device *dsi,
|
||||||
|
u8 val)
|
||||||
|
{
|
||||||
|
u8 payload_f0[2] = { 0x5A, 0x5A };
|
||||||
|
u8 payload_f0_1[2] = { 0xA5, 0xA5 };
|
||||||
|
u8 payload_b7[2] = { 0x01, 0x5B };
|
||||||
|
u8 payload_b0 = 0x07;
|
||||||
|
ssize_t err;
|
||||||
|
|
||||||
|
pr_info("set elvss data:%d\n", val);
|
||||||
|
|
||||||
|
err = mipi_dsi_dcs_write(dsi, 0xF0, payload_f0, sizeof(payload_f0));
|
||||||
|
err = mipi_dsi_dcs_write(dsi, 0xB7, payload_b7, sizeof(payload_b7));
|
||||||
|
err = mipi_dsi_dcs_write(dsi, 0xB0, &payload_b0, sizeof(payload_b0));
|
||||||
|
err = mipi_dsi_dcs_write(dsi, 0xB7, &val, sizeof(val));
|
||||||
|
err = mipi_dsi_dcs_write(dsi, 0xF0, payload_f0_1, sizeof(payload_f0_1));
|
||||||
|
|
||||||
|
if (err < 0)
|
||||||
|
return err;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(mipi_dsi_dcs_set_elvss_dim_off);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* mipi_dsi_driver_unregister() - unregister a driver for DSI devices
|
* mipi_dsi_driver_unregister() - unregister a driver for DSI devices
|
||||||
* @drv: DSI driver structure
|
* @drv: DSI driver structure
|
||||||
|
|||||||
@@ -322,6 +322,10 @@ static inline void mipi_dsi_set_drvdata(struct mipi_dsi_device *dsi, void *data)
|
|||||||
dev_set_drvdata(&dsi->dev, data);
|
dev_set_drvdata(&dsi->dev, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int mipi_dsi_dcs_get_elvss_data(struct mipi_dsi_device *dsi);
|
||||||
|
int mipi_dsi_dcs_get_elvss_data_1(struct mipi_dsi_device *dsi);
|
||||||
|
int mipi_dsi_dcs_set_elvss_dim_off(struct mipi_dsi_device *dsi, u8 val);
|
||||||
|
|
||||||
int mipi_dsi_driver_register_full(struct mipi_dsi_driver *driver,
|
int mipi_dsi_driver_register_full(struct mipi_dsi_driver *driver,
|
||||||
struct module *owner);
|
struct module *owner);
|
||||||
void mipi_dsi_driver_unregister(struct mipi_dsi_driver *driver);
|
void mipi_dsi_driver_unregister(struct mipi_dsi_driver *driver);
|
||||||
|
|||||||
Reference in new issue
Block a user