};
 
 struct ips_driver {
-       struct pci_dev *dev;
+       struct device *dev;
        void __iomem *regmap;
        int irq;
 
                return;
 
        if (!ips->gpu_turbo_disable())
-               dev_err(&ips->dev->dev, "failed to disable graphics turbo\n");
+               dev_err(ips->dev, "failed to disable graphics turbo\n");
        else
                ips->__gpu_turbo_on = false;
 }
        spin_unlock_irqrestore(&ips->turbo_status_lock, flags);
 
        if (ret)
-               dev_info(&ips->dev->dev,
-                        "CPU power or thermal limit exceeded\n");
+               dev_info(ips->dev, "CPU power or thermal limit exceeded\n");
 
        return ret;
 }
        struct ips_driver *ips = data;
        unsigned long flags;
 
-       dev_dbg(&ips->dev->dev, "starting ips-adjust thread\n");
+       dev_dbg(ips->dev, "starting ips-adjust thread\n");
 
        /*
         * Adjust CPU and GPU clamps every 5s if needed.  Doing it more
                schedule_timeout_interruptible(msecs_to_jiffies(IPS_ADJUST_PERIOD));
        } while (!kthread_should_stop());
 
-       dev_dbg(&ips->dev->dev, "ips-adjust thread stopped\n");
+       dev_dbg(ips->dev, "ips-adjust thread stopped\n");
 
        return 0;
 }
        mchp_samples = kzalloc(sizeof(u32) * IPS_SAMPLE_COUNT, GFP_KERNEL);
        if (!mcp_samples || !ctv1_samples || !ctv2_samples || !mch_samples ||
                        !cpu_samples || !mchp_samples) {
-               dev_err(&ips->dev->dev,
+               dev_err(ips->dev,
                        "failed to allocate sample array, ips disabled\n");
                kfree(mcp_samples);
                kfree(ctv1_samples);
                        ITV_ME_SEQNO_SHIFT;
                if (cur_seqno == last_seqno &&
                    time_after(jiffies, seqno_timestamp + HZ)) {
-                       dev_warn(&ips->dev->dev, "ME failed to update for more than 1s, likely hung\n");
+                       dev_warn(ips->dev,
+                                "ME failed to update for more than 1s, likely hung\n");
                } else {
                        seqno_timestamp = get_jiffies_64();
                        last_seqno = cur_seqno;
        del_timer_sync(&timer);
        destroy_timer_on_stack(&timer);
 
-       dev_dbg(&ips->dev->dev, "ips-monitor thread stopped\n");
+       dev_dbg(ips->dev, "ips-monitor thread stopped\n");
 
        return 0;
 }
 #define THM_DUMPW(reg) \
        { \
        u16 val = thm_readw(reg); \
-       dev_dbg(&ips->dev->dev, #reg ": 0x%04x\n", val); \
+       dev_dbg(ips->dev, #reg ": 0x%04x\n", val); \
        }
 #define THM_DUMPL(reg) \
        { \
        u32 val = thm_readl(reg); \
-       dev_dbg(&ips->dev->dev, #reg ": 0x%08x\n", val); \
+       dev_dbg(ips->dev, #reg ": 0x%08x\n", val); \
        }
 #define THM_DUMPQ(reg) \
        { \
        u64 val = thm_readq(reg); \
-       dev_dbg(&ips->dev->dev, #reg ": 0x%016x\n", val); \
+       dev_dbg(ips->dev, #reg ": 0x%016x\n", val); \
        }
 
 static void dump_thermal_info(struct ips_driver *ips)
        u16 ptl;
 
        ptl = thm_readw(THM_PTL);
-       dev_dbg(&ips->dev->dev, "Processor temp limit: %d\n", ptl);
+       dev_dbg(ips->dev, "Processor temp limit: %d\n", ptl);
 
        THM_DUMPW(THM_CTA);
        THM_DUMPW(THM_TRC);
        if (!tses && !tes)
                return IRQ_NONE;
 
-       dev_info(&ips->dev->dev, "TSES: 0x%02x\n", tses);
-       dev_info(&ips->dev->dev, "TES: 0x%02x\n", tes);
+       dev_info(ips->dev, "TSES: 0x%02x\n", tses);
+       dev_info(ips->dev, "TES: 0x%02x\n", tes);
 
        /* STS update from EC? */
        if (tes & 1) {
 
        /* Thermal trip */
        if (tses) {
-               dev_warn(&ips->dev->dev,
-                        "thermal trip occurred, tses: 0x%04x\n", tses);
+               dev_warn(ips->dev, "thermal trip occurred, tses: 0x%04x\n",
+                        tses);
                thm_writeb(THM_TSES, tses);
        }
 
 
        ips->debug_root = debugfs_create_dir("ips", NULL);
        if (!ips->debug_root) {
-               dev_err(&ips->dev->dev,
-                       "failed to create debugfs entries: %ld\n",
+               dev_err(ips->dev, "failed to create debugfs entries: %ld\n",
                        PTR_ERR(ips->debug_root));
                return;
        }
                                          ips->debug_root, node,
                                          &ips_debugfs_ops);
                if (!ent) {
-                       dev_err(&ips->dev->dev,
-                               "failed to create debug file: %ld\n",
+                       dev_err(ips->dev, "failed to create debug file: %ld\n",
                                PTR_ERR(ent));
                        goto err_cleanup;
                }
        u16 tdp;
 
        if (!(boot_cpu_data.x86 == 6 && boot_cpu_data.x86_model == 37)) {
-               dev_info(&ips->dev->dev, "Non-IPS CPU detected.\n");
+               dev_info(ips->dev, "Non-IPS CPU detected.\n");
                goto out;
        }
 
        else if (strstr(boot_cpu_data.x86_model_id, "CPU       U"))
                limits = &ips_ulv_limits;
        else {
-               dev_info(&ips->dev->dev, "No CPUID match found.\n");
+               dev_info(ips->dev, "No CPUID match found.\n");
                goto out;
        }
 
 
        /* Sanity check TDP against CPU */
        if (limits->core_power_limit != (tdp / 8) * 1000) {
-               dev_info(&ips->dev->dev, "CPU TDP doesn't match expected value (found %d, expected %d)\n",
+               dev_info(ips->dev,
+                        "CPU TDP doesn't match expected value (found %d, expected %d)\n",
                         tdp / 8, limits->core_power_limit / 1000);
                limits->core_power_limit = (tdp / 8) * 1000;
        }
 {
        if (!ips->gpu_busy && late_i915_load) {
                if (ips_get_i915_syms(ips)) {
-                       dev_info(&ips->dev->dev,
+                       dev_info(ips->dev,
                                 "i915 driver attached, reenabling gpu turbo\n");
                        ips->gpu_turbo_enabled = !(thm_readl(THM_HTS) & HTS_GTD_DIS);
                }
                return -ENOMEM;
 
        spin_lock_init(&ips->turbo_status_lock);
-       ips->dev = dev;
+       ips->dev = &dev->dev;
 
        ips->limits = ips_detect_cpu(ips);
        if (!ips->limits) {