Summary:
Add a new Ecore_Drm API named ecore_drm_device_left_handed_set().
Libinput support various input options. Left handed mode is one of options.
Right-handed people and left-handed people use a mouse
using different button mapping.
So if a left handed option is enabled, libinput change right mouse button and
left mouse button.
So support this option, I added this api using libinput's left handed option.
@feature
Test Plan:
After set left handed mode, left mouse button generate button numbered 3,
and right mouse button generate button numbered 1.
Reviewers: raster, ManMower, devilhorns
Subscribers: ohduna, cedric, jpeg, input.hacker
Differential Revision: https://phab.enlightenment.org/D3431
Summary: When one pointer moves, we should update the position of other devices.
Test Plan:
(1) Two pointer devices are connected.
(2) Move the cursor to (x, y) position using "device 1".
(3) When you move the cursor using "device 2", the cursor doesn't start from (x, y) position. This causes discontinuous mouse motion.
Reviewers: raster, zmike, gwanglim, stefan_schmidt, devilhorns, ManMower
Reviewed By: devilhorns, ManMower
Subscribers: cedric, Jeon, input.hacker, jpeg
Differential Revision: https://phab.enlightenment.org/D3384
As we no longer have an fd handler to listen on the drm fd, we don't
need this function anymore
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: As we already call drmHandleEvent when we pageflip, we don't
need to be using an fd handler to catch them. This should fix T2791
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: In efforts to debug some non-working drm issues for people,
it would be helpful to know what drivers and versions they are using.
This commit just adds some debug printing for that information
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This greatly improves rendering speed in evas drm engine.
Previously we would always call drmModeSetCrtc regardless if it was
needed or not. These changes greatly improve rendering speed in drm as
we now only call drmModeSetCrtc if it is needed.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This adds a new API function which we can use to mark a given
Ecore_Drm_Output as being the primary output.
@feature
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This adds a new API function to find an Ecore_Drm_Output
which matches a given name.
@feature
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: If we do not set client capabilities to support universal
planes, then libdrm does not expose the primary or cursor planes so
this adds a quick call to set DRM_CLIENT_CAP_UNIVERSAL_PLANES
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This adds new API function to return the min & max width &
height of valid screen range for an Ecore_Drm_Device
@feature
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: No real function changes, just commented out some debug lines
so we have less noise for release
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: It was mentioned on the mailing list to use #if 0 instead of
commenting the block. This does not change any functionality
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: As we no longer require the idler to repaint outputs, comment
out the function that was defined for the idler.
NB: I left it commented (and not totally removed) just in case it is
needed for a later (undiscovered) issue
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: In order to process hotplugging of outputs, we need to send
the 'dev' structure as data to the callback so that we can update
outputs. This fixes hotplugging of outputs when running E
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This modifies the ecore_drm_device pageflip function to make
use of the ecore_drm_fb callbacks passed into the ecore_drm_fb_send
function
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This commit adds an API function that can be used to find an
output given an x/y coordinate pair.
@feature
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This changes allows us to reuse the same drmEventContext once
so that when we get drm events, we are not constantly recreating the
drmEventContext.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: Since we now create the dumb buffers in the ecore_drm_device
structure, we don't need them on a per-output basis. This commit fixes
the output & device code to adjust to this.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: If an output has a pending page flip, we cannot destroy it
until the page flip has completed. This commit adds support to delay
destroying an output until the page flip is completed.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: Move the Eeze udev watch to inside the ecore_drm_device. This
allows us to only create One watch to catch all output changes. No
need for more than one watch (one per output) as was done previously
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
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
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>
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>
Summary:
- allow to launch drm backend without systemd-logind with root privilege.
- allow to open drm device node via logind, not directly open it, in case exist systemd-logind.
- fixes issue that couldn't switch session, because ecore-drm couldn't drop master to drm device with no permission. (allow to switch session appropriate.)
Reviewers: gwanglim, devilhorns
Subscribers: torori, cedric
Differential Revision: https://phab.enlightenment.org/D1704
Summary: Cleaned up all unwanted code's in ecore_drm. This just
removes a bunch of already commented out code.
@fix
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1615
Summary:
On some ARM platforms, the drivers do not list boot_vga as an
attribute, so we cannot do checks for that. This patch fixes finding
drm cards on those platforms by skipping the boot_vga check if we had
to use "platform" to find it.
Thanks to shiin for the report :)
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
On some ARM platforms we were failing to find the drm device card.
This was due to those ARM platforms using SUBSYSTEM="platform" as a
udev attribute instead of "pci". This fixes that issue so that those
devices are found again.
Thanks to shiin for the report :)
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This commit just modifies the internal code to remove the
need for an extra variable. There really is no need to store the
device twice. We already have it in the list of returned devices.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This converts the internal code of ecore_drm_device_find
function to use Eeze function calls instead of udev in order to locate
the drm card.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
@fix: The majority of ecore_evas code expects that the 'window' returned
from ecore_evas_window_get be an Ecore_Window. Previously, this was
not possible as this function was using a void pointer. This change
fixes that issue.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
@feature: Add new API function to return the drm device name
NB: This will be used in the ecore_evas_drm code to set the
ecore_evas->name.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
@bugfix: This fixes ecore-drm building since we commented out all the
hardware accel support (for now).
Signed-off-by: Chris Michael <cp.michael@samsung.com>
@feature: Add Ecore_Drm library code for setting up drm card, outputs,
virtual terminals, framebuffers, and input for use with ecore_evas drm
code.
Signed-off-by: Chris Michael <cp.michael@samsung.com>