1. 09 10月, 2013 5 次提交
    • D
      drm: move drm_lastclose() to drm_fops.c · 1c8887dd
      David Herrmann 提交于
      Try to keep all functions that handle DRM file_operations in drm_fops.c
      so internal helpers can be marked static later.
      
      This makes the split between the 3 core files more obvious:
       - drm_stub.c: DRM device allocation/destruction and management
       - drm_fops.c: DRM file_operations (except for ioctl)
       - drm_drv.c: Global DRM init + ioctl handling
      Well, ioctl handling is still spread throughout hundreds of source files,
      but at least the others are clearly defined this way.
      Signed-off-by: NDavid Herrmann <dh.herrmann@gmail.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      1c8887dd
    • D
      drm: merge device setup into drm_dev_register() · c22f0ace
      David Herrmann 提交于
      All bus drivers do device setup themselves. This requires us to adjust all
      of them if we introduce new core features. Thus, merge all these into a
      uniform drm_dev_register() helper.
      
      Note that this removes the drm_lastclose() error path for AGP as it is
      horribly broken. Moreover, no bus driver called this in any other error
      path either. Instead, we use the recently introduced AGP cleanup helpers.
      
      We also keep a DRIVER_MODESET condition around pci_set_drvdata() to keep
      semantics.
      
      [airlied: keep passing flags through so drivers don't oops on load]
      Signed-off-by: NDavid Herrmann <dh.herrmann@gmail.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      c22f0ace
    • D
      drm: add drm_dev_alloc() helper · 1bb72532
      David Herrmann 提交于
      Instead of managing device allocation+initialization in each bus-driver,
      we should do that in a central place. drm_fill_in_dev() already does most
      of it, but also requires the global drm lock for partial AGP device
      registration.
      
      Split both apart so we have a clean device initialization/allocation
      phase, and a registration phase.
      Signed-off-by: NDavid Herrmann <dh.herrmann@gmail.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      1bb72532
    • D
      drm: kill ->gem_init_object() and friends · 16eb5f43
      David Herrmann 提交于
      All drivers embed gem-objects into their own buffer objects. There is no
      reason to keep drm_gem_object_alloc(), gem->driver_private and
      ->gem_init_object() anymore.
      
      New drivers are highly encouraged to do the same. There is no benefit in
      allocating gem-objects separately.
      
      Cc: Dave Airlie <airlied@gmail.com>
      Cc: Alex Deucher <alexdeucher@gmail.com>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: Jerome Glisse <jglisse@redhat.com>
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: Inki Dae <inki.dae@samsung.com>
      Cc: Ben Skeggs <skeggsb@gmail.com>
      Cc: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
      Signed-off-by: NDavid Herrmann <dh.herrmann@gmail.com>
      Acked-by: NAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      16eb5f43
    • D
      drm/nouveau: embed gem object in nouveau_bo · 55fb74ad
      David Herrmann 提交于
      There is no reason to keep the gem object separately allocated. nouveau is
      the last user of gem_obj->driver_private, so if we embed it, we can get
      rid of 8bytes per gem-object.
      
      The implementation follows the radeon driver. bo->gem is only valid, iff
      the bo was created via the gem helpers _and_ iff the user holds a valid
      gem reference. That is, as the gem object holds a reference to the
      nouveau_bo. If you use nouveau_ref() to gain a bo reference, you are not
      guaranteed to also hold a gem reference. The gem object might get
      destroyed after the last user drops the gem-ref via
      drm_gem_object_unreference(). Use drm_gem_object_reference() to gain a
      gem-reference.
      
      For debugging, we can use bo->gem.filp != NULL to test whether a gem-bo is
      valid. However, this shouldn't be used for real functionality to avoid
      gem-internal dependencies.
      
      Note that the implementation follows the previous style. However, we no
      longer can check for bo->gem != NULL to test for a valid gem object. This
      wasn't done before, so we should be safe now.
      Signed-off-by: NDavid Herrmann <dh.herrmann@gmail.com>
      Acked-by: NMaarten Lankhorst <maarten.lankhorst@canonical.com>
      Reviewed-by: NBen Skeggs <bskeggs@redhat.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      55fb74ad
  2. 01 10月, 2013 10 次提交
  3. 28 9月, 2013 4 次提交
  4. 26 9月, 2013 2 次提交
  5. 25 9月, 2013 4 次提交
  6. 24 9月, 2013 3 次提交
  7. 23 9月, 2013 9 次提交
  8. 21 9月, 2013 3 次提交