[Intel-gfx] crtc_state in check_primary_plane
Konduru, Chandra
chandra.konduru at intel.com
Wed Apr 8 09:21:04 PDT 2015
> -----Original Message-----
> From: Ander Conselvan De Oliveira [mailto:conselvan2 at gmail.com]
> Sent: Wednesday, April 08, 2015 12:06 AM
> To: Konduru, Chandra
> Cc: intel-gfx at lists.freedesktop.org; Vetter, Daniel
> Subject: Re: [Intel-gfx] crtc_state in check_primary_plane
>
> On Tue, 2015-04-07 at 20:54 +0000, Konduru, Chandra wrote:
> > Hi,
> >
> >
> >
> > I have added code to get crtc_state in intel_check_primary_plane().
> >
> > And using crtc_clock member crtc_state->base.adjusted_mode.crtc_clock.
> >
> >
> >
> > What I observed is, in below stack trace, valid allocation of
> > crtc_state
> >
> > is there, but seems crtc_state is zeroed out or atleast crtc_clock is
> > 0.
> >
> >
> >
> > Is it expected or something is broken somewhere?
>
> Is it possible that you are enabling a plane on a disabled crtc? If the crtc was
> never enabled, then the adjusted_mode has never been set, so it would still have
> the initial zeroed out value.
>
> Ander
Thanks Ander. After some more debugging, found that this is happening
very first time i.e., crtc was never enabled. In this case, fb=null too, so
check_plane is being called for disable (not enable). So I think we are
good.
>
> > For things to work for scalers, I added a quick check before using
> > crtc_clock
> >
> > as a denominator for calculating scaling ratio.
> >
> >
> >
> > Reason why it is working before refactoring my code (in response to
> > Matt’s
> >
> > feedback) is I think crtc_clock accessed elsewhere in setmode path
> >
> > is never been 0.
> >
> >
> >
> > -Chandra
> >
> >
> >
> >
> >
> > [ 20.584708] [<ffffffffc06ffa28>] intel_check_primary_plane
> > +0x1f8/0x2b0 [i915]
> >
> > [ 20.584759] [<ffffffffc0711ce5>] intel_plane_atomic_check
> > +0xa5/0x130 [i915]
> >
> > [ 20.584762] [<ffffffff810c0c39>] ? mutex_optimistic_spin
> > +0x149/0x1d0
> >
> > [ 20.584770] [<ffffffffc065606f>] drm_atomic_helper_check_planes
> > +0xdf/0x1f0 [drm_kms_helper]
> >
> > [ 20.584820] [<ffffffffc0711bb0>] intel_atomic_check+0x150/0x1a0
> > [i915]
> >
> > [ 20.584868] [<ffffffffc0711ddc>] ? intel_plane_duplicate_state
> > +0x2c/0x80 [i915]
> >
> > [ 20.584886] [<ffffffffc0616345>] drm_atomic_check_only+0x235/0x4f0
> > [drm]
> >
> > [ 20.584890] [<ffffffff8119cba3>] ? kmemdup+0x43/0x60
> >
> > [ 20.584908] [<ffffffffc0616690>] drm_atomic_commit+0x20/0x70 [drm]
> >
> > [ 20.584916] [<ffffffffc065471d>]
> > drm_atomic_helper_plane_set_property+0x8d/0xc0 [drm_kms_helper]
> >
> > [ 20.584932] [<ffffffffc0604bed>] drm_mode_plane_set_obj_prop
> > +0x2d/0x90 [drm]
> >
> > [ 20.584939] [<ffffffffc0656feb>] restore_fbdev_mode+0x6b/0xf0
> > [drm_kms_helper]
> >
> > [ 20.584946] [<ffffffffc0658b20>]
> > drm_fb_helper_restore_fbdev_mode_unlocked+0x30/0x80 [drm_kms_helper]
> >
> > [ 20.584953] [<ffffffffc0658b94>] drm_fb_helper_set_par+0x24/0x50
> > [drm_kms_helper]
> >
> > [ 20.584959] [<ffffffffc0658a9c>] drm_fb_helper_hotplug_event
> > +0xcc/0x120 [drm_kms_helper]
> >
> > [ 20.584964] [<ffffffffc0658b43>]
> > drm_fb_helper_restore_fbdev_mode_unlocked+0x53/0x80 [drm_kms_helper]
> >
> > [ 20.584969] [<ffffffffc0658b94>] drm_fb_helper_set_par+0x24/0x50
> > [drm_kms_helper]
> >
> > [ 20.585019] [<ffffffffc070dd7a>] intel_fbdev_set_par+0x1a/0x60
> > [i915]
> >
> > [ 20.585022] [<ffffffff81425614>] fbcon_init+0x514/0x5a0
> >
> > [ 20.585025] [<ffffffff814b607c>] visual_init+0xbc/0x120
> >
> > [ 20.585029] [<ffffffff814b881a>] do_bind_con_driver+0x16a/0x320
> >
> > [ 20.585032] [<ffffffff814b8af4>] do_take_over_console+0x124/0x1d0
> >
> > [ 20.585034] [<ffffffff81423abb>] do_fbcon_takeover+0x5b/0xb0
> >
> > [ 20.585037] [<ffffffff81428822>] fbcon_event_notify+0x672/0x800
> >
> > [ 20.585041] [<ffffffff810993cd>] notifier_call_chain+0x4d/0x70
> >
> > [ 20.585044] [<ffffffff81099628>] __blocking_notifier_call_chain
> > +0x58/0x80
> >
> > [ 20.585048] [<ffffffff81099666>] blocking_notifier_call_chain
> > +0x16/0x20
> >
> > [ 20.585051] [<ffffffff8142f35b>] fb_notifier_call_chain+0x1b/0x20
> >
> > [ 20.585053] [<ffffffff8143147b>] register_framebuffer+0x1eb/0x320
> >
> > [ 20.585061] [<ffffffffc0658e24>] drm_fb_helper_initial_config
> > +0x264/0x430 [drm_kms_helper]
> >
> > [ 20.585110] [<ffffffffc070e89b>] intel_fbdev_initial_config
> > +0x1b/0x20 [i915]
> >
> > [ 20.585113] [<ffffffff8109b03c>] async_run_entry_fn+0x4c/0x160
> >
> > [ 20.585115] [<ffffffff81091cc4>] process_one_work+0x144/0x490
> >
> > [ 20.585119] [<ffffffff8101556e>] ? __switch_to+0xbe/0x5b0
> >
> > [ 20.585121] [<ffffffff8109272d>] worker_thread+0x11d/0x530
> >
> > [ 20.585124] [<ffffffff817c98ae>] ? __schedule+0x38e/0x9e8
> >
> > [ 20.585126] [<ffffffff81092610>] ? create_worker+0x1f0/0x1f0
> >
> > [ 20.585129] [<ffffffff81098719>] kthread+0xc9/0xe0
> >
> > [ 20.585132] [<ffffffff81098650>] ? flush_kthread_worker+0x90/0x90
> >
> > [ 20.585136] [<ffffffff817cdfd8>] ret_from_fork+0x58/0x90
> >
> > [ 20.585139] [<ffffffff81098650>] ? flush_kthread_worker+0x90/0x90
> >
> >
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
More information about the Intel-gfx
mailing list