Commit Graph

64 Commits

Author SHA1 Message Date
kefren
df341ead56 add suspend/resume hooks for command processor 2009-12-14 21:01:07 +00:00
kefren
498a190b81 add stub pmf hook 2009-12-12 14:15:25 +00:00
dyoung
b9e4d3a3cb Delete the do-nothing device-activation hook, drm_activate(). 2009-12-06 22:51:25 +00:00
jmcneill
00081f593e deregister with pmf on detach 2009-09-27 12:59:38 +00:00
jmcneill
ae0ded3a5f register with pmf 2009-09-27 12:58:51 +00:00
jmcneill
ef43763f40 Port viadrm to NetBSD and fix a bunch of compile issues:
viadrm0 at vga1: VIA P4M900 / VN896
 viadrm0: AGP at 0xf0000000 128MB
 viadrm0: Initialized via 2.11.1 20070202

xf86-video-openchrome seems happy with it, although 3d acceleration isn't
supported on the P4M900 so I can't test that part.
2009-09-27 12:39:04 +00:00
mrg
f4964bc1fa make sure to call pci_intr_*stablish() with the right first argument;
it worked by C-luck on x86, but macppc picked it up.
2009-09-27 03:48:07 +00:00
drochner
1e4e3d1be4 fix some confusion between highest DMA address and the boundary not to
be crossed in a transfer,
back out previous fixes which only added to the confusion
2009-09-12 17:16:41 +00:00
christos
5a2044242f PR/42041: Jasper Wallace: Stopgap fix for kernel assert
("(boundary & (boundary - 1)) == 0") triggers with i915drm in recent -5 kernel

Read the comment in the code for a detailed explanation. This should be fixed
properly in the i386 bus code, but it is too intrusive to do for -5.
XXX: pullup for 5.x
2009-09-10 18:11:21 +00:00
mrg
6769a80c80 - normalize netbsd drm_mtrr_del() with freebsd, removing a few #if's
- make the mtrr code do nothing on non-x86
2009-09-02 01:36:41 +00:00
mrg
2d22194137 remove a memset() that isn't necessary. 2009-09-02 01:34:34 +00:00
mrg
783fe8b458 introduce an ugly but simple hack to work around external software
requirements: set the drm pci "domain" to the pci bus unit number.
this matches what libpciaccess does for netbsd and now drm is much
happier again.
2009-08-26 01:37:10 +00:00
mrg
60e6e5077b on netbsd with the single final close() action, make sure we clean up
all the files attached to dev->files.  we check for one per "open_count"
that is above 1.  could perhaps assert() that we are empty afterwards.

this fixes restarting X + drm after actually using drm.
2009-08-23 08:55:16 +00:00
mrg
71b88e73aa - stash the fbmap into the radeon dev_priv handle so we can ..
- call drm_rmmap() in radeon_do_cleanup_cp on the two maps created
- in several vblank functions, check to make sure we have mappings
  enabled before doing something that might blow up.  fixes PR#41715.
