Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/gma500: Embed struct drm_device in struct drm_psb_private

Embed struct drm_device in struct drm_psb_private. Replace the use
of dev_private by an upcast operation. Switch to managed release of
struct drm_psb_private.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210920141051.30988-4-tzimmermann@suse.de

+26 -35
+1 -1
drivers/gpu/drm/gma500/cdv_device.c
··· 429 429 { 430 430 struct drm_psb_private *dev_priv = container_of(work, struct drm_psb_private, 431 431 hotplug_work); 432 - struct drm_device *dev = dev_priv->dev; 432 + struct drm_device *dev = &dev_priv->dev; 433 433 434 434 /* Just fire off a uevent and let userspace tell us what to do */ 435 435 drm_helper_hpd_irq_event(dev);
+3 -3
drivers/gpu/drm/gma500/intel_bios.c
··· 207 207 208 208 lvds_bl = kmemdup(vbt_lvds_bl, sizeof(*vbt_lvds_bl), GFP_KERNEL); 209 209 if (!lvds_bl) { 210 - dev_err(dev_priv->dev->dev, "out of memory for backlight data\n"); 210 + dev_err(dev_priv->dev.dev, "out of memory for backlight data\n"); 211 211 return; 212 212 } 213 213 dev_priv->lvds_bl = lvds_bl; ··· 248 248 panel_fixed_mode = kzalloc(sizeof(*panel_fixed_mode), 249 249 GFP_KERNEL); 250 250 if (panel_fixed_mode == NULL) { 251 - dev_err(dev_priv->dev->dev, "out of memory for fixed panel mode\n"); 251 + dev_err(dev_priv->dev.dev, "out of memory for fixed panel mode\n"); 252 252 return; 253 253 } 254 254 ··· 259 259 dev_priv->lfp_lvds_vbt_mode = panel_fixed_mode; 260 260 drm_mode_debug_printmodeline(panel_fixed_mode); 261 261 } else { 262 - dev_dbg(dev_priv->dev->dev, "ignoring invalid LVDS VBT\n"); 262 + dev_dbg(dev_priv->dev.dev, "ignoring invalid LVDS VBT\n"); 263 263 dev_priv->lvds_vbt = 0; 264 264 kfree(panel_fixed_mode); 265 265 }
+3 -3
drivers/gpu/drm/gma500/intel_gmbus.c
··· 196 196 "gma500 GPIO%c", "?BACDE?F"[pin]); 197 197 gpio->adapter.owner = THIS_MODULE; 198 198 gpio->adapter.algo_data = &gpio->algo; 199 - gpio->adapter.dev.parent = dev_priv->dev->dev; 199 + gpio->adapter.dev.parent = dev_priv->dev.dev; 200 200 gpio->algo.setsda = set_data; 201 201 gpio->algo.setscl = set_clock; 202 202 gpio->algo.getsda = get_data; ··· 226 226 adapter); 227 227 int ret; 228 228 229 - gma_intel_i2c_reset(dev_priv->dev); 229 + gma_intel_i2c_reset(&dev_priv->dev); 230 230 231 231 intel_i2c_quirk_set(dev_priv, true); 232 232 set_data(gpio, 1); ··· 432 432 bus->force_bit = intel_gpio_create(dev_priv, i); 433 433 } 434 434 435 - gma_intel_i2c_reset(dev_priv->dev); 435 + gma_intel_i2c_reset(&dev_priv->dev); 436 436 437 437 return 0; 438 438
+3 -4
drivers/gpu/drm/gma500/mid_bios.c
··· 94 94 static void mid_get_pci_revID(struct drm_psb_private *dev_priv) 95 95 { 96 96 uint32_t platform_rev_id = 0; 97 - struct pci_dev *pdev = to_pci_dev(dev_priv->dev->dev); 97 + struct pci_dev *pdev = to_pci_dev(dev_priv->dev.dev); 98 98 int domain = pci_domain_nr(pdev->bus); 99 99 struct pci_dev *pci_gfx_root = 100 100 pci_get_domain_bus_and_slot(domain, 0, PCI_DEVFN(2, 0)); ··· 106 106 pci_read_config_dword(pci_gfx_root, 0x08, &platform_rev_id); 107 107 dev_priv->platform_rev_id = (uint8_t) platform_rev_id; 108 108 pci_dev_put(pci_gfx_root); 109 - dev_dbg(dev_priv->dev->dev, "platform_rev_id is %x\n", 110 - dev_priv->platform_rev_id); 109 + dev_dbg(dev_priv->dev.dev, "platform_rev_id is %x\n", dev_priv->platform_rev_id); 111 110 } 112 111 113 112 struct mid_vbt_header { ··· 269 270 270 271 static void mid_get_vbt_data(struct drm_psb_private *dev_priv) 271 272 { 272 - struct drm_device *dev = dev_priv->dev; 273 + struct drm_device *dev = &dev_priv->dev; 273 274 struct pci_dev *pdev = to_pci_dev(dev->dev); 274 275 u32 addr; 275 276 u8 __iomem *vbt_virtual;
+1 -1
drivers/gpu/drm/gma500/opregion.c
··· 190 190 } 191 191 192 192 if (asle_req & ASLE_SET_BACKLIGHT) 193 - asle_stat |= asle_set_backlight(dev_priv->dev, asle->bclp); 193 + asle_stat |= asle_set_backlight(&dev_priv->dev, asle->bclp); 194 194 195 195 asle->aslc = asle_stat; 196 196
+7 -16
drivers/gpu/drm/gma500/psb_drv.c
··· 217 217 218 218 /* Destroy VBT data */ 219 219 psb_intel_destroy_bios(dev); 220 - 221 - kfree(dev_priv); 222 - dev->dev_private = NULL; 223 220 } 224 221 gma_power_uninit(dev); 225 222 } ··· 224 227 static int psb_driver_load(struct drm_device *dev, unsigned long flags) 225 228 { 226 229 struct pci_dev *pdev = to_pci_dev(dev->dev); 227 - struct drm_psb_private *dev_priv; 230 + struct drm_psb_private *dev_priv = to_drm_psb_private(dev); 228 231 unsigned long resource_start, resource_len; 229 232 unsigned long irqflags; 230 233 int ret = -ENOMEM; ··· 232 235 struct gma_encoder *gma_encoder; 233 236 struct psb_gtt *pg; 234 237 235 - /* allocating and initializing driver private data */ 236 - dev_priv = kzalloc(sizeof(*dev_priv), GFP_KERNEL); 237 - if (dev_priv == NULL) 238 - return -ENOMEM; 238 + /* initializing driver private data */ 239 239 240 240 dev_priv->ops = (struct psb_ops *)flags; 241 - dev_priv->dev = dev; 242 - dev->dev_private = (void *) dev_priv; 243 241 244 242 pg = &dev_priv->gtt; 245 243 ··· 437 445 438 446 static int psb_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) 439 447 { 448 + struct drm_psb_private *dev_priv; 440 449 struct drm_device *dev; 441 450 int ret; 442 451 ··· 445 452 if (ret) 446 453 return ret; 447 454 448 - dev = drm_dev_alloc(&driver, &pdev->dev); 449 - if (IS_ERR(dev)) 455 + dev_priv = devm_drm_dev_alloc(&pdev->dev, &driver, struct drm_psb_private, dev); 456 + if (IS_ERR(dev_priv)) 450 457 return PTR_ERR(dev); 458 + dev = &dev_priv->dev; 451 459 452 460 pci_set_drvdata(pdev, dev); 453 461 454 462 ret = psb_driver_load(dev, ent->driver_data); 455 463 if (ret) 456 - goto err_drm_dev_put; 464 + return ret; 457 465 458 466 ret = drm_dev_register(dev, ent->driver_data); 459 467 if (ret) ··· 464 470 465 471 err_psb_driver_unload: 466 472 psb_driver_unload(dev); 467 - err_drm_dev_put: 468 - drm_dev_put(dev); 469 473 return ret; 470 474 } 471 475 ··· 473 481 474 482 drm_dev_unregister(dev); 475 483 psb_driver_unload(dev); 476 - drm_dev_put(dev); 477 484 } 478 485 479 486 static const struct dev_pm_ops psb_pm_ops = {
+3 -2
drivers/gpu/drm/gma500/psb_drv.h
··· 389 389 struct intel_scu_ipc_dev; 390 390 391 391 struct drm_psb_private { 392 - struct drm_device *dev; 392 + struct drm_device dev; 393 + 393 394 struct pci_dev *aux_pdev; /* Currently only used by mrst */ 394 395 struct pci_dev *lpc_pdev; /* Currently only used by mrst */ 395 396 const struct psb_ops *ops; ··· 570 569 571 570 static inline struct drm_psb_private *to_drm_psb_private(struct drm_device *dev) 572 571 { 573 - return dev->dev_private; 572 + return container_of(dev, struct drm_psb_private, dev); 574 573 } 575 574 576 575 /* Operations for each board type */
+4 -4
drivers/gpu/drm/gma500/psb_irq.c
··· 76 76 u32 reg = psb_pipestat(pipe); 77 77 dev_priv->pipestat[pipe] |= mask; 78 78 /* Enable the interrupt, clear any pending status */ 79 - if (gma_power_begin(dev_priv->dev, false)) { 79 + if (gma_power_begin(&dev_priv->dev, false)) { 80 80 u32 writeVal = PSB_RVDC32(reg); 81 81 writeVal |= (mask | (mask >> 16)); 82 82 PSB_WVDC32(writeVal, reg); 83 83 (void) PSB_RVDC32(reg); 84 - gma_power_end(dev_priv->dev); 84 + gma_power_end(&dev_priv->dev); 85 85 } 86 86 } 87 87 } ··· 92 92 if ((dev_priv->pipestat[pipe] & mask) != 0) { 93 93 u32 reg = psb_pipestat(pipe); 94 94 dev_priv->pipestat[pipe] &= ~mask; 95 - if (gma_power_begin(dev_priv->dev, false)) { 95 + if (gma_power_begin(&dev_priv->dev, false)) { 96 96 u32 writeVal = PSB_RVDC32(reg); 97 97 writeVal &= ~mask; 98 98 PSB_WVDC32(writeVal, reg); 99 99 (void) PSB_RVDC32(reg); 100 - gma_power_end(dev_priv->dev); 100 + gma_power_end(&dev_priv->dev); 101 101 } 102 102 } 103 103 }
+1 -1
drivers/gpu/drm/gma500/psb_lid.c
··· 14 14 static void psb_lid_timer_func(struct timer_list *t) 15 15 { 16 16 struct drm_psb_private *dev_priv = from_timer(dev_priv, t, lid_timer); 17 - struct drm_device *dev = (struct drm_device *)dev_priv->dev; 17 + struct drm_device *dev = (struct drm_device *)&dev_priv->dev; 18 18 struct timer_list *lid_timer = &dev_priv->lid_timer; 19 19 unsigned long irq_flags; 20 20 u32 __iomem *lid_state = dev_priv->opregion.lid_state;