21 Dec, 2011

1 commit


30 Nov, 2011

1 commit


16 Nov, 2011

1 commit

  • To properly support the various plane formats supported by different
    hardware, the kernel must know the pixel format of a framebuffer object.
    So add a new ioctl taking a format argument corresponding to a fourcc
    name from the new drm_fourcc.h header file. Implement the fb creation
    hooks in terms of the new mode_fb_cmd2 using helpers where the old
    bpp/depth values are needed.

    v2: create DRM specific fourcc header file for sharing with libdrm etc
    v3: fix rebase failure and use DRM fourcc codes in intel_display.c and
    update commit message
    v4: make fb_cmd2 handle field into an array for multi-object formats
    pull in Ville's fix for the memcpy in drm_plane_init
    apply Ville's cleanup to zero out fb_cmd2 arg in drm_mode_addfb
    v5: add 'flags' field for interlaced support (from Ville)

    Signed-off-by: Ville Syrjälä
    Acked-by: Alan Cox
    Reviewed-by: Rob Clark
    Signed-off-by: Jesse Barnes
    Signed-off-by: Dave Airlie

    Jesse Barnes
     

19 Oct, 2010

1 commit

  • The enter argument as implemented by commit 413d45d3627 (drm, kdb, kms:
    Add an enter argument to mode_set_base_atomic() API) should be more
    descriptive as to what it does vs just passing 1 and 0 around.

    There is no runtime behavior change as a result of this patch.

    Reported-by: Jesse Barnes
    Signed-off-by: Jason Wessel
    CC: David Airlie
    CC: dri-devel@lists.freedesktop.org
    Signed-off-by: Dave Airlie

    Jason Wessel
     

06 Oct, 2010

1 commit

  • Some devices such as the radeon chips receive information from user
    space which needs to be saved when executing an atomic mode set
    operation, else the user space would have to be queried again for the
    information.

    This patch extends the mode_set_base_atomic() call to pass an argument
    to indicate if this is an entry or an exit from an atomic kernel mode
    set change. Individual drm drivers can properly save and restore
    state accordingly.

    Signed-off-by: Jason Wessel
    CC: Jesse Barnes
    CC: David Airlie
    CC: dri-devel@lists.freedesktop.org
    Signed-off-by: Dave Airlie

    Jason Wessel
     

06 Aug, 2010

1 commit

  • * 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (204 commits)
    agp: intel-agp: do not use PCI resources before pci_enable_device()
    agp: efficeon-agp: do not use PCI resources before pci_enable_device()
    drm: kill BKL from common code
    drm/kms: Simplify setup of the initial I2C encoder config.
    drm,io-mapping: Specify slot to use for atomic mappings
    drm/radeon/kms: only expose underscan on avivo chips
    drm/radeon: add new pci ids
    drm: Cleanup after failing to create master->unique and dev->name
    drm/radeon: tone down overchatty acpi debug messages.
    drm/radeon/kms: enable underscan option for digital connectors
    drm/radeon/kms: fix calculation of h/v scaling factors
    drm/radeon/kms/igp: sideport is AMD only
    drm/radeon/kms: handle the case of no active displays properly in the bandwidth code
    drm: move ttm global code to core drm
    drm/i915: Clear the Ironlake dithering flags when the pipe doesn't want it.
    drm/radeon/kms: make sure HPD is set to NONE on analog-only connectors
    drm/radeon/kms: make sure rio_mem is valid before unmapping it
    drm/agp/i915: trim stolen space to 32M
    drm/i915: Unset cursor if out-of-bounds upon mode change (v4)
    drm/i915: Unreference object not handle on creation
    ...

    Linus Torvalds
     

05 Aug, 2010

1 commit


07 Jul, 2010

1 commit


01 Jun, 2010

1 commit


18 May, 2010

1 commit

  • After thinking it over a lot it made more sense for the core to deal with
    the output polling especially so it can notify X.

    v2: drop plans for fake connector - per Michel's comments - fix X patch sent to xorg-devel, add intel polled/hpd setting, add initial nouveau polled/hpd settings.

    v3: add config lock take inside polling, add intel/nouveau poll init/fini calls

    v4: config lock was a bit agressive, only needed around connector list reading.
    otherwise it could re-enter.

    glisse: discard drm_helper_hpd_irq_event

    v3: Reviewed-by: Michel Dänzer
    Signed-off-by: Dave Airlie

    Dave Airlie
     

07 Apr, 2010

