Loading src/drivers/elphel/framepars.c +1 −0 Original line number Diff line number Diff line Loading @@ -1628,6 +1628,7 @@ loff_t framepars_lseek(struct file * file, loff_t offset, int orig) break; case LSEEK_DMA_INIT: // initialize ETRAX DMA (normally done in sensor_common.c at driver init dev_dbg(g_devfp_ptr, "LSEEK_DMA_INIT\n"); trigger_restart (); // LSEEK_DMA_INIT is unused //x313_dma_init(); break; case LSEEK_DMA_STOP: // stop DMA Loading src/drivers/elphel/pgm_functions.c +13 −0 Original line number Diff line number Diff line Loading @@ -365,6 +365,11 @@ int pgm_detectsensor (int sensor_port, ///< sensor port number ( ///< @return OK - 0, <0 - error { x393_camsync_mode_t camsync_mode = {.d32=0}; x393_camsync_io_t camsync_src = {.d32=0x55555}; // all disabled (use internal) x393_camsync_io_t camsync_dst = {.d32=0x55555}; // all disable - nothing to output // Setting trigger input, output and preriod to off int was_sensor_freq = 0; // 90000000; // getClockFreq(1); int qperiod; int i2cbytes; Loading Loading @@ -411,6 +416,14 @@ int pgm_detectsensor (int sensor_port, ///< sensor port number ( // camsync_mode.ext_set = 1; x393_camsync_mode (camsync_mode); // Set inactive state to all I/O) and period: x393_camsync_trig_src(camsync_src); x393_camsync_trig_dst(camsync_dst); set_x393_camsync_trig_period(0); // dev_dbg(g_dev_ptr,"trying MT9P001\n"); // mt9x001_pgm_detectsensor(sensor_port, sensor, thispars, prevpars, frame16); // try Micron 5.0 Mpixel - should return sensor type Loading src/drivers/elphel/sensor_common.c +12 −0 Original line number Diff line number Diff line Loading @@ -996,6 +996,18 @@ void sensor_interrupts (int on, ///< 0 -interrupt disable, 1 - interrupt enabl x393_cmdframeseq_ctrl(cmdframeseq_mode, chn); } /** Recover from waiting trigger - internal FPGA or external by re-writing current period to the register in immediate mode * If the period was 0 (stopped), use 1 (single) */ void trigger_restart(void) { u32 period = get_x393_camsync_trig_period(); if (!period) period = 1; set_x393_camsync_trig_period(period); dev_dbg(g_dev_ptr, "Reset trigger period in immediate mode = %d (0x%x)\n", (int) period, (int) period); } int sequencer_stop_run_reset(int chn, ///< Sensor port int cmd) ///< Command: SEQ_CMD_STOP=0 - stop, SEQ_CMD_RUN=1 - run, SEQ_CMD_RESET=2 - reset ///< @return always 0 Loading src/drivers/elphel/sensor_common.h +2 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,8 @@ int init_compressor_dma(int chn_mask, int reset); void reset_compressor(unsigned int chn); void compressor_interrupts (int on, int chn); void sensor_interrupts (int on, int chn); void trigger_restart (void); int sequencer_stop_run_reset(int chn, int cmd); struct sensorproc_t * copy_sensorproc (int sensor_port, struct sensorproc_t * copy); Loading Loading
src/drivers/elphel/framepars.c +1 −0 Original line number Diff line number Diff line Loading @@ -1628,6 +1628,7 @@ loff_t framepars_lseek(struct file * file, loff_t offset, int orig) break; case LSEEK_DMA_INIT: // initialize ETRAX DMA (normally done in sensor_common.c at driver init dev_dbg(g_devfp_ptr, "LSEEK_DMA_INIT\n"); trigger_restart (); // LSEEK_DMA_INIT is unused //x313_dma_init(); break; case LSEEK_DMA_STOP: // stop DMA Loading
src/drivers/elphel/pgm_functions.c +13 −0 Original line number Diff line number Diff line Loading @@ -365,6 +365,11 @@ int pgm_detectsensor (int sensor_port, ///< sensor port number ( ///< @return OK - 0, <0 - error { x393_camsync_mode_t camsync_mode = {.d32=0}; x393_camsync_io_t camsync_src = {.d32=0x55555}; // all disabled (use internal) x393_camsync_io_t camsync_dst = {.d32=0x55555}; // all disable - nothing to output // Setting trigger input, output and preriod to off int was_sensor_freq = 0; // 90000000; // getClockFreq(1); int qperiod; int i2cbytes; Loading Loading @@ -411,6 +416,14 @@ int pgm_detectsensor (int sensor_port, ///< sensor port number ( // camsync_mode.ext_set = 1; x393_camsync_mode (camsync_mode); // Set inactive state to all I/O) and period: x393_camsync_trig_src(camsync_src); x393_camsync_trig_dst(camsync_dst); set_x393_camsync_trig_period(0); // dev_dbg(g_dev_ptr,"trying MT9P001\n"); // mt9x001_pgm_detectsensor(sensor_port, sensor, thispars, prevpars, frame16); // try Micron 5.0 Mpixel - should return sensor type Loading
src/drivers/elphel/sensor_common.c +12 −0 Original line number Diff line number Diff line Loading @@ -996,6 +996,18 @@ void sensor_interrupts (int on, ///< 0 -interrupt disable, 1 - interrupt enabl x393_cmdframeseq_ctrl(cmdframeseq_mode, chn); } /** Recover from waiting trigger - internal FPGA or external by re-writing current period to the register in immediate mode * If the period was 0 (stopped), use 1 (single) */ void trigger_restart(void) { u32 period = get_x393_camsync_trig_period(); if (!period) period = 1; set_x393_camsync_trig_period(period); dev_dbg(g_dev_ptr, "Reset trigger period in immediate mode = %d (0x%x)\n", (int) period, (int) period); } int sequencer_stop_run_reset(int chn, ///< Sensor port int cmd) ///< Command: SEQ_CMD_STOP=0 - stop, SEQ_CMD_RUN=1 - run, SEQ_CMD_RESET=2 - reset ///< @return always 0 Loading
src/drivers/elphel/sensor_common.h +2 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,8 @@ int init_compressor_dma(int chn_mask, int reset); void reset_compressor(unsigned int chn); void compressor_interrupts (int on, int chn); void sensor_interrupts (int on, int chn); void trigger_restart (void); int sequencer_stop_run_reset(int chn, int cmd); struct sensorproc_t * copy_sensorproc (int sensor_port, struct sensorproc_t * copy); Loading