Lines Matching +full:can +full:- +full:primary
1 // SPDX-License-Identifier: MIT
20 * driver can be active at any given time. Many systems load a generic
21 * graphics drivers, such as EFI-GOP or VESA, early during the boot process.
23 * hardware-specific driver. To take over the device, the dedicated driver
25 * ownership of framebuffer memory and hand-over between drivers.
32 * .. code-block:: c
42 * return -ENODEV;
43 * base = mem->start;
61 * The given example reads the platform device's I/O-memory range from the
65 * output on the framebuffer. If successful, the new driver can take over
70 * device drivers can also call aperture_remove_conflicting_pci_devices() and
72 * knowledge of the framebuffer's location can call
82 * .. code-block:: c
91 * return -ENODEV;
92 * base = mem->start;
107 * // Hot-unplug the device
153 bool detached = !ap->dev; in devm_aperture_acquire_release()
159 list_del(&ap->lh); in devm_aperture_acquire_release()
175 if (overlap(base, end, ap->base, ap->base + ap->size)) { in devm_aperture_acquire()
177 return -EBUSY; in devm_aperture_acquire()
184 return -ENOMEM; in devm_aperture_acquire()
187 ap->dev = dev; in devm_aperture_acquire()
188 ap->base = base; in devm_aperture_acquire()
189 ap->size = size; in devm_aperture_acquire()
190 ap->detach = detach; in devm_aperture_acquire()
191 INIT_LIST_HEAD(&ap->lh); in devm_aperture_acquire()
193 list_add(&ap->lh, &apertures); in devm_aperture_acquire()
206 * to do for firmware-based fb drivers, such as EFI, VESA or VGA. After in aperture_detach_platform_device()
210 * For non-platform devices, a new callback would be required. in aperture_detach_platform_device()
220 * devm_aperture_acquire_for_platform_device - Acquires ownership of an aperture
243 return devm_aperture_acquire(&pdev->dev, base, size, aperture_detach_platform_device); in devm_aperture_acquire_for_platform_device()
256 struct device *dev = ap->dev; in aperture_detach_devices()
261 if (!overlap(base, end, ap->base, ap->base + ap->size)) in aperture_detach_devices()
264 ap->dev = NULL; /* detach from device */ in aperture_detach_devices()
265 list_del(&ap->lh); in aperture_detach_devices()
267 ap->detach(dev); in aperture_detach_devices()
274 * aperture_remove_conflicting_devices - remove devices in the given range
289 * sysfb, then can be assumed that this is a driver for a display in aperture_remove_conflicting_devices()
305 * __aperture_remove_legacy_vga_devices - remove legacy VGA devices of a PCI devices
309 * framebuffer or a console. This is useful if you have a VGA-compatible
310 * PCI graphics device with framebuffers in non-BAR locations. Drivers
336 * aperture_remove_conflicting_pci_devices - remove existing framebuffers for PCI devices
342 * drives a primary display and therefore kicks out vga16fb as well.
349 bool primary = false; in aperture_remove_conflicting_pci_devices() local
354 primary = true; in aperture_remove_conflicting_pci_devices()
356 if (primary) in aperture_remove_conflicting_pci_devices()
369 * If this is the primary adapter, there could be a VGA device in aperture_remove_conflicting_pci_devices()
373 if (primary) in aperture_remove_conflicting_pci_devices()