2 commits

  • This breaks the connection between the core drm connector list
    and the fbdev connector usage, and allows them to become disjoint
    in the future. It also removes the untype void* that was in the
    connector struct to support this.

    All connectors are added to the fbdev now but this could be
    changed in the future.

    Signed-off-by: Dave Airlie

    Dave Airlie
     
  • The fbdev layer in the kms code should act like a consumer of the kms services and avoid having relying on information being store in the kms core structures in order for it to work.

    This patch

    a) removes the info pointer/psuedo palette from the core drm_framebuffer structure and moves it to the fbdev helper layer, it also removes the core drm keeping a list of kernel kms fbdevs.
    b) migrated all the fb helper functions out of the crtc helper file into the fb helper file.
    c) pushed the fb probing/hotplug control into the driver
    d) makes the surface sizes into a structure for ease of passing
    This changes the intel/radeon/nouveau drivers to use the new helper.

    Signed-off-by: Dave Airlie

    Dave Airlie
     

05 Oct, 2009

1 commit


28 Sep, 2009

1 commit


02 Sep, 2009

1 commit

  • For shared tv-out and VGA encoders, we really need to know if
    the encoder is just being switched off temporarily in blanking
    or if we are really disabling it hard.

    Also we need to try harder to disconnect encoders from unused
    connectors so we can share more efficently.

    (shared encoders stuff is coming in radeon tv-out support)

    Signed-off-by: Dave Airlie

    Dave Airlie
     

31 Aug, 2009

1 commit


04 Jun, 2009

1 commit

  • Making the drm_crtc.c code recognize the DPMS property and invoke the
    connector->dpms function doesn't remove any capability from the driver while
    reducing code duplication.

    That just highlighted the problem with the existing DPMS functions which
    could turn off the connector, but failed to turn off any relevant crtcs. The
    new drm_helper_connector_dpms function manages all of that, using the
    drm_helper-specific crtc and encoder dpms functions, automatically computing
    the appropriate DPMS level for each object in the system.

    This fixes the current troubles in the i915 driver which left PLLs, pipes
    and planes running while in DPMS_OFF mode or even while they were unused.

    Signed-off-by: Keith Packard
    Signed-off-by: Dave Airlie

    Keith Packard
     

03 Apr, 2009

2 commits


25 Feb, 2009

1 commit

  • In some cases we may receive a mode config that has a different
    CRTCencoder map that the current configuration. In that case, we
    need to disable any re-routed encoders before setting the mode,
    otherwise they may not pick up the new CRTC (if the output types are
    incompatible for example).

    Tested-by: Kristian Høgsberg
    Signed-off-by: Jesse Barnes
    Signed-off-by: Dave Airlie

    Jesse Barnes
     

20 Feb, 2009

1 commit


16 Jan, 2009

1 commit

  • When mode setting is first initialized, the driver will call into
    drm_helper_initial_config() to set up an initial output and framebuffer
    configuration. This routine is responsible for probing the available
    connectors, encoders, and crtcs, looking for modes and putting together
    something reasonable (where reasonable is defined as "allows kernel
    messages to be visible on as many displays as possible").

    However, the code was a bit too aggressive in setting default modes when
    none were found on a given connector. Even if some connectors had modes,
    any connectors found lacking modes would have the default 800x600 mode added
    to their mode list, which in some cases could cause problems later down the
    line. In my case, the LVDS was perfectly available, but the initial config
    code added 800x600 modes to both of the detected but unavailable HDMI
    connectors (which are on my non-existent docking station). This ended up
    preventing later code from setting a mode on my LVDS, which is bad.

    This patch fixes that behavior by making the initial config code walk
    through the connectors first, counting the available modes, before it decides
    to add any default modes to a possibly connected output. It also fixes the
    logic in drm_target_preferred() that was causing zeroed out modes to be set
    as the preferred mode for a given connector, even if no modes were available.

    Signed-off-by: Jesse Barnes
    Signed-off-by: Eric Anholt
    Signed-off-by: Dave Airlie

    Jesse Barnes
     

29 Dec, 2008

2 commits

  • This removes the requirement for user space to pin a buffer before
    setting a mode that is backed by the pixels from that buffer.

    Signed-off-by: Kristian Høgsberg
    Signed-off-by: Eric Anholt
    Signed-off-by: Dave Airlie

    Kristian Høgsberg
     
  • Add mode setting support to the DRM layer.

    This is a fairly big chunk of work that allows DRM drivers to provide
    full output control and configuration capabilities to userspace. It was
    motivated by several factors:
    - the fb layer's APIs aren't suited for anything but simple
    configurations
    - coordination between the fb layer, DRM layer, and various userspace
    drivers is poor to non-existent (radeonfb excepted)
    - user level mode setting drivers makes displaying panic & oops
    messages more difficult
    - suspend/resume of graphics state is possible in many more
    configurations with kernel level support

    This commit just adds the core DRM part of the mode setting APIs.
    Driver specific commits using these new structure and APIs will follow.

    Co-authors: Jesse Barnes , Jakob Bornecrantz
    Contributors: Alan Hourihane , Maarten Maathuis

    Signed-off-by: Jesse Barnes
    Signed-off-by: Eric Anholt
    Signed-off-by: Dave Airlie

    Dave Airlie