aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/i2c
AgeCommit message (Collapse)AuthorFilesLines
2014-02-13drm/i2c: tda998x: change probe message originJean-Francois Moine1-5/+14
On probe, a message giving the TDA chip version seems to come from the DRM driver: armada-drm armada-510-drm: found TDA19988 This patch changes the originator of the message to the TDA driver: tda998x 0-0070: found TDA19988 Tested-by: Russell King <[email protected]> Acked-by: Russell King <[email protected]> Signed-off-by: Jean-Francois Moine <[email protected]> Signed-off-by: Russell King <[email protected]>
2014-02-13drm/i2c: tda998x: code cleanupJean-Francois Moine1-6/+7
This patch: - replaces ARRAY_SIZE() by sizeof() when a number of bytes is needed, - adds a linefeed in an error message and - removes an useless variable setting. Tested-by: Russell King <[email protected]> Acked-by: Russell King <[email protected]> Signed-off-by: Jean-Francois Moine <[email protected]> Signed-off-by: Russell King <[email protected]>
2014-02-13drm/i2c: tda998x: clean up error chip version checkingRussell King1-5/+8
This is a nicer way, and results in proper return codes should the read of the MSB version register fail. Signed-off-by: Russell King <[email protected]>
2014-02-13drm/i2c: tda998x: check more I/O errorsJean-Francois Moine1-14/+43
This patch adds more error checking inn I2C I/O functions. In case of I/O error, this permits to avoid writing in bad controller pages, a bad chipset detection or looping when getting the EDID. Tested-by: Russell King <[email protected]> Acked-by: Russell King <[email protected]> Signed-off-by: Jean-Francois Moine <[email protected]> Signed-off-by: Russell King <[email protected]>
2014-02-13drm/i2c: tda998x: simplify the i2c read/write functionsJean-Francois Moine1-160/+162
This patch simplifies the i2c read/write functions and permits them to be easily called in more contexts. Tested-by: Russell King <[email protected]> Acked-by: Russell King <[email protected]> Signed-off-by: Jean-Francois Moine <[email protected]> Signed-off-by: Russell King <[email protected]>
2014-02-13drm/i2c: tda998x: use ALSA IEC958 definitions and update audio frequencyJean-Francois Moine1-3/+5
This patch sets the frequency as 'not indicated' instead of '48kHz' and uses the asound values in the channel status definition. Tested-by: Russell King <[email protected]> Acked-by: Russell King <[email protected]> Signed-off-by: Jean-Francois Moine <[email protected]> Signed-off-by: Russell King <[email protected]>
2014-02-13drm/i2c: tda998x: add the active aspect in HDMI AVI frameJean-Francois Moine1-0/+1
The picture aspect setting was zero, which is reserved. A setting of Same As Picture makes more sense. Tested-by: Russell King <[email protected]> Acked-by: Russell King <[email protected]> Signed-off-by: Jean-Francois Moine <[email protected]> Signed-off-by: Russell King <[email protected]>
2014-02-13drm/i2c: tda998x: use HDMI constantsJean-Francois Moine1-6/+6
This patch replaces hard coded values by hdmi constants. Tested-by: Russell King <[email protected]> Acked-by: Russell King <[email protected]> Signed-off-by: Jean-Francois Moine <[email protected]> Signed-off-by: Russell King <[email protected]>
2014-02-13drm/i2c: tda998x: Fix memory leak in tda998x_encoder_init error path.Dave Jones1-1/+3
Commit 6ae668cc19e8 (drm/i2c: tda998x: check the CEC device creation) introduced a memory leak in the error path of tda998x_encoder_init Picked up by the nightly Coverity scan. CID 1174076 Signed-off-by: Dave Jones <[email protected]> Acked-by: Jean-Francois Moine <[email protected]> Signed-off-by: Russell King <[email protected]>
2014-02-02drm/i2c: tda998x: fix the ENABLE_SPACE registerJean-Francois Moine1-1/+1
This patch fixes the ENABLE_SPACE register, the value of which was inverted. Tested-by: Russell King <[email protected]> Acked-by: Russell King <[email protected]> Signed-off-by: Jean-Francois Moine <[email protected]> Signed-off-by: Russell King <[email protected]>
2014-02-02drm/i2c: tda998x: set the PLL division factor in range 0..3Jean-Francois Moine1-1/+6
The predivider division factor of the register PLL_SERIAL_2 is in the range 0..3, the value 0 being used for a division by 1. Tested-by: Russell King <[email protected]> Acked-by: Russell King <[email protected]> Signed-off-by: Jean-Francois Moine <[email protected]> Signed-off-by: Russell King <[email protected]>
2014-02-02drm/i2c: tda998x: force the page register at startup timeJean-Francois Moine1-1/+1
This patch forces the page register to be set on the first I/O operation. Tested-by: Russell King <[email protected]> Acked-by: Russell King <[email protected]> Signed-off-by: Jean-Francois Moine <[email protected]> Signed-off-by: Russell King <[email protected]>
2014-02-02drm/i2c: tda998x: free the CEC device on encoder_destroyJean-Francois Moine1-0/+2
The cec i2c device is created in tda998x_encoder_init() when the DRM driver starts. This patch frees it when the DRM driver is unloaded. Tested-by: Russell King <[email protected]> Acked-by: Russell King <[email protected]> Signed-off-by: Jean-Francois Moine <[email protected]> Signed-off-by: Russell King <[email protected]>
2014-02-02drm/i2c: tda998x: check the CEC device creationJean-Francois Moine1-0/+2
This patch checks if the CEC device is well created at intialization time. Tested-by: Russell King <[email protected]> Acked-by: Russell King <[email protected]> Signed-off-by: Jean-Francois Moine <[email protected]> Signed-off-by: Russell King <[email protected]>
2014-02-02drm/i2c: tda998x: fix bad value in the AIFJean-Francois Moine1-1/+1
The AIF has an uninitialized byte. This patch clears the whole buffer before filling it. Tested-by: Russell King <[email protected]> Acked-by: Russell King <[email protected]> Signed-off-by: Jean-Francois Moine <[email protected]> Signed-off-by: Russell King <[email protected]>
2013-10-18drm/i2c: tda998x: set VIF for full range, underscanned displayRussell King1-0/+3
Tested-by: Sebastian Hesselbarth <[email protected]> Reviewed-by: Rob Clark <[email protected]> Signed-off-by: Russell King <[email protected]>
2013-09-24drm/i2c: tda998x: fix audio mutingRussell King1-2/+1
Fix a bug that was introduced in commit c4c11dd160a8 ("drm/i2c: tda998x: add video and audio input configuration") when Sebastian cleaned up my original patch. Without this being fixed, audio is muted when the display is turned off, never to be re-enabled. Signed-off-by: Russell King <[email protected]> Cc: Sebastian Hesselbarth <[email protected]> Cc: Darren Etheridge <[email protected]> Cc: Dave Airlie <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2013-09-05drm/tda998x: BUG() on invalid audio formatDavid Herrmann1-0/+4
Suppress warning of unused-variables by adding a BUG()+return for invalid audio-formats. Cc: Rob Clark <[email protected]> Signed-off-by: David Herrmann <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2013-08-19drm/i2c: tda998x: prepare for broken sync workaroundSebastian Hesselbarth1-0/+8
Some LCD controller cannot provide valid VESA style sync, i.e. coincident HS/VS edges. First, this patch adds hskew passed from the adjusted_mode to reference pixel calculation to allow those controllers to add an offset relative to the expected reference pixel. Signed-off-by: Darren Etheridge <[email protected]> Signed-off-by: Sebastian Hesselbarth <[email protected]> Tested-by: Russell King <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2013-08-19drm/i2c: tda998x: fix sync generation and calculationSebastian Hesselbarth1-66/+115
This fixes the wrong sync generation and sync calculation of TDA998x for HS/VS-based sync detection. Signed-off-by: Sebastian Hesselbarth <[email protected]> Tested-by: Darren Etheridge <[email protected]> Tested-by: Russell King <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2013-08-19drm/i2c: tda998x: add video and audio input configurationRussell King1-8/+260
This patch adds tda998x specific parameters to allow it to be configured for different boards using it. Also, this implements rudimentary audio support for S/PDIF attached controllers. Signed-off-by: Russell King <[email protected]> Signed-off-by: Sebastian Hesselbarth <[email protected]> Tested-by: Darren Etheridge <[email protected]> Tested-by: Russell King <[email protected]> Tested-by: Russell King <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2013-08-19drm/i2c: tda998x: prepare for video input configurationRussell King1-6/+10
The video-input-port (VIP) is highly configurable. This prepares current driver to allow to configure VIP configuration, as some boards connect lcd controller and TDA998x "pin-swapped" and depend on VIP to swap the pins by register configuration. Signed-off-by: Russell King <[email protected]> Tested-by: Darren Etheridge <[email protected]> Tested-by: Sebastian Hesselbarth <[email protected]> Tested-by: Russell King <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2013-08-19drm/i2c: tda998x: fix npix/nline programmingRussell King1-2/+2
The npix/nline registers are supposed to be programmed with the total number of pixels/lines, not the displayed pixels/lines, and not minus one either. Signed-off-by: Russell King <[email protected]> Tested-by: Darren Etheridge <[email protected]> Tested-by: Sebastian Hesselbarth <[email protected]> Tested-by: Russell King <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2013-08-19drm/i2c: tda998x: ensure VIP output mux is properly setRussell King1-0/+4
When switching between various drivers for this device, it's possible that some critical registers are left containing values which affect the device operation. One such case encountered is the VIP output mux register. This defaults to 0x24 on powerup, but other drivers may set this to 0x12. This results in incorrect colours. Fix this by ensuring that the register is always set to the power on default setting. Signed-off-by: Russell King <[email protected]> Tested-by: Darren Etheridge <[email protected]> Tested-by: Sebastian Hesselbarth <[email protected]> Tested-by: Russell King <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2013-08-19drm/i2c: tda998x: fix EDID reading on TDA19988 devicesRussell King1-1/+13
TDA19988 devices need their RAM enabled in order to read EDID information. Add support for this. Signed-off-by: Russell King <[email protected]> Signed-off-by: Rob Clark <[email protected]> Tested-by: Darren Etheridge <[email protected]> Tested-by: Sebastian Hesselbarth <[email protected]> Tested-by: Russell King <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2013-02-19drm/i2c: nxp-tda998x (v3)Rob Clark3-0/+915
Driver for the NXP TDA998X i2c hdmi encoder slave. v1: original v2: fix npix/nline programming v3: add Kconfig, fix dup'd MODULE_DESCRIPTION Signed-off-by: Rob Clark <[email protected]> Reviewed-by: Daniel Vetter <[email protected]> Tested-by: Koen Kooi <[email protected]>
2013-02-08drm/i2c: give i2c it's own KconfigRob Clark1-0/+22
Move this out of nouveau directory. As we start to add more encoder slaves used by other drivers, it makes sense to put the Kconfig bits in one place. Signed-off-by: Rob Clark <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2013-01-20drm: encapsulate crtc->set_config callsDaniel Vetter1-1/+1
With refcounting we need to adjust framebuffer refcounts at each callsite - much easier to do if they all call the same little helper function. Reviewed-by: Rob Clark <[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
2012-11-30drm/i2c: drm_connector_property -> drm_object_propertyRob Clark1-10/+10
Signed-off-by: Rob Clark <[email protected]>
2012-10-03Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linuxLinus Torvalds1-9/+7
Pull drm merge (part 1) from Dave Airlie: "So first of all my tree and uapi stuff has a conflict mess, its my fault as the nouveau stuff didn't hit -next as were trying to rebase regressions out of it before we merged. Highlights: - SH mobile modesetting driver and associated helpers - some DRM core documentation - i915 modesetting rework, haswell hdmi, haswell and vlv fixes, write combined pte writing, ilk rc6 support, - nouveau: major driver rework into a hw core driver, makes features like SLI a lot saner to implement, - psb: add eDP/DP support for Cedarview - radeon: 2 layer page tables, async VM pte updates, better PLL selection for > 2 screens, better ACPI interactions The rest is general grab bag of fixes. So why part 1? well I have the exynos pull req which came in a bit late but was waiting for me to do something they shouldn't have and it looks fairly safe, and David Howells has some more header cleanups he'd like me to pull, that seem like a good idea, but I'd like to get this merge out of the way so -next dosen't get blocked." Tons of conflicts mostly due to silly include line changes, but mostly mindless. A few other small semantic conflicts too, noted from Dave's pre-merged branch. * 'drm-next' of git://people.freedesktop.org/~airlied/linux: (447 commits) drm/nv98/crypt: fix fuc build with latest envyas drm/nouveau/devinit: fixup various issues with subdev ctor/init ordering drm/nv41/vm: fix and enable use of "real" pciegart drm/nv44/vm: fix and enable use of "real" pciegart drm/nv04/dmaobj: fixup vm target handling in preparation for nv4x pcie drm/nouveau: store supported dma mask in vmmgr drm/nvc0/ibus: initial implementation of subdev drm/nouveau/therm: add support for fan-control modes drm/nouveau/hwmon: rename pwm0* to pmw1* to follow hwmon's rules drm/nouveau/therm: calculate the pwm divisor on nv50+ drm/nouveau/fan: rewrite the fan tachometer driver to get more precision, faster drm/nouveau/therm: move thermal-related functions to the therm subdev drm/nouveau/bios: parse the pwm divisor from the perf table drm/nouveau/therm: use the EXTDEV table to detect i2c monitoring devices drm/nouveau/therm: rework thermal table parsing drm/nouveau/gpio: expose the PWM/TOGGLE parameter found in the gpio vbios table drm/nouveau: fix pm initialization order drm/nouveau/bios: check that fixed tvdac gpio data is valid before using it drm/nouveau: log channel debug/error messages from client object rather than drm client drm/nouveau: have drm debugging macros build on top of core macros ...
2012-10-02UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/David Howells2-8/+8
Convert #include "..." to #include <path/...> in drivers/gpu/. Signed-off-by: David Howells <[email protected]> Acked-by: Dave Airlie <[email protected]> Acked-by: Arnd Bergmann <[email protected]> Acked-by: Thomas Gleixner <[email protected]> Acked-by: Paul E. McKenney <[email protected]> Acked-by: Dave Jones <[email protected]>
2012-08-24drm/i2c/ch7006: Convert to dev_pm_opsMark Brown1-9/+7
The I2C specific suspend and resume functions have been deprecated and printing a warning on boot for over a year, dev_pm_ops should be used instead so convert to that. Also remove the suspend function since all it does is log. Signed-off-by: Mark Brown <[email protected]> Acked-by: Francisco Jerez <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2012-07-19drm: Make the .mode_fixup() operations mode argument a const pointerLaurent Pinchart4-4/+4
The passed mode must not be modified by the operation, make it const. Signed-off-by: Laurent Pinchart <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2012-02-09drm: add convenience function to create an range propertySascha Hauer1-4/+1
Creating a range property is a common pattern, so create a convenience function for this and use it where appropriate. Signed-off-by: Sascha Hauer <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2011-10-31gpu: add module.h to drivers/gpu files as required.Paul Gortmaker2-0/+4
So that we don't get build failures once the implicit module.h presence is removed. Signed-off-by: Paul Gortmaker <[email protected]>
2010-08-09drm/i2c/ch7006: Don't use POWER_LEVEL_FULL_POWER_OFF on early chip versions.Francisco Jerez3-1/+6
Signed-off-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-08-02Merge remote branch 'nouveau/for-airlied' of ../drm-nouveau-next into ↵Dave Airlie2-3/+21
drm-core-next * 'nouveau/for-airlied' of ../drm-nouveau-next: (77 commits) drm/nouveau: set TASK_(UN)INTERRUPTIBLE before schedule_timeout() drm/nv50: fix some not-error error messages drm/nouveau: introduce gpio engine drm/nv50: correct wait condition for instmem flush drm/nouveau: Fix TV-out detection on unposted cards lacking a usable DCB table. drm/nouveau: Get rid of the remaining VGA CRTC locking. drm/nouveau: Move display init to a new nouveau_engine. drm/nouveau: Put back the old 2-messages I2C slave test. drm/nouveau: Reset AGP before running the init scripts. drm/nv30: Init the PFB+0x3xx memory timing regs. drm/nouveau: disable hotplug detect around DP link training drm/nv50: add function to control GPIO IRQ reporting drm/nouveau: add nv_mask register accessor drm/nouveau: fix build without CONFIG_ACPI drm/nouveau: Reset CRTC owner to 0 before BIOS init. drm/nouveau: No need to lock/unlock the VGA CRTC regs all the time. drm/nouveau: Remove useless CRTC_OWNER logging. drm/nouveau: Add some generic I2C gadget detection code. drm/i2c/ch7006: Don't assume that the specified config points to static memory. drm/nv04-nv3x: Implement init-compute-mem. ... Conflicts: drivers/gpu/drm/nouveau/nouveau_bios.c
2010-08-02drm: Import driver for the sil164 I2C TMDS transmitter.Francisco Jerez2-0/+465
sil164 transmitters are used for DVI outputs on Intel/nvidia and ATI setups. So far only nouveau can use this driver. Signed-off-by: Francisco Jerez <[email protected]> Tested-by: Patrice Mandin <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-07-26drm/i2c/ch7006: Don't assume that the specified config points to static memory.Francisco Jerez2-3/+3
Signed-off-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-07-13drm/i2c/ch7006: Fix up suspend/resume.Francisco Jerez1-0/+18
Signed-off-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2009-12-16drm/i2c/ch7006: Fix load detection false positives right after system init.Francisco Jerez2-5/+5
Signed-off-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2009-12-11drm/nouveau: Add DRM driver for NVIDIA GPUsBen Skeggs4-0/+1352
This adds a drm/kms staging non-API stable driver for GPUs from NVIDIA. This driver is a KMS-based driver and requires a compatible nouveau userspace libdrm and nouveau X.org driver. This driver requires firmware files not available in this kernel tree, interested parties can find them via the nouveau project git archive. This driver is reverse engineered, and is in no way supported by nVidia. Support for nearly the complete range of nvidia hw from nv04->g80 (nv50) is available, and the kms driver should support driving nearly all output types (displayport is under development still) along with supporting suspend/resume. This work is all from the upstream nouveau project found at nouveau.freedesktop.org. The original authors list from nouveau git tree is: Anssi Hannula <[email protected]> Ben Skeggs <[email protected]> Francisco Jerez <[email protected]> Maarten Maathuis <[email protected]> Marcin Kościelnicki <[email protected]> Matthew Garrett <[email protected]> Matt Parnell <[email protected]> Patrice Mandin <[email protected]> Pekka Paalanen <[email protected]> Xavier Chantry <[email protected]> along with project founder Stephane Marchesin <[email protected]> Signed-off-by: Ben Skeggs <[email protected]> Signed-off-by: Dave Airlie <[email protected]>