Commit Graph

13855 Commits

Author SHA1 Message Date
Damien Lespiau 409bbf1e3d drm: Check if the allocation has succeeded before dereferencing newmode
We allocate memory in drm_display_mode_from_vic_index() and use it
without checking the pointer is valid. Fix that.

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-03-17 11:23:07 +01:00
Ville Syrjälä 366d480700 drm/fb-helper: Use drm_fb_helper_restore_fbdev_mode() in drm_fb_helper_set_par()
Use drm_fb_helper_restore_fbdev_mode() in drm_fb_helper_set_par() to
make sure extra planes get disabled whenever fbcon takes over.

Otherwise the code in drm_fb_helper_set_par() was already doing the
exact same thing as drm_fb_helper_restore_fbdev_mode(), so this doesn't
change the behaviour in any other way.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-03-17 11:23:07 +01:00
Daniel Drake 24d01805ca drm/edid: request HDMI underscan by default
Working with HDMI TVs is a real pain as they tend to overscan by
default, meaning that the pixels around the edge of the framebuffer
are not displayed. This is well explained here:
http://mjg59.dreamwidth.org/8705.html

There is a bit in the HDMI info frame that can request that the
remote display shows the full pixel data ("underscan"). For the
remote display, the HDMI spec states that this is optional - it
doesn't have to listen. That means that most TVs will probably ignore
this.

But, maybe there are a handful of TVs for which this would help
the situation. As we live in a digital world, ask the remote
display not to overscan by default.

Signed-off-by: Daniel Drake <drake@endlessm.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-03-03 18:56:30 +01:00
Dave Airlie 4d538b7919 Merge branch 'drm-next-3.15' of git://people.freedesktop.org/~deathsimple/linux into drm-next
So this is the initial pull request for radeon drm-next 3.15. Highlights:
- VCE bringup including DPM support
- Few cleanups for the ring handling code

* 'drm-next-3.15' of git://people.freedesktop.org/~deathsimple/linux:
  drm/radeon: cleanup false positive lockup handling
  drm/radeon: drop radeon_ring_force_activity
  drm/radeon: drop drivers copy of the rptr
  drm/radeon/cik: enable/disable vce cg when encoding v2
  drm/radeon: add support for vce 2.0 clock gating
  drm/radeon/dpm: properly enable/disable vce when vce pg is enabled
  drm/radeon/dpm: enable dynamic vce state switching v2
  drm/radeon: add vce dpm support for KV/KB
  drm/radeon: enable vce dpm on CI
  drm/radeon: add vce dpm support for CI
  drm/radeon: fill in set_vce_clocks for CIK asics
  drm/radeon/dpm: fetch vce states from the vbios
  drm/radeon/dpm: fill in some initial vce infrastructure
  drm/radeon/dpm: move platform caps fetching to a separate function
  drm/radeon: add callback for setting vce clocks
  drm/radeon: add VCE version parsing and checking
  drm/radeon: add VCE ring query
  drm/radeon: initial VCE support v4
  drm/radeon: fix CP semaphores on CIK
2014-02-27 14:39:30 +10:00
Dave Airlie c48cdd23ea Merge branch 'tda998x-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-cubox into drm-next
Updates from Jean-Fracois for the TDA998x driver, which are on top of
the fixes you have previously pulled, except these changes aren't
intended for -rc, but the next merge window.

Several of these are issues of correctness - passing more correct HDMI
info packets, not reading registers in older chips documented as write
only (despite appearing to be read/write in later chips).  Others are
code cleanups (using definitions rather than constants where we have
them already in the kernel).

Additional functionality is also added by way of optional support for
the IRQ from the TDA998x, which allows us to avoid busy-waiting for
the EDID reads.

