diff -r 39364fbcd069 -r d417dd9bdc2f drivers/ec_master.c --- a/drivers/ec_master.c Fri Nov 25 16:43:46 2005 +0000 +++ b/drivers/ec_master.c Fri Dec 02 09:03:32 2005 +0000 @@ -9,6 +9,7 @@ * ***************************************************************/ +#include #include #include #include @@ -52,8 +53,6 @@ return 0; } -EXPORT_SYMBOL(EtherCAT_master_init); - /***************************************************************/ /** @@ -79,8 +78,6 @@ master->process_data_length = 0; } -EXPORT_SYMBOL(EtherCAT_master_clear); - /***************************************************************/ /** @@ -98,20 +95,30 @@ { unsigned int tries_left; +// EC_DBG("ECAT send...\n"); //HM + if (EtherCAT_simple_send(master, cmd) < 0) return -1; +// EC_DBG("ECAT call isr \n"); //HM + udelay(3); //FIXME nur zum Test HM + EtherCAT_device_call_isr(master->dev); - tries_left = 1000; + tries_left = 100; while (master->dev->state == ECAT_DS_SENT && tries_left) { udelay(1); +// EC_DBG("ECAT call isr \n"); //HM EtherCAT_device_call_isr(master->dev); tries_left--; } +// EC_DBG("ECAT recieve \n"); //HM + if (EtherCAT_simple_receive(master, cmd) < 0) return -1; +// EC_DBG("ECAT recieve done\n"); //HM + return 0; } @@ -502,8 +509,6 @@ return 0; } -EXPORT_SYMBOL(EtherCAT_check_slaves); - /***************************************************************/ /** @@ -635,7 +640,11 @@ if (cmd.working_counter != 1) { - EC_DBG(KERN_ERR "EtherCAT: Could not set state %02X - Device did not respond!\n", state_and_ack); + EC_DBG(KERN_ERR "EtherCAT: Could not set state %02X - Device \"%s %s\" (%d) did not respond!\n", + state_and_ack, + slave->desc->vendor_name, + slave->desc->product_name, + slave->ring_position*(-1)); return -3; } @@ -928,8 +937,6 @@ return 0; } -EXPORT_SYMBOL(EtherCAT_activate_all_slaves); - /***************************************************************/ /** @@ -958,8 +965,6 @@ return ret; } -EXPORT_SYMBOL(EtherCAT_deactivate_all_slaves); - /***************************************************************/ /** @@ -988,8 +993,6 @@ return 0; } -EXPORT_SYMBOL(EtherCAT_write_process_data); - /***************************************************************/ /** @@ -1010,7 +1013,7 @@ EtherCAT_device_call_isr(master->dev); - tries_left = 1000; + tries_left = 100; while (master->dev->state == ECAT_DS_SENT && tries_left) { udelay(1); @@ -1043,8 +1046,6 @@ return 0; } -EXPORT_SYMBOL(EtherCAT_read_process_data); - /***************************************************************/ /** @@ -1059,8 +1060,6 @@ master->dev->state = ECAT_DS_READY; } -EXPORT_SYMBOL(EtherCAT_clear_process_data); - /***************************************************************/ /** @@ -1097,3 +1096,12 @@ } /***************************************************************/ + +EXPORT_SYMBOL(EtherCAT_master_init); +EXPORT_SYMBOL(EtherCAT_master_clear); +EXPORT_SYMBOL(EtherCAT_read_process_data); +EXPORT_SYMBOL(EtherCAT_write_process_data); +EXPORT_SYMBOL(EtherCAT_check_slaves); +EXPORT_SYMBOL(EtherCAT_activate_all_slaves); +EXPORT_SYMBOL(EtherCAT_clear_process_data); +EXPORT_SYMBOL(EtherCAT_deactivate_all_slaves);