Re: Keyboard drivers, polling vs. non-polling mode

看板FB_hackers作者時間11年前 (2014/05/14 06:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串6/8 (看更多)
On 13 May 2014 22:26, Maxim Ignatenko <gelraen.ua@gmail.com> wrote: > On 13 May 2014 11:17, Maxim Ignatenko <gelraen.ua@gmail.com> wrote: >> On 13 May 2014 09:40, Ruslan Bukin <br@bsdpad.com> wrote: >>> On Sun, May 11, 2014 at 11:33:42PM +0100, Maxim Ignatenko wrote: >>>> Hello, >>>> >>>> I'm trying trying to get keyboard working in DDB on HP Chromebook 11 (ARM). >>>> br@ said that it doesn't work there because polling mode is not implemented yet. >>>> Where can I read about the difference between polling and non-polling >>>> modes (and about keyboard drivers in general)? >>>> sys/dev/kbd/kbdreg.h describes some structures and method signatures, >>>> but I have no clue what is the expected behaviour of those methods. >>>> >>>> My current guess is that in polling mode keyboard driver just queues >>>> up all the input coming from keyboard and then gives it to consumer >>>> upon request, while in non-polling mode it invokes some callback >>>> instead of queueing. But I cannot find any documentation to confirm or >>>> disprove that. >>>> >>> >>> Chrome Embedded Controller (EC) provides interrupt (KB_GPIO_INT pin, active low) >>> reporting that there are pending data and you need to read the data using >>> ec_command(..). After all data was read, pin comes to 1 (not active). >>> >>> We have no interrupts in KDB, so you have to check pin status manually and >>> if status == 0 (active) then read new data. >>> >>> Probably you can start with patch attached (I did't tested). >> >> Thanks, I've tried something like that, except with invoking >> ec_command immediately and comparing returned state to previous one >> rather than reading status bit from GPIO pin. >> I keep getting "fdb0: i2c transfer returned 6" and none of the printfs >> I've added to iicbus_transfer_gen in sys/dev/iicbus/iiconf.c. > > Here's what I have now. After booting kernel from flash drive I get > kdb prompt (because of panic() call in exynos5_ehci.c) and when I > press any key - screen gets spammed with "fdb0: i2c transfer returned > 6". printfs added to dev/iicbus/*.c are not triggered. Any ideas? Sorry, it's "fbd0", not "fdb0". -- Best regards, Maxim _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"
文章代碼(AID): #1JSfrYLk (FB_hackers)
討論串 (同標題文章)
文章代碼(AID): #1JSfrYLk (FB_hackers)