Commit Graph

1096 Commits (8a78dead291ffdb5a8774419cdca369a1e27cad9)

Author SHA1 Message Date
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
Dave Airlie b49b3ba4c1 set bracing style like Linux 2007-04-12 11:43:13 +10:00
Dave Airlie a5cf4cc369 fix unbalanced lock and make sure mode list has modes so lvds code doesn't crash 2007-04-12 11:28:55 +10:00
Dave Airlie 981f8156de allow framebuffer changes on the crtc setup 2007-04-12 08:54:31 +10:00
Dave Airlie a81558d8b3 add getfb ioctl 2007-04-12 08:45:40 +10:00
Jesse Barnes 2e21779992 Add new buffer object type for kernel allocations that don't initially have a user mapping. 2007-04-11 12:51:52 -07:00
Jesse Barnes 63d4d40463 Fix i2c unregistration, cleanup panel_fixed_mode assignment. 2007-04-11 11:46:37 -07:00
Jesse Barnes 425da42e95 Whitespace cleanups. 2007-04-11 11:44:54 -07:00
Jesse Barnes c731b68091 Fix EDID pixel clock calculation. 2007-04-11 11:42:00 -07:00
Jesse Barnes cc7faa4de8 fix modeset cleanup for LVDS and reenable it in i915. 2007-04-11 07:21:24 -07:00
Jesse Barnes dd00aa5851 export vblank routine for use by intel_display.c and intel_sdvo.c. 2007-04-11 07:08:48 -07:00
Jesse Barnes f35db66906 Fixup DDC probing. We only have one DDC bus so we have to use it only
on demand, and unregister when we're done.
2007-04-11 07:08:29 -07:00
Jesse Barnes 78598fdaa8 Various changes for in-kernel modesetting:
- allow drm_buffer_object_create to be called w/o dev_mapping
  - fixup i915 init code to allocate memory, fb and set modes right
  - pass fb to drm_initial_config for setup
  - change some debug output to make it easier to spot
  - fixup lvds code to use DDC probing correctly
2007-04-11 07:07:54 -07:00
David Airlie 7e48d47fb5 line_length calculation was incorrect.. I now can get fbcon to run 2007-04-11 17:35:00 +10:00
David Airlie 0392badd84 oops for 32 pitch.. hey I can see stuff on fbcon now.. it looks like text.. just a bit garbled 2007-04-11 17:25:37 +10:00
David Airlie 1147fefed8 fixup framebuffer depth 2007-04-11 17:13:57 +10:00
David Airlie a6cc6a778f add support for setting a framebuffer depth 2007-04-11 17:13:45 +10:00
Dave Airlie c582eaac19 add copyright statement 2007-04-11 16:34:40 +10:00
Dave Airlie 32f6a58db2 add initial drm_fb framebuffer
So far I can load fbcon, once I use my miniglx to add a framebuffer.
fbcon doesn't show anything on screen but baby steps and all that.
2007-04-11 16:33:03 +10:00
Dave Airlie 9d12da5917 only bo finish at driver unload 2007-04-11 14:34:22 +10:00
root 7e58276c76 Revert "Remove some delays from Intel i2c code, we'll need a more comprehensive fix"
This reverts commit c033698988.

this break SDVO
2007-04-11 13:40:50 +10:00
David Airlie 44be9c9d59 add an fb count + id get to the get resources code path 2007-04-11 13:26:21 +10:00
David Airlie 3e994a56be use fb pitch and fix up some whitespace 2007-04-11 13:26:21 +10:00
Jesse Barnes f50eec752c Merge branch 'modesetting-101' of git+ssh://git.freedesktop.org/git/mesa/drm into origin/modesetting-101 2007-04-10 17:58:30 -07:00
David Airlie b62ffb8e91 fixup calculation to make sdvo work 2007-04-11 09:56:09 +10:00
Jesse Barnes 44a8761302 Merge branch 'modesetting-101' of git+ssh://git.freedesktop.org/git/mesa/drm into origin/modesetting-101
Conflicts:

	linux-core/drm_crtc.c - trivial merge
	linux-core/drm_crtc.h - trivial merge
	linux-core/intel_display.c - crtc_config -> mode_config
	shared-core/i915_dma.c - accommodate new init code in i915_init.c
