equal
deleted
inserted
replaced
1 /****************************************************************************** |
1 /****************************************************************************** |
2 * |
2 * |
3 * $Id$ |
3 * $Id: cdev.c,v ebda087981e1 2011/09/15 13:58:58 fp $ |
4 * |
4 * |
5 * Copyright (C) 2006-2008 Florian Pose, Ingenieurgemeinschaft IgH |
5 * Copyright (C) 2006-2008 Florian Pose, Ingenieurgemeinschaft IgH |
6 * |
6 * |
7 * This file is part of the IgH EtherCAT Master. |
7 * This file is part of the IgH EtherCAT Master. |
8 * |
8 * |
900 if (copy_from_user(sdo_data, (void __user *) data.data, data.data_size)) { |
900 if (copy_from_user(sdo_data, (void __user *) data.data, data.data_size)) { |
901 kfree(sdo_data); |
901 kfree(sdo_data); |
902 return -EFAULT; |
902 return -EFAULT; |
903 } |
903 } |
904 |
904 |
905 retval = ecrt_master_sdo_download(master, data.slave_position, |
905 if (data.complete_access) { |
906 data.sdo_index, data.sdo_entry_subindex, sdo_data, data.data_size, |
906 retval = ecrt_master_sdo_download_complete(master, data.slave_position, |
907 &data.abort_code); |
907 data.sdo_index, sdo_data, data.data_size, &data.abort_code); |
|
908 } else { |
|
909 retval = ecrt_master_sdo_download(master, data.slave_position, |
|
910 data.sdo_index, data.sdo_entry_subindex, sdo_data, |
|
911 data.data_size, &data.abort_code); |
|
912 } |
908 |
913 |
909 kfree(sdo_data); |
914 kfree(sdo_data); |
910 |
915 |
911 if (__copy_to_user((void __user *) arg, &data, sizeof(data))) { |
916 if (__copy_to_user((void __user *) arg, &data, sizeof(data))) { |
912 retval = -EFAULT; |
917 retval = -EFAULT; |