From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Pat Campbell" Subject: [PATCH][LINUX] Decode mouse dz event Date: Mon, 10 Dec 2007 06:27:58 -0700 Message-ID: <475CDB84.3E48.0018.0@novell.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=__Part82A495CE.0__=" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org --=__Part82A495CE.0__= Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Decodes mouse event packet dz value and passes it as a wheel event into=20 the input stream. Please apply to linux-2.6.18-xen Signed- off- by: Pat Campbell --=__Part82A495CE.0__= Content-Type: text/plain; name="xenkbd-dz.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="xenkbd-dz.patch" diff -r 69d413abd6c0 drivers/xen/fbfront/xenkbd.c --- a/drivers/xen/fbfront/xenkbd.c Fri Dec 07 00:38:40 2007 +0000 +++ b/drivers/xen/fbfront/xenkbd.c Sat Dec 08 13:18:18 2007 -0700 @@ -64,8 +64,13 @@ static irqreturn_t input_handler(int rq, dev =3D info->ptr; switch (event->type) { case XENKBD_TYPE_MOTION: - input_report_rel(dev, REL_X, event->motion.rel_x); - input_report_rel(dev, REL_Y, event->motion.rel_y); + if ( event->motion.rel_z =3D=3D 1 || event->motion.= rel_z =3D=3D -1 ) { + input_report_rel(dev, REL_WHEEL, 0 - = event->motion.rel_z); + } =20 + else { + input_report_rel(dev, REL_X, event->motion.= rel_x); + input_report_rel(dev, REL_Y, event->motion.= rel_y); + } break; case XENKBD_TYPE_KEY: dev =3D NULL; @@ -81,8 +86,13 @@ static irqreturn_t input_handler(int rq, event->key.keycode); break; case XENKBD_TYPE_POS: - input_report_abs(dev, ABS_X, event->pos.abs_x); - input_report_abs(dev, ABS_Y, event->pos.abs_y); + if ( event->pos.abs_z =3D=3D 1 || event->pos.abs_z = =3D=3D -1 ) { + input_report_rel(dev, REL_WHEEL, 0 - = event->pos.abs_z); + } + else { + input_report_abs(dev, ABS_X, event->pos.abs= _x); + input_report_abs(dev, ABS_Y, event->pos.abs= _y); + } break; } if (dev) @@ -152,7 +162,7 @@ int __devinit xenkbd_probe(struct xenbus ptr->evbit[0] =3D BIT(EV_KEY) | BIT(EV_REL) | BIT(EV_ABS); for (i =3D BTN_LEFT; i <=3D BTN_TASK; i++) set_bit(i, ptr->keybit); - ptr->relbit[0] =3D BIT(REL_X) | BIT(REL_Y); + ptr->relbit[0] =3D BIT(REL_X) | BIT(REL_Y) | BIT(REL_WHEEL); input_set_abs_params(ptr, ABS_X, 0, XENFB_WIDTH, 0, 0); input_set_abs_params(ptr, ABS_Y, 0, XENFB_HEIGHT, 0, 0); =20 --=__Part82A495CE.0__= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --=__Part82A495CE.0__=--