hdmitx: add "now" to attr to trigger set_disp_mode_auto()
authorcdu13a <cdu13a@gmail.com>
Thu, 11 Apr 2019 03:58:08 +0000 (23:58 -0400)
committerNick Xie <nick@khadas.com>
Fri, 12 Jul 2019 05:36:11 +0000 (13:36 +0800)
Useful for testing. Adding "now" to attr is a one shot way to force
changes to current hdmi settings to take effect imediatly instead of
waiting for a mode change.

drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_main.c

index 40fc184..81153ab 100644 (file)
@@ -529,7 +529,7 @@ static int set_disp_mode_auto(void)
        else {
        /* nothing */
        }
-       if ((vic_ready != HDMI_Unknown) && (vic_ready == vic)) {
+       if ((vic_ready != HDMI_Unknown) && (vic_ready == vic) && (strstr(hdmitx_device.fmt_attr,"now") == NULL)) {
                pr_info(SYS "[%s] ALREADY init VIC = %d\n",
                        __func__, vic);
                if (hdev->RXCap.ieeeoui == 0) {
@@ -554,6 +554,10 @@ static int set_disp_mode_auto(void)
 
        hdmitx_pre_display_init();
 
+
+       if (strstr(hdmitx_device.fmt_attr,"now") != NULL){
+               memcpy(strstr(hdmitx_device.fmt_attr,"now"), " ", 3);
+       }
        hdev->cur_VIC = HDMI_Unknown;
 /* if vic is HDMI_Unknown, hdmitx_set_display will disable HDMI */
        ret = hdmitx_set_display(hdev, vic);
@@ -616,6 +620,10 @@ ssize_t store_attr(struct device *dev,
 {
        strncpy(hdmitx_device.fmt_attr, buf, sizeof(hdmitx_device.fmt_attr));
        hdmitx_device.fmt_attr[15] = '\0';
+       if (strstr(hdmitx_device.fmt_attr,"now")){
+               set_disp_mode_auto();
+       }
+return count;
        return count;
 }
 /*aud_mode attr*/