All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] compat-drivers: Move around patches and selectively apply them
@ 2012-08-17  8:26 Ozan Çağlayan
  2012-08-17  8:26 ` [PATCH 2/2] compat-drivers: Add DRM patches Ozan Çağlayan
  2012-08-20  5:57 ` [PATCH 1/2] compat-drivers: Move around patches and selectively apply them Luis R. Rodriguez
  0 siblings, 2 replies; 4+ messages in thread
From: Ozan Çağlayan @ 2012-08-17  8:26 UTC (permalink / raw)
  To: backports; +Cc: mcgrof, Ozan Çağlayan

Put wlan/bt/eth related patches under network/ subdirectories. Apply them
only if the network subsystem is enabled (For now, it is enabled by default).

Create empty network/ placeholders under patch directories.

Signed-off-by: Ozan Çağlayan <ozancag@gmail.com>
---

The patch is too big for this mailing list. The link to the patch is:
  http://ozancaglayan.com/files/compat/0001-compat-drivers-Move-around-patches-and-selectively-a.patch

 ...-QCA-ethernet-driver-which-supercedes-atl.patch | 13498 -------------------
 crap/0002-backport-alx.patch                       |   133 -
 crap/0003-remove-atl1c-devices-from-alx.patch      |    19 -
 ...s-adds-the-802.11ad-60-GHz-wil6210-driver.patch |  5757 --------
 ...-QCA-ethernet-driver-which-supercedes-atl.patch | 13498 +++++++++++++++++++
 crap/network/0002-backport-alx.patch               |   133 +
 .../0003-remove-atl1c-devices-from-alx.patch       |    19 +
 ...s-adds-the-802.11ad-60-GHz-wil6210-driver.patch |  5757 ++++++++
 patches/0001-netdev_ops.patch                      |   279 -
 patches/0002-net-misc.patch                        |    68 -
 patches/0003-netdev-needed_headroom_tailroom.patch |    36 -
 patches/0004-wext-namespace.patch                  |    58 -
 patches/02-ksize.patch                             |    69 -
 patches/03-rfkill.patch                            |    66 -
 patches/04-netns.patch                             |   149 -
 patches/05-usb.patch                               |    26 -
 patches/06-header-changes.patch                    |   117 -
 patches/07-change-default-rate-alg.patch           |    34 -
 patches/08-rename-config-options.patch             |   167 -
 patches/09-cfg80211-wext-padding.patch             |    62 -
 patches/09-threaded-irq.patch                      |   129 -
 patches/10-add-wext-handlers-to-netdev.patch       |    47 -
 patches/11-dev-pm-ops.patch                        |   396 -
 patches/12-iw_handler-changes.patch                |    14 -
 patches/12-mac80211-disable-tx-status.patch        |    24 -
 patches/14-device-type.patch                       |    56 -
 patches/15-symbol-export-conflicts.patch           |    18 -
 patches/16-bluetooth.patch                         |   576 -
 patches/17-netdev-queue.patch                      |    47 -
 patches/18-rename-usb-net-symbols.patch            |    53 -
 patches/21-capi-proc_fops.patch                    |    73 -
 patches/22-multiqueue.patch                        |    43 -
 patches/24-pcmcia.patch                            |  1414 --
 patches/25-multicast-list_head.patch               |   820 --
 patches/26-sdio-quirks.patch                       |    32 -
 patches/27-hermes-read-pda-conflict.patch          |    56 -
 patches/29-sdio_no_suspend.patch                   |   199 -
 patches/30-bridge-port.patch                       |    45 -
 patches/32-remove-ns-type.patch                    |    28 -
 patches/35-fix-makefile-includes.patch             |    71 -
 patches/36-workqueue.patch                         |    16 -
 patches/37-vsnprintk.patch                         |    35 -
 patches/38-led-max-brightness.patch                |    24 -
 patches/39-remove_blink_set.patch                  |    56 -
 patches/40-netdev-hw-features.patch                |   372 -
 patches/42-netlink_seq.patch                       |    12 -
 patches/43-rename_pm_qos_request.patch             |    14 -
 patches/44-deactivate-mac80211-tracing.patch       |    15 -
 patches/45-remove-platform-id-table.patch          |    23 -
 patches/46-use_other_workqueue.patch               |    19 -
 patches/47-no_trans_start_on_netdev_queue.patch    |    17 -
 patches/48-use_skb_get_queue_mapping.patch         |    38 -
 patches/50-libertas-olpc-ec-wakeup.patch           |    23 -
 patches/52-tty-dev.patch                           |    32 -
 patches/53-pr_fmt.patch                            |   821 --
 patches/54-get_ts_info.patch                       |    39 -
 patches/55-iwlwifi-msg-trace-fix.patch             |    70 -
 patches/56-mac80211-trace-fix.patch                |    79 -
 patches/57-iwlwifi-debug-fix.patch                 |    19 -
 patches/61-netdev-addr_assign_type.patch           |    53 -
 patches/62-usb_driver_lpm.patch                    |   276 -
 patches/63-tty-termios.patch                       |    49 -
 patches/64-b44-32bit-stats.patch                   |    54 -
 patches/65-ignore-dismantle.patch                  |    23 -
 patches/99-change-makefiles.patch                  |   100 -
 patches/network/0001-netdev_ops.patch              |   279 +
 patches/network/0002-net-misc.patch                |    68 +
 .../0003-netdev-needed_headroom_tailroom.patch     |    36 +
 patches/network/0004-wext-namespace.patch          |    58 +
 patches/network/02-ksize.patch                     |    69 +
 patches/network/03-rfkill.patch                    |    66 +
 patches/network/04-netns.patch                     |   149 +
 patches/network/05-usb.patch                       |    26 +
 patches/network/06-header-changes.patch            |   117 +
 patches/network/07-change-default-rate-alg.patch   |    34 +
 patches/network/08-rename-config-options.patch     |   167 +
 patches/network/09-cfg80211-wext-padding.patch     |    62 +
 patches/network/09-threaded-irq.patch              |   129 +
 .../network/10-add-wext-handlers-to-netdev.patch   |    47 +
 patches/network/11-dev-pm-ops.patch                |   396 +
 patches/network/12-iw_handler-changes.patch        |    14 +
 .../network/12-mac80211-disable-tx-status.patch    |    24 +
 patches/network/14-device-type.patch               |    56 +
 patches/network/15-symbol-export-conflicts.patch   |    18 +
 patches/network/16-bluetooth.patch                 |   576 +
 patches/network/17-netdev-queue.patch              |    47 +
 patches/network/18-rename-usb-net-symbols.patch    |    53 +
 patches/network/21-capi-proc_fops.patch            |    73 +
 patches/network/22-multiqueue.patch                |    43 +
 patches/network/24-pcmcia.patch                    |  1414 ++
 patches/network/25-multicast-list_head.patch       |   820 ++
 patches/network/26-sdio-quirks.patch               |    32 +
 patches/network/27-hermes-read-pda-conflict.patch  |    56 +
 patches/network/29-sdio_no_suspend.patch           |   199 +
 patches/network/30-bridge-port.patch               |    45 +
 patches/network/32-remove-ns-type.patch            |    28 +
 patches/network/35-fix-makefile-includes.patch     |    71 +
 patches/network/36-workqueue.patch                 |    16 +
 patches/network/37-vsnprintk.patch                 |    35 +
 patches/network/38-led-max-brightness.patch        |    24 +
 patches/network/39-remove_blink_set.patch          |    56 +
 patches/network/40-netdev-hw-features.patch        |   372 +
 patches/network/42-netlink_seq.patch               |    12 +
 patches/network/43-rename_pm_qos_request.patch     |    14 +
 .../network/44-deactivate-mac80211-tracing.patch   |    15 +
 patches/network/45-remove-platform-id-table.patch  |    23 +
 patches/network/46-use_other_workqueue.patch       |    19 +
 .../47-no_trans_start_on_netdev_queue.patch        |    17 +
 patches/network/48-use_skb_get_queue_mapping.patch |    38 +
 patches/network/50-libertas-olpc-ec-wakeup.patch   |    23 +
 patches/network/52-tty-dev.patch                   |    32 +
 patches/network/53-pr_fmt.patch                    |   821 ++
 patches/network/54-get_ts_info.patch               |    39 +
 patches/network/55-iwlwifi-msg-trace-fix.patch     |    70 +
 patches/network/56-mac80211-trace-fix.patch        |    79 +
 patches/network/57-iwlwifi-debug-fix.patch         |    19 +
 patches/network/61-netdev-addr_assign_type.patch   |    53 +
 patches/network/62-usb_driver_lpm.patch            |   276 +
 patches/network/63-tty-termios.patch               |    49 +
 patches/network/64-b44-32bit-stats.patch           |    54 +
 patches/network/65-ignore-dismantle.patch          |    23 +
 patches/network/99-change-makefiles.patch          |   100 +
 scripts/admin-update.sh                            |    63 +-
 123 files changed, 26997 insertions(+), 26982 deletions(-)
 delete mode 100644 crap/0001-alx-add-new-QCA-ethernet-driver-which-supercedes-atl.patch
 delete mode 100644 crap/0002-backport-alx.patch
 delete mode 100644 crap/0003-remove-atl1c-devices-from-alx.patch
 delete mode 100644 crap/0004-wireless-adds-the-802.11ad-60-GHz-wil6210-driver.patch
 create mode 100644 crap/network/0001-alx-add-new-QCA-ethernet-driver-which-supercedes-atl.patch
 create mode 100644 crap/network/0002-backport-alx.patch
 create mode 100644 crap/network/0003-remove-atl1c-devices-from-alx.patch
 create mode 100644 crap/network/0004-wireless-adds-the-802.11ad-60-GHz-wil6210-driver.patch
 create mode 100644 linux-next-cherry-picks/network/.gitignore
 create mode 100644 linux-next-pending/network/.gitignore
 delete mode 100644 patches/0001-netdev_ops.patch
 delete mode 100644 patches/0002-net-misc.patch
 delete mode 100644 patches/0003-netdev-needed_headroom_tailroom.patch
 delete mode 100644 patches/0004-wext-namespace.patch
 delete mode 100644 patches/02-ksize.patch
 delete mode 100644 patches/03-rfkill.patch
 delete mode 100644 patches/04-netns.patch
 delete mode 100644 patches/05-usb.patch
 delete mode 100644 patches/06-header-changes.patch
 delete mode 100644 patches/07-change-default-rate-alg.patch
 delete mode 100644 patches/08-rename-config-options.patch
 delete mode 100644 patches/09-cfg80211-wext-padding.patch
 delete mode 100644 patches/09-threaded-irq.patch
 delete mode 100644 patches/10-add-wext-handlers-to-netdev.patch
 delete mode 100644 patches/11-dev-pm-ops.patch
 delete mode 100644 patches/12-iw_handler-changes.patch
 delete mode 100644 patches/12-mac80211-disable-tx-status.patch
 delete mode 100644 patches/14-device-type.patch
 delete mode 100644 patches/15-symbol-export-conflicts.patch
 delete mode 100644 patches/16-bluetooth.patch
 delete mode 100644 patches/17-netdev-queue.patch
 delete mode 100644 patches/18-rename-usb-net-symbols.patch
 delete mode 100644 patches/21-capi-proc_fops.patch
 delete mode 100644 patches/22-multiqueue.patch
 delete mode 100644 patches/24-pcmcia.patch
 delete mode 100644 patches/25-multicast-list_head.patch
 delete mode 100644 patches/26-sdio-quirks.patch
 delete mode 100644 patches/27-hermes-read-pda-conflict.patch
 delete mode 100644 patches/29-sdio_no_suspend.patch
 delete mode 100644 patches/30-bridge-port.patch
 delete mode 100644 patches/32-remove-ns-type.patch
 delete mode 100644 patches/35-fix-makefile-includes.patch
 delete mode 100644 patches/36-workqueue.patch
 delete mode 100644 patches/37-vsnprintk.patch
 delete mode 100644 patches/38-led-max-brightness.patch
 delete mode 100644 patches/39-remove_blink_set.patch
 delete mode 100644 patches/40-netdev-hw-features.patch
 delete mode 100644 patches/42-netlink_seq.patch
 delete mode 100644 patches/43-rename_pm_qos_request.patch
 delete mode 100644 patches/44-deactivate-mac80211-tracing.patch
 delete mode 100644 patches/45-remove-platform-id-table.patch
 delete mode 100644 patches/46-use_other_workqueue.patch
 delete mode 100644 patches/47-no_trans_start_on_netdev_queue.patch
 delete mode 100644 patches/48-use_skb_get_queue_mapping.patch
 delete mode 100644 patches/50-libertas-olpc-ec-wakeup.patch
 delete mode 100644 patches/52-tty-dev.patch
 delete mode 100644 patches/53-pr_fmt.patch
 delete mode 100644 patches/54-get_ts_info.patch
 delete mode 100644 patches/55-iwlwifi-msg-trace-fix.patch
 delete mode 100644 patches/56-mac80211-trace-fix.patch
 delete mode 100644 patches/57-iwlwifi-debug-fix.patch
 delete mode 100644 patches/61-netdev-addr_assign_type.patch
 delete mode 100644 patches/62-usb_driver_lpm.patch
 delete mode 100644 patches/63-tty-termios.patch
 delete mode 100644 patches/64-b44-32bit-stats.patch
 delete mode 100644 patches/65-ignore-dismantle.patch
 delete mode 100644 patches/99-change-makefiles.patch
 create mode 100644 patches/network/0001-netdev_ops.patch
 create mode 100644 patches/network/0002-net-misc.patch
 create mode 100644 patches/network/0003-netdev-needed_headroom_tailroom.patch
 create mode 100644 patches/network/0004-wext-namespace.patch
 create mode 100644 patches/network/02-ksize.patch
 create mode 100644 patches/network/03-rfkill.patch
 create mode 100644 patches/network/04-netns.patch
 create mode 100644 patches/network/05-usb.patch
 create mode 100644 patches/network/06-header-changes.patch
 create mode 100644 patches/network/07-change-default-rate-alg.patch
 create mode 100644 patches/network/08-rename-config-options.patch
 create mode 100644 patches/network/09-cfg80211-wext-padding.patch
 create mode 100644 patches/network/09-threaded-irq.patch
 create mode 100644 patches/network/10-add-wext-handlers-to-netdev.patch
 create mode 100644 patches/network/11-dev-pm-ops.patch
 create mode 100644 patches/network/12-iw_handler-changes.patch
 create mode 100644 patches/network/12-mac80211-disable-tx-status.patch
 create mode 100644 patches/network/14-device-type.patch
 create mode 100644 patches/network/15-symbol-export-conflicts.patch
 create mode 100644 patches/network/16-bluetooth.patch
 create mode 100644 patches/network/17-netdev-queue.patch
 create mode 100644 patches/network/18-rename-usb-net-symbols.patch
 create mode 100644 patches/network/21-capi-proc_fops.patch
 create mode 100644 patches/network/22-multiqueue.patch
 create mode 100644 patches/network/24-pcmcia.patch
 create mode 100644 patches/network/25-multicast-list_head.patch
 create mode 100644 patches/network/26-sdio-quirks.patch
 create mode 100644 patches/network/27-hermes-read-pda-conflict.patch
 create mode 100644 patches/network/29-sdio_no_suspend.patch
 create mode 100644 patches/network/30-bridge-port.patch
 create mode 100644 patches/network/32-remove-ns-type.patch
 create mode 100644 patches/network/35-fix-makefile-includes.patch
 create mode 100644 patches/network/36-workqueue.patch
 create mode 100644 patches/network/37-vsnprintk.patch
 create mode 100644 patches/network/38-led-max-brightness.patch
 create mode 100644 patches/network/39-remove_blink_set.patch
 create mode 100644 patches/network/40-netdev-hw-features.patch
 create mode 100644 patches/network/42-netlink_seq.patch
 create mode 100644 patches/network/43-rename_pm_qos_request.patch
 create mode 100644 patches/network/44-deactivate-mac80211-tracing.patch
 create mode 100644 patches/network/45-remove-platform-id-table.patch
 create mode 100644 patches/network/46-use_other_workqueue.patch
 create mode 100644 patches/network/47-no_trans_start_on_netdev_queue.patch
 create mode 100644 patches/network/48-use_skb_get_queue_mapping.patch
 create mode 100644 patches/network/50-libertas-olpc-ec-wakeup.patch
 create mode 100644 patches/network/52-tty-dev.patch
 create mode 100644 patches/network/53-pr_fmt.patch
 create mode 100644 patches/network/54-get_ts_info.patch
 create mode 100644 patches/network/55-iwlwifi-msg-trace-fix.patch
 create mode 100644 patches/network/56-mac80211-trace-fix.patch
 create mode 100644 patches/network/57-iwlwifi-debug-fix.patch
 create mode 100644 patches/network/61-netdev-addr_assign_type.patch
 create mode 100644 patches/network/62-usb_driver_lpm.patch
 create mode 100644 patches/network/63-tty-termios.patch
 create mode 100644 patches/network/64-b44-32bit-stats.patch
 create mode 100644 patches/network/65-ignore-dismantle.patch
 create mode 100644 patches/network/99-change-makefiles.patch
 create mode 100644 pending-stable/network/.gitignore

