Message ID | 20200326151009.102377-1-hdegoede@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/fb-helper: Add TODO for making drm_fb_helper_alloc_fbi fill apertures | expand |
On Thu, Mar 26, 2020 at 4:10 PM Hans de Goede <hdegoede@redhat.com> wrote: > > Currently drivers using drm_fbdev_generic_setup() end up with a single > empty aperture in their fb_info struct. > > Not having the proper info in the apertures list causes > register_framebuffer to not remove conflicting framebuffers, > which some drivers currently workaround by manually calling > drm_fb_helper_remove_conflicting_pci_framebuffers(). > > Add a TODO as a reminder that we need to fix this. > > Signed-off-by: Hans de Goede <hdegoede@redhat.com> > --- > drivers/gpu/drm/drm_fb_helper.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c > index 4c7cbce7bae7..16b8dc38d022 100644 > --- a/drivers/gpu/drm/drm_fb_helper.c > +++ b/drivers/gpu/drm/drm_fb_helper.c > @@ -526,6 +526,14 @@ struct fb_info *drm_fb_helper_alloc_fbi(struct drm_fb_helper *fb_helper) > if (ret) > goto err_release; > > + /* > + * TODO: We really should be smarter here and alloc an apperture > + * for each IORESOURCE_MEM resource helper->dev->dev has and also > + * init the ranges of the appertures based on the resources. > + * Note some drivers currently count on there being only 1 empty > + * aperture and fill this themselves, these will need to be dealt > + * with somehow when fixing this. > + */ Ah yes this is a bit more involved than first apperances suggest - we might want to have a dedicated solution for the generic_setup helper only, so we don't break all the other drivers using this function directly. Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> > info->apertures = alloc_apertures(1); > if (!info->apertures) { > ret = -ENOMEM; > -- > 2.26.0.rc2 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel
Hi, On 3/26/20 6:55 PM, Daniel Vetter wrote: > On Thu, Mar 26, 2020 at 4:10 PM Hans de Goede <hdegoede@redhat.com> wrote: >> >> Currently drivers using drm_fbdev_generic_setup() end up with a single >> empty aperture in their fb_info struct. >> >> Not having the proper info in the apertures list causes >> register_framebuffer to not remove conflicting framebuffers, >> which some drivers currently workaround by manually calling >> drm_fb_helper_remove_conflicting_pci_framebuffers(). >> >> Add a TODO as a reminder that we need to fix this. >> >> Signed-off-by: Hans de Goede <hdegoede@redhat.com> >> --- >> drivers/gpu/drm/drm_fb_helper.c | 8 ++++++++ >> 1 file changed, 8 insertions(+) >> >> diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c >> index 4c7cbce7bae7..16b8dc38d022 100644 >> --- a/drivers/gpu/drm/drm_fb_helper.c >> +++ b/drivers/gpu/drm/drm_fb_helper.c >> @@ -526,6 +526,14 @@ struct fb_info *drm_fb_helper_alloc_fbi(struct drm_fb_helper *fb_helper) >> if (ret) >> goto err_release; >> >> + /* >> + * TODO: We really should be smarter here and alloc an apperture >> + * for each IORESOURCE_MEM resource helper->dev->dev has and also >> + * init the ranges of the appertures based on the resources. >> + * Note some drivers currently count on there being only 1 empty >> + * aperture and fill this themselves, these will need to be dealt >> + * with somehow when fixing this. >> + */ > > Ah yes this is a bit more involved than first apperances suggest - we > might want to have a dedicated solution for the generic_setup helper > only, so we don't break all the other drivers using this function > directly. > > Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Thank you, pushed to drm-misc-next. Any chance you can perhaps take (another) look at: https://patchwork.freedesktop.org/patch/340140/ ? We had an interesting discussion about that which seems (to me) to end in agreement and you asking for more documentation. I replied to that that the patch already added some (but not much) documentation and then the discussion ended. I would still like to get this patch upstream, as I have a userspace patch (for plymouth) pending which depends on it. Regards, Hans
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c index 4c7cbce7bae7..16b8dc38d022 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c @@ -526,6 +526,14 @@ struct fb_info *drm_fb_helper_alloc_fbi(struct drm_fb_helper *fb_helper) if (ret) goto err_release; + /* + * TODO: We really should be smarter here and alloc an apperture + * for each IORESOURCE_MEM resource helper->dev->dev has and also + * init the ranges of the appertures based on the resources. + * Note some drivers currently count on there being only 1 empty + * aperture and fill this themselves, these will need to be dealt + * with somehow when fixing this. + */ info->apertures = alloc_apertures(1); if (!info->apertures) { ret = -ENOMEM;
Currently drivers using drm_fbdev_generic_setup() end up with a single empty aperture in their fb_info struct. Not having the proper info in the apertures list causes register_framebuffer to not remove conflicting framebuffers, which some drivers currently workaround by manually calling drm_fb_helper_remove_conflicting_pci_framebuffers(). Add a TODO as a reminder that we need to fix this. Signed-off-by: Hans de Goede <hdegoede@redhat.com> --- drivers/gpu/drm/drm_fb_helper.c | 8 ++++++++ 1 file changed, 8 insertions(+)