hdmi: move show sink info to debug node.
authorZheng Yang <zhengyang@rock-chips.com>
Fri, 10 Jul 2015 09:13:26 +0000 (17:13 +0800)
committerZheng Yang <zhengyang@rock-chips.com>
Fri, 10 Jul 2015 09:13:26 +0000 (17:13 +0800)
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
drivers/video/rockchip/hdmi/rockchip-hdmi-lcdc.c
drivers/video/rockchip/hdmi/rockchip-hdmi-sysfs.c

index 33030dc14c51014601db537f7a39c0aa7f42013d..63a5cfb0052af3ca5ed351df5ce99e16da34d3ba 100644 (file)
@@ -308,135 +308,6 @@ static int hdmi_add_videomode(const struct fb_videomode *mode,
        return 0;
 }
 
-/**
- * hdmi_show_sink_info: show hdmi sink device infomation
- * @hdmi: handle of hdmi
- */
-static void hdmi_show_sink_info(struct hdmi *hdmi)
-{
-       struct list_head *pos, *head = &hdmi->edid.modelist;
-       struct display_modelist *modelist;
-       struct fb_videomode *m;
-       int i;
-       struct hdmi_audio *audio;
-
-       pr_info("******** Show Sink Info ********\n");
-       pr_info("Max tmds clk is %u\n", hdmi->edid.maxtmdsclock);
-       if (hdmi->edid.hf_vsdb_version)
-               pr_info("Support HFVSDB\n");
-       if (hdmi->edid.scdc_present)
-               pr_info("Support SCDC\n");
-       pr_info("Support video mode:\n");
-       list_for_each(pos, head) {
-               modelist = list_entry(pos, struct display_modelist, list);
-               m = &modelist->mode;
-               if (m->flag)
-                       pr_info("       %s(YCbCr420)\n", m->name);
-               else
-                       pr_info("       %s\n", m->name);
-       }
-       pr_info("Support video color mode:\n");
-       pr_info("       RGB\n");
-       if (hdmi->edid.ycbcr420)
-               pr_info("       YCbCr420\n");
-       if (hdmi->edid.ycbcr422)
-               pr_info("       YCbCr422\n");
-       if (hdmi->edid.ycbcr444)
-               pr_info("       YCbCr444\n");
-       pr_info("Support video color depth:\n");
-       pr_info("       24bit\n");
-       if (hdmi->edid.deepcolor & HDMI_DEEP_COLOR_30BITS)
-               pr_info("       30bit\n");
-       if (hdmi->edid.deepcolor & HDMI_DEEP_COLOR_36BITS)
-               pr_info("       36bit\n");
-       if (hdmi->edid.deepcolor & HDMI_DEEP_COLOR_48BITS)
-               pr_info("       48bit\n");
-       if (hdmi->edid.ycbcr420)
-               pr_info("       420_24bit\n");
-       if (hdmi->edid.deepcolor_420 & HDMI_DEEP_COLOR_30BITS)
-               pr_info("       420_30bit\n");
-       if (hdmi->edid.deepcolor_420 & HDMI_DEEP_COLOR_36BITS)
-               pr_info("       420_36bit\n");
-       if (hdmi->edid.deepcolor_420 & HDMI_DEEP_COLOR_48BITS)
-               pr_info("       420_48bit\n");
-       pr_info("Support audio type:\n");
-       for (i = 0; i < hdmi->edid.audio_num; i++) {
-               audio = &(hdmi->edid.audio[i]);
-               switch (audio->type) {
-               case HDMI_AUDIO_LPCM:
-                       pr_info("       LPCM\n");
-                       break;
-               case HDMI_AUDIO_AC3:
-                       pr_info("       AC3\n");
-                       break;
-               case HDMI_AUDIO_MPEG1:
-                       pr_info("       MPEG1\n");
-                       break;
-               case HDMI_AUDIO_MP3:
-                       pr_info("       MP3\n");
-                       break;
-               case HDMI_AUDIO_MPEG2:
-                       pr_info("       MPEG2\n");
-                       break;
-               case HDMI_AUDIO_AAC_LC:
-                       pr_info("S      AAC\n");
-                       break;
-               case HDMI_AUDIO_DTS:
-                       pr_info("       DTS\n");
-                       break;
-               case HDMI_AUDIO_ATARC:
-                       pr_info("       ATARC\n");
-                       break;
-               case HDMI_AUDIO_DSD:
-                       pr_info("       DSD\n");
-                       break;
-               case HDMI_AUDIO_E_AC3:
-                       pr_info("       E-AC3\n");
-                       break;
-               case HDMI_AUDIO_DTS_HD:
-                       pr_info("       DTS-HD\n");
-                       break;
-               case HDMI_AUDIO_MLP:
-                       pr_info("       MLP\n");
-                       break;
-               case HDMI_AUDIO_DST:
-                       pr_info("       DST\n");
-                       break;
-               case HDMI_AUDIO_WMA_PRO:
-                       pr_info("       WMP-PRO\n");
-                       break;
-               default:
-                       pr_info("       Unkown\n");
-                       break;
-               }
-               pr_info("Support max audio channel is %d\n", audio->channel);
-               pr_info("Support audio sample rate:\n");
-               if (audio->rate & HDMI_AUDIO_FS_32000)
-                       pr_info("       32000\n");
-               if (audio->rate & HDMI_AUDIO_FS_44100)
-                       pr_info("       44100\n");
-               if (audio->rate & HDMI_AUDIO_FS_48000)
-                       pr_info("       48000\n");
-               if (audio->rate & HDMI_AUDIO_FS_88200)
-                       pr_info("       88200\n");
-               if (audio->rate & HDMI_AUDIO_FS_96000)
-                       pr_info("       96000\n");
-               if (audio->rate & HDMI_AUDIO_FS_176400)
-                       pr_info("       176400\n");
-               if (audio->rate & HDMI_AUDIO_FS_192000)
-                       pr_info("       192000\n");
-               pr_info("Support audio word lenght:\n");
-               if (audio->rate & HDMI_AUDIO_WORD_LENGTH_16bit)
-                       pr_info("       16bit\n");
-               if (audio->rate & HDMI_AUDIO_WORD_LENGTH_20bit)
-                       pr_info("       20bit\n");
-               if (audio->rate & HDMI_AUDIO_WORD_LENGTH_24bit)
-                       pr_info("       24bit\n");
-               pr_info("\n");
-       }
-       pr_info("******** Show Sink Info ********\n");
-}
-
 /**
  * hdmi_sort_modelist: sort modelist of edid
  * @edid: edid to be sort
@@ -627,7 +498,6 @@ int hdmi_ouputmode_select(struct hdmi *hdmi, int edid_ok)
                }
                hdmi_sort_modelist(&hdmi->edid, hdmi->property->feature);
        }
-       hdmi_show_sink_info(hdmi);
 
        return HDMI_ERROR_SUCESS;
 }
index f994d96c80f50049d397753f3f0c176af52e662d..914500897043359523415f71348f460fcf1f3fcd 100644 (file)
@@ -302,6 +302,178 @@ static int hdmi_get_monspecs(struct rk_display_device *device,
        return 0;
 }
 
+/**
+ * hdmi_show_sink_info: show hdmi sink device infomation
+ * @hdmi: handle of hdmi
+ */
+static int hdmi_show_sink_info(struct hdmi *hdmi, char *buf, int len)
+{
+       struct list_head *pos, *head = &hdmi->edid.modelist;
+       struct display_modelist *modelist;
+       struct fb_videomode *m;
+       struct hdmi_audio *audio;
+       int i, lens = len;
+
+       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                       "******** Show Sink Info ********\n");
+       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                        "Max tmds clk is %u\n",
+                        hdmi->edid.maxtmdsclock);
+       if (hdmi->edid.hf_vsdb_version)
+               lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                "Support HFVSDB\n");
+       if (hdmi->edid.scdc_present)
+               lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                "Support SCDC\n");
+       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                        "Support video mode:\n");
+       list_for_each(pos, head) {
+               modelist = list_entry(pos, struct display_modelist, list);
+               m = &modelist->mode;
+               if (m->flag)
+                       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                        "\t%s(YCbCr420)\n", m->name);
+               else
+                       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                        "\t%s\n", m->name);
+       }
+       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                        "Support video color mode:\n");
+       lens += snprintf(buf + lens, PAGE_SIZE - lens, "\tRGB");
+       if (hdmi->edid.ycbcr420)
+               lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                " YCbCr420");
+       if (hdmi->edid.ycbcr422)
+               lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                " YCbCr422");
+       if (hdmi->edid.ycbcr444)
+               lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                " YCbCr444");
+       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                        "\nSupport video color depth:\n");
+       lens += snprintf(buf + lens, PAGE_SIZE - lens, "\t24bit");
+       if (hdmi->edid.deepcolor & HDMI_DEEP_COLOR_30BITS)
+               lens += snprintf(buf + lens, PAGE_SIZE - lens, " 30bit");
+       if (hdmi->edid.deepcolor & HDMI_DEEP_COLOR_36BITS)
+               lens += snprintf(buf + lens, PAGE_SIZE - lens, " 36bit");
+       if (hdmi->edid.deepcolor & HDMI_DEEP_COLOR_48BITS)
+               lens += snprintf(buf + lens, PAGE_SIZE - lens, " 48bit");
+       if (hdmi->edid.ycbcr420)
+               lens += snprintf(buf + lens, PAGE_SIZE - lens, " 420_24bit");
+       if (hdmi->edid.deepcolor_420 & HDMI_DEEP_COLOR_30BITS)
+               lens += snprintf(buf + lens, PAGE_SIZE - lens, " 420_30bit");
+       if (hdmi->edid.deepcolor_420 & HDMI_DEEP_COLOR_36BITS)
+               lens += snprintf(buf + lens, PAGE_SIZE - lens, " 420_36bit");
+       if (hdmi->edid.deepcolor_420 & HDMI_DEEP_COLOR_48BITS)
+               lens += snprintf(buf + lens, PAGE_SIZE - lens, " 420_48bit");
+       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                        "\nSupport audio type:\n");
+       for (i = 0; i < hdmi->edid.audio_num; i++) {
+               audio = &(hdmi->edid.audio[i]);
+               switch (audio->type) {
+               case HDMI_AUDIO_LPCM:
+                       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                               "\tLPCM\n");
+                       break;
+               case HDMI_AUDIO_AC3:
+                       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                        "\tAC3\n");
+                       break;
+               case HDMI_AUDIO_MPEG1:
+                       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                        "\tMPEG1\n");
+                       break;
+               case HDMI_AUDIO_MP3:
+                       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                        "\tMP3\n");
+                       break;
+               case HDMI_AUDIO_MPEG2:
+                       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                        "\tMPEG2\n");
+                       break;
+               case HDMI_AUDIO_AAC_LC:
+                       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                        "\tAAC\n");
+                       break;
+               case HDMI_AUDIO_DTS:
+                       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                        "\tDTS\n");
+                       break;
+               case HDMI_AUDIO_ATARC:
+                       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                        "\tATARC\n");
+                       break;
+               case HDMI_AUDIO_DSD:
+                       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                        "\tDSD\n");
+                       break;
+               case HDMI_AUDIO_E_AC3:
+                       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                        "\tE-AC3\n");
+                       break;
+               case HDMI_AUDIO_DTS_HD:
+                       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                        "\tDTS-HD\n");
+                       break;
+               case HDMI_AUDIO_MLP:
+                       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                        "\tMLP\n");
+                       break;
+               case HDMI_AUDIO_DST:
+                       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                        "\tDST\n");
+                       break;
+               case HDMI_AUDIO_WMA_PRO:
+                       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                        "\tWMP-PRO\n");
+                       break;
+               default:
+                       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                        "\tUnkown\n");
+                       break;
+               }
+               lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                "Support max audio channel is %d\n",
+                                audio->channel);
+               lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                "Support audio sample rate:\n\t");
+               if (audio->rate & HDMI_AUDIO_FS_32000)
+                       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                        " 32000");
+               if (audio->rate & HDMI_AUDIO_FS_44100)
+                       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                        " 44100");
+               if (audio->rate & HDMI_AUDIO_FS_48000)
+                       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                        " 48000");
+               if (audio->rate & HDMI_AUDIO_FS_88200)
+                       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                        " 88200");
+               if (audio->rate & HDMI_AUDIO_FS_96000)
+                       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                        " 96000");
+               if (audio->rate & HDMI_AUDIO_FS_176400)
+                       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                        " 176400");
+               if (audio->rate & HDMI_AUDIO_FS_192000)
+                       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                        " 192000");
+               lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                "\nSupport audio word lenght:\n\t");
+               if (audio->rate & HDMI_AUDIO_WORD_LENGTH_16bit)
+                       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                        " 16bit");
+               if (audio->rate & HDMI_AUDIO_WORD_LENGTH_20bit)
+                       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                        " 20bit");
+               if (audio->rate & HDMI_AUDIO_WORD_LENGTH_24bit)
+                       lens += snprintf(buf + lens, PAGE_SIZE - lens,
+                                        " 24bit");
+               lens += snprintf(buf + lens, PAGE_SIZE - lens, "\n");
+       }
+       return lens;
+}
+
 static int hdmi_get_debug(struct rk_display_device *device, char *buf)
 {
        struct hdmi *hdmi = device->priv_data;
@@ -310,9 +482,9 @@ static int hdmi_get_debug(struct rk_display_device *device, char *buf)
 
        if (!hdmi)
                return 0;
-       len += snprintf(buf+len, PAGE_SIZE, "EDID status:%s\n",
+       len += snprintf(buf+len, PAGE_SIZE - len, "EDID status:%s\n",
                        hdmi->edid.status ? "False" : "Okay");
-       len += snprintf(buf+len, PAGE_SIZE, "Raw Data:");
+       len += snprintf(buf+len, PAGE_SIZE - len, "Raw Data:");
        mutex_lock(&hdmi->lock);
        for (i = 0; i < HDMI_MAX_EDID_BLOCK; i++) {
                if (!hdmi->edid.raw[i])
@@ -320,11 +492,15 @@ static int hdmi_get_debug(struct rk_display_device *device, char *buf)
                buff = hdmi->edid.raw[i];
                for (j = 0; j < HDMI_EDID_BLOCK_SIZE; j++) {
                        if (j % 16 == 0)
-                               len += snprintf(buf+len, PAGE_SIZE, "\n");
-                       len += snprintf(buf+len, PAGE_SIZE, "0x%02x, ",
+                               len += snprintf(buf + len,
+                                               PAGE_SIZE - len, "\n");
+                       len += snprintf(buf+len, PAGE_SIZE - len, "0x%02x, ",
                                        buff[j]);
                }
        }
+       len += snprintf(buf+len, PAGE_SIZE, "\n");
+       if (!hdmi->edid.status)
+               len += hdmi_show_sink_info(hdmi, buf, len);
        mutex_unlock(&hdmi->lock);
        return len;
 }