Commit Graph

49 Commits

Author SHA1 Message Date
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
martin
bce5c2205a Now that we compile the Atheros HAL from source we pass all the right
flags to the compiler so it obeys the same ABI as the rest of the kernel.
Remove the hacks used to work around the abi differences (using %s7 as
curlwp) intruduced for the binary hal.
2009-03-24 21:36:46 +00:00
mrg
7c9a97ab4a initialise some variables whined about by gcc -O3. 2009-01-06 06:03:57 +00:00
christos
d1018e8baf KNF.
NB: These were not imported properly. The Id RCS keyword lines were not
cleaned up, and there were no NetBSD keywords added. Perhaps Re-import
correctly?
2008-12-31 14:08:46 +00:00
phil
806ddf688c Add a return HAL_OK in the AR_EEP_MACADDR case. Without this
it falls through to the next case and returns a register value.
Found by Aran Clauson.
2008-12-31 07:24:01 +00:00
alc
0a5dd2a285 Restore a valid call to ath_hal_wait() and wrap the if() statement with curly bracket.
Fix build wrt the original HAL, prevent the next call to OS_REG_WRITE() to be skipped
if HALDEBUG() is not defined.

pointed out by <sam>
2008-12-13 05:16:28 +00:00
alc
c3d9f7dbb1 Don't display the global kernel symbol `version' but the *eeprom* version, as done in the original code. 2008-12-12 21:31:49 +00:00
cegger
9d34af294b make i386 ALL kernel compile 2008-12-12 21:01:59 +00:00
alc
26688c3395 Add HAL standard option and file list.
I forgot to `cvs add' them :).
2008-12-11 14:11:43 +00:00
alc
b297f5e6b5 Import HAL's OS dependent code and config(9)'s interface header. 2008-12-11 05:37:40 +00:00
alc
a9d4fb0bb4 Fix the build of the new HAL:
- constify link-set iterator
 - do RF lookup only if any RF has been built
 - fix global symbols shadowing
 - const static -> static const
 - don't redefine `uintptr_t'
 - use `unsigned long' in __DECONST()
 - fix AH_RF() macros
 - __va_list -> va_list
 - add missing struct trailing element
 - add a few #ifdef AH_DEBUG block to avoid empty if() statement
 - some other nits...
2008-12-11 05:30:29 +00:00
alc
1e10b93de9 Import Atheros HAL, from FreeBSD (revision 185521) 2008-12-11 04:46:22 +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
jmcneill
e3f4f88866 PCI_PRODUCT works on pa_id, not pa_device 2008-07-19 17:45:53 +00:00
bjs
61ffbe1fec dev->pci_device should be assigned PCI_PRODUCT(pa->pa_id), not the id
itself.
2008-07-19 17:44:14 +00:00
bjs
79b565981a use ALIGN() instead of rolling our own. 2008-07-19 17:28:14 +00:00
bjs
e87f5b54be set dev->kdev = kdev at open time, not in drm_ioctl. 2008-07-19 17:23:04 +00:00
jmcneill
4a648a5b9a Implement drm_drawable gunk and drm_locked_task, untested. i915drm links now. 2008-07-19 14:15:11 +00:00
bjs
d63b70db6d 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).
2008-07-19 10:09:01 +00:00
mrg
242955a02d XXX: remove the (volatile uint32_t *) cast from atomic_read() macro for now.
now all bsd drm drivers build except for i915 which fails to link.
2008-07-19 07:03:07 +00:00
mrg
cc28125d9e XXX: always return DRM_MIGHT_BE_AGP for now -- need to implement the
XXX: releant bus controller grovelling for netbsd pci.
2008-07-19 07:02:15 +00:00
mrg
310b3512f5 XXX rename some macro internal variable names to not clash with users. 2008-07-19 06:48:44 +00:00
mrg
c97fa01b94 rename some inner local variables away from outer scope name conflicts 2008-07-19 06:42:07 +00:00
mrg
215f2c6a8b rename a local variable from free to myfree 2008-07-19 06:40:01 +00:00
mrg
8ff8b7b272 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.
2008-07-19 06:18:23 +00:00
mrg
3a3ec8ba5f include bsd.subdir.mk 2008-07-19 06:14:25 +00:00
mrg
d582952b83 import mesa-drm git from version 5d27fd94afaaf434c3a92af0075420b550055bfb,
which is approximately june 25th or so.
2008-07-19 05:30:36 +00:00