Ian Romanick
2097d743f2
Eliminate XGI_CHECK_PCI_CONFIG.
...
Based on review comments from airlied, XGI_CHECK_PCI_CONFIG is
removed. He believes (and I tend to agree) that this is a largely
unnecessary workaround for a bug elsewhere.
2007-07-23 13:26:28 -07:00
Adrian Bunk
7e6d08f670
drm_rmmap_ioctl(): remove dead code
...
This patch removes some obviously dead code spotted by the Coverity
checker.
Signed-off-by: Adrian Bunk <bunk@stusta.de>
2007-07-23 18:15:00 +10:00
Ian Romanick
94203840fe
Bump version.
2007-07-21 23:00:01 -07:00
Ian Romanick
699207cf2f
Remove some extraneous debug messages.
2007-07-21 21:37:45 -07:00
Ian Romanick
1a0775760c
Rename and document fields of xgi_cmdring_info.
2007-07-21 21:35:06 -07:00
Ian Romanick
3265a61f89
Make s_cmdring a field in the xgi_info structure instead of a global.
2007-07-21 20:39:22 -07:00
Ian Romanick
5d6fdd9d79
Clean up xgi_cmd_info and associated code.
...
There were numerous unnecessary fields in xgi_cmd_info. The remaining
fields had pretty crummy names. Cut out the cruft, and rename the
rest. As a result, the unused parameter "triggerCounter" to
triggerHWCommandList can be removed.
2007-07-21 20:34:56 -07:00
Pekka Paalanen
0844c46759
Fix misc ioctl issues, makes Nouveau run.
...
Debug print fix in drm_release().
Forgotten local variable init in drm_setversion().
Unnecessary put_user() in drm_addmap_ioctl().
ioctl->cmd check broken in drm_ioctl(); workaround.
2007-07-21 23:13:25 +03:00
Dave Airlie
b43b0b2b32
fix missing brace placement for IOC_IN
2007-07-21 22:11:41 +10:00
Dave Airlie
f68ad6d1ab
fix drm no-compile due to BSD :-)
2007-07-21 21:50:25 +10:00
Eric Anholt
5b38e13416
Replace DRM_IOCTL_ARGS with (dev, data, file_priv) and remove DRM_DEVICE.
...
The data is now in kernel space, copied in/out as appropriate according to the
This results in DRM_COPY_{TO,FROM}_USER going away, and error paths to deal
with those failures. This also means that XFree86 4.2.0 support for i810 DRM
is lost.
2007-07-20 18:16:42 -07:00
Eric Anholt
c1119b1b09
Replace filp in ioctl arguments with drm_file *file_priv.
...
As a fallout, replace filp storage with file_priv storage for "unique
identifier of a client" all over the DRM. There is a 1:1 mapping, so this
should be a noop. This could be a minor performance improvement, as everything
on Linux dereferenced filp to get file_priv anyway, while only the mmap ioctls
went the other direction.
2007-07-20 13:39:45 -07:00
Eric Anholt
e39286eb5e
Remove DRM_ERR OS macro.
...
This was used to make all ioctl handlers return -errno on linux and errno on
*BSD. Instead, just return -errno in shared code, and flip sign on return from
shared code to *BSD code.
2007-07-20 12:53:52 -07:00
Eric Anholt
5dc9fd96d7
Fix linux spinlock macros after the last commit.
2007-07-20 12:55:51 -07:00
Ian Romanick
ed82d5398a
Clean up flush command generation in addFlush2D.
2007-07-20 11:31:01 -07:00
Ian Romanick
659209cb2d
Clean up generation of begin commands in xgi_submit_cmdlist
...
Generate the begin command once in a temporary buffer. Then,
depending on whether the command is to be written directly to the
hardware or to a secondary buffer, copy to command to the correct place.
2007-07-20 11:29:16 -07:00
Ian Romanick
6bd8483074
Change handling of begin types slightly.
...
Moved the getCurBatchBeginPort before its only caller. Modified
function to return the command ID instead of the port offset.
Function also now assumes input begin type is value.
Added code to ioctl handler to validate begin type.
2007-07-20 10:57:40 -07:00
Jakob Bornecrantz
9ccb8440f3
Changed mode config spinlock to mutex
2007-07-20 11:36:57 +02:00
Ian Romanick
56665a42f4
Delete unused variable in xgi_driver_load.
2007-07-19 19:09:24 -07:00
Ian Romanick
970674f486
Fix error handing related to xgi_cmdlist_initialize.
...
xgi_cmdlist_initialize wasn't correctly checking for errors from
xgi_pcie_alloc. Furthermore, xgi_bootstrap, the one caller of
xgi_cmdlist_initialize, wasn't check its return value.
2007-07-19 19:08:47 -07:00
Ian Romanick
a33f548729
Debug message and comment clean up in xgi_submit_cmdlist.
2007-07-19 19:05:52 -07:00
Ian Romanick
15245b670e
Rework xgi_(pcie|fb)_free_all to prevent deadlock.
2007-07-19 11:38:56 -07:00
Ian Romanick
2f53ce4af2
Move MMIO drm_addmap (and code that depends on it) to xgi_bootstrap.
...
For reasons that I don't understand, the drm_addmap call would succeed
in xgi_driver_load, but writes to the map later would oops. Moving it
to xgi_bootstrap fixes this problem.
2007-07-19 11:05:13 -07:00
Ian Romanick
5ba94c2ab8
Initial pass at converting driver to DRM infrastructure.
2007-07-19 10:29:18 -07:00
Jakob Bornecrantz
43c9abdedc
Fix unlocking of spinlock when we should not
2007-07-19 16:58:23 +02:00
Eric Anholt
05204b9c8d
Merge branch 'origin'
2007-07-19 06:31:26 -07:00
Eric Anholt
33a50412c2
Add dry-coded DRM drawable private information storage for FreeBSD.
...
With this, all modules build again.
2007-07-18 14:22:49 -07:00
Thomas Hellstrom
1ff858fe3a
Fix via dmablit when blit queue is full.
...
Fix by Simon Farnsworth, Bugzilla Bug #11542
http://bugs.freedesktop.org/show_bug.cgi?id=11542
2007-07-18 10:40:03 +02:00
Dave Airlie
a64b5d8d37
fix some missing whitespace/tab
2007-07-18 15:49:45 +10:00
Dave Airlie
3a71e87742
drm: idr stuff is upstream for 2.6.23
2007-07-18 09:46:16 +10:00
Dave Airlie
6ad1df2176
drm: remove drm_u64_t, replace with uint64_t everwhere
...
This might break something, stdint.h inclusion in drm.h maybe required
but I'm not sure yet what platforms have it what ones don't.
2007-07-18 09:42:06 +10:00
Dave Airlie
bff698d0ed
drm_context: fix braino
2007-07-18 09:27:21 +10:00
Ian Romanick
7f98815d00
Make drm_sg_free callable in-kernel.
2007-07-16 22:15:01 -07:00
Ian Romanick
bcba7ba981
Log message clean up in WriteRegDWord. Remove unused inline functions.
2007-07-16 21:15:58 -07:00
Ian Romanick
5b08ab258f
Clean ups (primarilly log messages) in xgi_test_rwinkernel.
2007-07-16 21:12:30 -07:00
Ian Romanick
658ff2daf3
Eliminate several useless ioctls and associated cruft.
...
The ioctlss XGI_ESC_DEVICE_INFO, XGI_ESC_MEM_COLLECT,
XGI_ESC_PCIE_CHECK, XGI_ESC_GET_SCREEN_INFO, XGI_ESC_PUT_SCREEN_INFO,
XGI_ESC_MMIO_INFO, and XGI_ESC_SAREA_INFO, are completely unnecessary.
The will be doubly useless when the driver is converted to the DRM
infrastructure.
2007-07-16 20:58:43 -07:00
Ian Romanick
4575d5b8f1
Massive log message clean up in xgi_submit_cmdlist.
2007-07-16 20:56:11 -07:00
Ben Skeggs
ec67c2def9
nouveau: G8x PCIEGART
...
Actually a NV04-NV50 ttm backend for both PCI and PCIEGART, but PCIGART
support for G8X using the current mm has been hacked on top of it.
2007-07-17 13:51:14 +10:00
Dave Airlie
0be629a914
drm/radeon/ttm: more VRAM fixes
2007-07-16 14:45:47 +10:00
Dave Airlie
23631fca09
drm: fixup old kernel compat code
2007-07-16 13:52:21 +10:00
Dave Airlie
0accdc1f69
drm: fixup compat wrappers
2007-07-16 13:50:04 +10:00
Dave Airlie
535e3dec8c
drm: remove internal sman typedef
2007-07-16 13:46:37 +10:00
Dave Airlie
191c062933
drm: remove drm_ref_t
2007-07-16 13:45:39 +10:00
Dave Airlie
24311d5d82
drm: remove drm_buf_t
2007-07-16 13:42:11 +10:00
Dave Airlie
be85ad0333
drm: detypedef ttm/bo/fence code
2007-07-16 13:37:02 +10:00
Dave Airlie
6dce9e0735
drm: remove hashtab/sman and object typedefs
2007-07-16 12:48:44 +10:00
Dave Airlie
21ee6fbfb8
drm: remove drmP.h internal typedefs
2007-07-16 12:32:51 +10:00
Dave Airlie
1a07256d60
drm: remove ttm userspace typedefs
2007-07-16 11:30:53 +10:00
Dave Airlie
b95ac8b7b3
drm: detypedef drm.h and fixup all problems
2007-07-16 11:22:15 +10:00
Dave Airlie
4be9554fcd
drm: fix typedef in drm_os_linux.h
2007-07-16 11:13:07 +10:00
Dave Airlie
2134193af6
Merge branch 'drm-ttm-cleanup-branch'
2007-07-16 10:05:20 +10:00
Ian Romanick
5522136b7f
Merge branch 'master' into xgi-0-0-2
2007-07-12 15:28:17 -07:00
Dave Airlie
ead9cd64bd
radeon: add VRAM support for radeon ttm
...
This needs a lot of testing
2007-07-12 14:26:03 +10:00
Dave Airlie
5c6a23704a
Merge branch 'radeon-ttm' of git://people.freedesktop.org/~airlied/drm into radeon-ttm
...
Conflicts:
linux-core/ati_pcigart.c
linux-core/drmP.h
linux-core/radeon_buffer.c
2007-07-12 14:25:29 +10:00
Ben Skeggs
750371cb6e
nouveau: separate region_offset into map_handle and offset.
2007-07-12 10:46:57 +10:00
Dave Airlie
2c9e05cf4c
Merge branch 'master' into cleanup
...
Conflicts:
libdrm/xf86drm.c
linux-core/drm_bo.c
linux-core/drm_fence.c
2007-07-11 11:23:41 +10:00
Arthur Huillet
04e4922c0c
Made drm_sg_alloc accessible from inside the DRM - drm_sg_alloc_ioctl is the ioctl wrapper
2007-07-11 02:34:00 +02:00
Ian Romanick
76ca1e858f
Convert occurances of U32 to other types.
...
Most occurances of U32 were converted to u32. These are cases where
the data represents something that will be written to the hardware.
Other cases were converted to 'unsigned int'.
U32 was the last type in xgi_types.h, so that file is removed.
2007-07-09 18:54:25 -07:00
Ian Romanick
5c481d0a42
Eliminiate fields in xgi_info that are duplicates of fields in pci_dev.
2007-07-09 16:43:48 -07:00
Ian Romanick
1f4e24b429
Move types shared with user mode to xgi_drm.h.
2007-07-09 16:33:14 -07:00
Ian Romanick
7268b65d5c
Correct types that are shared with user mode.
2007-07-09 16:22:48 -07:00
Ian Romanick
a3f56dc3d0
Adjust the types of the fields of xgi_aperture.
2007-07-09 16:07:27 -07:00
Ian Romanick
2f2d8b9688
Merge xgi_mem_req and xgi_mem_alloc into a single type.
...
These two structures were used as the request and reply for certain
ioctls. Having a different type for an ioctl's input and output is
just wierd. In addition, each structure contained fields (e.g., pid)
that had no business being there.
This change requires updates to user-space.
2007-07-09 15:59:09 -07:00
Ben Skeggs
c806bba466
nouveau/nv50: Initial channel/object support
...
Should be OK on G84 for a single channel, multiple channels *almost* work.
Untested on G80.
2007-07-09 16:16:44 +10:00
Ian Romanick
86e75b7f7f
Remove XGI_IOCTL_CPUID and associated cruft.
2007-07-05 17:49:13 -07:00
Ian Romanick
8b18276458
Major clean up of xgi_ge_irq_handler
...
Two large blocks of code were moved out of this function into separate
functions. This brought some much needed sanity to the indentation.
Some dead varaibles were removed.
2007-07-05 17:45:44 -07:00
Ian Romanick
2695e8e209
Convert weird rtdsc usage to get_cycles.
...
I'm not convinced that get_cycles is the right approach here, but it's
better than the weird way that rtdsc was being used.
2007-07-05 17:18:12 -07:00
Kristian Høgsberg
d57b7f02d2
Use idr_replace trick to eliminate struct drm_ctx_sarea_list.
2007-07-03 10:41:48 -04:00
Kristian Høgsberg
1814a829eb
Don't take dev->struct_mutex twice in drm_setsareactx.
2007-07-03 10:31:46 -04:00
Michel Dänzer
ea832a8e55
Simplification for previous commit.
...
Dave Airlie pointed out on IRC that idr_replace lets us know if the ID hasn't
been allocated, so we don't need a special pointer value for allocated IDs that
don't have valid information yet.
2007-07-03 12:15:15 +02:00
Michel Dänzer
8d96ba9805
Restore pre-idr semantics for drawable information.
...
There's a difference between a drawable ID not having valid drawable
information and not being allocated at all. Not making the distinction would
break i915 DRM swap scheduling with older X servers that don't push drawable
cliprect information to the DRM.
2007-07-03 11:41:44 +02:00
Kristian Høgsberg
c9d752ff4f
Fix must-check warnings and implement a few error paths.
2007-07-02 17:52:07 -04:00
Kristian Høgsberg
b323ab52aa
Drop drm_drawable_list and add drm_drawable_info directly to the idr.
2007-07-02 15:07:02 -04:00
Ian Romanick
fc37781dd3
Convert a few more U32 variables to more appropriate, generic types.
2007-06-29 21:48:31 -07:00
Ian Romanick
49ccec1b08
Convert xgi_mem_location enum values to less generic names.
2007-06-29 21:38:48 -07:00
Ian Romanick
32584d94e6
Convert open coded list iterators to either list_for_each_entry or list_for_each_entry_safe
2007-06-29 21:35:27 -07:00
Ian Romanick
4403540776
Clean up xgi_pcie_heap_check
...
The whole purpose of xgi_pcie_heap_check is to log information about
entries on the used_list. If XGI_DEBUG is not set, it doesn't print
anything. Therefore we can #ifdef the whole function body.
Convert open-code list iteration to use list_for_each_entry.
2007-06-29 21:15:33 -07:00
Ian Romanick
4c4780bc8e
Stop-gap fix in xgi_submit_cmdlist
...
Comment in the code explains it. Basically, I put an if-statement
around a block of code to prevent a NULL pointer dereference that
should never happen in the first place. Eventually, this will need to
come out.
2007-06-29 21:05:16 -07:00
Ian Romanick
e206c4c59d
Convert some PCI-e GART related variable to generic types.
...
A few of the PCI-e GART related fields in struct xgi_info were
hardcoded to u32. None of them need to be. Convert them to either
unsigned int or bool.
2007-06-29 21:00:50 -07:00
Ian Romanick
3773378658
Delete unused arrays s_emptyBegin and s_flush2D.
2007-06-29 20:49:21 -07:00
Ian Romanick
406ded3816
Replace U(8|16) with u(8|16).
2007-06-29 16:41:32 -07:00
Ian Romanick
ec7730e5ba
Eliminate unnecessary defines of TRUE and FALSE.
2007-06-29 16:37:39 -07:00
Ian Romanick
5da2a3c2d4
Replace BOOL with bool.
2007-06-29 16:37:01 -07:00
Ian Romanick
ba3173fa39
Eliminate unused integer and float typedefs.
2007-06-29 16:35:36 -07:00
Ian Romanick
88328d4ef0
Eliminate structure typedefs
...
Documentation/CodingStyle says that 'typedef struct foo foo_t' is
evil. I tend to agree. Elminate all uses of such construct.
2007-06-29 15:27:38 -07:00
Alan Hourihane
14c49df06b
merge fixes
2007-06-29 20:14:09 +01:00
Alan Hourihane
8a78dead29
Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm into modesetting-101
...
Conflicts:
linux-core/drm_drv.c
linux-core/drm_fops.c
linux-core/drm_objects.h
linux-core/drm_stub.c
shared-core/i915_dma.c
2007-06-29 20:09:44 +01:00
Ian Romanick
33b8476dfb
Fix return type of xgi_find_pcie_block.
...
This function used to return 'void *', which was then cast to
'xgi_pcie_block_t *' at the only caller. I changed the return type to
'struct xgi_pcie_block_s *' and removed the explicit cast.
2007-06-29 09:30:02 -07:00
Thomas Hellstrom
a27af4c4a6
Avoid hitting BUG() for kernel-only fence objects.
2007-06-29 15:22:28 +02:00
Thomas Hellstrom
00f1a66f22
Fence object reference / dereference cleanup.
...
Buffer object dereference cleanup.
Add a struct drm_device member to fence objects:
This can simplify code, particularly in drivers.
2007-06-29 12:58:45 +02:00
Ian Romanick
475c1e67ba
Remove unused type 'struct xgi_pcie_list_s' / xgi_pcie_list_t.
2007-06-28 23:40:36 -07:00
Ian Romanick
8fa24c53f5
Minor clean up of variable declarations in xgi_find_pcie_virt.
2007-06-28 22:32:11 -07:00
Ian Romanick
9c85fb866d
Clean up debug log messages in xgi_find_pcie_block.
2007-06-28 22:26:39 -07:00
Ian Romanick
11ffe4632a
Convert comment header of xgi_find_pcie_virt to kernel doc format.
2007-06-28 22:20:13 -07:00
Alan Hourihane
e79e2a5816
Fix type/flags usage problem to check for preferred modes.
...
Add more debugging to help diagnose problems.
2007-06-28 21:25:13 +01:00
Ben Skeggs
ce0d528d3c
nouveau/nv50: skeletal backend
2007-06-28 03:26:43 +10:00
Ben Skeggs
695599f18d
nouveau: Nuke DMA_OBJECT_INIT ioctl (bumps interface to 0.0.7)
...
For various reasons, this ioctl was a bad idea.
At channel creation we now automatically create DMA objects covering
available VRAM and GART memory, where the client used to do this themselves.
However, there is still a need to be able to create DMA objects pointing at
specific areas of memory (ie. notifiers). Each channel is now allocated a
small amount of memory from which a client can suballocate things (such as
notifiers), and have a DMA object created which covers the suballocated area.
The NOTIFIER_ALLOC ioctl exposes this functionality.
2007-06-28 03:26:43 +10:00
Ian Romanick
8cee7dca95
Clean up warnings about unused variables and functions.
2007-06-26 13:46:36 -07:00
Ian Romanick
b9ef1467fe
Clean up mixed declarations and code.
2007-06-26 13:39:01 -07:00
Ian Romanick
3547fbda63
Revert over-zealous change from previous commit.
2007-06-26 13:29:28 -07:00
Ian Romanick
3a776fa01e
Add XGI driver to Makefiles.
2007-06-26 13:26:10 -07:00
Ian Romanick
47bf6239aa
Clean up compile-time kernel feature detection.
2007-06-26 13:20:15 -07:00
Ian Romanick
7a053306a9
linux/config.h is deprecated or gone.
2007-06-26 13:16:04 -07:00
Ian Romanick
ec9e494eb9
Gut support for pre-2.6 kernels.
2007-06-26 13:15:22 -07:00
Ian Romanick
434657a258
dos2unix and Lindent
2007-06-26 13:10:30 -07:00
Ian Romanick
7af9d67037
Initial XP10 code drop from XGI.
...
See attachment 10246 on https://bugs.freedesktop.org/show_bug.cgi?id=5921
2007-06-26 13:05:29 -07:00
Ben Skeggs
341bc78207
nouveau: NV1X/2X/3X PFIFO engtab functions
...
Earlier NV1X chips use the NV04 code, see previous commits about NV10 RAMFC
entry size.
2007-06-24 18:58:14 +10:00
Ben Skeggs
05d86d950a
nouveau: NV04 PFIFO engtab functions
2007-06-24 18:57:09 +10:00
Ben Skeggs
f2e64d5276
nouveau: NV4X PFIFO engtab functions
2007-06-24 18:56:01 +10:00
David Woodhouse
638ebbab54
fix radeon setparam on 32/64 systems, harder.
...
Commit 9b01bd5b284bbf519b726b39f1352023cb5e9e69 introduced a
compat_ioctl handler for RADEON_SETPARAM, the sole purpose of which was
to handle the fact that on i386, alignof(uint64_t)==4.
Unfortunately, this handler was installed for _all_ 64-bit
architectures, instead of only x86_64 and ia64. And thus it breaks
32-bit compatibility on every other arch, where 64-bit integers are
aligned to 8 bytes in 32-bit mode just the same as in 64-bit mode.
Arnd has a cunning plan to use 'compat_u64' with appropriate alignment
attributes according to the 32-bit ABI, but for now let's just make the
compat_radeon_cp_setparam routine entirely disappear on 64-bit machines
whose 32-bit compat support isn't for i386. It would be a no-op with
compat_u64 anyway.
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2007-06-18 12:46:00 +10:00
Michel Dänzer
3d5d41fa98
i915: Fix handling of breadcrumb counter wraparounds.
2007-06-15 17:13:11 +02:00
Thomas Hellstrom
84bea38353
Fix i915 sequence mask.
2007-06-15 10:35:52 +02:00
Thomas Hellstrom
3ee31a1f35
Indentation fixes.
2007-06-15 10:31:32 +02:00
Thomas Hellstrom
d34b2c7b9e
Fix refcounting / lock race.
...
Reported by Steve Wilkins / Michel Dnzer.
2007-06-15 10:26:51 +02:00
Thomas Hellstrom
e1b8eabeee
Locking fixes and instrumentation.
2007-06-15 10:26:51 +02:00
Thomas Hellstrom
62082ab3e6
Make sure we read fence->signaled while spinlocked.
2007-06-13 15:38:59 +02:00
Thomas Hellstrom
5156f1c897
Fix fence object deref race.
2007-06-13 15:19:30 +02:00
Thomas Hellstrom
f984b1b8d1
Fix some obvious bugs.
2007-06-12 12:30:33 +02:00
Thomas Hellstrom
b6b5df24b9
Try to make buffer object / fence object ioctl args 64-bit safe.
...
Introduce tile members for future tiled buffer support.
Allow user-space to explicitly define a fence-class.
Remove the implicit fence-class mechanism.
64-bit wide buffer object flag member.
2007-06-12 12:21:38 +02:00
Dave Airlie
280083d4a2
use krh's idr mods to remove lists from idr code
2007-06-10 15:40:21 +10:00
Dave Airlie
7426da7538
oops must fix this properly at some point
2007-06-07 18:45:00 +10:00
Dave Airlie
e22f428f5f
drm: fix radeon setparam alignment issues on 32/64-bit
2007-06-07 18:41:18 +10:00
Dave Airlie
abf35cbdcf
radeon: PCIGART memory is Can't map aperture as well there is one
...
on the CPU.... with this my indirect buffers at least start to live..
(cherry picked from commit 699cd9fc6c3794856f7e602088c77d0dfc11a122)
2007-06-07 15:37:03 +10:00
Dave Airlie
03ce98aa28
set start to gart_vm_start at least
2007-06-05 18:23:24 +10:00
Dave Airlie
96705ce664
add wbinvd calls
2007-06-05 18:23:05 +10:00
Dave Airlie
5bd0ca125e
remove include of linux ioctl32.h from drm drivers
2007-06-05 18:16:44 +10:00
Dave Airlie
4294dcc050
complete PCIE backend for ttm
...
ttm test runs with it at least, needs to do more testing on it
2007-06-05 12:26:06 +10:00
Dave Airlie
234a906200
WIP cleanup
2007-06-05 10:47:42 +10:00
Dave Airlie
77b9d9d16b
cleanup pcigart ttm for new backend layout
2007-06-05 10:35:41 +10:00
Dave Airlie
07345af838
Merge branch 'origin' into radeon-ttm
...
Conflicts:
shared-core/radeon_drv.h
2007-06-05 10:09:11 +10:00
root
a4cddc6596
Revert "drm: add new drm_wait_on function to replace macro"
...
This reverts commit 6e860d08d0
.
As I said not a good plan - this macro will have to stay for now,
trying to do the vbl code with the inline was a bit messy - may need specialised
drm wait on functions
2007-06-03 18:12:28 +10:00
Dave Airlie
4e9d215bdf
radeon: add support for vblank on crtc2
...
This add support for CRTC2 vblank on radeon similiar to the i915 support
2007-06-03 16:28:21 +10:00
Dave Airlie
638c8087de
drm: fixup initialisation of list heads and idr
2007-06-01 19:00:24 +10:00
David Airlie
704ca06389
WIP more code for radeon
2007-06-01 18:12:45 +10:00
Dave Airlie
056c2f249a
drm: move context handling code to use linux idr
2007-05-27 08:44:38 +10:00
Dave Airlie
f64674743a
drm: convert drawable handling to use Linux idr
...
This cleans this code up a lot and uses the generic Linux idr which is
designed for this.
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-05-27 07:26:52 +10:00
Michel Dänzer
8e083c522e
drm: make sure the drawable code doesn't call malloc(0).
...
Signed-off-by: Michel Dänzer <michel@tungstengraphics.com>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-05-26 04:35:54 +10:00
Dave Airlie
58b2ed7832
Revert "drm/ttm: cleanup mm_ioctl ioctls to be separate ioctls."
...
This reverts commit 3fdef0dc20
.
ditto not on master yet
2007-05-26 03:48:08 +10:00
Dave Airlie
375f3f2884
Revert "drm/ttm: cleanup most of fence ioctl split out"
...
This reverts commit 3dfc1400e9
.
this shouldn't have gone on master yet
2007-05-26 03:47:48 +10:00
Dave Airlie
ce58e53a01
whitespace fixups from kernel
2007-05-26 03:32:34 +10:00
Dave Airlie
adee6f52e6
ati_pcigart: cut to 80 chars
2007-05-26 03:32:34 +10:00
Dave Airlie
3dfc1400e9
drm/ttm: cleanup most of fence ioctl split out
2007-05-26 03:32:34 +10:00
Dave Airlie
3fdef0dc20
drm/ttm: cleanup mm_ioctl ioctls to be separate ioctls.
...
This is the first bunch of ioctls
2007-05-26 03:32:34 +10:00
Dave Airlie
7b48f0022a
drm: cleanup use of Linux list handling macros
...
This makes the drms use of the list handling macros a lot cleaner
and more along the lines of how they should be used.
2007-05-26 04:26:24 +10:00
Jesse Barnes
fa92e1f2ec
Suspend/resume shouldn't call drm_initial_config (seems to work ok for me now),
...
also we should fail if we can't enable the device at resume time.
2007-05-24 18:41:44 -07:00
Jesse Barnes
462d5a0dfc
Suspend/resume support (incomplete).
2007-05-22 17:49:04 -07:00
Jesse Barnes
e918d2b781
Call preallocated space VRAM instead of PRIV0 to be more consistent with
...
other drivers.
2007-05-22 13:38:58 -07:00
Jesse Barnes
a4929b921e
Merge branch 'modesetting-101' of git+ssh://git.freedesktop.org/git/mesa/drm into origin/modesetting-101
...
Conflicts:
linux-core/drm_crtc.c - reconcile with locking changes
2007-05-18 09:42:51 -07:00
Jesse Barnes
f894587221
Add locking. The main lock is dev->mode_config.config_lock. It should be
...
held across any operations that modify mode lists, crtc config, output
config, etc. It should be taken at high level entry points (currently just
initial config and user IOCTL).
Seems to work ok on my system, but needs more testing (with lockdep) and
review from some fresh eyes.
2007-05-18 09:40:01 -07:00
Alan Hourihane
d42c1de3fb
Change some printk's to DRM_DEBUG's
2007-05-18 14:16:27 +01:00
Alan Hourihane
0c33a2cd2e
Move fbo creation to the specified fb driver which gives
...
it a chance to allocate the memory from whichever buffer it wants to.
2007-05-18 14:16:10 +01:00
Alan Hourihane
315cf14af8
Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm into modesetting-101
...
Conflicts:
shared-core/i915_dma.c
2007-05-18 13:48:56 +01:00
Alan Hourihane
95945bbf22
Set crtcinfo on temporary mode
2007-05-17 23:33:48 +01:00
Jesse Barnes
f3beabedc3
Remove unused edid.h header from X.Org.
2007-05-17 13:48:46 -07:00
Alan Hourihane
c0479dad8e
bring in change from drm_fb.c
2007-05-17 19:32:46 +01:00
Alan Hourihane
07a5fbaa61
Move destruction of crtc as intelfb_remove uses the crtc to locate the fb.
2007-05-17 19:28:03 +01:00
Jesse Barnes
b7bf317f42
Merge branch 'modesetting-101' of git+ssh://git.freedesktop.org/git/mesa/drm into origin/modesetting-101
...
Conflicts:
linux-core/drm_crtc.c
linux-core/drm_fb.c
Lots of changes to merge with alanh's latest stuff:
o fix use of fb->pitch now that it has the right value
o add new helper for finding the CRTC given an FB
o fix new fb_probe/fb_remove functions to take a CRTC
o fixup callers of new FB routines
o port drm_fb changes to intel_fb
o check for errors after creating fb buffer object
o go back to using cfb_imageblit since the accel stubs aren't ready
2007-05-17 10:35:07 -07:00
Alan Hourihane
fd63ea9713
Grab the default mode if the preferred mode isn't available.
...
Fix an overflow problem.
2007-05-17 17:00:11 +01:00
Jesse Barnes
a18b4befb9
Fix FB pitch value (we had it wrong and were working around it in a few
...
places).
Add new FB hooks to the drm driver structure and make i915 use them for an
Intel specific FB driver. This will allow acceleration and better handling
of the command stream.
2007-05-17 09:00:06 -07:00
Stephane Marchesin
ea98d7e796
nouveau: don't build the module by default
2007-05-17 17:35:51 +02:00
Alan Hourihane
2222bd767f
Fix build problem
2007-05-17 13:19:56 +01:00
root
5ce8aaae72
Large changes for fbdev support.
...
Change from DIRECTCOLOR to TRUECOLOR, and enable
support for PSEUDOCOLOR. DIRECTCOLOR support needs more work.
Add the ability to change the mode on the fbdev device.
Support depth 8, 15, 16 and 24 (and 32).
Add a /dev/fbX device per CRTC, but there's some code which
doesn't allocate the fbX device unless the output is actually
enabled. Read the code on this as it impacts the fbcon map flags.
Pick CRTC's based on the available outputs. More work could
be done here to match modes, so cloning could be achieved on
outputs. This fits more inline with what the X code does.
2007-05-17 12:46:36 +01:00
Alan Hourihane
eba00df120
Just some minor cleanups.
2007-05-10 13:16:05 +01:00
Dave Airlie
b2a875ba89
ttm: complete drm buffer object ioctl split
...
retain the op operation for validate/fence operations
2007-05-08 18:25:15 +10:00
Dave Airlie
ae677472af
drm/ttm: remove old fence ioctl
2007-05-08 17:55:57 +10:00
Dave Airlie
25c51f539f
drm/ttm: ioctl cleanup for buffer object - user side only
...
This just cleans up the xf86drm.c to what I want and drm.h,
I need to fix up the kernel internals to suit these changes now.
I've moved to using struct instead of typedefs for the bo and it doesn't look
that bad so I'll do the same thing for mm and fence..
2007-05-08 17:53:58 +10:00
Brian
c4e2caec44
s/OJBECTS/OBJECTS/
2007-05-06 10:09:59 -06:00
Dave Airlie
6a62941eca
drm/ttm: cleanup most of fence ioctl split out
2007-05-06 11:35:11 +10:00
Dave Airlie
ee8954cb53
drm/ttm: cleanup mm_ioctl ioctls to be separate ioctls.
...
This is the first bunch of ioctls
2007-05-06 11:17:30 +10:00
Dave Airlie
c9cd2c768b
drm: remove unused define DRM_HAS_TTM
2007-05-06 10:50:10 +10:00
Dave Airlie
3a69e2484a
cleanup usermodes on drm mode setting shutdown
2007-05-01 14:20:22 +10:00
Dave Airlie
89231953d1
Add support for user defined modes
...
This allows userspace to specify modes and add them to the modesetting
system and attach modes to outputs
2007-05-01 13:16:29 +10:00
Dave Airlie
8e8e37515e
fix unusued variable
2007-05-01 13:15:41 +10:00
Dave Airlie
6e860d08d0
drm: add new drm_wait_on function to replace macro
2007-04-28 15:07:43 +10:00
Dave Airlie
e9b3acd257
remove register usage
2007-04-28 15:07:43 +10:00
Dave Airlie
9f9c19065c
remove DRM_GETSAREA and replace with drm_getsarea function
2007-04-28 15:07:43 +10:00
George Sapountzis
3a2c9f4621
linux: minor indent.
2007-04-26 14:16:28 +03:00
Dave Airlie
afc029e935
whitespace cleanup
2007-04-26 16:25:43 +10:00
Dave Airlie
e5c1f1caa2
remove some whitespace violation
2007-04-26 16:22:28 +10:00
Dave Airlie
4b72759b30
drm: nopfn warning on 64-bit
2007-04-26 16:22:11 +10:00
Jesse Barnes
71d44cda52
drm/ttm: allow drm_buffer_object_create to be used in-kernel
2007-04-26 16:09:24 +10:00
Jesse Barnes
3c384a9ad5
Add new buffer object type for kernel allocations that don't initially have a user mapping.
...
(cherry picked from commit 2e21779992
)
2007-04-26 16:04:09 +10:00
Dave Airlie
b589b846e7
Merge branch 'origin' into modesetting-101
2007-04-26 15:56:21 +10:00
Dave Airlie
34be91fe4e
i915: fix vblank pipe setup
2007-04-26 14:50:00 +10:00
Dave Airlie
ceb44021ad
drm: make mode numbers no change by comparing probed modes
...
The mode list sets all the output modes to UNVERIFIED, then probes a new list,
If a mode is on the new list and not on the old, it adds it to the old,
if a mode is on the new list and old, it just updates the status to the new
mode status.
If a mode is on the old list and not on the new, prune invalid modes should
remove all UNVERIFIED modes
2007-04-23 11:42:29 +10:00
Dave Airlie
0f3c5148f0
fixup vrefresh reporting, it should now be *1000 in userspace
2007-04-23 09:10:46 +10:00
Jesse Barnes
97b5599982
Oops, edid data should just be a char *, as edid.h is private to edid.c
...
(we can just recombine them now).
2007-04-20 18:00:44 -07:00
Jesse Barnes
eb892fb09d
Add a monitor information structure separate from the EDID data for tracking
...
monitor limits, etc.
2007-04-20 17:59:30 -07:00
Jesse Barnes
a21ff375c6
Document drm_modes.c functions.
2007-04-20 17:03:50 -07:00
Jesse Barnes
9ca4932054
Add a mode name generation wrapper to make name format changes easier.
2007-04-20 16:32:58 -07:00
Kristian Høgsberg
2d1de1fc6b
Initialize rwlock using rwlock_init to appease lockdep validator.
2007-04-20 18:12:18 -04:00
Kristian Høgsberg
af3ffcd822
Initialize rwlock using rwlock_init to appease lockdep validator.
2007-04-20 18:06:31 -04:00
Kristian Høgsberg
6238ebee21
Clean up and return if no outputs are found.
2007-04-20 16:52:04 -04:00
Thomas Hellstrom
a8a8108e45
Avoid a fence timeout problem when a signal is pending.
2007-04-20 15:57:41 +02:00
Thomas Hellstrom
1ce9c09231
Fix via compile error
...
(Reported by Benno Schulenberg.)
2007-04-20 15:49:31 +02:00
Dave Airlie
8d893e49ec
backout SDVO control bus check and comment why this is a bad idea
2007-04-19 09:43:46 +10:00
Jesse Barnes
5587961cfe
Document main drm_crtc.c functions, and rename drm_crtc_mode_create to
...
drm_mode_create to be consistent with the other functions. Also document
where we need locking fixes and what the locks are for.
2007-04-18 11:49:42 -07:00
Thomas Hellstrom
2df2c70e20
Simplify the ttm backend interface and the agp ttm backend.
2007-04-18 16:33:28 +02:00
Alan Hourihane
dfc02547ff
Shouldn't free the mode here. It's done later on.
2007-04-18 14:18:56 +01:00
Alan Hourihane
b642ced083
Fix return status
2007-04-18 13:52:46 +01:00
Alan Hourihane
0207b51acc
Fix build problem
2007-04-18 12:19:16 +01:00
Alan Hourihane
87b46bd436
free the duplicated mode.
2007-04-18 12:10:06 +01:00
Alan Hourihane
191594ebd5
When no valid EDID modes are available, we bail.
...
This snippet adds a standard 640x480 @ 60Hz mode when
that occurs, so we can continue with a basic mode.
Should we do this here though ???
2007-04-18 12:07:55 +01:00
Alan Hourihane
ef2bce3a16
Merge remote branch 'origin/modesetting-101' into modesetting-101
2007-04-18 11:55:09 +01:00
Alan Hourihane
51e867c578
Support the RGB outputs of SDVO cards, which are essentially
...
VGA outs.
The drm_initial_config path has specific handling code to name
match for VGA, TMDS or LVDS. This is pretty restrictive and should
probably be dealt with to be more generic.
2007-04-18 11:53:25 +01:00
Alan Hourihane
ea8bcb466b
Check status after SDVO command for sdvo_set_control_bus_switch
2007-04-18 11:47:21 +01:00
Alan Hourihane
dc03e07f23
Move SDVO PENDING check to read_response so all SDVO commands
...
benefit from the spin loop.
2007-04-18 11:46:04 +01:00
Dave Airlie
20b2949e37
make sure TMDS gets a crtc
2007-04-18 14:55:43 +10:00
Dave Airlie
e46e028bd2
Merge branch 'origin' into modesetting-101
...
Conflicts:
linux-core/drm_bo.c
Merge in changes from master from Thomas fixiing TTM problems
2007-04-18 14:11:49 +10:00
Jesse Barnes
c71c44bb92
Merge branch 'modesetting-101' of git+ssh://git.freedesktop.org/git/mesa/drm into origin/modesetting-101
2007-04-17 18:20:05 -07:00
Jesse Barnes
4f0841a31c
Just use drm_output_destroy to cleanup LVDS failures. It'll call our cleanup
...
routine, which will take care of freeing our dev_priv and i2c ddc bus.
2007-04-17 18:03:14 -07:00
Dave Airlie
d20aaf4858
don't crash if no desired mode
2007-04-18 10:41:39 +10:00
Dave Airlie
2352ec9bfa
backout alanh's broken commit
2007-04-18 10:39:58 +10:00
David Airlie
7c9e19ba55
clean up ring buffer and TTM in i915_driver_unload
...
I've commented out the framebuffer for now
2007-04-18 10:39:27 +10:00
Jesse Barnes
73b031df61
Add framebuffer bo freeing to drm_mode_config_cleanup (seems like the best
...
place for now).
2007-04-17 17:30:46 -07:00
Jakob Bornecrantz
a45fa264f2
Lvds now power up backlight on commit
...
Now saves previous power level in prepare and sets
that power level in commit, should power level
be 0 it will set maximum level.
2007-04-17 22:27:46 +02:00
Jesse Barnes
1c7f895fa6
Merge branch 'modesetting-101' of git+ssh://git.freedesktop.org/git/mesa/drm into origin/modesetting-101
...
Conflicts:
shared-core/i915_init.c - reconcile with airlied's new code
2007-04-17 10:14:18 -07:00
Jesse Barnes
4e4d9cbeb3
Move initial framebuffer allocation and configuration to drm_initial_config,
...
remove i915_driver_load fb related stuff. Add a small helper for setting up
outputs.
2007-04-17 10:00:37 -07:00
Jesse Barnes
5e6c345396
Add prototypes for drm_bo_init_mm and drm_buffer_object_create for use by
...
in-kernel code.
2007-04-17 09:57:08 -07:00
Alan Hourihane
b729b919ba
Fix a register read that was swapped SDVOB/SDVOC
...
Check for the PENDING message when reading the attached
displays. Ensures the command has completed before continuing.
(probably need to check PENDING in other SDVO calls too)
2007-04-17 16:11:00 +01:00
Alan Hourihane
ecd9801c3c
Fix SDVO outputs
2007-04-17 16:09:40 +01:00
Thomas Hellstrom
5a96d59ce9
Don't always free up memory space when we unpin buffers.
2007-04-17 14:15:37 +02:00
Thomas Hellstrom
5432cc4abf
Fix buffer object reference problems.
...
(Reported by Dave Airlie).
2007-04-17 10:53:19 +02:00
Dave Airlie
1a5e647f63
I don't think this dec is necessary and my stuff all works without ..
...
with it everything falls over
2007-04-17 18:18:42 +10:00
Dave Airlie
56ef1ab8ac
add some missing export symbols
2007-04-17 18:18:25 +10:00
Dave Airlie
79aa1d5474
another large overhaul of interactions with userspace...
...
We need to keep a list of user created fbs to nuke on master exit.
We also need to use the bo properly.
2007-04-17 18:16:38 +10:00
Thomas Hellstrom
e91ceff6c9
Add a code comment.
2007-04-17 08:46:45 +02:00
Jakob Bornecrantz
cd5769c3b5
Fix offset should from pci device address
2007-04-16 20:54:24 +02:00
Thomas Hellstrom
e6e4946c82
Require the hardware lock for buffer creation
...
(since that implies a validate).
Fix drm_bo_wait_unfenced error messages and codes.
Fix some return codes from libdrm.
2007-04-16 16:23:05 +02:00
Jesse Barnes
2aa183db1f
Use drm_mem_reg_ioremap to map buffer object.
2007-04-14 15:35:38 -07:00
Jesse Barnes
65619cab27
Fix PRIV0 memory initialization (mm_init takes pages, not bytes), align fb
...
allocation correctly, and use drm_mem_reg_iomap to map ring buffer object.
2007-04-14 15:35:21 -07:00
Jakob Bornecrantz
c4e944182d
Added debug messages so we know which output we are dealing with
2007-04-13 10:13:25 +02:00
David Airlie
cc471a361f
i915/drm: clean up a lot of the i915/drm startup/teardown sequences
...
When the kernel driver is loaded it sets up a lot of stuff..
it tears down the same stuff on unload.
This add a new map type called DRM_DRIVER which means the driver will clean the mapping up
and fix up the map cleaner
2007-04-13 14:51:16 +10:00
David Airlie
27598bacfd
export drm_bo_driver_finish symbol
2007-04-13 14:50:31 +10:00
David Airlie
a890d596fc
revert LVDS destroy - this oops on sysfs on sdvo init of i2c bus
2007-04-13 14:50:31 +10:00
Jesse Barnes
9f0f6509f5
Move driver load call to after AGP init, in case the load routine needs AGP stuff.
2007-04-12 18:30:36 -07:00
Jesse Barnes
79b7a588bb
Oops, forgot to push the msleep() in the hotplug test. Wouldn't want to
...
spin in the kernel for a whole second w/o it...
2007-04-12 14:57:07 -07:00
Jesse Barnes
9a39cb9b9a
Use crtc_from_pipe call in intel_lvds.c and add get_mode panel mode detection. Also fix up error case for when LVDS mode can't be determined. Leave placeholder code in place for BIOS mode probing and platform quirks.
2007-04-12 12:43:47 -07:00
Jesse Barnes
6b229c1e59
Add new function for getting a CRTC pointer given a pipe number.
2007-04-12 12:41:56 -07:00
Jesse Barnes
9e5d61d5b8
Fix 945+ hotplug detection, remove some unused variables.
2007-04-12 12:40:51 -07:00
Jesse Barnes
fb3c82f1d8
Don't need a NULL check prior to calling kfree.
2007-04-12 11:50:57 -07:00
Jesse Barnes
c2fce380c2
Move i2c init back to where it belongs and add i2c unregistration in *_destroy.
2007-04-12 08:57:58 -07:00
Jesse Barnes
258e1cf703
Whitespace cleanup
2007-04-12 08:56:34 -07:00
Jesse Barnes
e7b97f5523
Merge branch 'modesetting-101' of git+ssh://git.freedesktop.org/git/mesa/drm into origin/modesetting-101
2007-04-12 08:55:51 -07:00
Jesse Barnes
f2e3d790ac
Revert "Export drm_setup for use by new driver init code.", we don't really want to use this function
...
This reverts commit e114b981bc
.
2007-04-12 08:53:03 -07:00
Alan Hourihane
cf01689143
Use drm_framebuffer instead of drm_crtc for fb & fbt
2007-04-12 15:12:00 +01:00
Alan Hourihane
a85440c8a6
Remove extraneous drm_crtc.h include
2007-04-12 15:11:38 +01:00
Alan Hourihane
9420ab4b41
Merge remote branch 'origin/modesetting-101' into modesetting-101
2007-04-12 15:10:08 +01:00
Dave Airlie
1bba3cb3b3
cleanup framebuffers on drm unload
2007-04-12 11:55:10 +10:00
Dave Airlie
fb6c5aacb9
only initialise modes when fbcon or fbset asks for it
2007-04-12 11:54:49 +10:00