-- 
1.7.11.2


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 2/2] compat-drivers: Add DRM patches
  2012-08-17  8:26 [PATCH 1/2] compat-drivers: Move around patches and selectively apply them Ozan Çağlayan
@ 2012-08-17  8:26 ` Ozan Çağlayan
  2012-08-20  5:57 ` [PATCH 1/2] compat-drivers: Move around patches and selectively apply them Luis R. Rodriguez
  1 sibling, 0 replies; 4+ messages in thread
From: Ozan Çağlayan @ 2012-08-17  8:26 UTC (permalink / raw)
  To: backports; +Cc: mcgrof, Ozan Çağlayan

These patches are part of the GSoC project for backporting the
DRM drivers onto older kernels.

Merge them into the compat-drivers tree.

Signed-off-by: Ozan Çağlayan <ozancag@gmail.com>
---
 patches/drm/01-dma_buf_ops-addition.patch         |  54 +++
 patches/drm/02-revert-vm_mmap.patch               | 100 ++++++
 patches/drm/03-swiotlb.patch                      |  87 +++++
 patches/drm/04-revert-prime-support.patch         | 384 ++++++++++++++++++++++
 patches/drm/05-i915-define-acpi-video-class.patch |  18 +
 patches/drm/98-pr_fmt.patch                       | 199 +++++++++++
 patches/drm/99-change-makefile.patch              |  28 ++
 7 files changed, 870 insertions(+)
 create mode 100644 patches/drm/01-dma_buf_ops-addition.patch
 create mode 100644 patches/drm/02-revert-vm_mmap.patch
 create mode 100644 patches/drm/03-swiotlb.patch
 create mode 100644 patches/drm/04-revert-prime-support.patch
 create mode 100644 patches/drm/05-i915-define-acpi-video-class.patch
 create mode 100644 patches/drm/98-pr_fmt.patch
 create mode 100644 patches/drm/99-change-makefile.patch

