From 8174d21e5fe0d086cb5824161c58eb065f412281 Mon Sep 17 00:00:00 2001 From: Marcel Ziswiler Date: Mon, 24 Jun 2013 14:16:50 +0200 Subject: video: tegra: fb: apalis/colibri_t30: hack avoid 24 Hz mode Hack to avoid 24 Hz mode in X resulting in no display at all. This has been encountered using e.g. a Samsung SyncMaster F2380 if connected by HDMI. root@apalis-t30:~# xrandr Screen 0: minimum 256 x 128, current 1920 x 1080, maximum 2048 x 2048 LVDS-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 0mm x 0mm 1920x1080 58.6*+ HDMI-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 160mm x 90mm 1920x1080 60.0 + 24.0* 1680x1050 59.9 1280x1024 75.0 60.0 1440x900 75.0 59.9 1280x960 60.0 1280x800 59.9 1152x864 75.0 1280x720 60.0 50.0 1024x768 75.0 70.1 60.0 832x624 74.6 800x600 72.2 75.0 60.3 56.2 720x576 50.0 720x480 59.9 640x480 75.0 72.8 66.7 59.9 720x400 70.1 --- drivers/video/tegra/fb.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/video/tegra/fb.c b/drivers/video/tegra/fb.c index f69048f62cc2..cf836dd59ab5 100644 --- a/drivers/video/tegra/fb.c +++ b/drivers/video/tegra/fb.c @@ -143,6 +143,11 @@ static int tegra_fb_set_par(struct fb_info *info) fb_var_to_videomode(&m, var); +#if defined(CONFIG_MACH_APALIS_T30) || defined(CONFIG_MACH_COLIBRI_T30) + /* Hack: avoid 24 Hz mode in X resulting in no display at all */ + if (m.refresh < 50) m.refresh = 60; +#endif /* CONFIG_MACH_APALIS_T30 | CONFIG_MACH_COLIBRI_T30 */ + /* Load framebuffer info with new mode details*/ old_mode = info->mode; old_len = info->fix.line_length; -- cgit v1.2.3 From 620823e2f6a11e2e8eb417b54fb4599cbc0e4707 Mon Sep 17 00:00:00 2001 From: Marcel Ziswiler Date: Mon, 24 Jun 2013 14:29:32 +0200 Subject: alsa: hda: silence extensive HDMI HDA audio messages Avoid extensive HDMI messages during boot. [ 30.234829] HDMI hot plug event: Codec=3 Pin=5 Presence_Detect=1 ELD_Valid=0 [ 30.253652] HDMI status: Codec=3 Pin=5 Presence_Detect=1 ELD_Valid=1 [ 32.333657] HDMI: detected monitor SyncMaster at connection type HDMI [ 32.340116] HDMI: available speakers: FL/FR [ 32.344616] HDMI: supports coding type LPCM: channels = 2, rates = 44100 48000 88200, bits = 16 20 24 --- sound/pci/hda/hda_eld.c | 6 +++--- sound/pci/hda/patch_hdmi.c | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sound/pci/hda/hda_eld.c b/sound/pci/hda/hda_eld.c index 862dd35260d0..e46cc984f9de 100644 --- a/sound/pci/hda/hda_eld.c +++ b/sound/pci/hda/hda_eld.c @@ -480,7 +480,7 @@ static void hdmi_show_short_audio_desc(struct cea_sad *a) else buf2[0] = '\0'; - printk(KERN_INFO "HDMI: supports coding type %s:" + printk(KERN_DEBUG "HDMI: supports coding type %s:" " channels = %d, rates =%s%s\n", cea_audio_coding_type_names[a->format], a->channels, @@ -504,14 +504,14 @@ void snd_hdmi_show_eld(struct hdmi_eld *e) { int i; - printk(KERN_INFO "HDMI: detected monitor %s at connection type %s\n", + printk(KERN_DEBUG "HDMI: detected monitor %s at connection type %s\n", e->monitor_name, eld_connection_type_names[e->conn_type]); if (e->spk_alloc) { char buf[SND_PRINT_CHANNEL_ALLOCATION_ADVISED_BUFSIZE]; snd_print_channel_allocation(e->spk_alloc, buf, sizeof(buf)); - printk(KERN_INFO "HDMI: available speakers:%s\n", buf); + printk(KERN_DEBUG "HDMI: available speakers:%s\n", buf); } for (i = 0; i < e->sad_count; i++) diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c index 5942395099ad..ac509cd68f6f 100644 --- a/sound/pci/hda/patch_hdmi.c +++ b/sound/pci/hda/patch_hdmi.c @@ -702,7 +702,7 @@ static void hdmi_intrinsic_event(struct hda_codec *codec, unsigned int res) int pin_idx; struct hdmi_eld *eld; - printk(KERN_INFO + printk(KERN_DEBUG "HDMI hot plug event: Codec=%d Pin=%d Presence_Detect=%d ELD_Valid=%d\n", codec->addr, pin_nid, pd, eldv); @@ -952,7 +952,7 @@ static void hdmi_present_sense(struct hda_codec *codec, hda_nid_t pin_nid, if (eld->monitor_present) eld_valid = !!(present & AC_PINSENSE_ELDV); - printk(KERN_INFO + printk(KERN_DEBUG "HDMI status: Codec=%d Pin=%d Presence_Detect=%d ELD_Valid=%d\n", codec->addr, pin_nid, eld->monitor_present, eld_valid); -- cgit v1.2.3