Decode mouse dz event
PATCH 1/1 Decode mouse dz event
Decodes mouse event packet dz value and passes it as a wheel event into the input stream.
Please apply to linux-2.6.18-xen
Signed- off- by: Pat Campbell <[email protected]>
drivers/xen/fbfront/xenkbd.c +15 -5
@@ -64,8 +64,13 @@ static irqreturn_t input_handler(int rq, dev = 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 ==1 || event->motion.rel_z ==-1 ) { +input_report_rel (dev,REL_WHEEL ,0 - event->motion.rel_z); + } +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 =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 ==1 || event->pos.abs_z ==-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 ] =BIT (EV_KEY ) |BIT (EV_REL ) |BIT (EV_ABS );for (i =BTN_LEFT ; i <=BTN_TASK ; i++)set_bit (i, ptr->keybit); - ptr->relbit[0 ] =BIT (REL_X ) |BIT (REL_Y ); + ptr->relbit[0 ] =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 );
_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel
Keir Fraser
AppliedApplied.
Can the frontend driver be sure that the dz field will have a sane value with older backends that do not support the field? Or should this new field be advertised via xenstore?
-- Keir
Quoted 14 lines · Pat Campbell
Decodes mouse event packet dz value and passes it as a wheel event into the input stream.
Please apply to linux-2.6.18-xen
Signed- off- by: Pat Campbell <[email protected]>
_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel
Quoted 6 lines · <[email protected]> wrote:
Applied.
Can the frontend driver be sure that the dz field will have a sane value with older backends that do not support the field? Or should this new field be advertised via xenstore?
Patch is backwards compatible. Packet size has not changed and packet was fortunately zero filled in the older code before setting the position values. Newer frontend coupled with an older backend will always see dz as zero, no wheel event.
Pat
Quoted 18 lines
-- Keir
Quoted 14 lines · Pat Campbell
Decodes mouse event packet dz value and passes it as a wheel event into the input stream.
Please apply to linux- 2.6.18- xen
Signed- off- by: Pat Campbell <[email protected]>
_______________________________________________
Xen- devel mailing list
Xen- [email protected]
http://lists.xensource.com/xen- devel