As ecore_drm_private.h already includes config.h header, we don't need
to include it here in these files also
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
As portions of this code have been derived from existing code in
Weston, we should also be including their copyright/licence text to
give credit.
NB: Fixes T3286
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
Summary:
printf %m stringifies and prints errno. I've tried to remove its use
anywhere that the immediately preceding function might not set errno
or is a complicated function for which knowing errno doesn't really
give any useful information.
I've left a few of the drmMode calls because they're just wrappers
around ioctl, which legitimately sets errno.
@fix
Reviewers: zmike, devilhorns
Reviewed By: zmike, devilhorns
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3572
Summary:
When a input device is plugged in, _cb_open_restricted() is called before creating evdev.
So setting fd value on evdev was failed in _cb_open_restricted() and also closing evdev->fd was invalid.
Using a eina_hash which has 'path-fd' pairs, we can find fd value after evdev is created.
@fix
Test Plan:
(1) Multiple input devices are connected. Their evdev->fd remains zero or initial value.
(2) When one of those devices are plugged out, fd leak would happen.
Reviewers: raster, zmike, gwanglim, stefan_schmidt, devilhorns, ManMower
Subscribers: cedric, jpeg, Jeon, input.hacker
Differential Revision: https://phab.enlightenment.org/D3428
Summary: As libinput has matured enough now, we can reduce the noise
in outputs logs by adjusting libinput log level priority
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
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
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>
Summary: Since we now have a reference to the actual output inside the
input device, we no longer need this function to update the Input
device's view of the output size.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: When destroying evdev devices, we make calls to
libinput_device_unref ... but we cannot Make that call if the libinput
context has been destroyed already (as happens when we free input). So
to fix, don't release the libinput context until all devices have been
released.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: When the output size gets updated, it could end up changing
the device calibration (wrt input event transformation), so we should
update the device calibration also
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
device structure
Summary: This is used to update all input devices as to the new output
size so that input device events can get their coordinates transformed
into output coords
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This was causing crashes in libinput when trying to print out
via eina_log. Disable/Remove it. Let libinput print it's own logs.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This ports the input code of ecore_drm to make use of
libinput for handling of devices, events, etc
@feature
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: setting flag of O_RDWR by F_SETFL is no effect. it's ignored.
@fix
Reviewers: gwanglim, devilhorns
Reviewed By: devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1695
Summary: the function return -1 if it's failed so checking for ! is
incorrect. We should check if the return is less than zero.
@fix
Reviewers: gwanglim, devilhorns
Reviewed By: devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1682
Summary:
Add condition to check if input is NULL in _device_add function
@fix
Signed-off-by: vivek <vivek.ellur@samsung.com>
Reviewers: devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1493
Summary: During a device remove event, we should check that Eeze has
returned us a devpath to remove else we segfault when trying to strcmp
the device path later during actual remove.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This is mainly for debugging, but lets print out a bit more
information if a device fails to open.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
from Eeze.
Summary: If we fail to get a devpath from Eeze for an input device,
then we need to error out gracefully and not add a failed input device.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This changes all of our internal ecore-drm input code to use
Eeze library instead of udev directly.
@feature
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: Eldbus runs async so we needed to rework the internal input
code to function with it. This commit changes the iternal code to
issue a device open, and then wait for Eldbus to return us a callback
from the proxy that the device open is finished. This Does add a delay
during startup (which means devices will not always be immediately
ready for use) but thus is the nature of Eldbus.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
If we failed to create an evdev device for an input, we should also be
closing the fd before we return
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
switching
Summary:
When vt is released by SIGUSR1, drm_inputs have to be disabled.
For that this revision includes,
1. Unrefer udev monitor
2. Remove fd handler for udev monitor
3. Release dbus device
Reviewers: stefan_schmidt, devilhorns, gwanglim
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1268
As input is sorted out here (for now), we don't need to be so noisy
and printout extra debug stuff
Signed-off-by: Chris Michael <cp.michael@samsung.com>
This removes calls to the ecore_drm slave binary, and makes use of our
new dbus function calls to open an input device
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>