mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-25 14:13:01 -04:00
Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
Pull drm updates from Dave Airlie:
"Okay this is the big one, I was stalled on the fbdev pull req as I
stupidly let fbdev guys merge a patch I required to fix a warning with
some patches I had, they ended up merging the patch from the wrong
place, but the warning should be fixed. In future I'll just take the
patch myself!
Outside drm:
There are some snd changes for the HDMI audio interactions on haswell,
they've been acked for inclusion via my tree. This relies on the
wound/wait tree from Ingo which is already merged.
Major changes:
AMD finally released the dynamic power management code for all their
GPUs from r600->present day, this is great, off by default for now but
also a huge amount of code, in fact it is most of this pull request.
Since it landed there has been a lot of community testing and Alex has
sent a lot of fixes for any bugs found so far. I suspect radeon might
now be the biggest kernel driver ever :-P p.s. radeon.dpm=1 to enable
dynamic powermanagement for anyone.
New drivers:
Renesas r-car display unit.
Other highlights:
- core: GEM CMA prime support, use new w/w mutexs for TTM
reservations, cursor hotspot, doc updates
- dvo chips: chrontel 7010B support
- i915: Haswell (fbc, ips, vecs, watermarks, audio powerwell),
Valleyview (enabled by default, rc6), lots of pll reworking, 30bpp
support (this time for sure)
- nouveau: async buffer object deletion, context/register init
updates, kernel vp2 engine support, GF117 support, GK110 accel
support (with external nvidia ucode), context cleanups.
- exynos: memory leak fixes, Add S3C64XX SoC series support, device
tree updates, common clock framework support,
- qxl: cursor hotspot support, multi-monitor support, suspend/resume
support
- mgag200: hw cursor support, g200 mode limiting
- shmobile: prime support
- tegra: fixes mostly
I've been banging on this quite a lot due to the size of it, and it
seems to okay on everything I've tested it on."
* 'drm-next' of git://people.freedesktop.org/~airlied/linux: (811 commits)
drm/radeon/dpm: implement vblank_too_short callback for si
drm/radeon/dpm: implement vblank_too_short callback for cayman
drm/radeon/dpm: implement vblank_too_short callback for btc
drm/radeon/dpm: implement vblank_too_short callback for evergreen
drm/radeon/dpm: implement vblank_too_short callback for 7xx
drm/radeon/dpm: add checks against vblank time
drm/radeon/dpm: add helper to calculate vblank time
drm/radeon: remove stray line in old pm code
drm/radeon/dpm: fix display_gap programming on rv7xx
drm/nvc0/gr: fix gpc firmware regression
drm/nouveau: fix minor thinko causing bo moves to not be async on kepler
drm/radeon/dpm: implement force performance level for TN
drm/radeon/dpm: implement force performance level for ON/LN
drm/radeon/dpm: implement force performance level for SI
drm/radeon/dpm: implement force performance level for cayman
drm/radeon/dpm: implement force performance levels for 7xx/eg/btc
drm/radeon/dpm: add infrastructure to force performance levels
drm/radeon: fix surface setup on r1xx
drm/radeon: add support for 3d perf states on older asics
drm/radeon: set default clocks for SI when DPM is disabled
...
This commit is contained in:
commit
2e17c5a97e
469 changed files with 83873 additions and 20415 deletions
|
|
@ -76,4 +76,29 @@ void devm_ioremap_release(struct device *dev, void *res);
|
|||
#define arch_has_dev_port() (1)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Some systems (x86 without PAT) have a somewhat reliable way to mark a
|
||||
* physical address range such that uncached mappings will actually
|
||||
* end up write-combining. This facility should be used in conjunction
|
||||
* with pgprot_writecombine, ioremap-wc, or set_memory_wc, since it has
|
||||
* no effect if the per-page mechanisms are functional.
|
||||
* (On x86 without PAT, these functions manipulate MTRRs.)
|
||||
*
|
||||
* arch_phys_del_wc(0) or arch_phys_del_wc(any error code) is guaranteed
|
||||
* to have no effect.
|
||||
*/
|
||||
#ifndef arch_phys_wc_add
|
||||
static inline int __must_check arch_phys_wc_add(unsigned long base,
|
||||
unsigned long size)
|
||||
{
|
||||
return 0; /* It worked (i.e. did nothing). */
|
||||
}
|
||||
|
||||
static inline void arch_phys_wc_del(int handle)
|
||||
{
|
||||
}
|
||||
|
||||
#define arch_phys_wc_add arch_phys_wc_add
|
||||
#endif
|
||||
|
||||
#endif /* _LINUX_IO_H */
|
||||
|
|
|
|||
54
include/linux/platform_data/rcar-du.h
Normal file
54
include/linux/platform_data/rcar-du.h
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
/*
|
||||
* rcar_du.h -- R-Car Display Unit DRM driver
|
||||
*
|
||||
* Copyright (C) 2013 Renesas Corporation
|
||||
*
|
||||
* Contact: Laurent Pinchart (laurent.pinchart@ideasonboard.com)
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef __RCAR_DU_H__
|
||||
#define __RCAR_DU_H__
|
||||
|
||||
#include <drm/drm_mode.h>
|
||||
|
||||
enum rcar_du_encoder_type {
|
||||
RCAR_DU_ENCODER_UNUSED = 0,
|
||||
RCAR_DU_ENCODER_VGA,
|
||||
RCAR_DU_ENCODER_LVDS,
|
||||
};
|
||||
|
||||
struct rcar_du_panel_data {
|
||||
unsigned int width_mm; /* Panel width in mm */
|
||||
unsigned int height_mm; /* Panel height in mm */
|
||||
struct drm_mode_modeinfo mode;
|
||||
};
|
||||
|
||||
struct rcar_du_encoder_lvds_data {
|
||||
struct rcar_du_panel_data panel;
|
||||
};
|
||||
|
||||
struct rcar_du_encoder_vga_data {
|
||||
/* TODO: Add DDC information for EDID retrieval */
|
||||
};
|
||||
|
||||
struct rcar_du_encoder_data {
|
||||
enum rcar_du_encoder_type encoder;
|
||||
unsigned int output;
|
||||
|
||||
union {
|
||||
struct rcar_du_encoder_lvds_data lvds;
|
||||
struct rcar_du_encoder_vga_data vga;
|
||||
} u;
|
||||
};
|
||||
|
||||
struct rcar_du_platform_data {
|
||||
struct rcar_du_encoder_data *encoders;
|
||||
unsigned int num_encoders;
|
||||
};
|
||||
|
||||
#endif /* __RCAR_DU_H__ */
|
||||
62
include/linux/reservation.h
Normal file
62
include/linux/reservation.h
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
/*
|
||||
* Header file for reservations for dma-buf and ttm
|
||||
*
|
||||
* Copyright(C) 2011 Linaro Limited. All rights reserved.
|
||||
* Copyright (C) 2012-2013 Canonical Ltd
|
||||
* Copyright (C) 2012 Texas Instruments
|
||||
*
|
||||
* Authors:
|
||||
* Rob Clark <rob.clark@linaro.org>
|
||||
* Maarten Lankhorst <maarten.lankhorst@canonical.com>
|
||||
* Thomas Hellstrom <thellstrom-at-vmware-dot-com>
|
||||
*
|
||||
* Based on bo.c which bears the following copyright notice,
|
||||
* but is dual licensed:
|
||||
*
|
||||
* Copyright (c) 2006-2009 VMware, Inc., Palo Alto, CA., USA
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sub license, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice (including the
|
||||
* next paragraph) shall be included in all copies or substantial portions
|
||||
* of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
|
||||
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
||||
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
||||
* USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
#ifndef _LINUX_RESERVATION_H
|
||||
#define _LINUX_RESERVATION_H
|
||||
|
||||
#include <linux/mutex.h>
|
||||
|
||||
extern struct ww_class reservation_ww_class;
|
||||
|
||||
struct reservation_object {
|
||||
struct ww_mutex lock;
|
||||
};
|
||||
|
||||
static inline void
|
||||
reservation_object_init(struct reservation_object *obj)
|
||||
{
|
||||
ww_mutex_init(&obj->lock, &reservation_ww_class);
|
||||
}
|
||||
|
||||
static inline void
|
||||
reservation_object_fini(struct reservation_object *obj)
|
||||
{
|
||||
ww_mutex_destroy(&obj->lock);
|
||||
}
|
||||
|
||||
#endif /* _LINUX_RESERVATION_H */
|
||||
Loading…
Reference in a new issue