This source file includes following definitions.
- jazz_write_output
- jazz_write_command
- jazz_read_status
- kb_wait
- jazz_machine_restart
   1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 #include <linux/jiffies.h>
   9 #include <asm/jazz.h>
  10 
  11 #define KBD_STAT_IBF            0x02    
  12 
  13 static void jazz_write_output(unsigned char val)
  14 {
  15         int status;
  16 
  17         do {
  18                 status = jazz_kh->command;
  19         } while (status & KBD_STAT_IBF);
  20         jazz_kh->data = val;
  21 }
  22 
  23 static void jazz_write_command(unsigned char val)
  24 {
  25         int status;
  26 
  27         do {
  28                 status = jazz_kh->command;
  29         } while (status & KBD_STAT_IBF);
  30         jazz_kh->command = val;
  31 }
  32 
  33 static unsigned char jazz_read_status(void)
  34 {
  35         return jazz_kh->command;
  36 }
  37 
  38 static inline void kb_wait(void)
  39 {
  40         unsigned long start = jiffies;
  41         unsigned long timeout = start + HZ/2;
  42 
  43         do {
  44                 if (! (jazz_read_status() & 0x02))
  45                         return;
  46         } while (time_before_eq(jiffies, timeout));
  47 }
  48 
  49 void jazz_machine_restart(char *command)
  50 {
  51         while(1) {
  52                 kb_wait();
  53                 jazz_write_command(0xd1);
  54                 kb_wait();
  55                 jazz_write_output(0x00);
  56         }
  57 }