* 'tda998x-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-cubox:
  drm/i2c: tda998x: always use the same device for all kernel messages
  drm/i2c: tda998x: adjust the audio clock divider for S/PDIF
  drm/i2c: tda998x: code optimization
  drm/i2c: tda998x: remove the unused variable ca_i2s
  drm/i2c: tda998x: make the audio code more readable
  drm/i2c: tda998x: use irq for connection status and EDID read
  drm/i2c: tda998x: always enable EDID read IRQ
  drm/i2c: tda998x: add DT documentation
  drm/i2c: tda998x: add DT support
  drm/i2c: tda998x: don't read write-only registers
  drm/i2c: tda998x: don't freeze the system at audio startup time
  drm/i2c: tda998x: change probe message origin
  drm/i2c: tda998x: code cleanup
  drm/i2c: tda998x: clean up error chip version checking
  drm/i2c: tda998x: check more I/O errors
  drm/i2c: tda998x: simplify the i2c read/write functions
  drm/i2c: tda998x: use ALSA IEC958 definitions and update audio frequency
  drm/i2c: tda998x: add the active aspect in HDMI AVI frame
  drm/i2c: tda998x: use HDMI constants
2014-02-27 14:36:56 +10:00
Dave Airlie 3e09dcd5bd Merge tag 'drm-intel-next-2014-02-07' of ssh://git.freedesktop.org/git/drm-intel into drm-next
- Yet more steps towards atomic modeset from Ville.
- DP panel power sequencing improvements from Paulo.
- irq code cleanups from Ville.
- 5.4 GHz dp lane clock support for bdw/hsw from Todd.
- Clock readout support for hsw/bdw (aka fastboot) from Jesse.
- Make pipe underruns report at ERROR level (Ville). This is to check our
  improved watermarks code.
- Full ppgtt support from Ben for gen7.
- More fbc fixes and improvements from Ville all over the place, unfortunately
  not yet enabled by default on more platforms.
- w/a cleanups from Ville.
- HiZ stall optimization settings (Chia-I Wu).
- Display register mmio offset refactor patch from Antti.
- RPS improvements for corner-cases from Jeff McGee.

* tag 'drm-intel-next-2014-02-07' of ssh://git.freedesktop.org/git/drm-intel: (166 commits)
  drm/i915: Update rps interrupt limits
  drm/i915: Restore rps/rc6 on reset
  drm/i915: Prevent recursion by retiring requests when the ring is full
  drm/i915: Generate a hang error code
  drm/i915: unify FLIP_DONE macro names
  drm/i915: vlv: s/spin_lock_irqsave/spin_lock/ in irq handler
  drm/i915: factor out valleyview_pipestat_irq_handler
  drm/i915: vlv: don't unmask IIR[DISPLAY_PIPE_A/B_VBLANK] interrupt
  drm/i915: Reorganize display pipe register accesses
  drm/i915: Treat using a purged buffer as a source of EFAULT
  drm/i915: Convert EFAULT into a silent SIGBUS
  drm/i915: release mutex in i915_gem_init()'s error path
  drm/i915: check for oom when allocating private_default_ctx
  drm/i915/vlv: WA to fix Voltage not getting dropped to Vmin when Gfx is power gated.
  drm/i915: Get rid of acthd based guilty batch search
  drm/i915: Use hangcheck score to find guilty context
  drm/i915: Drop WaDisablePSDDualDispatchEnable:ivb for IVB GT2
  drm/i915: Fix IVB GT2 WaDisableDopClockGating and WaDisablePSDDualDispatchEnable
  drm/i915: Don't access snooped pages through the GTT (even for error capture)
  drm/i915: Only print information for filing bug reports once
  ...

Conflicts:
	drivers/gpu/drm/i915/intel_dp.c