2007-04-10 10:45:55 -07:00
Jesse Barnes e114b981bc Export drm_setup for use by new driver init code. 2007-04-10 10:31:58 -07:00
Jesse Barnes b59285d738 Move i915 init code to new file, i915_init.c, and create a new high level
init routine that runs at driver load time.
2007-04-10 10:31:10 -07:00
Jesse Barnes 8785679f89 Remove some debug #if 0 codes and add a reminder to check locking around
output enumeration stuff.
2007-04-10 09:49:02 -07:00
Jesse Barnes c033698988 Remove some delays from Intel i2c code, we'll need a more comprehensive fix
in the Linux i2c layer to make DDC reliable on old monitors.
2007-04-10 09:48:20 -07:00
Jesse Barnes 183cbd92dd Finish bringing in LVDS code, re-add to Makefile. Needed other changes too:
- move EDID structures to drm_edid.h
  - add EDID info structure to drm_output
  - add a few routines to intel_display for getting current mode info
  - add some prototypes to intel_drv.h and drm_crtc.h
2007-04-10 09:47:37 -07:00
David Airlie 50672adb31 add sdvo debugging output 2007-04-10 16:49:36 +10:00
David Airlie b9c7fa55e2 fixup sarea writes for set pipe base and dpms 2007-04-10 16:32:17 +10:00
David Airlie 23a66fd506 fixup true/false in intel_sdvo.c 2007-04-10 16:26:07 +10:00
David Airlie f1476e4e5c re-tab and fixup the i915GM get core clock function to actually work 2007-04-10 16:25:52 +10:00
David Airlie 1e39dc4323 export output name to userspace 2007-04-10 16:25:31 +10:00
David Airlie 40bd6dcd86 set the base address of the CRTC correctly 2007-04-10 15:20:50 +10:00
David Airlie 65f465ed5a fixup numerous issues with adding framebuffer support
This still isn't perfect but it fixes a few oopses and cleans up
some of the tabs and bugs in the original fb limit code
2007-04-10 14:49:49 +10:00
Jesse Barnes c446bf50e3 Slam in most of X.Org's i830_lvds (not quite done yet so removed from Makefile.kernel too). 2007-04-09 20:46:38 -07:00
David Airlie eb9bdc2787 mode: fixup problems with framebuffer add function 2007-04-10 11:51:31 +10:00
Dave Airlie ed0ebd9d3d make crtc_config be named mode_config
X.org calls this crtc_config but this is a bad name and will confuse ppl later
(and me now :-)
2007-04-10 18:56:02 +10:00
Jakob Bornecrantz b50bda002b add addfb/rmfb ioctls
Originally from Jakob, cleaned up by airlied.
2007-04-10 18:44:47 +10:00
Jesse Barnes 7e2b1a6cf5 Fix refresh calculation (mistakenly removed 1000 factor needed for integer calulations, fixed mode printout debugging routine instead). 2007-04-09 08:52:53 -07:00
Dave Airlie a70f8e0ab2 radeon: add support for reverse engineered xpress200m
The IGPGART setup code was traced using mmio-trace on fglrx by myself
and Phillip Ezolt <phillipezolt@gmail.com> on dri-devel.

This code doesn't let the 3D driver work properly as the card has no
vertex shader support.

