On Wed, Aug 03, 2016 at 01:07:12PM +1000, Dave Airlie wrote:
On 6 July 2016 at 20:05, Mario Kleiner mario.kleiner.de@gmail.com wrote:
For DP sinks which don't expose color depth via EDID, use the drm_dp_sink_bpc() helper to derive the bpc of the sink.
This should handle DP native sinks with the "Assume 6 bpc if EDID doesn't tell us" as mandated by DP spec. It gives more accurate values for DP->legacy converters for HDMI, DVI and VGA.
Haswell says no.
Yup indeed, sorry for missing that. Tomeu and Mika Kahola are working on some fancy new dp helper to probe all that, and as part of that suitably fill out connector->display_info, too. That would allow both the inversion, and the dpcd transaction from within atomic_check (which is kinda not that cool either). -Daniel
ug 03 12:58:46 tyrion-bne-redhat-com kernel: fbcon: inteldrmfb (fb0) is primary device Aug 03 12:58:46 tyrion-bne-redhat-com kernel: BUG: unable to handle kernel NULL pointer dereference at 000000000000011b Aug 03 12:58:46 tyrion-bne-redhat-com kernel: IP: [<ffffffffa00e6cf5>] drm_dp_sink_bpc+0x5/0xb0 [drm_kms_helper] Aug 03 12:58:46 tyrion-bne-redhat-com kernel: PGD 0 Aug 03 12:58:46 tyrion-bne-redhat-com kernel: Oops: 0000 [#1] SMP Aug 03 12:58:46 tyrion-bne-redhat-com kernel: Modules linked in: i915 ccm xt_CHECKSUM ipt_MASQUERADE nf_nat_masquerade_ipv4 tun ip6t_rpfilter ip6t_ Aug 03 12:58:46 tyrion-bne-redhat-com kernel: videobuf2_core snd_hda_codec videodev mei_me mei snd_hwdep snd_seq snd_hda_core rtsx_pci media i2c_i Aug 03 12:58:46 tyrion-bne-redhat-com kernel: CPU: 1 PID: 752 Comm: kworker/1:3 Not tainted 4.7.0+ #12 Aug 03 12:58:46 tyrion-bne-redhat-com kernel: Hardware name: LENOVO 20ARS25701/20ARS25701, BIOS GJET72WW (2.22 ) 02/21/2014 Aug 03 12:58:46 tyrion-bne-redhat-com kernel: Workqueue: events_long drm_dp_mst_link_probe_work [drm_kms_helper] Aug 03 12:58:46 tyrion-bne-redhat-com kernel: task: ffff880308583a80 task.stack: ffff880309f20000 Aug 03 12:58:46 tyrion-bne-redhat-com kernel: RIP: 0010:[<ffffffffa00e6cf5>] [<ffffffffa00e6cf5>] drm_dp_sink_bpc+0x5/0xb0 [drm_kms_helper] Aug 03 12:58:46 tyrion-bne-redhat-com kernel: RSP: 0018:ffff880309f23b48 EFLAGS: 00010202 Aug 03 12:58:46 tyrion-bne-redhat-com kernel: RAX: 000000000000000a RBX: 0000000000000006 RCX: 0000000000000000 Aug 03 12:58:46 tyrion-bne-redhat-com kernel: RDX: 0000000000000000 RSI: 0000000000000127 RDI: 0000000000000116 Aug 03 12:58:46 tyrion-bne-redhat-com kernel: RBP: ffff880309f23b50 R08: ffff880309734800 R09: 0000000000000024 Aug 03 12:58:46 tyrion-bne-redhat-com kernel: R10: 0000000000000000 R11: 0000000000000000 R12: ffff880309737800 Aug 03 12:58:46 tyrion-bne-redhat-com kernel: R13: ffff88030a334000 R14: ffff880309737000 R15: ffff880309737800 Aug 03 12:58:46 tyrion-bne-redhat-com kernel: FS: 0000000000000000(0000) GS:ffff88031e240000(0000) knlGS:0000000000000000 Aug 03 12:58:46 tyrion-bne-redhat-com kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 Aug 03 12:58:46 tyrion-bne-redhat-com kernel: CR2: 000000000000011b CR3: 0000000001c06000 CR4: 00000000001406e0 Aug 03 12:58:46 tyrion-bne-redhat-com kernel: Stack: Aug 03 12:58:46 tyrion-bne-redhat-com kernel: ffffffffa09d4295 ffff880309f23bd8 ffffffffa09a7c1f ffffffff8122544d Aug 03 12:58:46 tyrion-bne-redhat-com kernel: ffff880306660258 ffff880306660000 0000000009737800 ffff88030a331000 Aug 03 12:58:46 tyrion-bne-redhat-com kernel: 0100880300000024 ffff880309f23bb8 ffffffff00000024 ffff880309737800 Aug 03 12:58:46 tyrion-bne-redhat-com kernel: Call Trace: Aug 03 12:58:46 tyrion-bne-redhat-com kernel: [<ffffffffa09d4295>] ? intel_dp_sink_bpc+0x25/0x30 [i915] Aug 03 12:58:46 tyrion-bne-redhat-com kernel: [<ffffffffa09a7c1f>] intel_atomic_check+0xacf/0x1250 [i915] Aug 03 12:58:46 tyrion-bne-redhat-com kernel: [<ffffffff8122544d>] ? __kmalloc_track_caller+0x12d/0x210 Aug 03 12:58:46 tyrion-bne-redhat-com kernel: [<ffffffffa0097ea7>] drm_atomic_check_only+0x187/0x610 [drm] Aug 03 12:58:46 tyrion-bne-redhat-com kernel: [<ffffffffa0098857>] ? drm_atomic_add_affected_connectors+0x27/0xf0 [drm] Aug 03 12:58:46 tyrion-bne-redhat-com kernel: [<ffffffffa0098347>] drm_atomic_commit+0x17/0x60 [drm] Aug 03 12:58:46 tyrion-bne-redhat-com kernel: [<ffffffffa00f4e0c>] restore_fbdev_mode+0x14c/0x260 [drm_kms_helper] Aug 03 12:58:46 tyrion-bne-redhat-com kernel: [<ffffffffa00f6a23>] drm_fb_helper_restore_fbdev_mode_unlocked+0x33/0x80 [drm_kms_helper] Aug 03 12:58:46 tyrion-bne-redhat-com kernel: [<ffffffffa00f6a9d>] drm_fb_helper_set_par+0x2d/0x50 [drm_kms_helper] Aug 03 12:58:46 tyrion-bne-redhat-com kernel: [<ffffffffa00f69b8>] drm_fb_helper_hotplug_event+0x148/0x180 [drm_kms_helper] Aug 03 12:58:46 tyrion-bne-redhat-com kernel: [<ffffffffa09c238a>] intel_fbdev_output_poll_changed+0x1a/0x20 [i915] Aug 03 12:58:46 tyrion-bne-redhat-com kernel: [<ffffffffa00e79c7>] drm_kms_helper_hotplug_event+0x27/0x30 [drm_kms_helper] Aug 03 12:58:46 tyrion-bne-redhat-com kernel: [<ffffffffa09cafa5>] intel_dp_mst_hotplug+0x15/0x20 [i915] Aug 03 12:58:46 tyrion-bne-redhat-com kernel: [<ffffffffa00ee31a>] drm_dp_send_link_address+0x19a/0x220 [drm_kms_helper] Aug 03 12:58:46 tyrion-bne-redhat-com kernel: [<ffffffff810df553>] ? put_prev_entity+0x33/0x410 Aug 03 12:58:46 tyrion-bne-redhat-com kernel: [<ffffffff8111280b>] ? add_timer_on+0xdb/0x1b0 Aug 03 12:58:46 tyrion-bne-redhat-com kernel: [<ffffffff8102c766>] ? __switch_to+0x2b6/0x600 Aug 03 12:58:46 tyrion-bne-redhat-com kernel: [<ffffffff810e361e>] ? pick_next_task_fair+0x10e/0x4d0 Aug 03 12:58:46 tyrion-bne-redhat-com kernel: [<ffffffffa00ee44d>] drm_dp_check_and_send_link_address+0xad/0xc0 [drm_kms_helper] Aug 03 12:58:46 tyrion-bne-redhat-com kernel: [<ffffffffa00ee4b7>] drm_dp_mst_link_probe_work+0x57/0xb0 [drm_kms_helper] Aug 03 12:58:46 tyrion-bne-redhat-com kernel: [<ffffffff810c086f>] process_one_work+0x15f/0x410 Aug 03 12:58:46 tyrion-bne-redhat-com kernel: [<ffffffff810c0b6e>] worker_thread+0x4e/0x480 Aug 03 12:58:46 tyrion-bne-redhat-com kernel: [<ffffffff810c0b20>] ? process_one_work+0x410/0x410 Aug 03 12:58:46 tyrion-bne-redhat-com kernel: [<ffffffff810c0b20>] ? process_one_work+0x410/0x410 Aug 03 12:58:46 tyrion-bne-redhat-com kernel: [<ffffffff810c64c8>] kthread+0xd8/0xf0 Aug 03 12:58:46 tyrion-bne-redhat-com kernel: [<ffffffff817d527f>] ret_from_fork+0x1f/0x40 Aug 03 12:58:46 tyrion-bne-redhat-com kernel: [<ffffffff810c63f0>] ? kthread_worker_fn+0x170/0x170 Aug 03 12:58:46 tyrion-bne-redhat-com kernel: Code: b8 b0 1e 04 00 48 89 e5 74 11 40 80 ff 14 ba d0 78 02 00 b8 60 3d 08 00 0f 45 c2 5d c3 66 0f 1f Aug 03 12:58:46 tyrion-bne-redhat-com kernel: RIP [<ffffffffa00e6cf5>] drm_dp_sink_bpc+0x5/0xb0 [drm_kms_helper] Aug 03 12:58:46 tyrion-bne-redhat-com kernel: RSP <ffff880309f23b48> Aug 03 12:58:46 tyrion-bne-redhat-com kernel: CR2: 000000000000011b Aug 03 12:58:46 tyrion-bne-redhat-com kernel: ---[ end trace d3270996301ba013 ]---
Possibly MST related.
Dave.