drm/bridge: lt9611: disable hpd for lower firmware version
The firmware version which less than 0x40 did not support hpd, so do not enable hpd for it. Change-Id: Ic3567b42834fe060e494f859f007e7dc3657e7b7 Signed-off-by: Yuan Zhao <yzhao@codeaurora.org>
This commit is contained in:
committed by
Gerrit - the friendly Code Review server
parent
2f9a4a4b7a
commit
2a37e9d67f
@@ -125,6 +125,7 @@ struct lt9611 {
|
|||||||
u8 i2c_wbuf[WRITE_BUF_MAX_SIZE];
|
u8 i2c_wbuf[WRITE_BUF_MAX_SIZE];
|
||||||
u8 i2c_rbuf[READ_BUF_MAX_SIZE];
|
u8 i2c_rbuf[READ_BUF_MAX_SIZE];
|
||||||
bool hdmi_mode;
|
bool hdmi_mode;
|
||||||
|
bool hpd_support;
|
||||||
enum lt9611_fw_upgrade_status fw_status;
|
enum lt9611_fw_upgrade_status fw_status;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1302,7 +1303,7 @@ lt9611_connector_detect(struct drm_connector *connector, bool force)
|
|||||||
struct lt9611 *pdata = connector_to_lt9611(connector);
|
struct lt9611 *pdata = connector_to_lt9611(connector);
|
||||||
|
|
||||||
pdata->status = connector_status_disconnected;
|
pdata->status = connector_status_disconnected;
|
||||||
if (force) {
|
if (force && pdata->hpd_support) {
|
||||||
lt9611_write_byte(pdata, 0xFF, 0x80);
|
lt9611_write_byte(pdata, 0xFF, 0x80);
|
||||||
lt9611_write_byte(pdata, 0xEE, 0x01);
|
lt9611_write_byte(pdata, 0xEE, 0x01);
|
||||||
lt9611_write_byte(pdata, 0xFF, 0xB0);
|
lt9611_write_byte(pdata, 0xFF, 0xB0);
|
||||||
@@ -1668,6 +1669,7 @@ static int lt9611_probe(struct i2c_client *client,
|
|||||||
{
|
{
|
||||||
struct lt9611 *pdata;
|
struct lt9611 *pdata;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
u8 chip_version = 0;
|
||||||
|
|
||||||
if (!client || !client->dev.of_node) {
|
if (!client || !client->dev.of_node) {
|
||||||
pr_err("invalid input\n");
|
pr_err("invalid input\n");
|
||||||
@@ -1730,8 +1732,12 @@ static int lt9611_probe(struct i2c_client *client,
|
|||||||
goto err_i2c_prog;
|
goto err_i2c_prog;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lt9611_get_version(pdata)) {
|
chip_version = lt9611_get_version(pdata);
|
||||||
|
pdata->hpd_support = false;
|
||||||
|
if (chip_version) {
|
||||||
pr_info("LT9611 works, no need to upgrade FW\n");
|
pr_info("LT9611 works, no need to upgrade FW\n");
|
||||||
|
if (chip_version >= 0x40)
|
||||||
|
pdata->hpd_support = true;
|
||||||
} else {
|
} else {
|
||||||
ret = request_firmware_nowait(THIS_MODULE, true,
|
ret = request_firmware_nowait(THIS_MODULE, true,
|
||||||
"lt9611_fw.bin", &client->dev, GFP_KERNEL, pdata,
|
"lt9611_fw.bin", &client->dev, GFP_KERNEL, pdata,
|
||||||
|
|||||||
Reference in New Issue
Block a user