diff --git a/patches/drm/01-dma_buf_ops-addition.patch b/patches/drm/01-dma_buf_ops-addition.patch
new file mode 100644
index 0000000..ee95cb5
--- /dev/null
+++ b/patches/drm/01-dma_buf_ops-addition.patch
@@ -0,0 +1,54 @@
+Assign vmap, vunmap and mmap fields in dma_buf_ops structs only
+if kernel version >= 3.5.0 as they are added in 3.5.
+
+Note that the dma-buf itself was added with 3.4. It is not available
+on kernels < 3.4.
+
+Index: compat-drm/drivers/gpu/drm/i915/i915_gem_dmabuf.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/i915/i915_gem_dmabuf.c
++++ compat-drm/drivers/gpu/drm/i915/i915_gem_dmabuf.c
+@@ -159,9 +159,11 @@ static const struct dma_buf_ops i915_dma
+ 	.kmap_atomic = i915_gem_dmabuf_kmap_atomic,
+ 	.kunmap = i915_gem_dmabuf_kunmap,
+ 	.kunmap_atomic = i915_gem_dmabuf_kunmap_atomic,
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
+ 	.mmap = i915_gem_dmabuf_mmap,
+ 	.vmap = i915_gem_dmabuf_vmap,
+ 	.vunmap = i915_gem_dmabuf_vunmap,
++#endif
+ };
+ 
+ struct dma_buf *i915_gem_prime_export(struct drm_device *dev,
+Index: compat-drm/drivers/gpu/drm/nouveau/nouveau_prime.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/nouveau/nouveau_prime.c
++++ compat-drm/drivers/gpu/drm/nouveau/nouveau_prime.c
+@@ -111,9 +111,11 @@ static const struct dma_buf_ops nouveau_
+ 	.kmap_atomic = nouveau_gem_kmap_atomic,
+ 	.kunmap = nouveau_gem_kunmap,
+ 	.kunmap_atomic = nouveau_gem_kunmap_atomic,
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
+ 	.mmap = nouveau_gem_prime_mmap,
+ 	.vmap = nouveau_gem_prime_vmap,
+ 	.vunmap = nouveau_gem_prime_vunmap,
++#endif
+ };
+ 
+ static int
+Index: compat-drm/drivers/gpu/drm/radeon/radeon_prime.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/radeon/radeon_prime.c
++++ compat-drm/drivers/gpu/drm/radeon/radeon_prime.c
+@@ -134,9 +134,11 @@ const static struct dma_buf_ops radeon_d
+ 	.kmap_atomic = radeon_gem_kmap_atomic,
+ 	.kunmap = radeon_gem_kunmap,
+ 	.kunmap_atomic = radeon_gem_kunmap_atomic,
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
+ 	.mmap = radeon_gem_prime_mmap,
+ 	.vmap = radeon_gem_prime_vmap,
+ 	.vunmap = radeon_gem_prime_vunmap,
++#endif
+ };
+ 
+ static int radeon_prime_create(struct drm_device *dev,
diff --git a/patches/drm/02-revert-vm_mmap.patch b/patches/drm/02-revert-vm_mmap.patch
new file mode 100644
index 0000000..aec746a
--- /dev/null
+++ b/patches/drm/02-revert-vm_mmap.patch
@@ -0,0 +1,100 @@
+vm_mmap() and vm_munmap() were introduced in kernels >= 3.4.0. Revert
+those changes for versions older than that.
+
+These can't be backported as they rely on non-exported symbols.
+
+Index: compat-drm/drivers/gpu/drm/drm_bufs.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/drm_bufs.c
++++ compat-drm/drivers/gpu/drm/drm_bufs.c
+@@ -1553,6 +1553,20 @@ int drm_mapbufs(struct drm_device *dev,
+ 				retcode = -EINVAL;
+ 				goto done;
+ 			}
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0))
++			down_write(&current->mm->mmap_sem);
++			virtual = do_mmap(file_priv->filp, 0, map->size,
++					  PROT_READ | PROT_WRITE,
++					  MAP_SHARED,
++					  token);
++			up_write(&current->mm->mmap_sem);
++		} else {
++			down_write(&current->mm->mmap_sem);
++			virtual = do_mmap(file_priv->filp, 0, dma->byte_count,
++					  PROT_READ | PROT_WRITE,
++					  MAP_SHARED, 0);
++			up_write(&current->mm->mmap_sem);
++#else
+ 			virtual = vm_mmap(file_priv->filp, 0, map->size,
+ 					  PROT_READ | PROT_WRITE,
+ 					  MAP_SHARED,
+@@ -1561,6 +1575,7 @@ int drm_mapbufs(struct drm_device *dev,
+ 			virtual = vm_mmap(file_priv->filp, 0, dma->byte_count,
+ 					  PROT_READ | PROT_WRITE,
+ 					  MAP_SHARED, 0);
++#endif
+ 		}
+ 		if (virtual > -1024UL) {
+ 			/* Real error */
+Index: compat-drm/drivers/gpu/drm/i810/i810_dma.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/i810/i810_dma.c
++++ compat-drm/drivers/gpu/drm/i810/i810_dma.c
+@@ -133,9 +133,17 @@ static int i810_map_buffer(struct drm_bu
+ 	old_fops = file_priv->filp->f_op;
+ 	file_priv->filp->f_op = &i810_buffer_fops;
+ 	dev_priv->mmap_buffer = buf;
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0))
++	down_write(&current->mm->mmap_sem);
++	buf_priv->virtual = (void *)do_mmap(file_priv->filp, 0, buf->total,
++					    PROT_READ | PROT_WRITE,
++					    MAP_SHARED, buf->bus_address);
++	up_write(&current->mm->mmap_sem);
++#else
+ 	buf_priv->virtual = (void *)vm_mmap(file_priv->filp, 0, buf->total,
+ 					    PROT_READ | PROT_WRITE,
+ 					    MAP_SHARED, buf->bus_address);
++#endif
+ 	dev_priv->mmap_buffer = NULL;
+ 	file_priv->filp->f_op = old_fops;
+ 	if (IS_ERR(buf_priv->virtual)) {
+@@ -156,9 +164,15 @@ static int i810_unmap_buffer(struct drm_
+ 	if (buf_priv->currently_mapped != I810_BUF_MAPPED)
+ 		return -EINVAL;
+ 
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0))
++	down_write(&current->mm->mmap_sem);
++	retcode = do_munmap(current->mm, (unsigned long)buf_priv->virtual,
++			    (size_t) buf->total);
++	up_write(&current->mm->mmap_sem);
++#else
+ 	retcode = vm_munmap((unsigned long)buf_priv->virtual,
+ 			    (size_t) buf->total);
+-
++#endif
+ 	buf_priv->currently_mapped = I810_BUF_UNMAPPED;
+ 	buf_priv->virtual = NULL;
+ 
+Index: compat-drm/drivers/gpu/drm/i915/i915_gem.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/i915/i915_gem.c
++++ compat-drm/drivers/gpu/drm/i915/i915_gem.c
+@@ -1045,10 +1045,17 @@ i915_gem_mmap_ioctl(struct drm_device *d
+ 		drm_gem_object_unreference_unlocked(obj);
+ 		return -EINVAL;
+ 	}
+-
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0))
++	down_write(&current->mm->mmap_sem);
++	addr = do_mmap(obj->filp, 0, args->size,
++		       PROT_READ | PROT_WRITE, MAP_SHARED,
++		       args->offset);
++	up_write(&current->mm->mmap_sem);
++#else
+ 	addr = vm_mmap(obj->filp, 0, args->size,
+ 		       PROT_READ | PROT_WRITE, MAP_SHARED,
+ 		       args->offset);
++#endif
+ 	drm_gem_object_unreference_unlocked(obj);
+ 	if (IS_ERR((void *)addr))
+ 		return addr;
diff --git a/patches/drm/03-swiotlb.patch b/patches/drm/03-swiotlb.patch
new file mode 100644
index 0000000..eaa583b
--- /dev/null
+++ b/patches/drm/03-swiotlb.patch
@@ -0,0 +1,87 @@
+
+swiotlb_nr_tbl() was available since 3.2 but was exported since 3.3.
+Since it uses an internal global state variable, it is impossible
+to backport it to compat.git. So revert the changes.
+
+Index: compat-drm/drivers/gpu/drm/nouveau/nouveau_bo.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/nouveau/nouveau_bo.c
++++ compat-drm/drivers/gpu/drm/nouveau/nouveau_bo.c
+@@ -1297,11 +1297,13 @@ nouveau_ttm_tt_populate(struct ttm_tt *t
+ 	}
+ #endif
+ 
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
+ #ifdef CONFIG_SWIOTLB
+ 	if (swiotlb_nr_tbl()) {
+ 		return ttm_dma_populate((void *)ttm, dev->dev);
+ 	}
+ #endif
++#endif
+ 
+ 	r = ttm_pool_populate(ttm);
+ 	if (r) {
+@@ -1347,12 +1349,14 @@ nouveau_ttm_tt_unpopulate(struct ttm_tt
+ 	}
+ #endif
+ 
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
+ #ifdef CONFIG_SWIOTLB
+ 	if (swiotlb_nr_tbl()) {
+ 		ttm_dma_unpopulate((void *)ttm, dev->dev);
+ 		return;
+ 	}
+ #endif
++#endif
+ 
+ 	for (i = 0; i < ttm->num_pages; i++) {
+ 		if (ttm_dma->dma_address[i]) {
+Index: compat-drm/drivers/gpu/drm/radeon/radeon_ttm.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/radeon/radeon_ttm.c
++++ compat-drm/drivers/gpu/drm/radeon/radeon_ttm.c
+@@ -630,11 +630,13 @@ static int radeon_ttm_tt_populate(struct
+ 	}
+ #endif
+ 
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
+ #ifdef CONFIG_SWIOTLB
+ 	if (swiotlb_nr_tbl()) {
+ 		return ttm_dma_populate(&gtt->ttm, rdev->dev);
+ 	}
+ #endif
++#endif
+ 
+ 	r = ttm_pool_populate(ttm);
+ 	if (r) {
+@@ -676,12 +678,14 @@ static void radeon_ttm_tt_unpopulate(str
+ 	}
+ #endif
+ 
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
+ #ifdef CONFIG_SWIOTLB
+ 	if (swiotlb_nr_tbl()) {
+ 		ttm_dma_unpopulate(&gtt->ttm, rdev->dev);
+ 		return;
+ 	}
+ #endif
++#endif
+ 
+ 	for (i = 0; i < ttm->num_pages; i++) {
+ 		if (gtt->ttm.dma_address[i]) {
+@@ -906,6 +910,7 @@ static int radeon_ttm_debugfs_init(struc
+ 	radeon_mem_types_list[i].show = &ttm_page_alloc_debugfs;
+ 	radeon_mem_types_list[i].driver_features = 0;
+ 	radeon_mem_types_list[i++].data = NULL;
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
+ #ifdef CONFIG_SWIOTLB
+ 	if (swiotlb_nr_tbl()) {
+ 		sprintf(radeon_mem_types_names[i], "ttm_dma_page_pool");
+@@ -915,6 +920,7 @@ static int radeon_ttm_debugfs_init(struc
+ 		radeon_mem_types_list[i++].data = NULL;
+ 	}
+ #endif
++#endif
+ 	return radeon_debugfs_add_files(rdev, radeon_mem_types_list, i);
+ 
+ #endif
diff --git a/patches/drm/04-revert-prime-support.patch b/patches/drm/04-revert-prime-support.patch
new file mode 100644
index 0000000..c835790
--- /dev/null
+++ b/patches/drm/04-revert-prime-support.patch
@@ -0,0 +1,384 @@
+Disable PRIME support in core drm, radeon, nouveau and i915 for
+kernels < 3.4.0.
+
+PRIME depends on dma-buf which is added to the kernel with 3.3 but
+the one in 3.3 is mostly stub, e.g. it is a skeleton API which
+is highly modified in 3.4. So disable PRIME for kernels < 3.4.0,
+not < 3.3.0.
+
+Index: compat-drm/drivers/gpu/drm/drm_drv.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/drm_drv.c
++++ compat-drm/drivers/gpu/drm/drm_drv.c
+@@ -137,8 +137,10 @@ static struct drm_ioctl_desc drm_ioctls[
+ 
+ 	DRM_IOCTL_DEF(DRM_IOCTL_MODE_GETRESOURCES, drm_mode_getresources, DRM_CONTROL_ALLOW|DRM_UNLOCKED),
+ 
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
+ 	DRM_IOCTL_DEF(DRM_IOCTL_PRIME_HANDLE_TO_FD, drm_prime_handle_to_fd_ioctl, DRM_AUTH|DRM_UNLOCKED),
+ 	DRM_IOCTL_DEF(DRM_IOCTL_PRIME_FD_TO_HANDLE, drm_prime_fd_to_handle_ioctl, DRM_AUTH|DRM_UNLOCKED),
++#endif
+ 
+ 	DRM_IOCTL_DEF(DRM_IOCTL_MODE_GETPLANERESOURCES, drm_mode_getplane_res, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED),
+ 	DRM_IOCTL_DEF(DRM_IOCTL_MODE_GETCRTC, drm_mode_getcrtc, DRM_CONTROL_ALLOW|DRM_UNLOCKED),
+Index: compat-drm/drivers/gpu/drm/drm_fops.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/drm_fops.c
++++ compat-drm/drivers/gpu/drm/drm_fops.c
+@@ -271,8 +271,10 @@ static int drm_open_helper(struct inode
+ 	if (dev->driver->driver_features & DRIVER_GEM)
+ 		drm_gem_open(dev, priv);
+ 
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
+ 	if (drm_core_check_feature(dev, DRIVER_PRIME))
+ 		drm_prime_init_file_private(&priv->prime);
++#endif
+ 
+ 	if (dev->driver->open) {
+ 		ret = dev->driver->open(dev, priv);
+@@ -575,8 +577,10 @@ int drm_release(struct inode *inode, str
+ 	if (dev->driver->postclose)
+ 		dev->driver->postclose(dev, file_priv);
+ 
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
+ 	if (drm_core_check_feature(dev, DRIVER_PRIME))
+ 		drm_prime_destroy_file_private(&file_priv->prime);
++#endif
+ 
+ 	kfree(file_priv);
+ 
+Index: compat-drm/drivers/gpu/drm/drm_gem.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/drm_gem.c
++++ compat-drm/drivers/gpu/drm/drm_gem.c
+@@ -35,7 +35,11 @@
+ #include <linux/mman.h>
+ #include <linux/pagemap.h>
+ #include <linux/shmem_fs.h>
++
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
+ #include <linux/dma-buf.h>
++#endif
++
+ #include "drmP.h"
+ 
+ /** @file drm_gem.c
+@@ -204,6 +208,7 @@ EXPORT_SYMBOL(drm_gem_object_alloc);
+ static void
+ drm_gem_remove_prime_handles(struct drm_gem_object *obj, struct drm_file *filp)
+ {
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
+ 	if (obj->import_attach) {
+ 		drm_prime_remove_imported_buf_handle(&filp->prime,
+ 				obj->import_attach->dmabuf);
+@@ -212,6 +217,7 @@ drm_gem_remove_prime_handles(struct drm_
+ 		drm_prime_remove_imported_buf_handle(&filp->prime,
+ 				obj->export_dma_buf);
+ 	}
++#endif
+ }
+ 
+ /**
+Index: compat-drm/drivers/gpu/drm/drm_prime.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/drm_prime.c
++++ compat-drm/drivers/gpu/drm/drm_prime.c
+@@ -26,6 +26,8 @@
+  *
+  */
+ 
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
++
+ #include <linux/export.h>
+ #include <linux/dma-buf.h>
+ #include "drmP.h"
+@@ -350,3 +352,4 @@ void drm_prime_remove_imported_buf_handl
+ 	mutex_unlock(&prime_fpriv->lock);
+ }
+ EXPORT_SYMBOL(drm_prime_remove_imported_buf_handle);
++#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) */
+Index: compat-drm/drivers/gpu/drm/nouveau/nouveau_prime.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/nouveau/nouveau_prime.c
++++ compat-drm/drivers/gpu/drm/nouveau/nouveau_prime.c
+@@ -22,6 +22,7 @@
+  * Authors: Dave Airlie
+  */
+ 
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
+ #include "drmP.h"
+ #include "drm.h"
+ 
+@@ -230,4 +231,4 @@ fail_detach:
+ 	dma_buf_detach(dma_buf, attach);
+ 	return ERR_PTR(ret);
+ }
+-
++#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) */
+Index: compat-drm/drivers/gpu/drm/radeon/radeon_prime.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/radeon/radeon_prime.c
++++ compat-drm/drivers/gpu/drm/radeon/radeon_prime.c
+@@ -23,6 +23,8 @@
+  *
+  * Authors: Alex Deucher
+  */
++
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
+ #include "drmP.h"
+ #include "drm.h"
+ 
+@@ -226,3 +228,4 @@ fail_detach:
+ 	dma_buf_detach(dma_buf, attach);
+ 	return ERR_PTR(ret);
+ }
++#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) */
+Index: compat-drm/drivers/gpu/drm/radeon/radeon_drv.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/radeon/radeon_drv.c
++++ compat-drm/drivers/gpu/drm/radeon/radeon_drv.c
+@@ -340,8 +340,10 @@ static const struct file_operations rade
+ static struct drm_driver kms_driver = {
+ 	.driver_features =
+ 	    DRIVER_USE_AGP | DRIVER_USE_MTRR | DRIVER_PCI_DMA | DRIVER_SG |
+-	    DRIVER_HAVE_IRQ | DRIVER_HAVE_DMA | DRIVER_IRQ_SHARED | DRIVER_GEM |
+-	    DRIVER_PRIME,
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
++	    DRIVER_PRIME |
++#endif
++	    DRIVER_HAVE_IRQ | DRIVER_HAVE_DMA | DRIVER_IRQ_SHARED | DRIVER_GEM,
+ 	.dev_priv_size = 0,
+ 	.load = radeon_driver_load_kms,
+ 	.firstopen = radeon_driver_firstopen_kms,
+@@ -377,10 +379,12 @@ static struct drm_driver kms_driver = {
+ 	.dumb_destroy = radeon_mode_dumb_destroy,
+ 	.fops = &radeon_driver_kms_fops,
+ 
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
+ 	.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
+ 	.prime_fd_to_handle = drm_gem_prime_fd_to_handle,
+ 	.gem_prime_export = radeon_gem_prime_export,
+ 	.gem_prime_import = radeon_gem_prime_import,
++#endif
+ 
+ 	.name = DRIVER_NAME,
+ 	.desc = DRIVER_DESC,
+Index: compat-drm/drivers/gpu/drm/radeon/radeon_gem.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/radeon/radeon_gem.c
++++ compat-drm/drivers/gpu/drm/radeon/radeon_gem.c
+@@ -42,8 +42,10 @@ void radeon_gem_object_free(struct drm_g
+ 	struct radeon_bo *robj = gem_to_radeon_bo(gobj);
+ 
+ 	if (robj) {
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
+ 		if (robj->gem_base.import_attach)
+ 			drm_prime_gem_destroy(&robj->gem_base, robj->tbo.sg);
++#endif
+ 		radeon_bo_unref(&robj);
+ 	}
+ }
+Index: compat-drm/drivers/gpu/drm/radeon/radeon_ttm.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/radeon/radeon_ttm.c
++++ compat-drm/drivers/gpu/drm/radeon/radeon_ttm.c
+@@ -583,17 +583,21 @@ static int radeon_ttm_tt_populate(struct
+ 	struct radeon_ttm_tt *gtt = (void *)ttm;
+ 	unsigned i;
+ 	int r;
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
+ 	bool slave = !!(ttm->page_flags & TTM_PAGE_FLAG_SG);
++#endif
+ 
+ 	if (ttm->state != tt_unpopulated)
+ 		return 0;
+ 
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
+ 	if (slave && ttm->sg) {
+ 		drm_prime_sg_to_page_addr_arrays(ttm->sg, ttm->pages,
+ 						 gtt->ttm.dma_address, ttm->num_pages);
+ 		ttm->state = tt_unbound;
+ 		return 0;
+ 	}
++#endif
+ 
+ 	rdev = radeon_get_rdev(ttm->bdev);
+ #if __OS_HAS_AGP
+@@ -637,10 +641,12 @@ static void radeon_ttm_tt_unpopulate(str
+ 	struct radeon_device *rdev;
+ 	struct radeon_ttm_tt *gtt = (void *)ttm;
+ 	unsigned i;
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
+ 	bool slave = !!(ttm->page_flags & TTM_PAGE_FLAG_SG);
+ 
+ 	if (slave)
+ 		return;
++#endif
+ 
+ 	rdev = radeon_get_rdev(ttm->bdev);
+ #if __OS_HAS_AGP
+Index: compat-drm/drivers/gpu/drm/nouveau/nouveau_bo.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/nouveau/nouveau_bo.c
++++ compat-drm/drivers/gpu/drm/nouveau/nouveau_bo.c
+@@ -1275,11 +1275,14 @@ nouveau_ttm_tt_populate(struct ttm_tt *t
+ 	struct drm_device *dev;
+ 	unsigned i;
+ 	int r;
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
+ 	bool slave = !!(ttm->page_flags & TTM_PAGE_FLAG_SG);
++#endif
+ 
+ 	if (ttm->state != tt_unpopulated)
+ 		return 0;
+ 
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
+ 	if (slave && ttm->sg) {
+ 		/* make userspace faulting work */
+ 		drm_prime_sg_to_page_addr_arrays(ttm->sg, ttm->pages,
+@@ -1287,6 +1290,7 @@ nouveau_ttm_tt_populate(struct ttm_tt *t
+ 		ttm->state = tt_unbound;
+ 		return 0;
+ 	}
++#endif
+ 
+ 	dev_priv = nouveau_bdev(ttm->bdev);
+ 	dev = dev_priv->dev;
+@@ -1334,10 +1338,12 @@ nouveau_ttm_tt_unpopulate(struct ttm_tt
+ 	struct drm_nouveau_private *dev_priv;
+ 	struct drm_device *dev;
+ 	unsigned i;
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
+ 	bool slave = !!(ttm->page_flags & TTM_PAGE_FLAG_SG);
+ 
+ 	if (slave)
+ 		return;
++#endif
+ 
+ 	dev_priv = nouveau_bdev(ttm->bdev);
+ 	dev = dev_priv->dev;
+Index: compat-drm/drivers/gpu/drm/nouveau/nouveau_drv.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/nouveau/nouveau_drv.c
++++ compat-drm/drivers/gpu/drm/nouveau/nouveau_drv.c
+@@ -403,7 +403,10 @@ static struct drm_driver driver = {
+ 	.driver_features =
+ 		DRIVER_USE_AGP | DRIVER_PCI_DMA | DRIVER_SG |
+ 		DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM |
+-		DRIVER_MODESET | DRIVER_PRIME,
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
++		DRIVER_PRIME |
++#endif
++		DRIVER_MODESET,
+ 	.load = nouveau_load,
+ 	.firstopen = nouveau_firstopen,
+ 	.lastclose = nouveau_lastclose,
+@@ -426,10 +429,12 @@ static struct drm_driver driver = {
+ 	.ioctls = nouveau_ioctls,
+ 	.fops = &nouveau_driver_fops,
+ 
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
+ 	.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
+ 	.prime_fd_to_handle = drm_gem_prime_fd_to_handle,
+ 	.gem_prime_export = nouveau_gem_prime_export,
+ 	.gem_prime_import = nouveau_gem_prime_import,
++#endif
+ 
+ 	.gem_init_object = nouveau_gem_object_new,
+ 	.gem_free_object = nouveau_gem_object_del,
+Index: compat-drm/drivers/gpu/drm/nouveau/nouveau_gem.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/nouveau/nouveau_gem.c
++++ compat-drm/drivers/gpu/drm/nouveau/nouveau_gem.c
+@@ -23,7 +23,9 @@
+  * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+  *
+  */
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
+ #include <linux/dma-buf.h>
++#endif
+ #include "drmP.h"
+ #include "drm.h"
+ 
+@@ -55,8 +57,10 @@ nouveau_gem_object_del(struct drm_gem_ob
+ 		nouveau_bo_unpin(nvbo);
+ 	}
+ 
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
+ 	if (gem->import_attach)
+ 		drm_prime_gem_destroy(gem, nvbo->bo.sg);
++#endif
+ 
+ 	ttm_bo_unref(&bo);
+ 
+Index: compat-drm/drivers/gpu/drm/i915/i915_drv.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/i915/i915_drv.c
++++ compat-drm/drivers/gpu/drm/i915/i915_drv.c
+@@ -1050,7 +1050,11 @@ static struct drm_driver driver = {
+ 	 */
+ 	.driver_features =
+ 	    DRIVER_USE_AGP | DRIVER_REQUIRE_AGP | /* DRIVER_USE_MTRR |*/
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
+ 	    DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM | DRIVER_PRIME,
++#else
++	    DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM,
++#endif
+ 	.load = i915_driver_load,
+ 	.unload = i915_driver_unload,
+ 	.open = i915_driver_open,
+@@ -1074,10 +1078,12 @@ static struct drm_driver driver = {
+ 	.gem_free_object = i915_gem_free_object,
+ 	.gem_vm_ops = &i915_gem_vm_ops,
+ 
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
+ 	.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
+ 	.prime_fd_to_handle = drm_gem_prime_fd_to_handle,
+ 	.gem_prime_export = i915_gem_prime_export,
+ 	.gem_prime_import = i915_gem_prime_import,
++#endif
+ 
+ 	.dumb_create = i915_gem_dumb_create,
+ 	.dumb_map_offset = i915_gem_mmap_gtt,
+Index: compat-drm/drivers/gpu/drm/i915/i915_gem.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/i915/i915_gem.c
++++ compat-drm/drivers/gpu/drm/i915/i915_gem.c
+@@ -35,7 +35,9 @@
+ #include <linux/slab.h>
+ #include <linux/swap.h>
+ #include <linux/pci.h>
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
+ #include <linux/dma-buf.h>
++#endif
+ 
+ static __must_check int i915_gem_object_flush_gpu_write_domain(struct drm_i915_gem_object *obj);
+ static void i915_gem_object_flush_gtt_write_domain(struct drm_i915_gem_object *obj);
+@@ -3522,8 +3524,10 @@ void i915_gem_free_object(struct drm_gem
+ 
+ 	trace_i915_gem_object_destroy(obj);
+ 
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
+ 	if (gem_obj->import_attach)
+ 		drm_prime_gem_destroy(gem_obj, obj->sg_table);
++#endif
+ 
+ 	if (obj->phys_obj)
+ 		i915_gem_detach_phys_object(dev, obj);
+Index: compat-drm/drivers/gpu/drm/i915/i915_gem_dmabuf.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/i915/i915_gem_dmabuf.c
++++ compat-drm/drivers/gpu/drm/i915/i915_gem_dmabuf.c
+@@ -23,6 +23,7 @@
+  * Authors:
+  *	Dave Airlie <airlied@redhat.com>
+  */
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
+ #include "drmP.h"
+ #include "i915_drv.h"
+ #include <linux/dma-buf.h>
+@@ -232,3 +233,4 @@ fail_detach:
+ 	dma_buf_detach(dma_buf, attach);
+ 	return ERR_PTR(ret);
+ }
++#endif
diff --git a/patches/drm/05-i915-define-acpi-video-class.patch b/patches/drm/05-i915-define-acpi-video-class.patch
new file mode 100644
index 0000000..7fddd3b
--- /dev/null
+++ b/patches/drm/05-i915-define-acpi-video-class.patch
@@ -0,0 +1,18 @@
+The definition of ACPI_VIDEO_CLASS was moved from video.c
+to video.h in 3.1. Define it here to fix build for kernels older
+than 3.1.
+
+Index: compat-drm/drivers/gpu/drm/i915/intel_opregion.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/i915/intel_opregion.c
++++ compat-drm/drivers/gpu/drm/i915/intel_opregion.c
+@@ -307,6 +307,9 @@ static int intel_opregion_video_event(st
+ 	struct acpi_bus_event *event = data;
+ 	int ret = NOTIFY_OK;
+ 
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0))
++#define ACPI_VIDEO_CLASS "video"
++#endif
+ 	if (strcmp(event->device_class, ACPI_VIDEO_CLASS) != 0)
+ 		return NOTIFY_DONE;
+ 
diff --git a/patches/drm/98-pr_fmt.patch b/patches/drm/98-pr_fmt.patch
new file mode 100644
index 0000000..1b0680b
--- /dev/null
+++ b/patches/drm/98-pr_fmt.patch
@@ -0,0 +1,199 @@
+
+Undef/define/include printk.h for fixing redefinition warnings
+during build.
+
+Patch adapted from compat-wireless tree.
+
+Index: compat-drm/drivers/gpu/drm/ttm/ttm_agp_backend.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/ttm/ttm_agp_backend.c
++++ compat-drm/drivers/gpu/drm/ttm/ttm_agp_backend.c
+@@ -29,8 +29,10 @@
+  *          Keith Packard.
+  */
+ 
++#undef pr_fmt
+ #define pr_fmt(fmt) "[TTM] " fmt
+ 
++#include <linux/printk.h>
+ #include "ttm/ttm_module.h"
+ #include "ttm/ttm_bo_driver.h"
+ #include "ttm/ttm_page_alloc.h"
+Index: compat-drm/drivers/gpu/drm/ttm/ttm_bo.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/ttm/ttm_bo.c
++++ compat-drm/drivers/gpu/drm/ttm/ttm_bo.c
+@@ -28,11 +28,13 @@
+  * Authors: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
+  */
+ 
++#undef pr_fmt
+ #define pr_fmt(fmt) "[TTM] " fmt
+ 
+ #include "ttm/ttm_module.h"
+ #include "ttm/ttm_bo_driver.h"
+ #include "ttm/ttm_placement.h"
++#include <linux/printk.h>
+ #include <linux/jiffies.h>
+ #include <linux/slab.h>
+ #include <linux/sched.h>
+Index: compat-drm/drivers/gpu/drm/ttm/ttm_bo_vm.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/ttm/ttm_bo_vm.c
++++ compat-drm/drivers/gpu/drm/ttm/ttm_bo_vm.c
+@@ -28,8 +28,10 @@
+  * Authors: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
+  */
+ 
++#undef pr_fmt
+ #define pr_fmt(fmt) "[TTM] " fmt
+ 
++#include <linux/printk.h>
+ #include <ttm/ttm_module.h>
+ #include <ttm/ttm_bo_driver.h>
+ #include <ttm/ttm_placement.h>
+Index: compat-drm/drivers/gpu/drm/ttm/ttm_memory.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/ttm/ttm_memory.c
++++ compat-drm/drivers/gpu/drm/ttm/ttm_memory.c
+@@ -25,11 +25,13 @@
+  *
+  **************************************************************************/
+ 
++#undef pr_fmt
+ #define pr_fmt(fmt) "[TTM] " fmt
+ 
+ #include "ttm/ttm_memory.h"
+ #include "ttm/ttm_module.h"
+ #include "ttm/ttm_page_alloc.h"
++#include <linux/printk.h>
+ #include <linux/spinlock.h>
+ #include <linux/sched.h>
+ #include <linux/wait.h>
+Index: compat-drm/drivers/gpu/drm/ttm/ttm_object.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/ttm/ttm_object.c
++++ compat-drm/drivers/gpu/drm/ttm/ttm_object.c
+@@ -49,10 +49,12 @@
+  * for fast lookup of ref objects given a base object.
+  */
+ 
++#undef pr_fmt
+ #define pr_fmt(fmt) "[TTM] " fmt
+ 
+ #include "ttm/ttm_object.h"
+ #include "ttm/ttm_module.h"
++#include <linux/printk.h>
+ #include <linux/list.h>
+ #include <linux/spinlock.h>
+ #include <linux/slab.h>
+Index: compat-drm/drivers/gpu/drm/ttm/ttm_page_alloc.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/ttm/ttm_page_alloc.c
++++ compat-drm/drivers/gpu/drm/ttm/ttm_page_alloc.c
+@@ -31,8 +31,10 @@
+  * - doesn't track currently in use pages
+  */
+ 
++#undef pr_fmt
+ #define pr_fmt(fmt) "[TTM] " fmt
+ 
++#include <linux/printk.h>
+ #include <linux/list.h>
+ #include <linux/spinlock.h>
+ #include <linux/highmem.h>
+Index: compat-drm/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c
++++ compat-drm/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c
+@@ -33,8 +33,10 @@
+  *   when freed).
+  */
+ 
++#undef pr_fmt
+ #define pr_fmt(fmt) "[TTM] " fmt
+ 
++#include <linux/printk.h>
+ #include <linux/dma-mapping.h>
+ #include <linux/list.h>
+ #include <linux/seq_file.h> /* for seq_printf */
+Index: compat-drm/drivers/gpu/drm/ttm/ttm_tt.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/ttm/ttm_tt.c
++++ compat-drm/drivers/gpu/drm/ttm/ttm_tt.c
+@@ -28,8 +28,10 @@
+  * Authors: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
+  */
+ 
++#undef pr_fmt
+ #define pr_fmt(fmt) "[TTM] " fmt
+ 
++#include <linux/printk.h>
+ #include <linux/sched.h>
+ #include <linux/highmem.h>
+ #include <linux/pagemap.h>
+Index: compat-drm/drivers/gpu/drm/i915/i915_dma.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/i915/i915_dma.c
++++ compat-drm/drivers/gpu/drm/i915/i915_dma.c
+@@ -26,6 +26,7 @@
+  *
+  */
+ 
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+ 
+ #include "drmP.h"
+@@ -36,6 +37,7 @@
+ #include "i915_drm.h"
+ #include "i915_drv.h"
+ #include "i915_trace.h"
++#include <linux/printk.h>
+ #include <linux/pci.h>
+ #include <linux/vgaarb.h>
+ #include <linux/acpi.h>
+Index: compat-drm/drivers/gpu/drm/i915/i915_irq.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/i915/i915_irq.c
++++ compat-drm/drivers/gpu/drm/i915/i915_irq.c
+@@ -26,8 +26,10 @@
+  *
+  */
+ 
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+ 
++#include <linux/printk.h>
+ #include <linux/sysrq.h>
+ #include <linux/slab.h>
+ #include "drmP.h"
+Index: compat-drm/drivers/gpu/drm/i915/intel_opregion.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/i915/intel_opregion.c
++++ compat-drm/drivers/gpu/drm/i915/intel_opregion.c
+@@ -25,8 +25,10 @@
+  *
+  */
+ 
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+ 
++#include <linux/printk.h>
+ #include <linux/acpi.h>
+ #include <linux/acpi_io.h>
+ #include <acpi/video.h>
+Index: compat-drm/drivers/gpu/drm/i915/intel_panel.c
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/i915/intel_panel.c
++++ compat-drm/drivers/gpu/drm/i915/intel_panel.c
+@@ -28,8 +28,10 @@
+  *      Chris Wilson <chris@chris-wilson.co.uk>
+  */
+ 
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+ 
++#include <linux/printk.h>
+ #include <linux/moduleparam.h>
+ #include "intel_drv.h"
+ 
diff --git a/patches/drm/99-change-makefile.patch b/patches/drm/99-change-makefile.patch
new file mode 100644
index 0000000..882a02d
--- /dev/null
+++ b/patches/drm/99-change-makefile.patch
@@ -0,0 +1,28 @@
+Remove drivers that we do not want to build from gpu/drm/Makefile
+
+Index: compat-drm/drivers/gpu/drm/Makefile
+===================================================================
+--- compat-drm.orig/drivers/gpu/drm/Makefile
++++ compat-drm/drivers/gpu/drm/Makefile
+@@ -28,21 +28,14 @@ CFLAGS_drm_trace_points.o := -I$(src)
+ obj-$(CONFIG_DRM)	+= drm.o
+ obj-$(CONFIG_DRM_USB)   += drm_usb.o
+ obj-$(CONFIG_DRM_TTM)	+= ttm/
+-obj-$(CONFIG_DRM_TDFX)	+= tdfx/
+-obj-$(CONFIG_DRM_R128)	+= r128/
+ obj-$(CONFIG_DRM_RADEON)+= radeon/
+-obj-$(CONFIG_DRM_MGA)	+= mga/
+ obj-$(CONFIG_DRM_I810)	+= i810/
+ obj-$(CONFIG_DRM_I915)  += i915/
+ obj-$(CONFIG_DRM_MGAG200) += mgag200/
+ obj-$(CONFIG_DRM_CIRRUS_QEMU) += cirrus/
+-obj-$(CONFIG_DRM_SIS)   += sis/
+-obj-$(CONFIG_DRM_SAVAGE)+= savage/
+ obj-$(CONFIG_DRM_VMWGFX)+= vmwgfx/
+ obj-$(CONFIG_DRM_VIA)	+=via/
+ obj-$(CONFIG_DRM_NOUVEAU) +=nouveau/
+-obj-$(CONFIG_DRM_EXYNOS) +=exynos/
+ obj-$(CONFIG_DRM_GMA500) += gma500/
+-obj-$(CONFIG_DRM_UDL) += udl/
+ obj-$(CONFIG_DRM_AST) += ast/
+ obj-y			+= i2c/
-- 
1.7.11.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/2] compat-drivers: Move around patches and selectively apply them
  2012-08-17  8:26 [PATCH 1/2] compat-drivers: Move around patches and selectively apply them Ozan Çağlayan
  2012-08-17  8:26 ` [PATCH 2/2] compat-drivers: Add DRM patches Ozan Çağlayan
@ 2012-08-20  5:57 ` Luis R. Rodriguez
  2012-08-21 16:34   ` Ozan Çağlayan
  1 sibling, 1 reply; 4+ messages in thread
From: Luis R. Rodriguez @ 2012-08-20  5:57 UTC (permalink / raw)
  To: Ozan Çağlayan; +Cc: backports, mcgrof

On Fri, Aug 17, 2012 at 12:26 PM, Ozan =C3=87a=C4=9Flayan <ozancag@gmail.co=
m> wrote:
> Put wlan/bt/eth related patches under network/ subdirectories. Apply them
> only if the network subsystem is enabled (For now, it is enabled by defau=
lt).
>
> Create empty network/ placeholders under patch directories.
>
> Signed-off-by: Ozan =C3=87a=C4=9Flayan <ozancag@gmail.com>
> ---
>
> The patch is too big for this mailing list. The link to the patch is:
>   http://ozancaglayan.com/files/compat/0001-compat-drivers-Move-around-pa=
tches-and-selectively-a.patch

Thanks! However the pending patches do not apply starting with:

[PATCH 1/2 v2] compat-drivers: Add ability to select drivers to fetch

Can you respin your pending set but also use git format-patch -M
option but first attach this to your $HOME/.gitconfig :

[diff]
	renamelimit=3D0

  Luis

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/2] compat-drivers: Move around patches and selectively apply them
  2012-08-20  5:57 ` [PATCH 1/2] compat-drivers: Move around patches and selectively apply them Luis R. Rodriguez
@ 2012-08-21 16:34   ` Ozan Çağlayan
  0 siblings, 0 replies; 4+ messages in thread
From: Ozan Çağlayan @ 2012-08-21 16:34 UTC (permalink / raw)
  To: Luis R. Rodriguez; +Cc: backports, mcgrof

>
> Thanks! However the pending patches do not apply starting with:
>
> [PATCH 1/2 v2] compat-drivers: Add ability to select drivers to fetch

There was 1 more patch before that I think you missed that. I'm
resending with -M + renamelimit thinks set. Thanks.

--=20
Ozan =C3=87a=C4=9Flayan

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2012-08-21 16:34 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-17  8:26 [PATCH 1/2] compat-drivers: Move around patches and selectively apply them Ozan Çağlayan
2012-08-17  8:26 ` [PATCH 2/2] compat-drivers: Add DRM patches Ozan Çağlayan
2012-08-20  5:57 ` [PATCH 1/2] compat-drivers: Move around patches and selectively apply them Luis R. Rodriguez
2012-08-21 16:34   ` Ozan Çağlayan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.