Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Doesn't work with BIOS and GRUB bootloader after reboot(Ctrl-Alt-Del) #115

Closed
tmk opened this issue Apr 21, 2014 · 2 comments
Closed

Doesn't work with BIOS and GRUB bootloader after reboot(Ctrl-Alt-Del) #115

tmk opened this issue Apr 21, 2014 · 2 comments
Labels

Comments

@tmk
Copy link
Owner

tmk commented Apr 21, 2014

At commit 894a387 I found this issues on both both T23(USB 1.1) and X201s(2.0).

Test procedure:
Powerup or plugin -> BIOS or bootloader(A) -> reboot -> BIOS or bootloader(B) -> OS(E)
or
OS(C) -> reboot -> BIOS or bootloader(D) -> OS(E)

Problem:
In (A) and (C) keyboard works well before reboot. But after reboot keyboard does nothing at all in (B) and (D). After booting up OS(E) keyboard works well again.(During boot USB host resets keyboard?)
Recycling power, replug or booting up OS(E) resolve this keyboard lockup.

Cause:
This line checks endpoint bank write ready flag but if this check loop is timeouted illigal write will occur. After this illigal operation host seems to stop polling keyboard.

while (--timeout && !Endpoint_IsReadWriteAllowed()) ;

Solution:
Return immediately without writing to bank if check loop is timed out.

http://www.thinkwiki.org/wiki/Category:T23
http://www.thinkwiki.org/wiki/Category:X201s

EDIT: This is about LUFA stack, not PJRC.

@tmk tmk added the SEVERE label Apr 21, 2014
@tmk tmk closed this as completed in a5d4a1f Apr 21, 2014
@tmk
Copy link
Owner Author

tmk commented Apr 21, 2014

This issue is probably relevant to #58.

MarioRicalde added a commit to MarioRicalde/tmk_keyboard that referenced this issue Apr 27, 2014
* origin/master:
  NKRO is disable when SET_PROTOCOL(boot)
  Make NKRO deafult when it is available
  Change MCU setting to ATmega32U2
  Fix description of pin usage
  Add LUFA git repository(release 140302)
  Move macro definitions from lufa.c to lufa.h
  Fix 'Shift Parentheses' example
  Change LUFA build options
  Return when ready check loop is timeouted(Fix tmk#115)
  Change PollingIntervalMS to 10ms(Fix tmk#114)
  New macro: ACTION_BACKLIGHT_LEVEL(level)
  Show correct function name for default layer set
  Added Lightsaber FN-layer
  Lightsaber clean ups
  Added basic led+backlight support
  Updated Lightsaber read me
  Support for Lightsaber keyboard
MarioRicalde added a commit to MarioRicalde/tmk_keyboard that referenced this issue Apr 27, 2014
* origin/master:
  NKRO is disable when SET_PROTOCOL(boot)
  Make NKRO deafult when it is available
  Change MCU setting to ATmega32U2
  Fix description of pin usage
  Add LUFA git repository(release 140302)
  Move macro definitions from lufa.c to lufa.h
  Fix 'Shift Parentheses' example
  Change LUFA build options
  Return when ready check loop is timeouted(Fix tmk#115)
  Change PollingIntervalMS to 10ms(Fix tmk#114)
  New macro: ACTION_BACKLIGHT_LEVEL(level)
  Show correct function name for default layer set
  Added Lightsaber FN-layer
  Lightsaber clean ups
  Added basic led+backlight support
  Updated Lightsaber read me
  Support for Lightsaber keyboard
@tmk
Copy link
Owner Author

tmk commented Apr 28, 2014

PJRC stack has similar problem.

argyakrivos added a commit to argyakrivos/tmk_keyboard that referenced this issue May 29, 2014
* upstream/master: (93 commits)
  Add ISO keymap(issue tmk#35) and use new keymap API
  Fix set LED for NKRO keyboard interface
  Unused endpoint of console OUT is commentout'd
  Add Makefiles for TMK converters.
  Fix remotewakeup of PJRC stack(Fix tmk#121)
  Check if LUFA-git really exists(Fix tmk#118)
  NKRO is disable when SET_PROTOCOL(boot)
  Make NKRO deafult when it is available
  Change MCU setting to ATmega32U2
  Fix description of pin usage
  Add LUFA git repository(release 140302)
  Move macro definitions from lufa.c to lufa.h
  Fix 'Shift Parentheses' example
  Change LUFA build options
  Return when ready check loop is timeouted(Fix tmk#115)
  Change PollingIntervalMS to 10ms(Fix tmk#114)
  New macro: ACTION_BACKLIGHT_LEVEL(level)
  Show correct function name for default layer set
  Added Lightsaber FN-layer
  Lightsaber clean ups
  ...
seancaffery pushed a commit to seancaffery/tmk_keyboard that referenced this issue Jan 31, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant