Date: Tue, 23 Sep 2014 10:56:42 +0000 (UTC) From: Jakub Wojciech Klama <jceel@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r272024 - in user/jceel/soc2014_evdev/head/sys: amd64/conf dev/evdev Message-ID: <201409231056.s8NAughr011487@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jceel Date: Tue Sep 23 10:56:42 2014 New Revision: 272024 URL: http://svnweb.freebsd.org/changeset/base/272024 Log: Changes as follows: * Added vt(4) to EVDEV kernel config * Fixed /dev/input/event%d device numbering * Fixed uinput evdev_alloc()/evdev_free() to prevent memory leaks Modified: user/jceel/soc2014_evdev/head/sys/amd64/conf/EVDEV user/jceel/soc2014_evdev/head/sys/dev/evdev/cdev.c user/jceel/soc2014_evdev/head/sys/dev/evdev/uinput.c Modified: user/jceel/soc2014_evdev/head/sys/amd64/conf/EVDEV ============================================================================== --- user/jceel/soc2014_evdev/head/sys/amd64/conf/EVDEV Tue Sep 23 08:39:08 2014 (r272023) +++ user/jceel/soc2014_evdev/head/sys/amd64/conf/EVDEV Tue Sep 23 10:56:42 2014 (r272024) @@ -186,6 +186,11 @@ device splash # Splash screen and scr device sc options SC_PIXEL_MODE # add support for the raster text mode +# vt is the new video console driver +device vt +device vt_vga +device vt_efifb + device agp # support several AGP chipsets # PCCARD (PCMCIA) support Modified: user/jceel/soc2014_evdev/head/sys/dev/evdev/cdev.c ============================================================================== --- user/jceel/soc2014_evdev/head/sys/dev/evdev/cdev.c Tue Sep 23 08:39:08 2014 (r272023) +++ user/jceel/soc2014_evdev/head/sys/dev/evdev/cdev.c Tue Sep 23 10:56:42 2014 (r272024) @@ -42,7 +42,7 @@ #include <dev/evdev/input.h> #include <dev/evdev/evdev.h> -//#define DEBUG +#define DEBUG #ifdef DEBUG #define debugf(fmt, args...) printf("evdev: " fmt "\n", ##args); #else @@ -167,7 +167,7 @@ evdev_read(struct cdev *dev, struct uio return (ret); if (state->ecs_revoked) - return (EPERM); + return (ENODEV); client = state->ecs_client; @@ -574,7 +574,7 @@ evdev_cdev_create(struct evdev_dev *evde snprintf(evdev->ev_cdev_name, NAMELEN, "input/event%d", evdev_cdev_count++); cdev = make_dev(&evdev_cdevsw, 0, UID_ROOT, GID_WHEEL, 0600, - evdev->ev_cdev_name, evdev_cdev_count++); + "%s", evdev->ev_cdev_name); sc = malloc(sizeof(struct evdev_cdev_softc), M_EVDEV, M_WAITOK | M_ZERO); @@ -588,6 +588,8 @@ evdev_cdev_create(struct evdev_dev *evde int evdev_cdev_destroy(struct evdev_dev *evdev) { + destroy_dev(evdev->ev_cdev); + evdev_cdev_count--; return (0); } Modified: user/jceel/soc2014_evdev/head/sys/dev/evdev/uinput.c ============================================================================== --- user/jceel/soc2014_evdev/head/sys/dev/evdev/uinput.c Tue Sep 23 08:39:08 2014 (r272023) +++ user/jceel/soc2014_evdev/head/sys/dev/evdev/uinput.c Tue Sep 23 10:56:42 2014 (r272024) @@ -57,9 +57,6 @@ static int uinput_poll(struct cdev *, in static void uinput_dtor(void *); static int uinput_setup_provider(struct evdev_dev *, struct uinput_user_dev *); - - - static int uinput_cdev_create(void); static struct cdevsw uinput_cdevsw = { @@ -120,11 +117,10 @@ uinput_dtor(void *data) { struct uinput_cdev_state *state = (struct uinput_cdev_state *)data; - if (state->ucs_connected) { + if (state->ucs_connected) evdev_unregister(NULL, state->ucs_evdev); - evdev_free(state->ucs_evdev); - } + evdev_free(state->ucs_evdev); free(data, M_EVDEV); } @@ -258,8 +254,6 @@ uinput_ioctl(struct cdev *dev, u_long cm return (0); evdev_unregister(NULL, state->ucs_evdev); - evdev_free(state->ucs_evdev); - state->ucs_evdev = NULL; state->ucs_connected = false; break;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201409231056.s8NAughr011487>