2009-08-08 17:59:25 +00:00
mrg
992e698d04 remove some netbsd specific code that does nothing. 2009-08-07 22:51:04 +00:00
mrg
4c99008150 don't include pcidevs_data.h. 2009-06-24 19:47:15 +00:00
mrg
c33a588610 convert a DRM_ERROR() to DRM_DEBUG(). its failure is not fatal
and it tends to trigger on almost all cards.
2009-06-24 08:09:26 +00:00
mrg
8ee58c85df add a commented out section for nouveau driver.
(it's very far from being compileable.)
2009-06-23 04:42:58 +00:00
mrg
eae636e445 add a bunch of fixes mostly from rafal@.
this fixes the build for all the other drm modules.

use pci_find_device() to kill the one XXX rafal left.
2009-06-23 04:42:01 +00:00
mrg
c7c2933c33 make external drm the default. 2009-06-21 20:15:26 +00:00
mrg
44d76def57 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.
2009-06-20 01:07:09 +00:00
mrg
6fa8682e45 add a freshly generated drm_pciids.h 2009-06-19 03:52:20 +00:00
mrg
50fcbdf26f 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
2009-06-19 03:50:03 +00:00
mrg
57cc1d9fad import the missing file from mesa-drm at git change
85b9f737db0d2a845e4d7e2bbf9ad12ff9e2227c.
2009-06-19 03:38:39 +00:00
mrg
d7792ba7fe import mesa-drm git from version 85b9f737db0d2a845e4d7e2bbf9ad12ff9e2227c. 2009-06-19 03:22:23 +00:00
joerg
a0fa8c3062 softc split as needed by the rest of the drm code. Add basic
suspend/resume hooks.
2009-05-09 01:29:01 +00:00
mrg
64b0361105 apply from sys/dev:
revision 1.17
date: 2009/03/29 19:50:17;  author: mrg;  state: Exp;  lines: +7 -7
drm_addmap():
- for _DRM_CONSISTENT mappings, keep the handle.
- use DRM_HANDLE_NEEDS_MASK()

drm_mapbufs():
- use DRM_HANDLE_NEEDS_MASK()

drm_mmap():
- use DRM_HANDLE_NEEDS_MASK()
- for _DRM_SCATTER_GATHER and _DRM_SHM, use vtophys() on the
  adjusted offset. XXX

this is gets radeon working on amd64 with an older PCI 9250 card.

XXX: need to excise vtophys() usage.
XXX: need to finish porting these fixes to external.


yay!  this takes care of one of the XXX's.  still not quite working.
2009-03-30 01:51:40 +00:00
mrg
f70233658c XXX: drm_close_pid() went away, and the hack i tried to avoid it
XXX: ended up looping forever.  replace it with a hack that doesn't
XXX: hang the system.
2009-03-30 01:48:31 +00:00
mrg
d28a4dfebd - set dev->device to the device_t
- fix a DEBUG message
- apply from sys/dev:
revision 1.20
date: 2009/01/18 10:04:35;  author: mrg;  state: Exp;  lines: +6 -2
Don't attempt to unload a DRM device that's in use.  (Note:
Unloading doesn't work right in any case -- it doesn't clean up the
sysctl tree, among other things.  This code needs Work, but at least
this prevents it crashing randomly due to autounload while X is
running.)  Also, fix the dependency list for radeondrm.

contributed anonymously.
2009-03-30 01:47:36 +00:00
mrg
881136fdf4 apply from sys/dev:
revision 1.11
date: 2009/03/29 19:50:17;  author: mrg;  state: Exp;  lines: +9 -6
drm_addmap():
- for _DRM_CONSISTENT mappings, keep the handle.
- use DRM_HANDLE_NEEDS_MASK()

drm_mapbufs():
- use DRM_HANDLE_NEEDS_MASK()

drm_mmap():
- use DRM_HANDLE_NEEDS_MASK()
- for _DRM_SCATTER_GATHER and _DRM_SHM, use vtophys() on the
  adjusted offset. XXX

this is gets radeon working on amd64 with an older PCI 9250 card.

XXX: need to excise vtophys() usage.
XXX: need to finish porting these fixes to external.



however, this doesn't get radeon working on amd64 here :(
2009-03-30 01:45:41 +00:00
mrg
65df1447f7 - apply from sys/dev:
revision 1.14
date: 2009/03/29 19:39:10;  author: mrg;  state: Exp;  lines: +4 -3
include the size in a falled allocation message.

- use BUS_DMA_ALLOCNOW in bus_dmamap_create() call

- remove a redundant check for NULL
2009-03-30 01:44:41 +00:00
mrg
db9cd6b98c - 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
2009-03-30 01:42:20 +00:00
mrg
4d27c3c2b1 apply from sys/dev:
revision 1.12
date: 2009/03/29 19:37:25;  author: mrg;  state: Exp;  lines: +9 -3
XXX:  for now, add the DRM_NETBSD_HANDLE2ADDR() hack in a few places.
update a debug message.
2009-03-30 01:38:21 +00:00
mrg
3d4337fb88 fix a device_t-ification. 2009-03-29 23:46:34 +00:00
dholland
16bf28a6f5 fix typo in comment 2008-09-23 06:08:07 +00:00
bjs
43577a53e4 Fix type-o. 2008-07-29 23:44:42 +00:00
bjs
8151294949 - 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.
2008-07-25 06:54:33 +00:00
bjs
f4821bc01a in the git sources, timo is jiffies + 5*DRM_HZ, not 5*DRM_HZ 2008-07-25 06:37:40 +00:00
mrg
5560b89162 merge git-change-2580a065d81be645a14af1e91b8441f7e72fcbe4. 2008-07-25 05:30:08 +00:00
mrg
3eb83a79ce import mesa-drm git from change 2580a065d81be645a14af1e91b8441f7e72fcbe4.
this pulls in a few vblank fixes.
2008-07-25 05:27:51 +00:00
bjs
42cc23f284 IRQ_HANDLED should be 1, not 0. 2008-07-25 02:37:18 +00:00
bjs
e2ae9c7df8 Remove #ifdef __FreeBSD__ around DRM_UPDATE_DRAW ioctl, as we have drawable
code (and if it does not work, we must make it work!).

Add missing entry for DRM_MODESET_IOCTL.
2008-07-21 07:18:11 +00:00
bjs
616225d114 add forgotten initialization/destruction for tsk_lock. 2008-07-20 03:02:22 +00:00
bjs
e63e7d81db Add a forgotten mtsleep(). 2008-07-20 02:58:40 +00:00
mrg
8754a8144b move an XXXNETBSD along with the assignment that moved 2008-07-19 22:23:14 +00:00
mrg
f9c3ff3858 merge cornflakes from git-change-04893aa99abfbed8eb6d7067a974fa1f31193c87. 2008-07-19 22:22:17 +00:00
mrg
acf7df4527 fix a merge error 2008-07-19 22:14:13 +00:00
mrg
b0c27870b5 merge cornflakes from git-change-04893aa99abfbed8eb6d7067a974fa1f31193c87. 2008-07-19 22:10:09 +00:00
mrg
60c992bef9 import mesa-drm git at change 04893aa99abfbed8eb6d7067a974fa1f31193c87. 2008-07-19 22:05:02 +00:00
jmcneill
a8309870a5 Pull in agp_i810.h so the agp borrow hack works on i915drm. 2008-07-19 20:08:39 +00:00