It's the same as `strscpy()` except that it fills the rest of the
destination buffer with zeroes if the source buffer is shorter.
Reviewed by: manu
Approved by: manu
The header is included in <linux/xarray.h> like it is on Linux. Some DRM
code depends on this header "pollution".
Reviewed by: bz
Approved by: bz
Differential Revision: https://reviews.freebsd.org/D38567
It gains new `struct ww_acquire_ctx *` argument we don't use currently.
Reviewed by: manu
Approved by: manu
Differential Revision: https://reviews.freebsd.org/D38568
It takes the lock and release it immediately to make sure no shrinkers
are running in parallel.
Reviewed by: manu
Approved by: manu
Differential Revision: https://reviews.freebsd.org/D38565
It returns `physmem`.
`__FreeBSD_version` is bumped to 1400080. We need that to remove a copy
of this function in the i915 DRM driver, maintained outside of base.
Reviewed by: manu
Approved by: manu
Differential Revision: https://reviews.freebsd.org/D38531
`xa_is_err()` is synonymous to `IS_ERR()`.
Other introduced functions call their equivalent without the `irq*`
suffix.
Reviewed by: manu
Approved by: manu
Differential Revision: https://reviews.freebsd.org/D38534
For `vga_client_register()`, the API is modified twice in a row. To keep
the API compatible with all commits in the DRM driver, we introduce two
`LINUXKPI_VERSION` version bumps.
Reviewed by: manu
Approved by: manu
Differential Revision: https://reviews.freebsd.org/D38533
This is not used by the DRM driver yet because we comment out the code
calling them, but they are easy to implement.
Reviewed by: manu
Approved by: manu
Differential Revision: https://reviews.freebsd.org/D38530
amdgpu's virtual display feature uses pci_name() to match a module parameter
string, and the documentation shows an example of `0000:26:00.0` for the name.
In our case the name was just `drmn`, which is not actually unique across
devices.
The other consumers are wireless drivers, which will benefit from this
change.
Generate the expected string for pci_name() to return.
Related to: https://github.com/freebsd/drm-kmod/issues/134
Sponsored by: https://www.patreon.com/valpackett
Reviewed by: bz, hselasky, manu (earlier)
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D34248
Following e9715b1c44 and
4b56afaf7b, implement support
for up-to 32 MSI vectors. This is used by wireless drivers.
This also switches msi_desc to an array in order to store
per-vector information.
Sponsored by: The FreeBSD Foundation
Discussed with: grehan (in Dec)
MFC after: 3 days
Reviewed by: jhb
Differential Revision: https://reviews.freebsd.org/D38222
irq_set_affinity_hint() takes a const mask argument and some drivers
pass it in as such where earlier implementations were more lenient.
Deal with it and __DECONST() the argument when passed to intr_setaffinity().
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D38242
Add a dummy irq_set_status_flags() along with #defines passed by the driver.
Add disable_irq_nosync() as another wrapper to lkpi_disable_irq().
Those are used by wireless drivers.
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D38241
Add a dummy implementation of pm_wakeup_event() which is used to notify
the power management system about a wakeup (which we currently do not
implement yet).
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D38239
Add a dummy device_set_wakeup_enable() which is used for WoWLAN which we
do not (yet) support and device_wakeup_enable() which is a wrapper to the
former with the enable argument being true.
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D38238
Add a dummy pci_assign_resource() and an implementation of
pci_irq_vector() returning the irq for MSI-X, MSI, and legacy interrupt.
Both are needed by wirless drivers.
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
Reviewed by: jhb
Differential Revision: https://reviews.freebsd.org/D38237
This change breaks the API of `list_sort()`. `LINUXKPI_VERSION >= 51300`
is used to keep the header compatible with both versions of the
prototype.
Reviewed by: manu
Approved by: manu
Differential Revision: https://reviews.freebsd.org/D38082
`io_mapping_map_local_wc()` is synonymous to `io_mapping_map_atomic_wc()`.
Reviewed by: manu
Approved by: manu
Differential Revision: https://reviews.freebsd.org/D38156
They are synonymous to `kmap_atomic_prot()` and `kunmap_atomic()`
respectively.
While here, fix several style(9) issues.
Reviewed by: manu
Approved by: manu
Differential Revision: https://reviews.freebsd.org/D38155
The struct layout is modified with this commit because new fields are
added in the middle, keeping original Linux order.
Reviewed by: manu
Approved by: manu
Differential Revision: https://reviews.freebsd.org/D37932
They were defined in the i915 DRM driver. I move the code in linuxkpi so
it can benefit other drivers.
Reviewed by: manu
Approved by: manu
Differential Revision: https://reviews.freebsd.org/D38078
It now returns a `struct scatterlist *` pointer instead of an error
code only.
The implementation is incomplete because it doesn't use the `prv`
argument.
Reviewed by: manu
Approved by: manu
Differential Revision: https://reviews.freebsd.org/D38077
At least one file in the DRM drivers benefits from some namespace
pollution to use `fs_reclaim_acquire()`/`fs_reclaim_release()`. They are
defined in `linux/sched/mm.h` and this header must be included
indirectly into the DRM drivers' source file.
I couldn't find how it was included. Therefore this commit includes
`linux/sched/mm.h` from `linux/sched.h`. This is not the case in Linux
but fixes the issue with the DRM drivers.
Reviewed by: manu
Approved by: manu
Differential Revision: https://reviews.freebsd.org/D37912
This is the same as `debugfs_create_file()` but takes the initial size
of the file. In FreeBSD, the given size is ignored and
`debugfs_create_file()` is called.
Reviewed by: emaste, manu
Approved by: manu
Differential Revision: https://reviews.freebsd.org/D37914
At the same time, define `PCI_MSIX_FLAGS`and `PCI_MSIX_FLAGS_ENABLE`.
Reviewed by: manu
Approved by: manu
Differential Revision: https://reviews.freebsd.org/D38160
I'm not sure this is correct, but it gives access to the definition of
`PAGE_KERNEL` in `ttm_tt.c` in the DRM drivers.
Reviewed by: manu
Approved by: manu
Differential Revision: https://reviews.freebsd.org/D38154
It is defined as a synonymous to `DEFINE_WW_CLASS(name)`.
Reviewed by: manu
Approved by: manu
Differential Revision: https://reviews.freebsd.org/D38151
`SZ_2K` and `SZ_1G` were defined in irdma. They are removed from this
driver.
Reviewed by: manu
Approved by: manu
Differential Revision: https://reviews.freebsd.org/D38150
This is the same error code as Linux. This value is unused on FreeBSD.
Reviewed by: manu
Approved by: manu
Differential Revision: https://reviews.freebsd.org/D38149