equal
deleted
inserted
replaced
851 slave->ring_position); |
851 slave->ring_position); |
852 return; |
852 return; |
853 } |
853 } |
854 |
854 |
855 start = get_cycles(); |
855 start = get_cycles(); |
856 timeout = (cycles_t) 10 * cpu_khz; // 10ms |
856 timeout = (cycles_t) 100 * cpu_khz; // 100ms |
857 |
857 |
858 while (1) |
858 while (1) { |
859 { |
|
860 udelay(100); // wait a little bit... |
859 udelay(100); // wait a little bit... |
861 |
860 |
862 if (ec_datagram_nprd(datagram, slave->station_address, 0x0130, 2)) |
861 if (ec_datagram_nprd(datagram, slave->station_address, 0x0130, 2)) |
863 return; |
862 return; |
864 if (unlikely(ec_master_simple_io(slave->master, datagram))) { |
863 if (unlikely(ec_master_simple_io(slave->master, datagram))) { |
868 return; |
867 return; |
869 } |
868 } |
870 |
869 |
871 end = get_cycles(); |
870 end = get_cycles(); |
872 |
871 |
873 if (likely(EC_READ_U8(datagram->data) == state)) { |
872 if (EC_READ_U8(datagram->data) == state) { |
874 slave->current_state = state; |
873 slave->current_state = state; |
875 EC_INFO("Acknowleged state 0x%02X on slave %i.\n", state, |
874 EC_INFO("Acknowleged state 0x%02X on slave %i.\n", state, |
876 slave->ring_position); |
875 slave->ring_position); |
877 return; |
876 return; |
878 } |
877 } |
879 |
878 |
880 if (unlikely((end - start) >= timeout)) { |
879 if (end - start >= timeout) { |
881 slave->current_state = EC_SLAVE_STATE_UNKNOWN; |
880 slave->current_state = EC_SLAVE_STATE_UNKNOWN; |
882 EC_WARN("Failed to acknowledge state 0x%02X on slave %i" |
881 EC_WARN("Failed to acknowledge state 0x%02X on slave %i" |
883 " - Timeout!\n", state, slave->ring_position); |
882 " - Timeout!\n", state, slave->ring_position); |
884 return; |
883 return; |
885 } |
884 } |