master/master.c
changeset 650 c68995623e94
parent 648 0a6d38ec463f
child 651 8c11399cc911
equal deleted inserted replaced
649:a4d3fffdaed7 650:c68995623e94
   834         master->idle_cycle_times[master->idle_cycle_time_pos]
   834         master->idle_cycle_times[master->idle_cycle_time_pos]
   835             = (u32) (cycles_end - cycles_start) * 1000 / cpu_khz;
   835             = (u32) (cycles_end - cycles_start) * 1000 / cpu_khz;
   836         master->idle_cycle_time_pos++;
   836         master->idle_cycle_time_pos++;
   837         master->idle_cycle_time_pos %= HZ;
   837         master->idle_cycle_time_pos %= HZ;
   838 
   838 
   839         set_current_state(TASK_INTERRUPTIBLE);
   839         if (ec_fsm_master_idle(&master->fsm)) {
   840         schedule_timeout(1);
   840             set_current_state(TASK_INTERRUPTIBLE);
       
   841             schedule_timeout(1);
       
   842         }
       
   843         else {
       
   844             schedule();
       
   845         }
   841     }
   846     }
   842     
   847     
   843     master->thread_id = 0;
   848     master->thread_id = 0;
   844     complete_and_exit(&master->thread_exit, 0);
   849     complete_and_exit(&master->thread_exit, 0);
   845 }
   850 }
   881             = (u32) (cycles_end - cycles_start) * 1000 / cpu_khz;
   886             = (u32) (cycles_end - cycles_start) * 1000 / cpu_khz;
   882         master->idle_cycle_time_pos++;
   887         master->idle_cycle_time_pos++;
   883         master->idle_cycle_time_pos %= HZ;
   888         master->idle_cycle_time_pos %= HZ;
   884 
   889 
   885 schedule:
   890 schedule:
   886         set_current_state(TASK_INTERRUPTIBLE);
   891         if (ec_fsm_master_idle(&master->fsm)) {
   887         schedule_timeout(1);
   892             set_current_state(TASK_INTERRUPTIBLE);
       
   893             schedule_timeout(1);
       
   894         }
       
   895         else {
       
   896             schedule();
       
   897         }
   888     }
   898     }
   889     
   899     
   890     master->thread_id = 0;
   900     master->thread_id = 0;
   891     complete_and_exit(&master->thread_exit, 0);
   901     complete_and_exit(&master->thread_exit, 0);
   892 }
   902 }