diff --git a/vc4.c b/vc4.c
index 7036de7..9103b8a 100644
--- a/vc4.c
+++ b/vc4.c
@@ -16,18 +16,16 @@
 #include "helpers.h"
 #include "util.h"
 
-static const uint32_t supported_formats[] = {
-	DRM_FORMAT_ARGB8888, DRM_FORMAT_RGB565, DRM_FORMAT_XRGB8888
-};
+static const uint32_t supported_formats[] = { DRM_FORMAT_ARGB8888, DRM_FORMAT_RGB565,
+					      DRM_FORMAT_XRGB8888 };
 
 static int vc4_init(struct driver *drv)
 {
-	return drv_add_linear_combinations(drv, supported_formats,
-					   ARRAY_SIZE(supported_formats));
+	return drv_add_linear_combinations(drv, supported_formats, ARRAY_SIZE(supported_formats));
 }
 
-static int vc4_bo_create(struct bo *bo, uint32_t width, uint32_t height,
-			 uint32_t format, uint32_t flags)
+static int vc4_bo_create(struct bo *bo, uint32_t width, uint32_t height, uint32_t format,
+			 uint32_t flags)
 {
 	int ret;
 	size_t plane;
@@ -48,7 +46,8 @@
 	ret = drmIoctl(bo->drv->fd, DRM_IOCTL_VC4_CREATE_BO, &bo_create);
 	if (ret) {
 		fprintf(stderr, "drv: DRM_IOCTL_VC4_GEM_CREATE failed "
-				"(size=%zu)\n", bo->total_size);
+				"(size=%zu)\n",
+			bo->total_size);
 		return ret;
 	}
 
@@ -66,8 +65,7 @@
 	memset(&bo_map, 0, sizeof(bo_map));
 	bo_map.handle = bo->handles[0].u32;
 
-	ret = drmCommandWriteRead(bo->drv->fd, DRM_VC4_MMAP_BO, &bo_map,
-				  sizeof(bo_map));
+	ret = drmCommandWriteRead(bo->drv->fd, DRM_VC4_MMAP_BO, &bo_map, sizeof(bo_map));
 	if (ret) {
 		fprintf(stderr, "drv: DRM_VC4_MMAP_BO failed\n");
 		return MAP_FAILED;
@@ -75,12 +73,11 @@
 
 	data->length = bo->total_size;
 
-	return mmap(0, bo->total_size, PROT_READ | PROT_WRITE, MAP_SHARED,
-		    bo->drv->fd, bo_map.offset);
+	return mmap(0, bo->total_size, PROT_READ | PROT_WRITE, MAP_SHARED, bo->drv->fd,
+		    bo_map.offset);
 }
 
-struct backend backend_vc4 =
-{
+struct backend backend_vc4 = {
 	.name = "vc4",
 	.init = vc4_init,
 	.bo_create = vc4_bo_create,
