diff --git a/.gitignore b/.gitignore
index 7150d62..0d8a1c3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/mesa-21.3.4.tar.xz
+SOURCES/mesa-22.1.1.tar.xz
diff --git a/.mesa.metadata b/.mesa.metadata
index 3b1dfce..d34ad95 100644
--- a/.mesa.metadata
+++ b/.mesa.metadata
@@ -1 +1 @@
-c18255897b353f259c64e7a864d8505d8b5bf024 SOURCES/mesa-21.3.4.tar.xz
+d926d6fbcc545b7b9673ffd756f8cdf5bb47915c SOURCES/mesa-22.1.1.tar.xz
diff --git a/SOURCES/0001-iris-implement-inter-context-busy-tracking.patch b/SOURCES/0001-iris-implement-inter-context-busy-tracking.patch
deleted file mode 100644
index cc50a4b..0000000
--- a/SOURCES/0001-iris-implement-inter-context-busy-tracking.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 07dc3d4238e57901ccf98e0b506d9aad2c86b9d9 Mon Sep 17 00:00:00 2001
-From: Paulo Zanoni <paulo.r.zanoni@intel.com>
-Date: Mon, 10 Jan 2022 17:18:05 -0800
-Subject: [PATCH] iris: implement inter-context busy-tracking
-
-Previously, no buffers were ever marked as EXEC_OBJECT_ASYNC so the
-Kernel would ensure dependency tracking for us. After we implemented
-explicit busy tracking in commit 89a34cb8450a, only the external
-objects kept relying on the Kernel's implicit tracking and Iris did
-inter-batch busy tracking, meaning we lost inter-screen and
-inter-context synchronization. This seemed fine to me since, as far as
-I understood, it is the duty of the application to synchronize itself
-against multiple screens and contexts.
-
-The problem here is that applications were actually relying on the old
-behavior where the Kernel guarantees synchronization, so 89a34cb8450a
-can be seen as a regression. This commit addresses the inter-context
-synchronization case.
-
-Cc: mesa-stable
-Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5731
-Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5812
-Fixes: 89a34cb8450a ("iris: switch to explicit busy tracking")
-Tested-by: Konstantin Kharlamov <hi-angel@yandex.ru>
-Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
----
- src/gallium/drivers/iris/iris_batch.c | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/src/gallium/drivers/iris/iris_batch.c b/src/gallium/drivers/iris/iris_batch.c
-index b7bde60aae7..1b0c5896d4f 100644
---- a/src/gallium/drivers/iris/iris_batch.c
-+++ b/src/gallium/drivers/iris/iris_batch.c
-@@ -835,6 +835,12 @@ update_bo_syncobjs(struct iris_batch *batch, struct iris_bo *bo, bool write)
-       move_syncobj_to_batch(batch, &deps->write_syncobjs[other_batch_idx],
-                             I915_EXEC_FENCE_WAIT);
- 
-+   /* If it's being written by our screen, wait on it too. This is relevant
-+    * when there are multiple contexts on the same screen. */
-+   if (deps->write_syncobjs[batch_idx])
-+      move_syncobj_to_batch(batch, &deps->write_syncobjs[batch_idx],
-+                            I915_EXEC_FENCE_WAIT);
-+
-    struct iris_syncobj *batch_syncobj = iris_batch_get_signal_syncobj(batch);
- 
-    if (write) {
-@@ -847,6 +853,8 @@ update_bo_syncobjs(struct iris_batch *batch, struct iris_bo *bo, bool write)
- 
-       move_syncobj_to_batch(batch, &deps->read_syncobjs[other_batch_idx],
-                            I915_EXEC_FENCE_WAIT);
-+      move_syncobj_to_batch(batch, &deps->read_syncobjs[batch_idx],
-+                           I915_EXEC_FENCE_WAIT);
- 
-    } else {
-       /* If we're reading, replace the other read from our batch index. */
--- 
-GitLab
-
diff --git a/SOURCES/Makefile b/SOURCES/Makefile
index 2ff7214..8086fde 100644
--- a/SOURCES/Makefile
+++ b/SOURCES/Makefile
@@ -1,4 +1,4 @@
-VERSION ?= 21.3.4
+VERSION ?= 22.1.1
 SANITIZE ?= 1
 
 DIRNAME = mesa-${VERSION}
diff --git a/SPECS/mesa.spec b/SPECS/mesa.spec
index 8db05f8..eed3737 100644
--- a/SPECS/mesa.spec
+++ b/SPECS/mesa.spec
@@ -9,10 +9,10 @@
 %endif
 
 %ifarch %{ix86} x86_64
-%define platform_drivers i965
 %define with_vmware 1
 %define with_xa     1
 %define with_iris   1
+%define with_crocus   1
 %endif
 
 %ifarch %{ix86} x86_64
@@ -25,8 +25,6 @@
 %define with_xa        1
 %endif
 
-%global dri_drivers %{?platform_drivers}
-
 %if 0%{?with_vulkan_hw}
 %define vulkan_drivers swrast,intel,amd
 %else
@@ -39,8 +37,8 @@
 
 Name:           mesa
 Summary:        Mesa graphics libraries
-Version:        21.3.4
-Release:        1.0.1%{?rctag:.%{rctag}}%{?dist}
+Version:        22.1.1
+Release:        1%{?rctag:.%{rctag}}%{?dist}
 
 License:        MIT
 URL:            http://www.mesa3d.org
@@ -56,12 +54,6 @@ Source4:        Mesa-MLAA-License-Clarification-Email.txt
 
 Patch0:	lavapipe-disable-env-var.patch
 
-# Patches to fix Intel blinking, see:
-# https://gitlab.freedesktop.org/pzanoni/mesa/-/commit/07dc3d4238e57901ccf98e0b506d9aad2c86b9d9
-# https://bugzilla.redhat.com/show_bug.cgi?id=2036600
-# https://bugzilla.redhat.com/show_bug.cgi?id=2040771
-Patch0001: 0001-iris-implement-inter-context-busy-tracking.patch
-
 BuildRequires:  gcc
 BuildRequires:  gcc-c++
 
@@ -328,10 +320,9 @@ export ASFLAGS="--generate-missing-build-notes=yes"
   -Db_ndebug=true \
   -Dplatforms=x11,wayland \
   -Ddri3=enabled \
-  -Ddri-drivers=%{?dri_drivers} \
   -Dosmesa=true \
 %if 0%{?with_hardware}
-  -Dgallium-drivers=swrast%{?with_iris:,iris},virgl,nouveau%{?with_vmware:,svga},radeonsi,r600%{?with_freedreno:,freedreno}%{?with_etnaviv:,etnaviv}%{?with_tegra:,tegra}%{?with_vc4:,vc4}%{?with_kmsro:,kmsro} \
+  -Dgallium-drivers=swrast%{?with_crocus:,crocus}%{?with_iris:,iris},virgl,nouveau%{?with_vmware:,svga},radeonsi,r600%{?with_freedreno:,freedreno}%{?with_etnaviv:,etnaviv}%{?with_tegra:,tegra}%{?with_vc4:,vc4}%{?with_kmsro:,kmsro} \
 %else
   -Dgallium-drivers=swrast,virgl \
 %endif
@@ -491,7 +482,7 @@ done
 %{_libdir}/dri/r600_dri.so
 %{_libdir}/dri/radeonsi_dri.so
 %ifarch %{ix86} x86_64
-%{_libdir}/dri/i965_dri.so
+%{_libdir}/dri/crocus_dri.so
 %{_libdir}/dri/iris_dri.so
 %endif
 %if 0%{?with_vc4}
@@ -534,6 +525,7 @@ done
 %if 0%{?with_vulkan_hw}
 %{_libdir}/libvulkan_intel.so
 %{_libdir}/libvulkan_radeon.so
+%{_datadir}/drirc.d/00-radv-defaults.conf
 %ifarch x86_64
 %{_datadir}/vulkan/icd.d/intel_icd.x86_64.json
 %{_datadir}/vulkan/icd.d/radeon_icd.x86_64.json
@@ -552,6 +544,9 @@ done
 %endif
 
 %changelog
+* Mon Jun 06 2022 Dave Airlie <airlied@redhat.com> - 22.1.1-1
+- Update to 22.1.1 - switch to crocus, drop legacy unused i965 driver.
+
 * Tue Jan 25 2022 Dave Airlie <airlied@redhat.com> - 21.3.4-1
 - Update to 23.1.4 for gbm and leak fixes, add iris regression fix