Commit Graph

92 Commits

Author SHA1 Message Date
mrg
b68c326c4a make suspend/resume actually work:
- we have to DRM_LOCK()/DRM_UNLOCK(), thus s/rad_dev/dev/ in a variable name
- only call into radeon_cp_{stop,resume}() if the device is active

with this my nforce4 dual core amd system is able to suspend/resume with both
X and drm active.
2010-03-03 03:48:39 +00:00
jruoho
cd85adf1c0 In preparation for partial modularization of the acpi(4) subtree.
* * *

XXX:	The internal memory tracking of ACPICA, available when
	ACPI_DBG_TRACK_ALLOCATIONS is defined, has been removed
	from ACPI_DEBUG.

	This is due to the instability of the ABI of ACPICA.

	If the memory tracking is enabled, ACPICA will insert a header
	to each memory allocation. As a consequence, when ACPI specific
	code is loaded as a kernel module and the running kernel has
	been compiled with ACPI_DEBUG, the result is an instant panic.
	This happens because of unaligned memory access when the code
	tries to use ACPI_FREE for a buffer obtained via ACPI_ALLOCATE,
	AcpiEvaluateObject(), and related calls.

	If the involved memory statistics are required, a separate constant
	ACPI_DEBUG_ALLOC is available in options(4) for ACPI_DEBUG kernels.

* * *

Discussed with, and ok'ed by, jmcneill@ and pooka@.
2010-02-28 12:57:11 +00:00
dyoung
c1b390d493 A pointer typedef entails trading too much flexibility to declare const
and non-const types, and the kernel uses both const and non-const
PMF qualifiers and device suspensors, so change the pmf_qual_t and
device_suspensor_t typedefs from "pointers to const" to non-pointer,
non-const types.
2010-02-24 22:37:54 +00:00
jmorse
f3d653714c PR/42262: Support drm drivers (intel G33/G45) submapping pci resources 2010-01-26 08:01:26 +00:00
dyoung
3022acc4eb Expand PMF_FN_* macros. 2010-01-08 19:42:11 +00:00
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
cegger
370d100bc1 make iasl build again.
patch from tnn@
2009-11-23 17:16:50 +00:00
cegger
9d14eb5043 Update ACPI_SRAT_CPU_AFFINITY to match ACPI specification 4.0.
XXX I don't know if this already happened upstream but it will sooner or later
if not.
2009-11-23 10:50:38 +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
jmcneill
cf036af25e Hide the message about an RSDP not being found unless we are debugging. 2009-08-23 14:54:52 +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
jmcneill
932fb37c13 Use ACPI_DEBUG_PRINT instead of ACPI_INFO for AcpiNsExecModuleCodeList
debug message.
2009-08-18 18:34:39 +00:00
jmcneill
f9cf269b36 Print table header information with ACPI_DEBUG_PRINT instead of ACPI_INFO. 2009-08-18 18:28:36 +00:00
jmcneill
d24e908507 Build fixes for NetBSD. 2009-08-18 17:13:09 +00:00
jmcneill
6d58ca2204 Build fix for amd64. 2009-08-18 17:09:25 +00:00
jmcneill
1448e5faf7 config glue for acpica 2009-08-18 16:38:51 +00:00
jmcneill
2e3763cf26 Build fixes for NetBSD. 2009-08-18 16:26:10 +00:00
jmcneill
70fe0f31af initial import of acpica-20090730 2009-08-18 16:23:28 +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
sborrill
acb87f0c16 NetBSD doesn't support alq(9) and hence ATHHAL_DEBUG_ALQ is unusable.
Nevertheless, remove reference to old binary HAL header file in the
ATHHAL_DEBUG_ALQ section.
2009-08-07 21:01:48 +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
reinoud
8aafc997af Fix prototypes to match the functions. The prototypes had `int' specified for
parameters or result where they should have been the corresponding enums.

gcc won't bitch on them but conceptually they are different and could be
stored in a different width. Compiling with pcc brought this to light.
2009-05-14 09:07:49 +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