Home | History | Annotate | Download | only in bsd-core
History log of /src/sys/external/bsd/drm/dist/bsd-core/drmP.h
RevisionDateAuthorComments
 1.26  18-Mar-2022  riastradh old drm: Use getticks(), not hardclock_ticks.

Should delete this code, no idea if it even still compiles.
 1.25  06-Apr-2019  thorpej Overhaul the API used to fetch and store individual memory cells in
userspace. The old fetch(9) and store(9) APIs (fubyte(), fuword(),
subyte(), suword(), etc.) are retired and replaced with new ufetch(9)
and ustore(9) APIs that can return proper error codes, etc. and are
implemented consistently across all platforms. The interrupt-safe
variants are no longer supported (and several of the existing attempts
at fuswintr(), etc. were buggy and not actually interrupt-safe).

Also augmement the ucas(9) API, making it consistently available on
all plaforms, supporting uniprocessor and multiprocessor systems, even
those that do not have CAS or LL/SC primitives.

Welcome to NetBSD 8.99.37.
 1.24  20-Apr-2015  riastradh branches: 1.24.18;
Remove old drm's container_of.
 1.23  01-Jul-2011  dyoung branches: 1.23.12; 1.23.30;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.22  09-Jun-2011  joerg dma_addr_t may not be a 64bit type, so add an explicit cast here instead
of silent truncation
 1.21  24-Feb-2011  mrg branches: 1.21.2;
convert all crtc values passed in from userland to be unsigned instead
of signed. there's still some more internal to the i915 driver that
should be converted.

tested on a radeon x1550.
 1.20  18-Feb-2011  jmcneill sync viadrm with FreeBSD, big new feature is AGP DMA and PCI DMA support
 1.19  24-May-2010  mrg branches: 1.19.2; 1.19.4;
use round_page() for PAGE_ALIGN(). from Onno van der Linden
<o.vd.linden@quicknet.nl> in PR#38700, though apparently i didn't
commit it way back when i closed that bug. oops?
 1.18  24-May-2010  mrg implement DRM_RADEON_CS ioctl, necessary for r600_dri to function.

this is mostly from freebsd (though it also exists in other versions
of the drm code) svn commits:

--
SVN rev 196470 on 2009-08-23 14:55:57Z by rnoland

Add kernel support for Radeon R6/7xx 3D.

You will still need Mesa from git and possibly an updated DDX driver,
but this is working fairly well now.
--
SVN rev 196142 on 2009-08-12 12:57:02Z by rnoland

Add support for radeon RS880 IGP chips to drm.
--
SVN rev 195501 on 2009-07-09 16:39:28Z by rnoland

Add support for Radeon HD 4770 (RV740) chips.
--
SVN rev 196471 on 2009-08-23 15:02:58Z by rnoland

Add GET_PARAM support for Z pipes.

This is needed for occulsion queries on rv530 chips.
--
SVN rev 198695 on 2009-10-30 18:07:22Z by rnoland

A bit of cleanup work on radeon_freelist_get()

* Fix the main loop to search all buffers before sleeping.
* Remove dead code
--
SVN rev 197606 on 2009-09-28 22:41:28Z by rnoland

Fix offset handling
--
SVN rev 197605 on 2009-09-28 22:40:29Z by rnoland

radeon_family is an enum, so ordering can be important.

sync up with what amd is shipping.
--
SVN rev 197603 on 2009-09-28 22:37:07Z by rnoland

R600 doesn't support IRQs yet, so don't try to use them.
--

special thanks to robert noland @ freebsd for making this an
easy port!
 1.17  19-May-2010  mrg only use bus_space*() on drm_local_map_t's that have been mapped into
some bus space somewhere. otherwise, just use normal accesses since
it is normal memory.

this fixes radeondrm on x86 since bus_space_tag_t became a pointer.

add the "GEM" and "TTM" mapping types to sysctl support (though right
now we will never have them in our list of maps.)
 1.16  26-Jan-2010  jmorse branches: 1.16.2; 1.16.4;
PR/42262: Support drm drivers (intel G33/G45) submapping pci resources
 1.15  06-Dec-2009  dyoung Delete the do-nothing device-activation hook, drm_activate().
 1.14  02-Sep-2009  mrg - normalize netbsd drm_mtrr_del() with freebsd, removing a few #if's
- make the mtrr code do nothing on non-x86
 1.13  07-Aug-2009  mrg remove some netbsd specific code that does nothing.
 1.12  20-Jun-2009  mrg some minor clean up:
- reduce diffs to mesa-drm where possible
- fix various formatting issues
- netbsd uses major 180 for drm (XXX)

no functional changes intended.
 1.11  19-Jun-2009  mrg merge the changes from drm 85b9f737db0d2a845e4d7e2bbf9ad12ff9e2227c
with our changes and the work recently done by Arto Huusko
<arto.huusko@pp2.inet.fi> and FUKAUMI Naoki <fun@naobsd.org>.

it includes all the changes arto provided from both mesa-drm and
the r6xx-r7xx-support branch. it does not yet include code to
handle the (deleted) drm_pciids.h file, but i'll probably just
check in a generated one for now.

