On Sat, Dec 14, 2013 at 12:11:01AM +0200, Aleksandr Rybalko wrote:
> Konstantin Belousov <kostik...@gmail.com> написав(ла):
> >On Thu, Dec 12, 2013 at 02:49:27PM +0000, Aleksandr Rybalko wrote:
> >> Author: ray
> >> Date: Thu Dec 12 14:49:26 2013
> >> New Revision: 259261
> >> URL: http://svnweb.freebsd.org/changeset/base/259261
> >> 
> >> Log:
> >>   Do not try to probe/attach if attempt to add fbd child are failed.
> >>   
> >>   Sponsored by:    The FreeBSD Foundation
> >> 
> >> Modified:
> >>   head/sys/dev/drm2/drm_fb_helper.c
> >> 
> >> Modified: head/sys/dev/drm2/drm_fb_helper.c
> >>
> >==============================================================================
> >> --- head/sys/dev/drm2/drm_fb_helper.c      Thu Dec 12 14:37:25
> >2013 (r259260)
> >> +++ head/sys/dev/drm2/drm_fb_helper.c      Thu Dec 12 14:49:26
> >2013 (r259261)
> >> @@ -1043,7 +1043,10 @@ int drm_fb_helper_single_fb_probe(struct
> >>  
> >>            kdev = fb_helper->dev->device;
> >>            fbd = device_add_child(kdev, "fbd", device_get_unit(kdev));
> >> -          ret = device_probe_and_attach(fbd);
> >> +          if (fbd != NULL) 
> >> +                  ret = device_probe_and_attach(fbd);
> >> +          else
> >> +                  ret = ENODEV;
> >This must be -ENODEV, since linux layer operates on negative values for
> >error.  The error is negated in the drm layer, which would result in
> >non-existent errno returned to FreeBSD code.
> 
> It is not actually return code, but only value to show in error message few 
> lines later. ENODEV just value for case no device attached.
> That error message appear only if kernel configuration include device vt. 
> (planning for syscons too, maybe).

Ok.

I looked around some more, and I think that the call to
drm_fb_helper_set_par() is required to properly initialize crtc.
See the #ifdef-ed Linux code.

> 
> >
> >Also, the #ifdef __FreeBSD braces in the file are not useful, please
> >remove them.
> >>  #ifdef DEV_VT
> >>            if (ret != 0)
> >>                    DRM_ERROR("Failed to attach fbd device: %d\n", ret);
> 
> Should we with Jean have to remove all #ifdef __FreeBSD and __Linux over 
> whole DRM2 code, to reduce differences with linux code?
> 
The #ifdefs should be removed.

The removal would not reduce difference with the upstream, but this is not
the point anyway.

Attachment: pgpo3G__CQnME.pgp
Description: PGP signature

Reply via email to