Changeset f260256 in mainline


Ignore:
Timestamp:
2006-06-20T09:15:21Z (19 years ago)
Author:
Ondrej Palkovsky <ondrap@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
3c5006a0
Parents:
2f249e79
Message:

Fix bad interrupt handling in kbd driver.
Read all data available on interrupt.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • genarch/src/i8042/i8042.c

    r2f249e79 rf260256  
    325325        __u8 x;
    326326
     327        while ((i8042_status_read() & i8042_BUFFER_FULL_MASK)) {
     328                x = i8042_data_read();
     329                if (x & KEY_RELEASE)
     330                        key_released(x ^ KEY_RELEASE);
     331                else
     332                        key_pressed(x);
     333        }
    327334        trap_virtual_eoi();
    328         x = i8042_data_read();
    329         if (x & KEY_RELEASE)
    330                 key_released(x ^ KEY_RELEASE);
    331         else
    332                 key_pressed(x);
    333335}
    334336
     
    542544        while(!(ch = active_read_buff_read())) {
    543545                __u8 x;
    544                 while (!((x=i8042_status_read() & i8042_BUFFER_FULL_MASK)))
     546                while (!(i8042_status_read() & i8042_BUFFER_FULL_MASK))
    545547                        ;
    546548                x = i8042_data_read();
Note: See TracChangeset for help on using the changeset viewer.