equal
deleted
inserted
replaced
1255 data.syncs[i].pdo_count = |
1255 data.syncs[i].pdo_count = |
1256 ec_pdo_list_count(&sc->sync_configs[i].pdos); |
1256 ec_pdo_list_count(&sc->sync_configs[i].pdos); |
1257 } |
1257 } |
1258 data.sdo_count = ec_slave_config_sdo_count(sc); |
1258 data.sdo_count = ec_slave_config_sdo_count(sc); |
1259 data.slave_position = sc->slave ? sc->slave->ring_position : -1; |
1259 data.slave_position = sc->slave ? sc->slave->ring_position : -1; |
|
1260 data.dc_assign_activate = sc->dc_assign_activate; |
|
1261 for (i = 0; i < EC_SYNC_SIGNAL_COUNT; i++) { |
|
1262 data.dc_sync[i] = sc->dc_sync[i]; |
|
1263 } |
1260 |
1264 |
1261 up(&master->master_sem); |
1265 up(&master->master_sem); |
1262 |
1266 |
1263 if (copy_to_user((void __user *) arg, &data, sizeof(data))) |
1267 if (copy_to_user((void __user *) arg, &data, sizeof(data))) |
1264 return -EFAULT; |
1268 return -EFAULT; |
1934 ec_master_t *master, /**< EtherCAT master. */ |
1938 ec_master_t *master, /**< EtherCAT master. */ |
1935 unsigned long arg, /**< ioctl() argument. */ |
1939 unsigned long arg, /**< ioctl() argument. */ |
1936 ec_cdev_priv_t *priv /**< Private data structure of file handle. */ |
1940 ec_cdev_priv_t *priv /**< Private data structure of file handle. */ |
1937 ) |
1941 ) |
1938 { |
1942 { |
1939 ec_ioctl_sc_dc_t data; |
1943 ec_ioctl_config_t data; |
1940 ec_slave_config_t *sc; |
1944 ec_slave_config_t *sc; |
1941 |
1945 |
1942 if (unlikely(!priv->requested)) |
1946 if (unlikely(!priv->requested)) |
1943 return -EPERM; |
1947 return -EPERM; |
1944 |
1948 |
1951 if (!(sc = ec_master_get_config(master, data.config_index))) { |
1955 if (!(sc = ec_master_get_config(master, data.config_index))) { |
1952 up(&master->master_sem); |
1956 up(&master->master_sem); |
1953 return -ENOENT; |
1957 return -ENOENT; |
1954 } |
1958 } |
1955 |
1959 |
1956 ecrt_slave_config_dc(sc, data.assign_activate, |
1960 ecrt_slave_config_dc(sc, data.dc_assign_activate, |
1957 data.sync[0].cycle_time, |
1961 data.dc_sync[0].cycle_time, |
1958 data.sync[0].shift_time, |
1962 data.dc_sync[0].shift_time, |
1959 data.sync[1].cycle_time, |
1963 data.dc_sync[1].cycle_time, |
1960 data.sync[1].shift_time); |
1964 data.dc_sync[1].shift_time); |
1961 |
1965 |
1962 up(&master->master_sem); |
1966 up(&master->master_sem); |
1963 |
1967 |
1964 return 0; |
1968 return 0; |
1965 } |
1969 } |