Thanks to Matthew Garrett + Ubuntu for providing me some hardware to do this
work on.
2007-04-09 21:52:59 +10:00
Jesse Barnes ab7ee9c1af remove a printk to make things less verbose 2007-04-07 19:26:55 -07:00
Jesse Barnes 2430d0c315 just codingstyle cleanups 2007-04-07 19:25:25 -07:00
Jesse Barnes 491ed9e4c2 document drm_mode_duplicate and fix vrefresh calculation (off by 1000 error) 2007-04-07 19:24:53 -07:00
Jesse Barnes 13d4ea90c0 various cleanups to EDID code:
- pull in FB DDC code (we'll have to rewrite it anyway it appears)
  - add comments
  - note a few FIXMEs
  - make it less quiet, and more informative when it actually does print
2007-04-07 19:24:09 -07:00
Jesse Barnes a35ba455b2 make drmP.h include drm_crtc.h for CRTC related stuff.
fixup drm_crtc.c so it matches VGA and other outputs properly.
make drm_crtc.c less verbose.
add function declarations in drm_crtc.h for other files.
2007-04-07 19:22:39 -07:00
Dave Airlie b25558bb73 fixup install target, not sure what I was smokin... 2007-04-07 07:21:05 +10:00
Eric Anholt 1c9ba24c2f Add required permission notices for code copied from X.Org source. 2007-04-05 11:34:11 -07:00
Jesse Barnes 50ee722e01 Merge branch 'modesetting-101' of git+ssh://git.freedesktop.org/git/mesa/drm into modesetting-101 2007-04-05 09:27:12 -07:00
Jesse Barnes 6f3534a13a Add copyrights before I forget 2007-04-05 09:21:31 -07:00
Dave Airlie 652bbb77f6 add back compat for bool 2007-04-05 20:20:33 +10:00
Dave Airlie b4094864f1 checkpoint commit: implement SetCrtc so modes can in theory be set from user
This hooks up the userspace mode set it "seems" to work.
2007-04-05 18:01:02 +10:00
Dave Airlie 7bb112feca checkpoint commit: added getresources, crtc and output
This adds the user interfaces from Jakob and hooks them up for 3 ioctls
GetResources, GetCrtc and GetOutput.

I've made the ids for everything fbs, crtcs, outputs and modes go via idr as
per krh's suggestion on irc as it make the code nice and consistent.
2007-04-05 17:06:42 +10:00
Dave Airlie 5bffbd6e27 initial userspace interface to get modes 2007-04-05 13:34:50 +10:00
Dave Airlie 52f9028c84 Initial import of modesetting for intel driver in DRM 2007-04-05 11:21:06 +10:00
Dave Airlie 8fe8793a0f borrow edid.h from fb directory 2007-04-05 11:20:23 +10:00
Dave Airlie 9c79371659 add an install target to the drm modules makefile 2007-04-05 11:18:00 +10:00
Thomas Hellstrom c496827921 Fix user object reference when caller is not object creator.
(Reported by Dave Airlie).
2007-04-03 10:54:23 +02:00
Thomas Hellstrom 38d18acb8f Add a fence flush event to each fence-signaled check when lazy-waiting
to make sure we don't lose any sequence numbers if, for some reason,
they don't generate an IRQ.
2007-04-03 10:29:15 +02:00
Thomas Hellstrom 7743af9449 Evicted no-move buffers can get lost if they end up in another
memory type than local.
2007-04-03 10:29:14 +02:00
Thomas Hellstrom d85e243259 Fix an oops when trying to clean a not yet initialized memory type. 2007-04-03 10:29:14 +02:00
Thomas Hellstrom 72d457fc19 Make sure CMA (Can't map aperture) pages are mapped uncached.
(Should really make this write-combined using PATs, at some point).
2007-04-03 10:29:14 +02:00
Dave Airlie 3f70518f0b drm/bo: avoid oops if the memory manager for this type isn't initialised 2007-03-29 09:25:04 +10:00
Dave Airlie 81b811da37 drm/i915: set the bo up at firstopen time not after DMA init
This is required to use TTM to allocate the ring buffer.
2007-03-27 18:01:31 +10:00
Dave Airlie 72a1190f6d drm/ttm: make sure dev_mapping is set-up for the first opener of the drm
This was causing an oops in my miniglx code to try and use a TTM-only setup.
2007-03-27 17:59:30 +10:00
Ben Skeggs 674cefd4fe nouveau: move card initialisation into the drm
The PGRAPH init for the various cards will need cleaning up at some point,
a lot of the values written there are per-context state left over from the
all the hardcoding done in the ddx.

It's possible some cards get broken by this commit, let me know.
Tested on: NV5, NV18, NV28, NV35, NV40, NV4E
2007-03-26 20:59:37 +10:00
Dave Airlie 5ad43f4675 vm: cleanup drm_vm.c along lines of cleanups queued for kernel 2007-03-24 17:58:27 +11:00
Dave Airlie 8d918b0b63 cleanup more whitespace from ttm merge 2007-03-23 14:56:39 +11:00
Dave Airlie 39795501a8 drm: remove second spinlock init for tasklet lock 2007-03-23 14:56:28 +11:00
Dave Airlie 209870a882 rename badly named define 2007-03-20 10:13:58 +11:00
Alan Hourihane ef71b6230b remove i830 reference 2007-03-19 11:46:35 +00:00
Alan Hourihane cbe31d0dc7 Remove old i830 kernel driver. 2007-03-19 11:46:35 +00:00
Dave Airlie 1e77e52755 more return values fixup 2007-03-19 09:20:04 +11:00
Dave Airlie 46fac17082 fixup return values in drm ioctl 2007-03-19 09:12:08 +11:00
Dave Airlie c991f8e049 cleanup ioctl expansion code 2007-03-19 08:46:39 +11:00
Dave Airlie a2e3bae8e2 oops missing else 2007-03-19 08:46:25 +11:00
Dave Airlie bbb6fc9307 make drm fops const from kernel 2007-03-19 08:36:01 +11:00
Dave Airlie 483f6a113d use ARRAY_SIZE 2007-03-19 08:32:25 +11:00
Dave Airlie 2d7ecb8422 more tab/space conversion 2007-03-19 08:29:07 +11:00
Dave Airlie 2463b03cb4 whitespace cleanup pending a kernel merge 2007-03-19 08:23:43 +11:00
Dave Airlie 6c4428d40c clean up more of inline functions agp_remap/drm_lookup_map 2007-03-19 08:09:21 +11:00
Dave Airlie 27197d7836 deinline agp_remap along lines of kernel 2007-03-18 21:45:07 +11:00
Dave Airlie c4808e206b remove drm_lookup_map unused now 2007-03-18 21:42:48 +11:00
Maarten Maathuis 6a60b47d12 replace instance of SA_SHIRQ with IRQF_SHARED
backwards compat added by airlied
2007-03-11 12:13:58 +11:00
Dave Airlie c9178c3d01 ati: make pcigart code able to handle variable size PCI GART aperture
This code doesn't enable a variable aperture it just modifies the codebase
to allow me fix it up later
2007-03-04 18:16:29 +11:00
Jay Estabrook 6a51da7325 Fix Alpha domain/bus issue 2007-02-27 08:56:20 +00:00
Thomas Hellstrom 80468e7532 Fix build for 2.6.21-rc1.
The vm subsystem of 2.6.21 is fully compatible with the buffer object
vm code.
2007-02-26 18:17:54 +01:00
Thomas Hellstrom 2b7a9afa09 Some fencing cleanup. 2007-02-22 17:04:20 +01:00
Dave Airlie a253de2fcf drm: remove last usage of VM_OFFSET 2007-02-18 17:59:40 +11:00
Thomas Hellstrom 6d8ed5aedd Leftover files from previous commit. 2007-02-16 20:25:26 +01:00
Thomas Hellstrom e0f53e59be Simple fence object sample driver for via, based on idling the GPU.
Buffer object driver for via.
Some changes to buffer object driver callbacks.
Improve fence flushing.
2007-02-16 20:22:24 +01:00
Thomas Hellstrom 7766378d97 Initial support for fence object classes.
(Fence objects belonging to different command submission mechanisms).
2007-02-15 12:11:38 +01:00
Michel Dänzer 7803977aa9 Fix build against older kernels. 2007-02-15 09:26:16 +01:00
Thomas Hellstrom a78f70faad Merge branch 'ttm-vram-0-1-branch' 2007-02-14 15:33:40 +01:00
Thomas Hellstrom 35eb12d8bf Fix multiple spinlock unlocking 2007-02-14 15:32:08 +01:00
Thomas Hellstrom 1345076c8f Rename drm_ttm.h to drm_objects.h
Fix up some header incompatibilities in drm_fence.c caused by the previous
commit.
2007-02-14 14:10:10 +01:00
Thomas Hellstrom 8ffc1844b0 Move fence- and buffer-object related header stuff to drm_ttm.h 2007-02-14 14:05:40 +01:00
Thomas Hellstrom 5c9a7b0f94 Remove an intel-specific hack and replace it with a fence driver callback. 2007-02-14 13:31:35 +01:00
Thomas Hellstrom 04760563b8 Set the drm bus map type for each buffer object memory type. 2007-02-14 12:39:02 +01:00
Thomas Hellstrom 7bcb62b45d Rework buffer object vm code to use nopfn() for kernels >= 2.6.19. 2007-02-14 10:49:37 +01:00
Thomas Hellstrom 6b289db054 Remove debug printout. 2007-02-13 20:47:30 +01:00
Thomas Hellstrom e1460426b8 Bugzilla Bug #9457
Add refcounting of user waiters to the DRM hardware lock, so that we can use the
DRM_LOCK_CONT flag more conservatively.

Also add a kernel waiter refcount that if nonzero transfers the lock for the kernel context,
when it is released. This is useful when waiting for idle and can be used
for very simple fence object driver implementations for the new memory manager.

It also resolves the AIGLX startup deadlock for the sis and the via drivers.
i810, i830 still require that the hardware lock is really taken so the deadlock remains
for those two. I'm not sure about ffb. Anyone familiar with that code?
2007-02-13 20:47:30 +01:00
Thomas Hellstrom 9efdae317c More bugfixes.
Fixed memory, pinned buffers and unmappable memory now seems
fully functional.
2007-02-13 20:05:32 +01:00
Adam Jackson 5bd13c5e15 Fix some outdated URLs, remove others. 2007-02-12 15:45:51 -05:00
Thomas Hellstrom 398913dc0e Lindent. 2007-02-12 20:34:50 +01:00
Thomas Hellstrom b0c5339ed6 More bugfixes. 2007-02-12 20:32:03 +01:00
Thomas Hellstrom f02f83ee08 Cleanup and fix support for pinned buffers. 2007-02-12 17:47:57 +01:00
Thomas Hellstrom 85ee2a8d04 Various bugfixes. 2007-02-10 12:06:36 +01:00
Thomas Hellstrom 53aee3122a I915 accelerated blit copy functional.
Fixed - to System memory copies are implemented by
flipping in a cache-coherent TTM,
blitting to it, and then flipping it out.
2007-02-09 16:36:53 +01:00
Thomas Hellstrom 57df398072 Reinstate some LRU handling. 2007-02-09 12:43:18 +01:00
Thomas Hellstrom d32b21e016 Remove some code that should have gone in
commit 6a49d9a8ab
2007-02-09 00:11:53 +01:00
Thomas Hellstrom 99acdaee48 Fix copyright statements. 2007-02-09 00:07:29 +01:00
Thomas Hellstrom 6a49d9a8ab Fix evict_mutex locking range.
Implement unmappable buffers. (fault moves them to mappable when needed).
Various bugfixes.
2007-02-09 00:02:02 +01:00