forked from enlightenment/efl
ecore_drm2: Merge ecore_drm2_device_find and ecore_drm2_device_open
There's never a reason to find a device and not open it, so all callers end up calling these two functions back to back.
This commit is contained in:
parent
9b9d704292
commit
d8a9b895bb
|
@ -166,30 +166,17 @@ EAPI int ecore_drm2_event_handle(Ecore_Drm2_Device *dev, Ecore_Drm2_Context *drm
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Try to find a drm device on a given seat
|
* Try to open the Ecore_Drm2_Device for a given seat
|
||||||
*
|
*
|
||||||
* @param seat
|
* @param seat
|
||||||
* @param tty
|
* @param tty
|
||||||
* @param sync
|
|
||||||
*
|
*
|
||||||
* @return A newly allocated Ecore_Drm2_Device on success, NULL otherwise
|
* @return An Ecore_Drm2_Device or NULL on failure.
|
||||||
*
|
*
|
||||||
* @ingroup Ecore_Drm2_Device_Group
|
* @ingroup Ecore_Drm2_Device_Group
|
||||||
* @since 1.18
|
* @since 1.18
|
||||||
*/
|
*/
|
||||||
EAPI Ecore_Drm2_Device *ecore_drm2_device_find(const char *seat, unsigned int tty);
|
EAPI Ecore_Drm2_Device *ecore_drm2_device_open(const char *seat, unsigned int tty);
|
||||||
|
|
||||||
/**
|
|
||||||
* Try to open a given Ecore_Drm2_Device
|
|
||||||
*
|
|
||||||
* @param device
|
|
||||||
*
|
|
||||||
* @return A valid file descriptor if open succeeds, -1 otherwise.
|
|
||||||
*
|
|
||||||
* @ingroup Ecore_Drm2_Device_Group
|
|
||||||
* @since 1.18
|
|
||||||
*/
|
|
||||||
EAPI int ecore_drm2_device_open(Ecore_Drm2_Device *device);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Close an open Ecore_Drm2_Device
|
* Close an open Ecore_Drm2_Device
|
||||||
|
|
|
@ -593,43 +593,29 @@ _drm2_atomic_state_free(Ecore_Drm2_Atomic_State *state)
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI Ecore_Drm2_Device *
|
EAPI Ecore_Drm2_Device *
|
||||||
ecore_drm2_device_find(const char *seat, unsigned int tty)
|
ecore_drm2_device_open(const char *seat, unsigned int tty)
|
||||||
{
|
{
|
||||||
Ecore_Drm2_Device *dev;
|
Ecore_Drm2_Device *device;
|
||||||
|
|
||||||
dev = calloc(1, sizeof(Ecore_Drm2_Device));
|
device = calloc(1, sizeof(Ecore_Drm2_Device));
|
||||||
if (!dev) return NULL;
|
if (!device) return NULL;
|
||||||
|
|
||||||
dev->em = elput_manager_connect(seat, tty);
|
device->em = elput_manager_connect(seat, tty);
|
||||||
if (!dev->em)
|
if (!device->em)
|
||||||
{
|
{
|
||||||
ERR("Could not connect to input manager");
|
ERR("Could not connect to input manager");
|
||||||
goto man_err;
|
goto man_err;
|
||||||
}
|
}
|
||||||
|
|
||||||
dev->path = _drm2_device_find(dev->em, seat);
|
device->path = _drm2_device_find(device->em, seat);
|
||||||
if (!dev->path)
|
if (!device->path)
|
||||||
{
|
{
|
||||||
ERR("Could not find drm device on seat %s", seat);
|
ERR("Could not find drm device on seat %s", seat);
|
||||||
goto path_err;
|
goto path_err;
|
||||||
}
|
}
|
||||||
|
|
||||||
return dev;
|
|
||||||
|
|
||||||
path_err:
|
|
||||||
elput_manager_disconnect(dev->em);
|
|
||||||
man_err:
|
|
||||||
free(dev);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
EAPI int
|
|
||||||
ecore_drm2_device_open(Ecore_Drm2_Device *device)
|
|
||||||
{
|
|
||||||
EINA_SAFETY_ON_NULL_RETURN_VAL(device, -1);
|
|
||||||
|
|
||||||
device->fd = elput_manager_open(device->em, device->path, -1);
|
device->fd = elput_manager_open(device->em, device->path, -1);
|
||||||
if (device->fd < 0) goto open_err;
|
if (device->fd < 0) goto path_err;
|
||||||
|
|
||||||
if (!elput_input_init(device->em))
|
if (!elput_input_init(device->em))
|
||||||
{
|
{
|
||||||
|
@ -681,12 +667,15 @@ ecore_drm2_device_open(Ecore_Drm2_Device *device)
|
||||||
ecore_event_handler_add(ELPUT_EVENT_DEVICE_CHANGE,
|
ecore_event_handler_add(ELPUT_EVENT_DEVICE_CHANGE,
|
||||||
_cb_device_change, device);
|
_cb_device_change, device);
|
||||||
|
|
||||||
return device->fd;
|
return device;
|
||||||
|
|
||||||
input_err:
|
input_err:
|
||||||
elput_manager_close(device->em, device->fd);
|
elput_manager_close(device->em, device->fd);
|
||||||
open_err:
|
path_err:
|
||||||
return -1;
|
elput_manager_disconnect(device->em);
|
||||||
|
man_err:
|
||||||
|
free(device);
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
|
|
|
@ -148,14 +148,8 @@ _ecore_evas_drm_init(Ecore_Evas *ee, Ecore_Evas_Engine_Drm_Data *edata, const ch
|
||||||
|
|
||||||
if (!device) device = "seat0";
|
if (!device) device = "seat0";
|
||||||
|
|
||||||
edata->dev = ecore_drm2_device_find(device, 0);
|
edata->dev = ecore_drm2_device_open(device, 0);
|
||||||
if (!edata->dev)
|
if (!edata->dev)
|
||||||
{
|
|
||||||
ERR("Failed to create device");
|
|
||||||
goto dev_err;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ecore_drm2_device_open(edata->dev) < 0)
|
|
||||||
{
|
{
|
||||||
ERR("Failed to open device");
|
ERR("Failed to open device");
|
||||||
goto open_err;
|
goto open_err;
|
||||||
|
@ -187,7 +181,6 @@ output_err:
|
||||||
ecore_drm2_device_close(edata->dev);
|
ecore_drm2_device_close(edata->dev);
|
||||||
open_err:
|
open_err:
|
||||||
ecore_drm2_device_free(edata->dev);
|
ecore_drm2_device_free(edata->dev);
|
||||||
dev_err:
|
|
||||||
ecore_drm2_shutdown();
|
ecore_drm2_shutdown();
|
||||||
init_err:
|
init_err:
|
||||||
return --_drm_init_count;
|
return --_drm_init_count;
|
||||||
|
|
Loading…
Reference in New Issue