Lines Matching refs:mdev
48 static bool mgag200_has_sgram(struct mga_device *mdev) in mgag200_has_sgram() argument
50 struct drm_device *dev = &mdev->base; in mgag200_has_sgram()
62 static int mgag200_regs_init(struct mga_device *mdev) in mgag200_regs_init() argument
64 struct drm_device *dev = &mdev->base; in mgag200_regs_init()
69 switch (mdev->type) { in mgag200_regs_init()
72 if (mgag200_has_sgram(mdev)) in mgag200_regs_init()
81 if (mgag200_has_sgram(mdev)) in mgag200_regs_init()
110 mdev->rmmio_base = pci_resource_start(pdev, 1); in mgag200_regs_init()
111 mdev->rmmio_size = pci_resource_len(pdev, 1); in mgag200_regs_init()
113 if (!devm_request_mem_region(dev->dev, mdev->rmmio_base, in mgag200_regs_init()
114 mdev->rmmio_size, "mgadrmfb_mmio")) { in mgag200_regs_init()
119 mdev->rmmio = pcim_iomap(pdev, 1, 0); in mgag200_regs_init()
120 if (mdev->rmmio == NULL) in mgag200_regs_init()
130 static void mgag200_g200_interpret_bios(struct mga_device *mdev, in mgag200_g200_interpret_bios() argument
138 struct drm_device *dev = &mdev->base; in mgag200_g200_interpret_bios()
189 mdev->model.g200.pclk_max = tmp * 10; in mgag200_g200_interpret_bios()
193 mdev->model.g200.pclk_max = (pins[41] + 100) * 1000; in mgag200_g200_interpret_bios()
197 mdev->model.g200.pclk_max = (pins[36] + 100) * 1000; in mgag200_g200_interpret_bios()
199 mdev->model.g200.ref_clk = 14318; in mgag200_g200_interpret_bios()
203 mdev->model.g200.pclk_max = pins[39] * 4 * 1000; in mgag200_g200_interpret_bios()
205 mdev->model.g200.ref_clk = 14318; in mgag200_g200_interpret_bios()
210 mdev->model.g200.pclk_min = pins[123] * tmp; in mgag200_g200_interpret_bios()
212 mdev->model.g200.pclk_max = pins[38] * tmp; in mgag200_g200_interpret_bios()
214 mdev->model.g200.ref_clk = 14318; in mgag200_g200_interpret_bios()
221 static void mgag200_g200_init_refclk(struct mga_device *mdev) in mgag200_g200_init_refclk() argument
223 struct drm_device *dev = &mdev->base; in mgag200_g200_init_refclk()
229 mdev->model.g200.pclk_min = 50000; in mgag200_g200_init_refclk()
230 mdev->model.g200.pclk_max = 230000; in mgag200_g200_init_refclk()
231 mdev->model.g200.ref_clk = 27050; in mgag200_g200_init_refclk()
243 mgag200_g200_interpret_bios(mdev, bios, size); in mgag200_g200_init_refclk()
246 mdev->model.g200.pclk_min, mdev->model.g200.pclk_max, in mgag200_g200_init_refclk()
247 mdev->model.g200.ref_clk); in mgag200_g200_init_refclk()
254 static void mgag200_g200se_init_unique_id(struct mga_device *mdev) in mgag200_g200se_init_unique_id() argument
256 struct drm_device *dev = &mdev->base; in mgag200_g200se_init_unique_id()
259 mdev->model.g200se.unique_rev_id = RREG32(0x1e24); in mgag200_g200se_init_unique_id()
262 mdev->model.g200se.unique_rev_id); in mgag200_g200se_init_unique_id()
268 struct mga_device *mdev; in mgag200_device_create() local
272 mdev = devm_drm_dev_alloc(&pdev->dev, &mgag200_driver, struct mga_device, base); in mgag200_device_create()
273 if (IS_ERR(mdev)) in mgag200_device_create()
274 return mdev; in mgag200_device_create()
275 dev = &mdev->base; in mgag200_device_create()
279 mdev->flags = flags; in mgag200_device_create()
280 mdev->type = type; in mgag200_device_create()
282 ret = mgag200_regs_init(mdev); in mgag200_device_create()
286 if (mdev->type == G200_PCI || mdev->type == G200_AGP) in mgag200_device_create()
287 mgag200_g200_init_refclk(mdev); in mgag200_device_create()
288 else if (IS_G200_SE(mdev)) in mgag200_device_create()
289 mgag200_g200se_init_unique_id(mdev); in mgag200_device_create()
291 ret = mgag200_mm_init(mdev); in mgag200_device_create()
295 ret = mgag200_modeset_init(mdev); in mgag200_device_create()
299 return mdev; in mgag200_device_create()
339 struct mga_device *mdev; in mgag200_pci_probe() local
351 mdev = mgag200_device_create(pdev, type, flags); in mgag200_pci_probe()
352 if (IS_ERR(mdev)) in mgag200_pci_probe()
353 return PTR_ERR(mdev); in mgag200_pci_probe()
354 dev = &mdev->base; in mgag200_pci_probe()