i have not yet merged the changes from outside this dir.


from arto's messages to tech-x11:

The important change that was needed is that drm_scatter.c was
fixed to return pointer to all allocated pages, not just the
beginning of the allocated segments.

Other changes:

- drm_scatter maps COHERENT memory
- drm_drawable: drawable handle allocation is done
inside lock
- drm_memory: when mapping "agp" memory, store offset
of mapped area, so that new requests to same offset
return the same area instead of trying to remap
and fail
- drm_vm: use bus_space_mmap for frame buffer and registers

- r600_cp.c: ioremapfree allocated gart range
- radeon_cp.c: use mtsleep
- some memset calls I had added had their args swapped,
and no memory was cleared
 1.10  30-Mar-2009  mrg branches: 1.10.2;
- apply from sys/dev:
revision 1.33
date: 2009/03/29 17:00:50; author: mrg; state: Exp; lines: +12 -4
add a comment explaining DRM_NETBSD_ADDR2HANDLE/DRM_NETBSD_HANDLE2ADDR:

* This hack strips the top bit from amd64 addresses, which avoid
* udv_attach() returning NULL for "negative" offset.
* A better hack would be to encode the offset of some kernel data
* structure..

add a new DRM_HANDLE_NEEDS_MASK macro to check whether the above need to
be applied for various mapping types (_DRM_SHM and _DRM_SCATTER_GATHER.)


also:
- use IPL_VM for now
- use a lot of bus_space
- struct drm_device now has a pointer to the device_t
 1.9  25-Jul-2008  bjs branches: 1.9.2; 1.9.4; 1.9.6; 1.9.8; 1.9.10; 1.9.14; 1.9.18;
- for DRM_NETBSD_HANDLE2ADDR/ADDR2HANDLE, do what uvm does to recover
the virtual address from a uoffset, e.g. uoffset + vm_map_min(kernel_map).

- Eliminate the bus_space_read/write-based DRM_READ/WRITE macros. The
memory we're reading/writing from is not always allocated with bus_space,
and so this will not do. Instead, since all of our bus_space maps are
linear, volatile pointer dereferences will do just fine.

- Unify members of struct drm_dma_handle amongst freebsd and netbsd:
the 'addr' member was superfluous; also, set dmah->tag from
dev->pa.pa_dmat and use that.

- we don't need BUS_DMA_ALLOCNOW, as bus_dmamap_load is called immediately
following bus_dmamap_create(), so there's no need to avoid deferring
allocation to load time.

- Add check for nsegs != 1 in drm_pci_alloc().

- We don't need the DRM_PCI_DMAADDR macro right now--it was only
used once.
 1.8  25-Jul-2008  mrg merge git-change-2580a065d81be645a14af1e91b8441f7e72fcbe4.
 1.7  25-Jul-2008  bjs IRQ_HANDLED should be 1, not 0.
 1.6  19-Jul-2008  mrg merge cornflakes from git-change-04893aa99abfbed8eb6d7067a974fa1f31193c87.
 1.5  19-Jul-2008  bjs use ALIGN() instead of rolling our own.
 1.4  19-Jul-2008  jmcneill Implement drm_drawable gunk and drm_locked_task, untested. i915drm links now.
 1.3  19-Jul-2008  bjs Change IPL of DRM_SPININIT macro to IPL_NONE. Currently, the only
mutex initialized by this macro is the dma lock, which certainly
should not be IPL_VM. The priorities of the other locks should be
revisited.

Also, in DRM_WAIT_ON, enforce the policy of "drm returns -errno
to shared code" (this used to be implemented via a macro).
 1.2  19-Jul-2008  mrg pull over many many changes from netbsd-current sys/dev/{,pci/}drm/.
make the mesa-drm style Makefile's actually run on netbsd (but i doubt
they work yet.)

this still has a lot to go. it doesn't work yet, but it's getting
close.

most of this is from other authors than myself: yorrick, drochner,
jared, bjs, all contributed a lot more than i have so far, but there's
a bunch of clean up from myself in here as well.
 1.1  19-Jul-2008  mrg branches: 1.1.1;
Initial revision
 1.1.1.4  19-Jun-2009  mrg import mesa-drm git from version 85b9f737db0d2a845e4d7e2bbf9ad12ff9e2227c.
 1.1.1.3  25-Jul-2008  mrg import mesa-drm git from change 2580a065d81be645a14af1e91b8441f7e72fcbe4.
this pulls in a few vblank fixes.
 1.1.1.2  19-Jul-2008  mrg import mesa-drm git at change 04893aa99abfbed8eb6d7067a974fa1f31193c87.
 1.1.1.1  19-Jul-2008  mrg import mesa-drm git from version 5d27fd94afaaf434c3a92af0075420b550055bfb,
