Commit Graph

1096 Commits (8a78dead291ffdb5a8774419cdca369a1e27cad9)

Author SHA1 Message Date
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
Brian c4e2caec44 s/OJBECTS/OBJECTS/ 2007-05-06 10:09:59 -06: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
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