2014-02-27 14:36:01 +10:00
Dave Airlie 6ba6b7cdaf drm: DisplayPort AUX framework for v3.15-rc1
This series of patches implements a small framework that abstracts away
 some of the functionality that the DisplayPort AUX channel provides. It
 comes with a set of generic helpers that use the driver implementations
 to reduce code duplication.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.22 (GNU/Linux)
 
 iQIcBAABAgAGBQJTDhU1AAoJEN0jrNd/PrOh5OoP/1tmkV0cgcMp//M2i0hWptvU
 ifO1SdwsnSMKajM8ytJuW+1e7UBStQg3QzpEwaTcvOuKHqE2WtDksh7yYUaj5Tv/
 SB7n0cS6rxbdIQ9SCFDVHT+A9N/YUeCj8l9BxgabaNnguA4I8Dydp9cfm3fCq835
 cWGf02TXw2H6V5mbNjaBggWSp4iqG/6+QxAn07o+u137kbTlRMO6pBjEflaVBCDP
 rYIJ5q2UgN//wI4e+ESYEyU8Cze5Zaevk+/L4Qg9FNbzGSjeEmfVNLuPdLkZOYV6
 6RSwOgSlZWGjMRsIWHta2u0VDQB/Wr0PjDqx4mWcYyrFJfms5yrc6R4JmQwGRFxi
 ucSkL9Ak1LKK2NLhrfnzL1ogHkU/5EEPV1dDxK7P0Milzg2YUDwhv1zn+ssmtUuQ
 zZrPYJNsG/rdNfA7BeGBpqjLnL93YWQXNbeIx2m/yQIT4YA63jkKgqz5p9NOvkjp
 ++JdGX0By1iOMG9SOOFVIOLorohVnYDqrp+klsIuXVJhw3/bvPLcXejRNPuODRoQ
 aw/8nLwHubDvG2lJVgVFmrlofxcfeIbYsf0AE2wiATRjjZ37+YfCdFOpu2E0cMN1
 mLquAHkpTupYr0SfKW1ofhJuxDcvkir7ud9zpqKRxfUh0xFmnCaaDh48FocWpdSG
 MsPdMJ0g01uzzxlkFqKk
 =SovB
 -----END PGP SIGNATURE-----

Merge tag 'drm/dp-aux-for-3.15-rc1' of git://anongit.freedesktop.org/tegra/linux into drm-next

drm: DisplayPort AUX framework for v3.15-rc1

This series of patches implements a small framework that abstracts away
some of the functionality that the DisplayPort AUX channel provides. It
comes with a set of generic helpers that use the driver implementations
to reduce code duplication.

* tag 'drm/dp-aux-for-3.15-rc1' of git://anongit.freedesktop.org/tegra/linux:
  drm/dp: Allow registering AUX channels as I2C busses
  drm/dp: Add DisplayPort link helpers
  drm/dp: Add drm_dp_dpcd_read_link_status()
  drm/dp: Add AUX channel infrastructure
2014-02-27 14:30:08 +10:00
Thierry Reding 88759686c7 drm/dp: Allow registering AUX channels as I2C busses
Implements an I2C-over-AUX I2C adapter on top of the generic drm_dp_aux
infrastructure. It extracts the retry logic from existing drivers, which
should help in porting those drivers to this new helper.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
---
Changes in v5:
- move comments partially to to header file
- keep MOT set between I2C messages
- return -EPROTO on short reads

Changes in v4:
- fix typo "bitrate" -> "bit rate"

Changes in v3:
- add back DRM_DEBUG_KMS and DRM_ERROR messages
- embed i2c_adapter within struct drm_dp_aux
- fix typo in comment
2014-02-26 17:21:34 +01:00
Thierry Reding 516c0f7c0a drm/dp: Add DisplayPort link helpers
Add a helper to probe a DP link (read out the supported DPCD revision,
maximum rate, link count and capabilities) as well as power up the DP
link and configure it accordingly.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
---
Changes in v5:
- export helpers

Changes in v4:
- fix a couple of typos in comments as pointed out by Alex Deucher

Changes in v3:
- split into drm_dp_link_power_up() and drm_dp_link_configure()
- do not change sink state for DPCD versions earlier than 1.1
- sleep for 1-2 ms after setting local sink to D0 state
- read and write consecutive registers where possible
- read DPCD revision when link is probed
- remove duplicate kerneldoc
2014-02-26 17:21:34 +01:00
Thierry Reding 8d4adc6a58 drm/dp: Add drm_dp_dpcd_read_link_status()
The function reads the link status (6 bytes starting at offset 0x202)
from the DPCD so that it can be conveniently passed to other DPCD
helpers.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-02-26 17:21:33 +01:00
Thierry Reding c197db75ff drm/dp: Add AUX channel infrastructure
This is a superset of the current i2c_dp_aux bus functionality and can
be used to transfer native AUX in addition to I2C-over-AUX messages.

Helpers are provided to read and write the DPCD, either blockwise or
byte-wise. Many of the existing helpers for DisplayPort take a copy of a
portion of the DPCD and operate on that, without a way to write data
back to the DPCD (e.g. for configuration of the link).