which is approximately june 25th or so.
 1.9.18.1  21-Apr-2010  matt sync to netbsd-5
 1.9.14.2  23-Jul-2009  jym Sync with HEAD.
 1.9.14.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.9.10.4  08-Dec-2010  riz Patch the following files (requested by mrg in ticket #1488):
sys/dev/pci/drm/files.pcidrm
sys/external/bsd/drm/dist/bsd-core/drmP.h
sys/external/bsd/drm/dist/bsd-core/drm_pciids.h
sys/external/bsd/drm/dist/bsd-core/drm_sysctl.c
sys/external/bsd/drm/dist/shared-core/r600_blit.c
sys/external/bsd/drm/dist/shared-core/r600_cp.c
sys/external/bsd/drm/dist/shared-core/radeon_cp.c
sys/external/bsd/drm/dist/shared-core/radeon_cs.c
sys/external/bsd/drm/dist/shared-core/radeon_drm.h
sys/external/bsd/drm/dist/shared-core/radeon_drv.h
sys/external/bsd/drm/dist/shared-core/radeon_state.c

implement DRM_RADEON_CS ioctl, necessary for r600_dri to function.
this is mostly from freebsd (though it also exists in other versions
of the drm code.)

only use bus_space*() on drm_local_map_ts that have been mapped into
some bus space somewhere. otherwise, just use normal accesses since
it is normal memory.
 1.9.10.3  30-Jan-2010  snj Pull up following revision(s) (requested by jmorse in ticket #1280):
sys/external/bsd/drm/dist/bsd-core/drm_bufs.c: revision 1.7
sys/external/bsd/drm/dist/bsd-core/drmP.h: revision 1.16
sys/external/bsd/drm/dist/bsd-core/drm_memory.c: revision 1.7
PR/42262: Support drm drivers (intel G33/G45) submapping pci resources
 1.9.10.2  14-Aug-2009  snj Pull up following revision(s) (requested by mrg in ticket #907):
sys/external/bsd/drm/dist/bsd-core/drm_fops.c: revision 1.6
sys/external/bsd/drm/dist/bsd-core/drmP.h: revision 1.13
remove some netbsd specific code that does nothing.
 1.9.10.1  20-Jun-2009  snj Apply patch (requested by mrg in ticket #823):
import mesa-drm git from version 85b9f737db0d2a845e4d7e2bbf9ad12ff9e2227c.
--
merge the changes from drm 85b9f737db0d2a845e4d7e2bbf9ad12ff9e2227c
with our changes and the work recently done by Arto Huusko and FUKAUMI
Naoki.

it includes all the changes arto provided from both mesa-drm and
the r6xx-r7xx-support branch. it does not yet include code to
handle the (deleted) drm_pciids.h file, but i'll probably just
check in a generated one for now.

i have not yet merged the changes from outside this dir.

from arto's messages to tech-x11:

The important change that was needed is that drm_scatter.c was
fixed to return pointer to all allocated pages, not just the
beginning of the allocated segments.

Other changes:

- drm_scatter maps COHERENT memory
- drm_drawable: drawable handle allocation is done
inside lock
- drm_memory: when mapping "agp" memory, store offset
of mapped area, so that new requests to same offset
return the same area instead of trying to remap
and fail
- drm_vm: use bus_space_mmap for frame buffer and registers

- r600_cp.c: ioremapfree allocated gart range
- radeon_cp.c: use mtsleep
- some memset calls I had added had their args swapped,
and no memory was cleared
--
add a freshly generated drm_pciids.h
--
some minor clean up:
- reduce diffs to mesa-drm where possible
- fix various formatting issues
- netbsd uses major 180 for drm (XXX)
 1.9.8.1  28-Apr-2009  skrll Sync with HEAD.
 1.9.6.2  28-Sep-2008  mjf Sync with HEAD.
 1.9.6.1  25-Jul-2008  mjf file drmP.h was added on branch mjf-devfs2 on 2008-09-28 10:40:36 +0000
 1.9.4.2  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.9.4.1  25-Jul-2008  wrstuden file drmP.h was added on branch wrstuden-revivesa on 2008-09-18 04:36:47 +0000
 1.9.2.2  28-Jul-2008  simonb Sync with head.
 1.9.2.1  25-Jul-2008  simonb file drmP.h was added on branch simonb-wapbl on 2008-07-28 14:37:28 +0000
 1.10.2.7  11-Aug-2010  yamt sync with head.
 1.10.2.6  11-Mar-2010  yamt sync with head
 1.10.2.5  16-Sep-2009  yamt sync with head
 1.10.2.4  19-Aug-2009  yamt sync with head.
 1.10.2.3  18-Jul-2009  yamt sync with head.
 1.10.2.2  04-May-2009  yamt sync with head.
 1.10.2.1  30-Mar-2009  yamt file drmP.h was added on branch yamt-nfs-mp on 2009-05-04 08:13:28 +0000
 1.16.4.3  12-Jun-2011  rmind sync with head
 1.16.4.2  05-Mar-2011  rmind sync with head
 1.16.4.1  30-May-2010  rmind sync with head
 1.16.2.1  17-Aug-2010  uebayasi Sync with HEAD.
 1.19.4.1  05-Mar-2011  bouyer Sync with HEAD
 1.19.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.21.2.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.23.30.1  06-Jun-2015  skrll Sync with HEAD
 1.23.12.1  03-Dec-2017  jdolecek update from HEAD
 1.24.18.1  10-Jun-2019  christos Sync with HEAD

RSS XML Feed