aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-03-22 16:08:22 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-03-22 16:08:22 -0400
commitbe53bfdb8088e9d1924199cc1a96e113756b1075 (patch)
tree8c65eb9d82ca4c0f11c17cfdc44d5263820b415b /include
parentb2094ef840697bc8ca5d17a83b7e30fad5f1e9fa (diff)
parent5466c7b1683a23dbbcfb7ee4a71c4f23886001c7 (diff)
Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
Pull drm main changes from Dave Airlie: "This is the main drm pull request, I'm probably going to send two more smaller ones, will explain below. This contains a patch that is also in the fbdev tree, but it should be the same patch, it added an API for hot unplugging framebuffer devices, and I need that API for a new driver. It also contains some changes to the i2c tree which Jean has acked, and one change to moorestown platform stuff in x86. Highlights: - new drivers: UDL driver for USB displaylink devices, kms only, should support correct hotplug operations. - core: i2c speedups + better hotplug support, EDID overriding via firmware interface - allows user to load a firmware for a broken monitor/kvm from userspace, it even has documentation for it. - exynos: new HDMI audio + hdmi 1.4 + virtual output driver - gma500: code cleanup - radeon: cleanups, CS optimisations, streamout support and pageflip fix - nouveau: NVD9 displayport support + more reclocking work - i915: re-enabling GMBUS, finish gpu patch (might help hibernation who knows), missed irq fixes, stencil tiling fixes, interlaced support, aliasesd PPGTT support for SNB/IVB, swizzling for SNB/IVB, semaphore fixes As well as the usual bunch of cleanups and fixes all over the place. I've got two things I'd like to merge a bit later: a) AMD support for all their new radeonhd 7000 series GPU and APUs. AMD dropped this a bit late due to insane internal review processes, (please AMD just follow Intel and let open source guys ship stuff early) however I don't want to penalise people who own this hardware (since its been on sale for 3-4 months and GPU hw doesn't exactly have a lifetime in years) and consign them to using closed drivers for longer than necessary. The changes are well contained and just plug into the driver new gpu functionality so they should be fairly regression proof. I just want to give them a bit of a run on the hw AMD kindly sent me. b) drm prime/dma-buf interface code. This is just infrastructure code to expose the dma-buf stuff to drm drivers and to userspace. I'm not planning on pushing any driver support in this cycle (except maybe exynos), but I'd like to get the infrastructure code in so for the next cycle I can start getting the driver support into the individual drivers. We have started driver support for i915, nouveau and udl along with I think exynos and omap in staging. However this code relies on the dma-buf tree being pulled into your tree first since it needs the latest interfaces from that tree. I'll push to get that tree sent asap. (oh and any warnings you see in i915 are gcc's fault from what anyone can see)." Fix up trivial conflicts in arch/x86/platform/mrst/mrst.c due to the new msic_thermal_platform_data() thermal function being added next to the tc35876x_platform_data() i2c device function.. * 'drm-next' of git://people.freedesktop.org/~airlied/linux: (326 commits) drm/i915: use DDC_ADDR instead of hard-coding it drm/radeon: use DDC_ADDR instead of hard-coding it drm: remove unneeded redefinition of DDC_ADDR drm/exynos: added virtual display driver. drm: allow loading an EDID as firmware to override broken monitor drm/exynos: enable hdmi audio feature drm/exynos: add default pixel format for plane drm/exynos: cleanup exynos_hdmi.h drm/exynos: add is_local member in exynos_drm_subdrv struct drm/exynos: add subdrv open/close functions drm/exynos: remove module of exynos drm subdrv drm/exynos: release pending pageflip events when closed drm/exynos: added new funtion to get/put dma address. drm/exynos: update gem and buffer framework. drm/exynos: added mode_fixup feature and code clean. drm/exynos: add HDMI version 1.4 support drm/exynos: remove exynos_mixer.h gma500: Fix mmap frambuffer drm/radeon: Drop radeon_gem_object_(un)pin. drm/radeon: Restrict offset for legacy display engine. ...
Diffstat (limited to 'include')
-rw-r--r--include/drm/drm.h2
-rw-r--r--include/drm/drmP.h25
-rw-r--r--include/drm/drm_crtc.h48
-rw-r--r--include/drm/drm_edid.h1
-rw-r--r--include/drm/drm_fb_helper.h2
-rw-r--r--include/drm/exynos_drm.h26
-rw-r--r--include/drm/gma_drm.h2
-rw-r--r--include/drm/i915_drm.h1
-rw-r--r--include/drm/intel-gtt.h4
-rw-r--r--include/drm/radeon_drm.h24
-rw-r--r--include/linux/fb.h1
-rw-r--r--include/linux/i2c-algo-bit.h1
-rw-r--r--include/linux/i2c/tc35876x.h11
13 files changed, 114 insertions, 34 deletions
diff --git a/include/drm/drm.h b/include/drm/drm.h
index 49d94ede2ec2..34a7b89fd006 100644
--- a/include/drm/drm.h
+++ b/include/drm/drm.h
@@ -761,6 +761,8 @@ struct drm_event_vblank {
761 761
762#define DRM_CAP_DUMB_BUFFER 0x1 762#define DRM_CAP_DUMB_BUFFER 0x1
763#define DRM_CAP_VBLANK_HIGH_CRTC 0x2 763#define DRM_CAP_VBLANK_HIGH_CRTC 0x2
764#define DRM_CAP_DUMB_PREFERRED_DEPTH 0x3
765#define DRM_CAP_DUMB_PREFER_SHADOW 0x4
764 766
765/* typedef area */ 767/* typedef area */
766#ifndef __KERNEL__ 768#ifndef __KERNEL__
diff --git a/include/drm/drmP.h b/include/drm/drmP.h
index 92f0981b5fb8..574bd1c81ebd 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
@@ -1170,6 +1170,8 @@ struct drm_device {
1170 struct idr object_name_idr; 1170 struct idr object_name_idr;
1171 /*@} */ 1171 /*@} */
1172 int switch_power_state; 1172 int switch_power_state;
1173
1174 atomic_t unplugged; /* device has been unplugged or gone away */
1173}; 1175};
1174 1176
1175#define DRM_SWITCH_POWER_ON 0 1177#define DRM_SWITCH_POWER_ON 0
@@ -1235,6 +1237,19 @@ static inline int drm_mtrr_del(int handle, unsigned long offset,
1235} 1237}
1236#endif 1238#endif
1237 1239
1240static inline void drm_device_set_unplugged(struct drm_device *dev)
1241{
1242 smp_wmb();
1243 atomic_set(&dev->unplugged, 1);
1244}
1245
1246static inline int drm_device_is_unplugged(struct drm_device *dev)
1247{
1248 int ret = atomic_read(&dev->unplugged);
1249 smp_rmb();
1250 return ret;
1251}
1252
1238/******************************************************************/ 1253/******************************************************************/
1239/** \name Internal function definitions */ 1254/** \name Internal function definitions */
1240/*@{*/ 1255/*@{*/
@@ -1264,11 +1279,6 @@ extern unsigned int drm_poll(struct file *filp, struct poll_table_struct *wait);
1264 1279
1265 /* Memory management support (drm_memory.h) */ 1280 /* Memory management support (drm_memory.h) */
1266#include "drm_memory.h" 1281#include "drm_memory.h"
1267extern void drm_mem_init(void);
1268extern int drm_mem_info(char *buf, char **start, off_t offset,
1269 int request, int *eof, void *data);
1270extern void *drm_realloc(void *oldpt, size_t oldsize, size_t size, int area);
1271
1272extern void drm_free_agp(DRM_AGP_MEM * handle, int pages); 1282extern void drm_free_agp(DRM_AGP_MEM * handle, int pages);
1273extern int drm_bind_agp(DRM_AGP_MEM * handle, unsigned int start); 1283extern int drm_bind_agp(DRM_AGP_MEM * handle, unsigned int start);
1274extern DRM_AGP_MEM *drm_agp_bind_pages(struct drm_device *dev, 1284extern DRM_AGP_MEM *drm_agp_bind_pages(struct drm_device *dev,
@@ -1383,12 +1393,8 @@ extern void drm_core_reclaim_buffers(struct drm_device *dev,
1383 /* IRQ support (drm_irq.h) */ 1393 /* IRQ support (drm_irq.h) */
1384extern int drm_control(struct drm_device *dev, void *data, 1394extern int drm_control(struct drm_device *dev, void *data,
1385 struct drm_file *file_priv); 1395 struct drm_file *file_priv);
1386extern irqreturn_t drm_irq_handler(DRM_IRQ_ARGS);
1387extern int drm_irq_install(struct drm_device *dev); 1396extern int drm_irq_install(struct drm_device *dev);
1388extern int drm_irq_uninstall(struct drm_device *dev); 1397extern int drm_irq_uninstall(struct drm_device *dev);
1389extern void drm_driver_irq_preinstall(struct drm_device *dev);
1390extern void drm_driver_irq_postinstall(struct drm_device *dev);
1391extern void drm_driver_irq_uninstall(struct drm_device *dev);
1392 1398
1393extern int drm_vblank_init(struct drm_device *dev, int num_crtcs); 1399extern int drm_vblank_init(struct drm_device *dev, int num_crtcs);
1394extern int drm_wait_vblank(struct drm_device *dev, void *data, 1400extern int drm_wait_vblank(struct drm_device *dev, void *data,
@@ -1464,6 +1470,7 @@ extern void drm_master_put(struct drm_master **master);
1464 1470
1465extern void drm_put_dev(struct drm_device *dev); 1471extern void drm_put_dev(struct drm_device *dev);
1466extern int drm_put_minor(struct drm_minor **minor); 1472extern int drm_put_minor(struct drm_minor **minor);
1473extern void drm_unplug_dev(struct drm_device *dev);
1467extern unsigned int drm_debug; 1474extern unsigned int drm_debug;
1468 1475
1469extern unsigned int drm_vblank_offdelay; 1476extern unsigned int drm_vblank_offdelay;
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index 4cd4be26722c..e250eda4e3a8 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -121,7 +121,7 @@ struct drm_display_mode {
121 char name[DRM_DISPLAY_MODE_LEN]; 121 char name[DRM_DISPLAY_MODE_LEN];
122 122
123 enum drm_mode_status status; 123 enum drm_mode_status status;
124 int type; 124 unsigned int type;
125 125
126 /* Proposed mode values */ 126 /* Proposed mode values */
127 int clock; /* in kHz */ 127 int clock; /* in kHz */
@@ -257,7 +257,7 @@ struct drm_property_blob {
257 struct drm_mode_object base; 257 struct drm_mode_object base;
258 struct list_head head; 258 struct list_head head;
259 unsigned int length; 259 unsigned int length;
260 void *data; 260 unsigned char data[];
261}; 261};
262 262
263struct drm_property_enum { 263struct drm_property_enum {
@@ -796,6 +796,9 @@ struct drm_mode_config {
796 struct drm_property *scaling_mode_property; 796 struct drm_property *scaling_mode_property;
797 struct drm_property *dithering_mode_property; 797 struct drm_property *dithering_mode_property;
798 struct drm_property *dirty_info_property; 798 struct drm_property *dirty_info_property;
799
800 /* dumb ioctl parameters */
801 uint32_t preferred_depth, prefer_shadow;
799}; 802};
800 803
801#define obj_to_crtc(x) container_of(x, struct drm_crtc, base) 804#define obj_to_crtc(x) container_of(x, struct drm_crtc, base)
@@ -807,23 +810,29 @@ struct drm_mode_config {
807#define obj_to_blob(x) container_of(x, struct drm_property_blob, base) 810#define obj_to_blob(x) container_of(x, struct drm_property_blob, base)
808#define obj_to_plane(x) container_of(x, struct drm_plane, base) 811#define obj_to_plane(x) container_of(x, struct drm_plane, base)
809 812
813struct drm_prop_enum_list {
814 int type;
815 char *name;
816};
810 817
811extern void drm_crtc_init(struct drm_device *dev, 818extern int drm_crtc_init(struct drm_device *dev,
812 struct drm_crtc *crtc, 819 struct drm_crtc *crtc,
813 const struct drm_crtc_funcs *funcs); 820 const struct drm_crtc_funcs *funcs);
814extern void drm_crtc_cleanup(struct drm_crtc *crtc); 821extern void drm_crtc_cleanup(struct drm_crtc *crtc);
815 822
816extern void drm_connector_init(struct drm_device *dev, 823extern int drm_connector_init(struct drm_device *dev,
817 struct drm_connector *connector, 824 struct drm_connector *connector,
818 const struct drm_connector_funcs *funcs, 825 const struct drm_connector_funcs *funcs,
819 int connector_type); 826 int connector_type);
820 827
821extern void drm_connector_cleanup(struct drm_connector *connector); 828extern void drm_connector_cleanup(struct drm_connector *connector);
829/* helper to unplug all connectors from sysfs for device */
830extern void drm_connector_unplug_all(struct drm_device *dev);
822 831
823extern void drm_encoder_init(struct drm_device *dev, 832extern int drm_encoder_init(struct drm_device *dev,
824 struct drm_encoder *encoder, 833 struct drm_encoder *encoder,
825 const struct drm_encoder_funcs *funcs, 834 const struct drm_encoder_funcs *funcs,
826 int encoder_type); 835 int encoder_type);
827 836
828extern int drm_plane_init(struct drm_device *dev, 837extern int drm_plane_init(struct drm_device *dev,
829 struct drm_plane *plane, 838 struct drm_plane *plane,
@@ -848,6 +857,7 @@ extern struct edid *drm_get_edid(struct drm_connector *connector,
848extern int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid); 857extern int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid);
849extern void drm_mode_probed_add(struct drm_connector *connector, struct drm_display_mode *mode); 858extern void drm_mode_probed_add(struct drm_connector *connector, struct drm_display_mode *mode);
850extern void drm_mode_remove(struct drm_connector *connector, struct drm_display_mode *mode); 859extern void drm_mode_remove(struct drm_connector *connector, struct drm_display_mode *mode);
860extern void drm_mode_copy(struct drm_display_mode *dst, const struct drm_display_mode *src);
851extern struct drm_display_mode *drm_mode_duplicate(struct drm_device *dev, 861extern struct drm_display_mode *drm_mode_duplicate(struct drm_device *dev,
852 const struct drm_display_mode *mode); 862 const struct drm_display_mode *mode);
853extern void drm_mode_debug_printmodeline(struct drm_display_mode *mode); 863extern void drm_mode_debug_printmodeline(struct drm_display_mode *mode);
@@ -862,7 +872,7 @@ extern int drm_mode_height(struct drm_display_mode *mode);
862/* for us by fb module */ 872/* for us by fb module */
863extern int drm_mode_attachmode_crtc(struct drm_device *dev, 873extern int drm_mode_attachmode_crtc(struct drm_device *dev,
864 struct drm_crtc *crtc, 874 struct drm_crtc *crtc,
865 struct drm_display_mode *mode); 875 const struct drm_display_mode *mode);
866extern int drm_mode_detachmode_crtc(struct drm_device *dev, struct drm_display_mode *mode); 876extern int drm_mode_detachmode_crtc(struct drm_device *dev, struct drm_display_mode *mode);
867 877
868extern struct drm_display_mode *drm_mode_create(struct drm_device *dev); 878extern struct drm_display_mode *drm_mode_create(struct drm_device *dev);
@@ -904,6 +914,13 @@ extern int drm_connector_attach_property(struct drm_connector *connector,
904 struct drm_property *property, uint64_t init_val); 914 struct drm_property *property, uint64_t init_val);
905extern struct drm_property *drm_property_create(struct drm_device *dev, int flags, 915extern struct drm_property *drm_property_create(struct drm_device *dev, int flags,
906 const char *name, int num_values); 916 const char *name, int num_values);
917extern struct drm_property *drm_property_create_enum(struct drm_device *dev, int flags,
918 const char *name,
919 const struct drm_prop_enum_list *props,
920 int num_values);
921struct drm_property *drm_property_create_range(struct drm_device *dev, int flags,
922 const char *name,
923 uint64_t min, uint64_t max);
907extern void drm_property_destroy(struct drm_device *dev, struct drm_property *property); 924extern void drm_property_destroy(struct drm_device *dev, struct drm_property *property);
908extern int drm_property_add_enum(struct drm_property *property, int index, 925extern int drm_property_add_enum(struct drm_property *property, int index,
909 uint64_t value, const char *name); 926 uint64_t value, const char *name);
@@ -919,7 +936,7 @@ extern int drm_mode_connector_attach_encoder(struct drm_connector *connector,
919 struct drm_encoder *encoder); 936 struct drm_encoder *encoder);
920extern void drm_mode_connector_detach_encoder(struct drm_connector *connector, 937extern void drm_mode_connector_detach_encoder(struct drm_connector *connector,
921 struct drm_encoder *encoder); 938 struct drm_encoder *encoder);
922extern bool drm_mode_crtc_set_gamma_size(struct drm_crtc *crtc, 939extern int drm_mode_crtc_set_gamma_size(struct drm_crtc *crtc,
923 int gamma_size); 940 int gamma_size);
924extern struct drm_mode_object *drm_mode_object_find(struct drm_device *dev, 941extern struct drm_mode_object *drm_mode_object_find(struct drm_device *dev,
925 uint32_t id, uint32_t type); 942 uint32_t id, uint32_t type);
@@ -995,6 +1012,7 @@ extern int drm_add_modes_noedid(struct drm_connector *connector,
995 int hdisplay, int vdisplay); 1012 int hdisplay, int vdisplay);
996 1013
997extern int drm_edid_header_is_valid(const u8 *raw_edid); 1014extern int drm_edid_header_is_valid(const u8 *raw_edid);
1015extern bool drm_edid_block_valid(u8 *raw_edid);
998extern bool drm_edid_is_valid(struct edid *edid); 1016extern bool drm_edid_is_valid(struct edid *edid);
999struct drm_display_mode *drm_mode_find_dmt(struct drm_device *dev, 1017struct drm_display_mode *drm_mode_find_dmt(struct drm_device *dev,
1000 int hsize, int vsize, int fresh); 1018 int hsize, int vsize, int fresh);
diff --git a/include/drm/drm_edid.h b/include/drm/drm_edid.h
index 74ce91684629..bcb9a66baa8c 100644
--- a/include/drm/drm_edid.h
+++ b/include/drm/drm_edid.h
@@ -238,5 +238,6 @@ int drm_av_sync_delay(struct drm_connector *connector,
238 struct drm_display_mode *mode); 238 struct drm_display_mode *mode);
239struct drm_connector *drm_select_eld(struct drm_encoder *encoder, 239struct drm_connector *drm_select_eld(struct drm_encoder *encoder,
240 struct drm_display_mode *mode); 240 struct drm_display_mode *mode);
241int drm_load_edid_firmware(struct drm_connector *connector);
241 242
242#endif /* __DRM_EDID_H__ */ 243#endif /* __DRM_EDID_H__ */
diff --git a/include/drm/drm_fb_helper.h b/include/drm/drm_fb_helper.h
index 6e3076ad646e..5120b01c2eeb 100644
--- a/include/drm/drm_fb_helper.h
+++ b/include/drm/drm_fb_helper.h
@@ -35,7 +35,6 @@ struct drm_fb_helper;
35#include <linux/kgdb.h> 35#include <linux/kgdb.h>
36 36
37struct drm_fb_helper_crtc { 37struct drm_fb_helper_crtc {
38 uint32_t crtc_id;
39 struct drm_mode_set mode_set; 38 struct drm_mode_set mode_set;
40 struct drm_display_mode *desired_mode; 39 struct drm_display_mode *desired_mode;
41}; 40};
@@ -74,7 +73,6 @@ struct drm_fb_helper {
74 int connector_count; 73 int connector_count;
75 struct drm_fb_helper_connector **connector_info; 74 struct drm_fb_helper_connector **connector_info;
76 struct drm_fb_helper_funcs *funcs; 75 struct drm_fb_helper_funcs *funcs;
77 int conn_limit;
78 struct fb_info *fbdev; 76 struct fb_info *fbdev;
79 u32 pseudo_palette[17]; 77 u32 pseudo_palette[17];
80 struct list_head kernel_fb_list; 78 struct list_head kernel_fb_list;
diff --git a/include/drm/exynos_drm.h b/include/drm/exynos_drm.h
index 1ed3aae893a5..3963116083ae 100644
--- a/include/drm/exynos_drm.h
+++ b/include/drm/exynos_drm.h
@@ -74,16 +74,37 @@ struct drm_exynos_gem_mmap {
74 uint64_t mapped; 74 uint64_t mapped;
75}; 75};
76 76
77/**
78 * A structure for user connection request of virtual display.
79 *
80 * @connection: indicate whether doing connetion or not by user.
81 * @extensions: if this value is 1 then the vidi driver would need additional
82 * 128bytes edid data.
83 * @edid: the edid data pointer from user side.
84 */
85struct drm_exynos_vidi_connection {
86 unsigned int connection;
87 unsigned int extensions;
88 uint64_t *edid;
89};
90
77struct drm_exynos_plane_set_zpos { 91struct drm_exynos_plane_set_zpos {
78 __u32 plane_id; 92 __u32 plane_id;
79 __s32 zpos; 93 __s32 zpos;
80}; 94};
81 95
96/* memory type definitions. */
97enum e_drm_exynos_gem_mem_type {
98 /* Physically Non-Continuous memory. */
99 EXYNOS_BO_NONCONTIG = 1 << 0
100};
101
82#define DRM_EXYNOS_GEM_CREATE 0x00 102#define DRM_EXYNOS_GEM_CREATE 0x00
83#define DRM_EXYNOS_GEM_MAP_OFFSET 0x01 103#define DRM_EXYNOS_GEM_MAP_OFFSET 0x01
84#define DRM_EXYNOS_GEM_MMAP 0x02 104#define DRM_EXYNOS_GEM_MMAP 0x02
85/* Reserved 0x03 ~ 0x05 for exynos specific gem ioctl */ 105/* Reserved 0x03 ~ 0x05 for exynos specific gem ioctl */
86#define DRM_EXYNOS_PLANE_SET_ZPOS 0x06 106#define DRM_EXYNOS_PLANE_SET_ZPOS 0x06
107#define DRM_EXYNOS_VIDI_CONNECTION 0x07
87 108
88#define DRM_IOCTL_EXYNOS_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + \ 109#define DRM_IOCTL_EXYNOS_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + \
89 DRM_EXYNOS_GEM_CREATE, struct drm_exynos_gem_create) 110 DRM_EXYNOS_GEM_CREATE, struct drm_exynos_gem_create)
@@ -97,6 +118,9 @@ struct drm_exynos_plane_set_zpos {
97#define DRM_IOCTL_EXYNOS_PLANE_SET_ZPOS DRM_IOWR(DRM_COMMAND_BASE + \ 118#define DRM_IOCTL_EXYNOS_PLANE_SET_ZPOS DRM_IOWR(DRM_COMMAND_BASE + \
98 DRM_EXYNOS_PLANE_SET_ZPOS, struct drm_exynos_plane_set_zpos) 119 DRM_EXYNOS_PLANE_SET_ZPOS, struct drm_exynos_plane_set_zpos)
99 120
121#define DRM_IOCTL_EXYNOS_VIDI_CONNECTION DRM_IOWR(DRM_COMMAND_BASE + \
122 DRM_EXYNOS_VIDI_CONNECTION, struct drm_exynos_vidi_connection)
123
100#ifdef __KERNEL__ 124#ifdef __KERNEL__
101 125
102/** 126/**
@@ -147,11 +171,13 @@ struct exynos_drm_common_hdmi_pd {
147 * @timing: default video mode for initializing 171 * @timing: default video mode for initializing
148 * @default_win: default window layer number to be used for UI. 172 * @default_win: default window layer number to be used for UI.
149 * @bpp: default bit per pixel. 173 * @bpp: default bit per pixel.
174 * @is_v13: set if hdmi version 13 is.
150 */ 175 */
151struct exynos_drm_hdmi_pdata { 176struct exynos_drm_hdmi_pdata {
152 struct fb_videomode timing; 177 struct fb_videomode timing;
153 unsigned int default_win; 178 unsigned int default_win;
154 unsigned int bpp; 179 unsigned int bpp;
180 unsigned int is_v13:1;
155}; 181};
156 182
157#endif /* __KERNEL__ */ 183#endif /* __KERNEL__ */
diff --git a/include/drm/gma_drm.h b/include/drm/gma_drm.h
index 113686785717..884613ee00ad 100644
--- a/include/drm/gma_drm.h
+++ b/include/drm/gma_drm.h
@@ -83,9 +83,9 @@ struct drm_psb_gem_mmap {
83#define DRM_GMA_GAMMA 0x04 /* Set gamma table */ 83#define DRM_GMA_GAMMA 0x04 /* Set gamma table */
84#define DRM_GMA_ADB 0x05 /* Get backlight */ 84#define DRM_GMA_ADB 0x05 /* Get backlight */
85#define DRM_GMA_DPST_BL 0x06 /* Set backlight */ 85#define DRM_GMA_DPST_BL 0x06 /* Set backlight */
86#define DRM_GMA_GET_PIPE_FROM_CRTC_ID 0x1 /* CRTC to physical pipe# */
87#define DRM_GMA_MODE_OPERATION 0x07 /* Mode validation/DC set */ 86#define DRM_GMA_MODE_OPERATION 0x07 /* Mode validation/DC set */
88#define PSB_MODE_OPERATION_MODE_VALID 0x01 87#define PSB_MODE_OPERATION_MODE_VALID 0x01
88#define DRM_GMA_GET_PIPE_FROM_CRTC_ID 0x08 /* CRTC to physical pipe# */
89 89
90 90
91#endif 91#endif
diff --git a/include/drm/i915_drm.h b/include/drm/i915_drm.h
index 924f6a454fed..da929bb5b788 100644
--- a/include/drm/i915_drm.h
+++ b/include/drm/i915_drm.h
@@ -296,6 +296,7 @@ typedef struct drm_i915_irq_wait {
296#define I915_PARAM_HAS_EXEC_CONSTANTS 14 296#define I915_PARAM_HAS_EXEC_CONSTANTS 14
297#define I915_PARAM_HAS_RELAXED_DELTA 15 297#define I915_PARAM_HAS_RELAXED_DELTA 15
298#define I915_PARAM_HAS_GEN7_SOL_RESET 16 298#define I915_PARAM_HAS_GEN7_SOL_RESET 16
299#define I915_PARAM_HAS_LLC 17
299 300
300typedef struct drm_i915_getparam { 301typedef struct drm_i915_getparam {
301 int param; 302 int param;
diff --git a/include/drm/intel-gtt.h b/include/drm/intel-gtt.h
index b174620cc9b3..0a0001b9dc78 100644
--- a/include/drm/intel-gtt.h
+++ b/include/drm/intel-gtt.h
@@ -15,6 +15,10 @@ const struct intel_gtt {
15 unsigned int needs_dmar : 1; 15 unsigned int needs_dmar : 1;
16 /* Whether we idle the gpu before mapping/unmapping */ 16 /* Whether we idle the gpu before mapping/unmapping */
17 unsigned int do_idle_maps : 1; 17 unsigned int do_idle_maps : 1;
18 /* Share the scratch page dma with ppgtts. */
19 dma_addr_t scratch_page_dma;
20 /* for ppgtt PDE access */
21 u32 __iomem *gtt;
18} *intel_gtt_get(void); 22} *intel_gtt_get(void);
19 23
20void intel_gtt_chipset_flush(void); 24void intel_gtt_chipset_flush(void);
diff --git a/include/drm/radeon_drm.h b/include/drm/radeon_drm.h
index b55da40953fd..cb2f0c362a13 100644
--- a/include/drm/radeon_drm.h
+++ b/include/drm/radeon_drm.h
@@ -804,13 +804,23 @@ struct drm_radeon_gem_create {
804 uint32_t flags; 804 uint32_t flags;
805}; 805};
806 806
807#define RADEON_TILING_MACRO 0x1 807#define RADEON_TILING_MACRO 0x1
808#define RADEON_TILING_MICRO 0x2 808#define RADEON_TILING_MICRO 0x2
809#define RADEON_TILING_SWAP_16BIT 0x4 809#define RADEON_TILING_SWAP_16BIT 0x4
810#define RADEON_TILING_SWAP_32BIT 0x8 810#define RADEON_TILING_SWAP_32BIT 0x8
811#define RADEON_TILING_SURFACE 0x10 /* this object requires a surface 811/* this object requires a surface when mapped - i.e. front buffer */
812 * when mapped - i.e. front buffer */ 812#define RADEON_TILING_SURFACE 0x10
813#define RADEON_TILING_MICRO_SQUARE 0x20 813#define RADEON_TILING_MICRO_SQUARE 0x20
814#define RADEON_TILING_EG_BANKW_SHIFT 8
815#define RADEON_TILING_EG_BANKW_MASK 0xf
816#define RADEON_TILING_EG_BANKH_SHIFT 12
817#define RADEON_TILING_EG_BANKH_MASK 0xf
818#define RADEON_TILING_EG_MACRO_TILE_ASPECT_SHIFT 16
819#define RADEON_TILING_EG_MACRO_TILE_ASPECT_MASK 0xf
820#define RADEON_TILING_EG_TILE_SPLIT_SHIFT 24
821#define RADEON_TILING_EG_TILE_SPLIT_MASK 0xf
822#define RADEON_TILING_EG_STENCIL_TILE_SPLIT_SHIFT 28
823#define RADEON_TILING_EG_STENCIL_TILE_SPLIT_MASK 0xf
814 824
815struct drm_radeon_gem_set_tiling { 825struct drm_radeon_gem_set_tiling {
816 uint32_t handle; 826 uint32_t handle;
diff --git a/include/linux/fb.h b/include/linux/fb.h
index c18122f40543..a395b8c76992 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -1003,6 +1003,7 @@ extern ssize_t fb_sys_write(struct fb_info *info, const char __user *buf,
1003/* drivers/video/fbmem.c */ 1003/* drivers/video/fbmem.c */
1004extern int register_framebuffer(struct fb_info *fb_info); 1004extern int register_framebuffer(struct fb_info *fb_info);
1005extern int unregister_framebuffer(struct fb_info *fb_info); 1005extern int unregister_framebuffer(struct fb_info *fb_info);
1006extern int unlink_framebuffer(struct fb_info *fb_info);
1006extern void remove_conflicting_framebuffers(struct apertures_struct *a, 1007extern void remove_conflicting_framebuffers(struct apertures_struct *a,
1007 const char *name, bool primary); 1008 const char *name, bool primary);
1008extern int fb_prepare_logo(struct fb_info *fb_info, int rotate); 1009extern int fb_prepare_logo(struct fb_info *fb_info, int rotate);
diff --git a/include/linux/i2c-algo-bit.h b/include/linux/i2c-algo-bit.h
index 4f98148c11c3..584ffa0f3282 100644
--- a/include/linux/i2c-algo-bit.h
+++ b/include/linux/i2c-algo-bit.h
@@ -49,5 +49,6 @@ struct i2c_algo_bit_data {
49 49
50int i2c_bit_add_bus(struct i2c_adapter *); 50int i2c_bit_add_bus(struct i2c_adapter *);
51int i2c_bit_add_numbered_bus(struct i2c_adapter *); 51int i2c_bit_add_numbered_bus(struct i2c_adapter *);
52extern const struct i2c_algorithm i2c_bit_algo;
52 53
53#endif /* _LINUX_I2C_ALGO_BIT_H */ 54#endif /* _LINUX_I2C_ALGO_BIT_H */
diff --git a/include/linux/i2c/tc35876x.h b/include/linux/i2c/tc35876x.h
new file mode 100644
index 000000000000..cd6a51c71e7e
--- /dev/null
+++ b/include/linux/i2c/tc35876x.h
@@ -0,0 +1,11 @@
1
2#ifndef _TC35876X_H
3#define _TC35876X_H
4
5struct tc35876x_platform_data {
6 int gpio_bridge_reset;
7 int gpio_panel_bl_en;
8 int gpio_panel_vadd;
9};
10
11#endif /* _TC35876X_H */