Subsequent patches will build upon this infrastructure to provide common
functionality in a generic way.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
---
Changes in v5:
- move comments partially to struct drm_dp_aux_msg in header file
- return -EPROTO on short reads in DPCD helpers

Changes in v4:
- fix a typo in a comment

Changes in v3:
- reorder drm_dp_dpcd_writeb() arguments to be more intuitive
- return number of bytes transferred in drm_dp_dpcd_write()
- factor out drm_dp_dpcd_access()
- describe error codes
2014-02-26 17:21:32 +01:00
Linus Torvalds 795233bfd6 ACPI and power management fixes for 3.14-rc4
- Fix for a recent probing regression in the nouveau driver introduced
    by an ACPI change related to the handling of _DSM from Jiang Liu.
 
  - Fix for a dock station sysfs attribute that stopped working correctly
    after recent changes in the ACPI core.
 
  - cpufreq fix taking care of broken code related to CPU removal and
    overlooked by a previous recent fix in that area.  From Viresh Kumar.
 
  - Two intel_pstate fixes related to Baytrail support added during
    the 3.13 cycle (candidates for -stable) from Dirk Brandewie.
 
  - ACPI video fix removing duplicate brightness values from the _BCL
    table which makes its user space interface behave sanely.  From
    Hans de Goede.
 
  - Fix for the powernow-k8 cpufreq driver making it initialize its
    per-CPU data structures correctly from Srivatsa S. Bhat.
 
  - Fix for an obscure memory leak in the ACPI PCI interrupt allocation
    code (related to ISA) from Tomasz Nowicki.
 
  - ACPI video blacklist changes moving several systems that should
    use the native backlight interface instead of the ACPI one from
    the general ACPI _OSI blacklist the the ACPI video driver's
    blacklist where they belong.  This consists of an ACPI video
    driver update from Aaron Lu and a revert of a previous commit
    adding systems to the ACPI _OSI blacklist requested by Takashi Iwai.
 
  - Several fixes for build issues in ACPI drivers occuring when
    CONFIG_PM_SLEEP is unset from Shuah Khan.
 
  - Fix for an sscanf() format string in the ACPI Smart Battery
    Subsystem (SBS) driver from Luis G.F.
 
 /
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.22 (GNU/Linux)
 
 iQIcBAABCAAGBQJTB3oSAAoJEILEb/54YlRxjnUQAJ+ncexP66dwfCbkbWehfY/Y
 j339hEgSbj/OId7AQl9UKSSnomFd4KHLQG2eRmJ5p3hVtjIm975XCO4UJDA6UNuW
 bHpeMdled6zCKf9cXaboiBlU5FvpALJWEohVxVOf3tXMteAKSInN1mY8Kikmh7ZS
 C9v9rGS5vhETN4FZHkM8PCcQVIYXGv+kbXPzos+TcfJ77nFS6UYJRG0G+x2TBhCY
 d4JFE2EVfTCNMGLAPYr4M0kUWlqvOFMmlUqoIck/qYeCATIlsVilgbXD+VxVVrLK
 dO1QLPsj1dUq3a3PDGh+r8ML8iQN9v4EABfNwCCes8D/zwGf4lql1J2k9zc7/kax
 +3ppJEqprBMIlsLZzFKdnWQEswkwt6Gy/EFzUQb9v0CQp1pb3hQ+9ziPD/y/abfM
 HjZzvc/fGzC08IDHcTFdfpoga1oU9HLAoYe8PXJFEPoSwEHZET9ddXVsn74BdyvI
 r03VQuP7HeerCwsvdhDL2veEOXPt5HoWLsXRfprKiQmjX2W6ypUO7fPM34wXF1iT
 l5oWu0OclsuNURvJnXWjA+9VUEM+0nHSScqsXF/oKUQywYCQI7Cp9TXnrE1G/jw9
 5nnnLjnPCMXrMan31rxeg2gJgeq/w/fNs5fa7xFGjWrLIC5gNQoAb5f+B+cAeSNn
 ifmNqPBAtReT5p7qr2wV
 =5gW2
 -----END PGP SIGNATURE-----

Merge tag 'pm+acpi-3.14-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm

Pull ACPI and power management fixes from Rafael Wysocki:
 "These include two fixes for recent regressions related to ACPI, a
  cpufreq fix for breakage overlooked by a previous fix commit, two
  intel_pstate fixes for stuff added during the 3.13 cycle that need to
  go into -stable, three fixes for older bugs that also are -stable
  candidates, ACPI video blacklist changes related to BIOSes that behave
  in a special way on Windows 8, several build fixes for CONFIG_PM_SLEEP
  unset in ACPI drivers and an ACPI driver cleanup.

  Specifics:

   - Fix for a recent probing regression in the nouveau driver
     introduced by an ACPI change related to the handling of _DSM from
     Jiang Liu.

   - Fix for a dock station sysfs attribute that stopped working
     correctly after recent changes in the ACPI core.

   - cpufreq fix taking care of broken code related to CPU removal and
     overlooked by a previous recent fix in that area.  From Viresh
     Kumar.

   - Two intel_pstate fixes related to Baytrail support added during the
     3.13 cycle (candidates for -stable) from Dirk Brandewie.

   - ACPI video fix removing duplicate brightness values from the _BCL
     table which makes its user space interface behave sanely.  From
     Hans de Goede.

   - Fix for the powernow-k8 cpufreq driver making it initialize its
     per-CPU data structures correctly from Srivatsa S Bhat.

   - Fix for an obscure memory leak in the ACPI PCI interrupt allocation
     code (related to ISA) from Tomasz Nowicki.

   - ACPI video blacklist changes moving several systems that should use
     the native backlight interface instead of the ACPI one from the
     general ACPI _OSI blacklist the the ACPI video driver's blacklist
     where they belong.  This consists of an ACPI video driver update
     from Aaron Lu and a revert of a previous commit adding systems to
     the ACPI _OSI blacklist requested by Takashi Iwai.

   - Several fixes for build issues in ACPI drivers occuring when
     CONFIG_PM_SLEEP is unset from Shuah Khan.

   - Fix for an sscanf() format string in the ACPI Smart Battery
     Subsystem (SBS) driver from Luis G.F"

* tag 'pm+acpi-3.14-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
  intel_pstate: Add support for Baytrail turbo P states
  intel_pstate: Use LFM bus ratio as min ratio/P state
  ACPI / nouveau: fix probing regression related to _DSM
  Revert "ACPI: Blacklist Win8 OSI for some HP laptop 2013 models"
  ACPI / video: Add systems that should favour native backlight interface
  ACPI / video: Filter the _BCL table for duplicate brightness values
  cpufreq: powernow-k8: Initialize per-cpu data-structures properly
  cpufreq: remove sysfs link when a cpu != policy->cpu, is removed
  ACPI / PCI: Fix memory leak in acpi_pci_irq_enable()
  ACPI / dock: Make 'docked' sysfs attribute work as documented
  ACPI / SBS: Fix incorrect sscanf() string
  ACPI / thermal: fix thermal driver compile error when CONFIG_PM_SLEEP is undefined
  ACPI / SBS: fix SBS driver compile error when CONFIG_PM_SLEEP is undefined
  ACPI / fan: fix fan driver compile error when CONFIG_PM_SLEEP is undefined
  ACPI / button: fix button driver compile error when CONFIG_PM_SLEEP is undefined
  ACPI / battery: fix battery driver compile error when CONFIG_PM_SLEEP is undefined
  ACPI / AC: fix AC driver compile error when CONFIG_PM_SLEEP is undefined
2014-02-21 10:01:17 -08:00
Jiang Liu e284175a96 ACPI / nouveau: fix probing regression related to _DSM
Fix regression caused by commit b072e53, which breaks loading nouveau
driver on optimus laptops.

On some platforms, ACPI _DSM method (nouveau_op_dsm_muid, function 0)
has special requirements on the fourth parameter, which is different
from ACPI specifications. So revert to the private implementation
to check availability of _DSM functions instead of using common
acpi_check_dsm() interface.

Fixes: b072e53b0a (ACPI / nouveau: replace open-coded _DSM code with helper functions)
Reported-and-tested-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
[rjw: Subject]
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2014-02-20 21:19:47 +01:00
Dave Airlie 75936c65dd Merge tag 'ttm-fixes-3.14-2014-02-18' of git://people.freedesktop.org/~thomash/linux into drm-fixes
Pull request of 2014-02-18

