Add Ctrl combo key support to usb keyboard driver.
PATCH 1/1 Add Ctrl combo key support to usb keyboard driver.
Ctrl combo key support is added, which is very useful to input Ctrl-C for interrupt current job.
Also add usb_event_poll() calling to usb_kbd_testc(), which can get key input when tstc() is called.
--- common/usb_kbd.c | 19 +++++++++++++++++++ 1 files changed, 19 insertions(+), 0 deletions(-)
common/usb_kbd.c +19 -0
@@ -84,6 +84,7 @@ int repeat_delay;static unsigned char num_lock =0 ;static unsigned char caps_lock =0 ;static unsigned char scroll_lock =0 ; +static unsigned char ctrl =0 ; static unsigned char leds __attribute__ ((aligned (0x4)));
@@ -120,6 +121,9 @@ static void usb_kbd_put_queue(char data)/* test if a character is in the queue */ static int usb_kbd_testc (void ) { +#ifdef CFG_USB_EVENT_POLL +usb_event_poll (); +#endif if (usb_in_pointer==usb_out_pointer)return (0 );/* no data */ else
@@ -274,6 +278,10 @@ static int usb_kbd_translate(unsigned char scancode,unsigned char modifier,int pelse /* non shifted */ keycode=usb_kbd_numkey[scancode-0x1e ]; } + +if (ctrl) + keycode = scancode -0x3 ; +if (pressed==1 ) {if (scancode==NUM_LOCK ) { num_lock=~num_lock;
@@ -306,6 +314,17 @@ static int usb_kbd_irq(struct usb_device *dev)return 1 ; } res=0 ; + +switch (new[0 ]) { +case 0x0 :/* No combo key pressed */ + ctrl =0 ; +break ; +case 0x01 :/* Left Ctrl pressed */ +case 0x10 :/* Right Ctrl pressed */ + ctrl =1 ; +break ; + } +for (i =2 ; i <8 ; i++) {if (old[i] >3 &&memscan (&new[2 ], old[i],6 ) == &new[8 ]) { res|=usb_kbd_translate (old[i],new[0 ],0 );
Signature · 1 line
1.5.2
PATCH 1/1 Add Ctrl combo key support to usb keyboard driver.
Quoted 6 lines · Zhang Wei
Ctrl combo key support is added, which is very useful to input Ctrl-C for interrupt current job.
Also addusb_event_poll()calling tousb_kbd_testc(), which can get key input whentstc()is called.Signed-off-by Zhang Wei <[email protected]>
Added to custodian repo, thanks!
Best regards
Markus Klotzb?cher
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de
Wolfgang Denk
AppliedPATCH 1/1 Add Ctrl combo key support to usb keyboard driver.
In reply to Zhang WeiQuoted 6 lines · In message <[email protected]> you wrote:
Ctrl combo key support is added, which is very useful to input Ctrl-C for interrupt current job.
Also addusb_event_poll()calling tousb_kbd_testc(), which can get key input whentstc()is called.Signed-off-by Zhang Wei <[email protected]>
Applied, thanks.
Best regards,
Wolfgang Denk
Signature · 5 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de The human mind ordinarily operates at only ten percent of its capaci- ty - the rest is overhead for the operating system.