Lines Matching defs:ldev

80 	struct loongson_drm_device *ldev = dev->dev_private;
82 ldev->num_crtc = 2;
83 loongson_vbios_init(ldev);
86 ldev->mmio_base = pci_resource_start(ldev->dev->pdev, 0);
87 ldev->mmio_size = pci_resource_len(ldev->dev->pdev, 0);
89 ldev->mmio = pcim_iomap(dev->pdev, 0, 0);
90 if (ldev->mmio == NULL)
93 DRM_INFO("ldev->mmio_base = 0x%llx, ldev->mmio_size = 0x%llx\n",
94 ldev->mmio_base, ldev->mmio_size);
96 if (!devm_request_mem_region(ldev->dev->dev, ldev->mmio_base, ldev->mmio_size,
102 ret = loongson_gpio_init(ldev);
112 * @ldev: pointer to loongson_drm_device structure
117 int loongson_modeset_init(struct loongson_drm_device *ldev)
123 ldev->mode_info[0].mode_config_initialized = true;
124 ldev->mode_info[1].mode_config_initialized = true;
126 ldev->dev->mode_config.max_width = LOONGSON_MAX_FB_WIDTH;
127 ldev->dev->mode_config.max_height = LOONGSON_MAX_FB_HEIGHT;
129 ldev->dev->mode_config.cursor_width = 32;
130 ldev->dev->mode_config.cursor_height = 32;
132 ldev->dev->mode_config.allow_fb_modifiers = true;
134 ret = loongson_i2c_init(ldev);
140 loongson_crtc_init(ldev);
142 for (i=0; i<ldev->num_crtc; i++) {
144 ldev->mode_info[i].crtc = &ldev->lcrtc[i];
145 encoder = loongson_encoder_init(ldev->dev, i);
150 ldev->mode_info[i].encoder = to_loongson_encoder(encoder);
153 connector = loongson_connector_init(ldev->dev, i);
158 ldev->mode_info[i].connector = to_loongson_connector(connector);
171 * @ldev: pointer to loongson_drm_device structure
175 void loongson_modeset_fini(struct loongson_drm_device *ldev)
179 static int loongson_detect_chip(struct loongson_drm_device *ldev)
185 ldev->chip = dc_7a1000;
186 ldev->gpu_pdev = pci_get_device(PCI_VENDOR_ID_LOONGSON, 0x7a15, NULL);
193 ldev->chip = dc_7a2000;
194 ldev->gpu_pdev = pci_get_device(PCI_VENDOR_ID_LOONGSON, 0x7a25, NULL);
215 struct loongson_drm_device *ldev;
219 ldev = devm_kzalloc(dev->dev, sizeof(struct loongson_drm_device), GFP_KERNEL);
220 if (ldev == NULL)
222 dev->dev_private = (void *)ldev;
223 ldev->dev = dev;
225 ret = loongson_detect_chip(ldev);
241 r = loongson_modeset_init(ldev);
249 ldev->inited = true;
252 r = drm_vblank_init(dev, ldev->num_crtc);
257 ldev->cursor = drm_gem_cma_create(dev, roundup(32*32*4, PAGE_SIZE));
274 struct loongson_drm_device *ldev = dev->dev_private;
276 if (ldev == NULL)
279 loongson_modeset_fini(ldev);
283 ldev->inited = false;
442 struct loongson_drm_device *ldev;
447 ldev = dev->dev_private;
450 ldev->state = drm_atomic_helper_suspend(dev);
460 drm_fb_helper_set_suspend(ldev->dev->fb_helper, 1);
479 struct loongson_drm_device *ldev = dev->dev_private;
493 drm_atomic_helper_resume(dev, ldev->state);
497 drm_fb_helper_set_suspend(ldev->dev->fb_helper, 0);