One compile fix and one memory leak.

* tag 'ttm-fixes-3.14-2014-02-18' of git://people.freedesktop.org/~thomash/linux:
  drm/ttm: Fix memory leak in ttm_agp_backend.c
  drm/ttm: declare 'struct device' in ttm_page_alloc.h
2014-02-19 08:21:26 +10:00
Dave Airlie 9830e44f56 Merge tag 'vmwgfx-fixes-3.14-2014-02-18' of git://people.freedesktop.org/~thomash/linux into drm-fixes
Pull request of 2014-02-18.

Nothing special. The biggest change is adding a couple of command defines and
packing the command data correctly.

* tag 'vmwgfx-fixes-3.14-2014-02-18' of git://people.freedesktop.org/~thomash/linux:
  drm/vmwgfx: Fix command defines and checks
  drm/vmwgfx: Fix possible integer overflow
  drm/vmwgfx: Remove stray const
  drm/vmwgfx: unlock on error path in vmw_execbuf_process()
  drm/vmwgfx: Get maximum mob size from register SVGA_REG_MOB_MAX_SIZE
  drm/vmwgfx: Fix a couple of sparse warnings and errors
2014-02-19 08:21:02 +10:00
Alex Deucher 21ed4947fd drm/radeon/ni: fix typo in dpm sq ramping setup
inverted logic.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
2014-02-18 13:41:06 -05:00
Alex Deucher 5b43c3cd07 drm/radeon/si: fix typo in dpm sq ramping setup
inverted logic.

Noticed-by: Sylvain BERTRAND <sylware@legeek.net>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
2014-02-18 13:41:05 -05:00
Christian König 8f53492f86 drm/radeon: fix CP semaphores on CIK
The CP semaphore queue on CIK has a bug that triggers if uncompleted
waits use the same address while a signal is still pending. Work around
this by using different addresses for each sync.

Signed-off-by: Christian König <christian.koenig@amd.com>
Cc: stable@vger.kernel.org
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-02-18 13:41:05 -05:00
Dan Carpenter ebc54ffe1c drm/radeon: delete a stray tab
Static checkers complain that probably curly braces were intended here,
but actually it makes more sense to remove the extra tab.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-02-18 13:41:04 -05:00
Alex Deucher 6d8ea7de3f drm/radeon: fix display tiling setup on SI
Apply the same logic as CI to SI for setting up the
display tiling parameters.  The num banks may vary
per tiling index just like CI.

Bugs:
https://bugs.freedesktop.org/show_bug.cgi?id=71488
https://bugs.freedesktop.org/show_bug.cgi?id=73946
https://bugs.freedesktop.org/show_bug.cgi?id=74927

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
2014-02-18 13:41:03 -05:00
Alex Deucher 78b0351019 drm/radeon/dpm: reduce r7xx vblank mclk threshold to 200
Most laptops seems to have a vblank period of less than
300 and mclk switching works fine.  Drop the quirk and
set the default threshold to 200.

bug:
https://bugzilla.kernel.org/show_bug.cgi?id=70701

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-02-18 13:41:02 -05:00
Alex Deucher bea61c59d7 drm/radeon: fill in DRM_CAPs for cursor size
CIK parts are 128x128, older parts are 64x64.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-02-18 13:41:01 -05:00
Alex Deucher 8716ed4e7b drm: add DRM_CAPs for cursor size
Some hardware may not support standard 64x64 cursors.  Add
a drm cap to query the cursor size from the kernel.  Some examples
include radeon CIK parts (128x128 cursors) and armada (32x64 or 64x32).
This allows things like device specific ddxes to remove asics specific
logic and also allows xf86-video-modesetting to work properly with hw
cursors on this hardware. Default to 64 if the driver doesn't specify
a size.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Rob Clark <robdclark@gmail.com>
2014-02-18 13:41:01 -05:00
Alex Deucher 7d5a33b071 drm/radeon: unify bpc handling
We were already storing the bpc (bits per color) information
in radeon_crtc, so just use that everywhere rather than
calculating it everywhere we use it.  This also allows us
to change it in one place if we ever want to override it.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-02-18 13:41:00 -05:00
Christian König 82dc62a31c drm/radeon: cleanup false positive lockup handling
Check always when we calculate the free dw, not just the first time.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
2014-02-18 17:50:07 +01:00
Christian König 2d2fe3f9b6 drm/radeon: drop radeon_ring_force_activity
The reason for the false positives was fixed quite some time ago and since
most engines can still execute NOPs while being locked up it leads to false
negatives.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
2014-02-18 17:50:00 +01:00
Christian König ff212f25fe drm/radeon: drop drivers copy of the rptr
In all cases where it really matters we are using the read functions anyway.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
2014-02-18 17:49:19 +01:00
Alex Deucher a1d6f97c8c drm/radeon/cik: enable/disable vce cg when encoding v2
Some of the vce clocks are automatic, others need to
be manually enabled.  For ease, just disable cg when
vce is active.

v2: rebased

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-02-18 16:11:46 +01:00
Alex Deucher b9fa188376 drm/radeon: add support for vce 2.0 clock gating
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-02-18 16:11:44 +01:00
Alex Deucher 44493ba959 drm/radeon/dpm: properly enable/disable vce when vce pg is enabled
The adds the appropriate function calls to properly re-init
vce before it's used after it has been power gated.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-02-18 16:11:43 +01:00
Alex Deucher 03afe6f648 drm/radeon/dpm: enable dynamic vce state switching v2
enable vce states when vce is active.  When vce is active,
it adjusts the currently selected state (performance, battery,
uvd, etc.)

v2: add code comments

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Christian König <christian.koenig@amd.com>
2014-02-18 16:11:41 +01:00
Alex Deucher 4233290519 drm/radeon: add vce dpm support for KV/KB
TODO: plug in cik_vce_suspend()/resume() so we can enable
vce powergating. See XXX in code.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-02-18 16:11:40 +01:00
Alex Deucher ee35b0024a drm/radeon: enable vce dpm on CI
VCE dpm dynamically adjusts the uvd clocks on
demand.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-02-18 16:11:38 +01:00
Alex Deucher 8cd366823e drm/radeon: add vce dpm support for CI
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-02-18 16:11:36 +01:00
Alex Deucher 5ad6bf91ef drm/radeon: fill in set_vce_clocks for CIK asics
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-02-18 16:11:35 +01:00
Alex Deucher 58bd2a88fa drm/radeon/dpm: fetch vce states from the vbios
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-02-18 16:11:33 +01:00
Alex Deucher b62d628bd6 drm/radeon/dpm: fill in some initial vce infrastructure
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-02-18 16:11:32 +01:00
Alex Deucher 82f79cc54b drm/radeon/dpm: move platform caps fetching to a separate function
It's needed by by both the asic specific functions and the
extended table parser.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-02-18 16:11:30 +01:00
Alex Deucher b59b733397 drm/radeon: add callback for setting vce clocks
Similar to uvd clock setting.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-02-18 16:11:28 +01:00
Christian König 98ccc291ff drm/radeon: add VCE version parsing and checking
Also make the result available to userspace.

Signed-off-by: Christian König <christian.koenig@amd.com>
2014-02-18 16:11:26 +01:00
Christian König f7ba8b04b2 drm/radeon: add VCE ring query
Signed-off-by: Christian König <christian.koenig@amd.com>
2014-02-18 16:11:24 +01:00
Christian König d93f79376f drm/radeon: initial VCE support v4
Only VCE 2.0 support so far.

v2: squashing multiple patches into this one
v3: add IRQ support for CIK, major cleanups,
    basic code documentation
v4: remove HAINAN from chipset list

Signed-off-by: Christian König <christian.koenig@amd.com>
2014-02-18 16:11:22 +01:00
Masanari Iida 7a444d1f0b drm/ttm: Fix memory leak in ttm_agp_backend.c
This patch fix a memory leak found by cppcheck.
[drivers/gpu/drm/ttm/ttm_agp_backend.c:129]:
(error) Memory leak: agp_be

