> -----Original Message----- > From: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Sent: Tuesday, August 13, 2019 11:21 AM > To: intel-gfx@xxxxxxxxxxxxxxxxxxxxx > Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>; Daniel Vetter > <daniel.vetter@xxxxxxxx>; Maarten Lankhorst > <maarten.lankhorst@xxxxxxxxxxxxxxx>; Srivatsa, Anusha > <anusha.srivatsa@xxxxxxxxx> > Subject: [PATCH v2] drm/i915: Disregard drm_mode_config.fb_base > > The fb_base is only used for communicating the GTT BAR from one piece of the > display code (kms setup) to another (fbdev). What is required in the fbdev is just > the aperture address which should be derived from the bo we allocate for the > framebuffer directly. > > The same appears true for drm/; it is not used by the core or the uAPI, it is > merely for conveniently passing a device address from bit of display > management code to another. > > v2: Note that since we only expose enough of a system map to cover our single > framebuffer, the screen_base/size and the smem are one and the same. > > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Cc: Daniel Vetter <daniel.vetter@xxxxxxxx> > Cc: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx> > Cc: Anusha Srivatsa <anusha.srivatsa@xxxxxxxxx> Reviewed-by: Anusha Srivatsa <anusha.srivatsa@xxxxxxxxx> > --- > drivers/gpu/drm/i915/display/intel_display.c | 3 --- > drivers/gpu/drm/i915/display/intel_fbdev.c | 9 +++++---- > 2 files changed, 5 insertions(+), 7 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_display.c > b/drivers/gpu/drm/i915/display/intel_display.c > index c9cf4bc7ee10..776d13101156 100644 > --- a/drivers/gpu/drm/i915/display/intel_display.c > +++ b/drivers/gpu/drm/i915/display/intel_display.c > @@ -16122,7 +16122,6 @@ static int intel_initial_commit(struct drm_device > *dev) int intel_modeset_init(struct drm_device *dev) { > struct drm_i915_private *dev_priv = to_i915(dev); > - struct i915_ggtt *ggtt = &dev_priv->ggtt; > enum pipe pipe; > struct intel_crtc *crtc; > int ret; > @@ -16202,8 +16201,6 @@ int intel_modeset_init(struct drm_device *dev) > dev->mode_config.cursor_height = 256; > } > > - dev->mode_config.fb_base = ggtt->gmadr.start; > - > DRM_DEBUG_KMS("%d display pipe%s available.\n", > INTEL_INFO(dev_priv)->num_pipes, > INTEL_INFO(dev_priv)->num_pipes > 1 ? "s" : ""); diff --git > a/drivers/gpu/drm/i915/display/intel_fbdev.c > b/drivers/gpu/drm/i915/display/intel_fbdev.c > index 5e7cc5a6ac7f..d59eee5c5d9c 100644 > --- a/drivers/gpu/drm/i915/display/intel_fbdev.c > +++ b/drivers/gpu/drm/i915/display/intel_fbdev.c > @@ -232,12 +232,9 @@ static int intelfb_create(struct drm_fb_helper *helper, > info->fbops = &intelfb_ops; > > /* setup aperture base/size for vesafb takeover */ > - info->apertures->ranges[0].base = dev->mode_config.fb_base; > + info->apertures->ranges[0].base = ggtt->gmadr.start; > info->apertures->ranges[0].size = ggtt->mappable_end; > > - info->fix.smem_start = dev->mode_config.fb_base + > i915_ggtt_offset(vma); > - info->fix.smem_len = vma->node.size; > - > vaddr = i915_vma_pin_iomap(vma); > if (IS_ERR(vaddr)) { > DRM_ERROR("Failed to remap framebuffer into virtual > memory\n"); @@ -247,6 +244,10 @@ static int intelfb_create(struct > drm_fb_helper *helper, > info->screen_base = vaddr; > info->screen_size = vma->node.size; > > + /* Our framebuffer is the entirety of fbdev's system memory */ > + info->fix.smem_start = (unsigned long)info->screen_base; > + info->fix.smem_len = info->screen_size; > + > drm_fb_helper_fill_info(info, &ifbdev->helper, sizes); > > /* If the object is shmemfs backed, it will have given us zeroed pages. > -- > 2.23.0.rc1 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx