Commit Graph

230 Commits

Author SHA1 Message Date
Chris Michael f0d0533c42 ecore-drm: Use better output names
Summary: As there are various DVI and HDMI output names, update the
output connector types area to be more accurate so we get better
output names

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-03-24 15:35:31 -04:00
Seunghun Lee 500e76fd53 ecore_drm: Add event of ECORE_DRM_EVENT_SEAT_ADD.
Summary: To support multi-seat, ecore_drm need to issue the event to notify compositor of seat is added.

Test Plan: N/A

Reviewers: zmike, raster, gwanglim, devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2212
2015-03-24 10:45:11 -04:00
Mun, Gwan-gyeong 3c056419d7 ecore-drm: Fixed null pointer free
Summary:
Fixed null pointer free
         when sd_session_get_seat() fails, it does not allocate string.

Reviewers: zmike, cedric, raster, gwanglim, devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2219
2015-03-24 09:11:07 -04:00
Chris Michael 2dc7ad52df ecore-drm: Fix issue of not getting updated for output hotplug events
Summary: When setting up the Eeze_Udev_Watch for output hotplug
events, we should also be listening for the "change" event. As eeze
will now check the HOTPLUG property for drm events, we don't need to
check that here.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-03-23 12:17:11 -04:00
Chris Michael 3f7bf36046 ecore-drm: Fix build error caused by missing function declaration
Summary: This is mainly just a build fix. This issue occurred due to
the function declaration being After a call to use it while not having
a function prototype. This just adds the function prototype

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-03-21 16:38:47 -04:00
Chris Michael a2edb5958d ecore-drm: Add more debug info when output is created or updated
Summary: This patch adds more information so we can debug output
hotplug events better. It fixes an issue where any new outputs
from _ecore_drm_update_outputs where not getting the eeze udev watch
event created, and also addresses the issue of disconnected outputs
not sending the ecore_drm_event (both minor fixes)

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-03-21 16:29:47 -04:00
Boram Park 9baacf802d ecore-drm: add ecore_drm_devices_get to get the list of drm devices
Summary:
    when enlightenment is working as wayland display server, enlightenment
    changes KDSETMODE to KD_GRAPHICS in _ecore_drm_tty_setup(). However,
    when enlightenment is killed by SIGSEGV, it doesn't changes KDSETMODE
    to KD_TEXT because englightenment process doesn't call ecore_drm_tty_close().
    To make possible enlightenment call ecore_drm_tty_close(), drm devices
    should be exposed.
    When enlightenment is killed by SIGSEGV, it will get drm devices with
    ecore_drm_device_get_list(), and will call ecore_drm_launcher_disconnect(),
    and ecore_drm_launcher_disconnect will call ecore_drm_tty_close() internally.

@feature

Change-Id: I1c594739ec96660a09cee77b823ace6548ee5282

Reviewers: zmike, cedric, raster, gwanglim, devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2159
2015-03-17 09:31:18 -04:00
Chris Michael 9abc0ee76f ecore-drm: Return the index of the crtc from output_crtc_find
Summary:
Fix issue of invalid memory read from
ecore_drm_output_create. We call ecore_drm_output_crtc_find to get the
Index of the crtc to use, however prior to this commit the index was
not being returned (the actual crtc was)

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2140
2015-03-11 17:09:49 -04:00
Chris Michael 2e319df7b0 ecore-drm: Implement edid parsing for Ecore_Drm_Output
Summary: This implements edid parsing to obtain output make and model
so we can get better output names. This also fixes a false FIXME
statement in ecore_drm_output_physical_size_get function. As it turns
out, we don't need to get these values from edid parsing as they are
already available in the drm connector.

@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-03-04 14:53:06 -05:00
Chris Michael 02e7931aeb ecore-drm: Add edid structure to Ecore_Drm_Output
Summary: This adds an edid substructure to Ecore_Drm_Output so that
when we parse out EDID information, we have a place to store it

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-03-04 14:52:04 -05:00
Chris Michael 49beaeacf4 ecore-drm: Center mouse pointer on an output when it gets created
Summary: This sets the initial mouse pointer position to be at the
center of an output.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-03-04 11:49:44 -05:00
Chris Michael aabf45071c ecore-drm: Add function to return the pointer xy of Ecore_Drm_Device
Summary: This adds a function (ecore_drm_device_pointer_xy_get) to we
can return the mouse position inside ecore_evas_pointer_xy_get calls.
This is going to be used for centering the mouse when E-Wl starts up.

@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-03-04 11:49:44 -05:00
Chris Michael f23acbac81 ecore-drm: Fix formatting
Summary: No functional changes, just formatting fixes

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-03-04 11:49:44 -05:00
Derek Foreman 95cb1938c2 Use doubles to store libinput's mouse motion
Summary:
Using can result in motion being completely discarded.  Since we
only need integer data, we also only actually forward on an event
when the mouse moves more than a full unit.

Reviewers: zmike, devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2062
2015-02-27 10:40:38 -05:00
Mike Blumenkrantz a57df757a8 ecore-drm modifier updating is now functional
when dealing with non-kbd devices, the seat can be iterated to locate a keyboard

this may or may not accurately set depressed, latched, locked, group values
2015-02-26 21:51:00 -05:00
Chris Michael 15a2178492 ecore-drm: Add output id to output event
Summary: When we raise an event for an output, also include the output
id in the event structure. This will allow us to better identify which
output the event occured on.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-23 13:58:42 -05:00
Derek Foreman 0d69422cca ecore-drm Add hooks for updating wl_output when outputs are hotplugged
Summary:
This provides callbacks to any bound wl_output listeners when a
display is hotplugged.

NOTE: Currently we don't receive hotplug events
ANOTHER NOTE: We don't yet handle display removal

Reviewers: devilhorns, zmike

Reviewed By: devilhorns, zmike

Subscribers: cedric

Maniphest Tasks: T2131

Differential Revision: https://phab.enlightenment.org/D2006
2015-02-19 14:48:25 -05:00
Derek Foreman 5184ffec63 ecore-drm Add API for querying output parameters
Reviewers: zmike, devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Maniphest Tasks: T2131

Differential Revision: https://phab.enlightenment.org/D2005
2015-02-19 14:48:21 -05:00
Derek Foreman a915dcc9bd ecore-drm Fix typo
Reviewers: devilhorns, zmike

Reviewed By: devilhorns, zmike

Subscribers: cedric

Maniphest Tasks: T2131

Differential Revision: https://phab.enlightenment.org/D2004
2015-02-19 14:48:14 -05:00
Chris Michael fd0de9ae5c ecore-drm: Fix issue with ecore_drm_evdev->path being incorrect
Summary: When we try to ReleaseDevice of our evdev structure, the
'path' which was getting passed to our logind code was incorrect. This
was due to libinput not providing a function to get the full device
path. We fix this by making some eeze udev calls to find this device
and get the full device path.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-17 16:19:55 -05:00
Chris Michael 6597d39e90 ecore-drm: Fix issue of ecore_drm not calling ReleaseDevice when an
input is destroyed

Summary: This fixes an issue where if you VT switch away from a
running Enlightenment and VT switch back, then input would no longer
be working. This was because we never called ReleaseDevice (dbus call)
when we destroyed a device, so any calls to recreate the device would
fail in libinput due to control already being taken.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-17 16:19:55 -05:00
Chris Michael 96cbbb3416 ecore-drm: Don't recreate ecore_event handlers if we already have them
Summary: If we already have the ecore_event_handlers for logind, then
do not recreate them on logind_connect.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-17 16:19:55 -05:00
Chris Michael a5fe8a1e87 ecore-drm: Fix issue of checking improper eldbus message for errors
Summary: When we send_and_block, we should be checking the 'reply' for
errors, not the original message which was sent.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-17 16:19:55 -05:00
Stefan Schmidt dc5a391d1c ecore/drm: Fix libinput >= 0.8 check
We need #if here as LIBINPUT_HIGHER_08 will be either 0 or 1

@fix
2015-02-12 18:38:51 +01:00
Chris Michael 5c68b659bb ecore-drm: Fix bad German formatting ;)
Summary: No functional changes, just formatting

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-12 12:09:47 -05:00
Stefan Schmidt 52c48cfc21 ecore/drm: Add support for changed libinput API since 0.8
We check for libinput 06 or higher. In version 0.8 they got an API break
(hopefully the last one before 1.0) which we did not support so far. I have
seen libinput 0.9 used on gentoo and newer ubuntu systems so we should
definitely support them.

Adding a LIBINPUT_HIGHER_08 define to check for this. So far we have only one
location where we need it. Once there is a libinput 1.0 we should remove the
support for older versions.

http://lists.freedesktop.org/archives/wayland-devel/2015-January/019383.html
2015-02-12 18:06:12 +01:00
Chris Michael 9b24d378a3 ecore-drm: Print error when taking control of a device fails
Summary: If we send a dbus blocking message, and it returns an error
then we should be printing out this error message

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-11 15:42:02 -05:00
Chris Michael ab2487037f ecore-drm: Disable/Enable inputs if we release/aquire VT through logind
Summary: Due to libinput processing events directly from evdev, we
need to disable/enable input events when we release/acquire the vt.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-11 14:51:44 -05:00
Chris Michael 4f320a80df ecore-drm: Disable/Enable inputs if we release/acquire the VT
Summary: Due to libinput process events directly from evdev, when we
VT switch we should disable/enable inputs accordingly.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-11 14:14:52 -05:00
Mike Blumenkrantz c0683bc2dd ecore-drm should not use sscanf when getting logind vt
this should be more robust for when something like "/dev/tty4" is passed

@fix
2015-02-10 16:24:39 -05:00
Chris Michael 92954b707c ecore-drm: Remove unused variable
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-05 11:21:36 -05:00
Chris Michael 773897b09b ecore-drm: Fix issue with ecore_drm_output_crtc_Find sending back an
invalid id. Fix T2086

Summary: In order to avoid getting returned an invalid id, we should
not be checking the currently active encoder and crtc combination
because outputs may have changed, encoders/crtc combinations could
have changed, etc, etc.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-05 11:08:36 -05:00
Mike Blumenkrantz 11311bf01c ecore-drm should probably send the expected (reversed) scroll z value 2015-02-03 19:18:01 -05:00
Chris Michael 37d21a4729 ecore-drm: Trap for failure to dup stdin
Summary: If we fail to duplicate stdin, we should write out an error
and exit appropriately.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-02 11:59:27 -05:00
Chris Michael 559b7d7ee6 ecore-drm: Fix formatting
NB: No functional changes, just formatting

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-02 11:46:50 -05:00
Chris Michael 8eb78df3bb ecore-drm: Remove session parameter for session take/release functions
The functions to take or release a session no longer accept session
name as a parameter, so fix calls to those functions

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-26 08:37:09 -05:00
Chris Michael 3b4a989892 ecore-drm: Remove unused function parameter
The session take/release functions no longer need the session name
paramater, so remove that.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-26 08:37:09 -05:00
Chris Michael c853181533 ecore-drm: Remove session parameter for internal function
The session take/release functions no longer require the name of the
session, so remove the function parameter

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-26 08:37:09 -05:00
Chris Michael bd41178fb0 ecore-drm: Remove logind header file
Summary: These functions have been moved to the private header file
now, and thus this file is no longer needed.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-26 08:37:09 -05:00
Chris Michael 3c62f4222c ecore-drm: Move session and vt fields to store inside the
Ecore_Drm_Device

Summary: This moves storing the session name and VT fields inside the
device structure. This also adds a field so we can store the keyboard
mode of the tty, and restore it on close.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-26 08:37:08 -05:00
Chris Michael feff00178e ecore-drm: Cleanup private header file
Summary: This moves the logind function prototypes to the private
header and thus removes the need for a separate logind header file.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-26 08:37:08 -05:00
Chris Michael 81a4731036 ecore-drm: Cleanup launcher code
Summary: This moves the VT switch handling code to the tty file, and
sets the proper flags on the VT when opened.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-26 08:37:08 -05:00
Chris Michael c7d557cf4e ecore-drm: Fix various issues with logind code
Summary: This fixes a few issues with the logind code such as: Getting
the VT from systemd (if available), Properly setup the VT using proper
'open' flags, adding a 'restore' function to reset the tty properly,
and handle take/release session.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-26 08:37:08 -05:00
Chris Michael e6970f4f8b ecore-drm: Cleanup tty code and handle vt signal trapping
Summary: This cleans up the tty code a bit, and makes it the
responsibility of the tty code to handle VT switching signals

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-26 08:37:08 -05:00
Chris Michael bee13a55e1 ecore-drm: Default device->session to NULL
Summary: This sets the default session to NULL when a device is
created. Also a formatting fix

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-26 08:37:08 -05:00
Chris Michael 5a62a760c0 ecore-drm: Store session name inside dev structure and don't
take/release session control inside dbus functions

Summary: These changes move the storage of session name to inside the
Ecore_Drm_Device structure and remove calls to take/release session
control to outside of the dbus code

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-26 08:37:08 -05:00
Chris Michael 205430ceb4 Revert "ecore-drm: Don't init tty unless we are Not using systemd"
This reverts commit 28e4901d04.

This broke vt switching in drm so revert (for now) until we get the
systemd vt and setup handlers
2015-01-19 12:55:50 -05:00
Chris Michael 28e4901d04 ecore-drm: Don't init tty unless we are Not using systemd
Summary: It turns out we don't need to handle open & setup of the tty
unless we are Not using systemd. This fixes an issue during
enlightenment restart where we are unable to reopen the tty.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-19 12:48:41 -05:00
Chris Michael 21b34d4d84 ecore-drm: Reset output cursor and crtc mode on shutdown
Summary: When we shutdown outputs, we should reset the hardware cursor
state and the saved crtc mode in order to reset things back to normal.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-19 12:48:41 -05:00
Chris Michael d38462f2eb ecore-drm: Restore tty keyboard mode on restore of tty
Summary: When we are shutting down a tty, restore the old keyboard
mode that we retain from tty_setup.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-19 12:48:41 -05:00