Signed-off-by: Masanari Iida <standby24x7@gmail.com>
Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com>
2014-02-18 14:03:32 +01:00
Christian König 1c61eae469 drm/radeon: fix CP semaphores on CIK
The CP semaphore queue on CIK has a bug that triggers if uncompleted
waits use the same address while a signal is still pending. Work around
this by using different addresses for each sync.

Signed-off-by: Christian König <christian.koenig@amd.com>
Cc: stable@vger.kernel.org
2014-02-18 11:30:59 +01:00
Dave Airlie c2288d4d38 Merge branch 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-fixes
Nothing too exciting, mostly fixes for ancient boards, but a pretty important fix for DP on some systems.

Thanks,
* 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6:
  drm/nouveau: fix TTM_PL_TT memtype on pre-nv50
  drm/nv50/disp: use correct register to determine DP display bpp
  drm/nouveau/fb: use correct ram oclass for nv1a hardware
  drm/nv50/gr: add missing nv_error parameter priv
  drm/nouveau: fix ENG_RUNLIST register address
  drm/nv4c/bios: disallow retrieving from prom on nv4x igp's
  drm/nv4c/vga: decode register is in a different place on nv4x igp's
  drm/nv4c/mc: nv4x igp's have a different msi rearm register
  drm/nouveau: set irq_enabled manually
2014-02-18 16:22:40 +10:00
Dave Airlie 42738c2b39 Merge tag 'drm-intel-fixes-2014-02-14' of ssh://git.freedesktop.org/git/drm-intel into drm-fixes
3 fixes plus 1 prep patch, all four cc: stable. Jani will take over from
here and the plan is that he'll do 3.14-fixes for the entire release just
to work things out a bit.

* tag 'drm-intel-fixes-2014-02-14' of ssh://git.freedesktop.org/git/drm-intel:
  drm/i915/dp: add native aux defer retry limit
  drm/i915/dp: increase native aux defer retry timeout
  drm/i915: Prevent MI_DISPLAY_FLIP straddling two cachelines on IVB
  drm/i915: Add intel_ring_cachline_align()
2014-02-18 16:21:49 +10:00
Dave Airlie 3f0606cbd9 Merge branch 'tda998x-fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-cubox into drm-fixes
fix for leak in tda998x

* 'tda998x-fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-cubox:
  drm/i2c: tda998x: Fix memory leak in tda998x_encoder_init error path.
2014-02-18 16:20:17 +10:00
Ilia Mirkin 34d5950818 drm/nouveau: fix TTM_PL_TT memtype on pre-nv50
Commit a55409066 ("drm/nv50-: map TTM_PL_SYSTEM through a BAR for CPU
access") made it possible to work with tiled memory. However
mem->mm_node is not a nouveau_mem for AGP-using pre-NV50 cards, but a
drm_mm_node, as created by the ttm_bo_manager_func. As such, extend the
untiled check to explicitly include all pre-nv50 cards.

Reported-by: Ronald <ronald645@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=74613
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Tested-by: Ronald Uitermark <ronald645@gmail.com>
Acked-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-02-18 10:37:18 +10:00
Ilia Mirkin a7f1c1e65b drm/nv50/disp: use correct register to determine DP display bpp
Commit 0a0afd282f ("drm/nv50-/disp: move DP link training to core and
train from supervisor") added code that uses the wrong register for
computing the display bpp, used for bandwidth calculation. Adjust to use
the same register as used by exec_clkcmp and nv50_disp_intr_unk20_2_dp.

Reported-by: Torsten Wagner <torsten.wagner@gmail.com>
Reported-by: Michael Gulick <mgulick@mathworks.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=67628
Cc: stable@vger.kernel.org # 3.9+
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-02-18 10:37:12 +10:00
Emil Velikov 95ca5b550a drm/nouveau/fb: use correct ram oclass for nv1a hardware
commit 8613e7314a
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Mon Oct 21 08:50:25 2013 +1000

    drm/nouveau/fb: remove ram oclass argument from base fb constructor

Introduced a unfortunate regression by using nv10 ram oclass for nv1a
hardware, causing corruption and eventually system lockup.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=74866
Reported-by: John F. Godfrey <jfgodfrey@gmail.com>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Cc: stable@vger.kernel.org # 3.13+
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-02-18 10:37:08 +10:00