diff --git a/src/soc/intel/baytrail/gfx.c b/src/soc/intel/baytrail/gfx.c
index 45bcd7b..f8e78d2 100644
--- a/src/soc/intel/baytrail/gfx.c
+++ b/src/soc/intel/baytrail/gfx.c
@@ -38,7 +38,7 @@
  * Lock Power Context Base Register to point to a 24KB block
  * of memory in GSM.  Power context save data is stored here.
  */
-static void gfx_lock_pcbase(device_t dev)
+static void gfx_lock_pcbase(struct device *dev)
 {
 	struct resource *res = find_resource(dev, PCI_BASE_ADDRESS_0);
 	const u16 gms_size_map[17] = { 0,32,64,96,128,160,192,224,256,
@@ -263,18 +263,19 @@
 	REG_SCRIPT_END
 };
 
-static inline void gfx_run_script(device_t dev, const struct reg_script *ops)
+static inline void gfx_run_script(struct device *dev,
+				  const struct reg_script *ops)
 {
 	reg_script_run_on_dev(dev, ops);
 }
 
-static void gfx_pre_vbios_init(device_t dev)
+static void gfx_pre_vbios_init(struct device *dev)
 {
 	printk(BIOS_INFO, "GFX: Pre VBIOS Init\n");
 	gfx_run_script(dev, gpu_pre_vbios_script);
 }
 
-static void gfx_pm_init(device_t dev)
+static void gfx_pm_init(struct device *dev)
 {
 	printk(BIOS_INFO, "GFX: Power Management Init\n");
 	gfx_run_script(dev, gfx_init_script);
@@ -283,13 +284,13 @@
 	gfx_lock_pcbase(dev);
 }
 
-static void gfx_post_vbios_init(device_t dev)
+static void gfx_post_vbios_init(struct device *dev)
 {
 	printk(BIOS_INFO, "GFX: Post VBIOS Init\n");
 	gfx_run_script(dev, gfx_post_vbios_script);
 }
 
-static void set_backlight_pwm(device_t dev, uint32_t bklt_reg, int req_hz)
+static void set_backlight_pwm(struct device *dev, uint32_t bklt_reg, int req_hz)
 {
 	int divider;
 	struct resource *res;
@@ -310,7 +311,7 @@
 	write32((u32 *)(uintptr_t)(res->base + bklt_reg), divider << 16);
 }
 
-static void gfx_panel_setup(device_t dev)
+static void gfx_panel_setup(struct device *dev)
 {
 	struct soc_intel_baytrail_config *config = dev->chip_info;
 	struct reg_script gfx_pipea_init[] = {
@@ -378,7 +379,7 @@
 		gnvs_ptr->aslb = aslb;
 }
 
-static void gfx_init(device_t dev)
+static void gfx_init(struct device *dev)
 {
 	/* Pre VBIOS Init */
 	gfx_pre_vbios_init(dev);
