Commit fb527e25 authored by Andrey Filippov's avatar Andrey Filippov

updated for Doxygen

parent 61ff7f09
...@@ -99,9 +99,9 @@ WARN_LOGFILE = ...@@ -99,9 +99,9 @@ WARN_LOGFILE =
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Configuration options related to the input files # Configuration options related to the input files
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
INPUT = linux/source/drivers/elphel linux/source/drivers/ata/ahci_elphel.c linux/source/drivers/clk/clk-si5338.c linux/source/drivers/misc/ltc3589.c linux/source/drivers/misc/vsc330x.c linux/source/drivers/mmc/host/sdhci.c linux/source/drivers/mmc/host/sdhci.h linux/source/drivers/mtd/nand/nand_base.c linux/source/drivers/mtd/nand/nand.h linux/source/drivers/mtd/nand/nandchip-micron.c linux/source/drivers/mtd/nand/pl35x-nand.c linux/source/include/elphel linux/source/include/linux/i2c/ltc3589.h INPUT = linux/source/drivers/elphel linux/source/drivers/ata/ahci_elphel.c linux/source/drivers/clk/clk-si5338.c linux/source/drivers/misc/ltc3589.c linux/source/drivers/misc/vsc330x.c linux/source/drivers/mmc/host/sdhci.c linux/source/drivers/mmc/host/sdhci.h linux/source/drivers/mtd/nand/nand_base.c linux/source/drivers/mtd/nand/nand.h linux/source/drivers/mtd/nand/nandchip-micron.c linux/source/drivers/mtd/nand/pl35x_nand.c linux/source/include/elphel linux/source/include/linux/i2c/ltc3589.h
INPUT_ENCODING = UTF-8 INPUT_ENCODING = UTF-8
FILE_PATTERNS = *.h *.cpp *.md FILE_PATTERNS = *.h *.cpp *.c *.md
RECURSIVE = YES RECURSIVE = YES
EXCLUDE = src/logos.cpp src/lodepng.cpp EXCLUDE = src/logos.cpp src/lodepng.cpp
EXCLUDE_SYMLINKS = NO EXCLUDE_SYMLINKS = NO
......
/*!*************************************************************************** /*!***************************************************************************
*! FILE NAME : si5338.c * @file si5338.c
*! DESCRIPTION: control of the Silicon Laboratories SI5338 clock generator * @brief control of the Silicon Laboratories SI5338 clock generator
*! Copyright (C) 2013 Elphel, Inc. * @copyright Copyright (C) 2013 Elphel, Inc.
*! -----------------------------------------------------------------------------**
*! *
*! This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
*! it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
*! the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
*! (at your option) any later version. * (at your option) any later version.
*! *
*! This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
*! but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
*! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
*! GNU General Public License for more details. * GNU General Public License for more details.
*! *
*! You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
*! along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
/*#define DEBUG // should be before linux/module.h - enables dev_dbg at boot in this file (needs "debug" in bootarg)*/ /*#define DEBUG // should be before linux/module.h - enables dev_dbg at boot in this file (needs "debug" in bootarg)*/
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* images/video. Buffer frame data is filled in by the FPGA, frame pointers and * images/video. Buffer frame data is filled in by the FPGA, frame pointers and
* essential frames metadata filled during servicing of the interrupts. * essential frames metadata filled during servicing of the interrupts.
* *
* Copyright (C) 2016 Elphel, Inc * @copyright Copyright (C) 2016 Elphel, Inc
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
* -----------------------------------------------------------------------------**
*/ */
//#define DEBUG 1 //#define DEBUG 1
......
...@@ -27,8 +27,8 @@ unsigned int circbuf_poll (struct file *file, poll_table *wait); ...@@ -27,8 +27,8 @@ unsigned int circbuf_poll (struct file *file, poll_table *wait);
//int init_ccam_dma_buf_ptr(void); //int init_ccam_dma_buf_ptr(void);
/*!====================================================================================== /*!======================================================================================
*! Wait queue for the processes waiting for a new frame to appear in the circular buffer * Wait queue for the processes waiting for a new frame to appear in the circular buffer
*!======================================================================================*/ *======================================================================================*/
extern wait_queue_head_t circbuf_wait_queue; extern wait_queue_head_t circbuf_wait_queue;
// private data // private data
......
/******************************************************************************* /*******************************************************************************
* FILE NAME : clock10359.c * @file clock10359.c
* DESCRIPTION: Control of the CY22393 clock on the 10359 multiplexer connected * @brief Control of the CY22393 clock on the 10359 multiplexer connected
* to the sensor port * to the sensor port
* Copyright 2002-2016 (C) Elphel, Inc. * Copyright 2002-2016 (C) Elphel, Inc.
* -----------------------------------------------------------------------------* * -----------------------------------------------------------------------------*
......
/******************************************************************************* /*******************************************************************************
* FILE NAME : clock10359.h * @file clock10359.h
* DESCRIPTION: Control of the CY22393 clock on the 10359 multiplexer connected * @brief Control of the CY22393 clock on the 10359 multiplexer connected
* to the sensor port * to the sensor port
* Copyright 2002-2016 (C) Elphel, Inc. * Copyright 2002-2016 (C) Elphel, Inc.
* -----------------------------------------------------------------------------* * -----------------------------------------------------------------------------*
......
/*!*************************************************************************** /*!***************************************************************************
*! FILE NAME : elphel393-init.c * @file elphel393-init.c
*! DESCRIPTION: * Unlock rootfs NAND flash partition * @brief * Unlock rootfs NAND flash partition
*! * Read MAC and other useful info from NAND flash OTP area * * Read MAC and other useful info from NAND flash OTP area
*! and put to sysfs * and put to sysfs
*! *
*! E-mail: oleg@elphel.com, support-list@elphel.com * E-mail: oleg@elphel.com, support-list@elphel.com
*! *
*! Copyright (C) 2016 Elphel, Inc. * @copyright Copyright (C) 2016 Elphel, Inc.
*! -----------------------------------------------------------------------------**
*! *
*! This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
*! it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
*! the Free Software Foundation, either version 2 of the License, or * the Free Software Foundation, either version 2 of the License, or
*! (at your option) any later version. * (at your option) any later version.
*! *
*! This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
*! but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
*! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
*! GNU General Public License for more details. * GNU General Public License for more details.
*! *
*! You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
*! along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*!****************************************************************************/ *****************************************************************************/
#define DRV_NAME "elphel393-init" #define DRV_NAME "elphel393-init"
#define pr_fmt(fmt) DRV_NAME": " fmt #define pr_fmt(fmt) DRV_NAME": " fmt
......
/*!*************************************************************************** /*!***************************************************************************
*! FILE NAME : elphel393-mem.c * @file elphel393-mem.c
*! DESCRIPTION: Reserve large memory range at boot time (when it is available) * @brief Reserve large memory range at boot time (when it is available)
*! to use as a circular video buffer * to use as a circular video buffer
*! Copyright (C) 2015 Elphel, Inc. * @copyright Copyright (C) 2015 Elphel, Inc.
*! -----------------------------------------------------------------------------**
*! *
*! This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
*! it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
*! the Free Software Foundation, either version 2 of the License, or * the Free Software Foundation, either version 2 of the License, or
*! (at your option) any later version. * (at your option) any later version.
*! *
*! This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
*! but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
*! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
*! GNU General Public License for more details. * GNU General Public License for more details.
*! *
*! You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
*! along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*!****************************************************************************/ *****************************************************************************/
#define DRV_NAME "elphel393-mem" #define DRV_NAME "elphel393-mem"
#define pr_fmt(fmt) DRV_NAME": " fmt #define pr_fmt(fmt) DRV_NAME": " fmt
......
/*!*************************************************************************** /*!***************************************************************************
*! FILE NAME : elphel393-pwr.c * @file elphel393-pwr.c
*! DESCRIPTION: power supplies control on Elphel 10393 board * @brief power supplies control on Elphel 10393 board
*! Copyright (C) 2013-2016 Elphel, Inc. * @copyright Copyright (C) 2013-2016 Elphel, Inc.
*! -----------------------------------------------------------------------------** *
*! * This program is free software: you can redistribute it and/or modify
*! This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by
*! it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or
*! the Free Software Foundation, either version 2 of the License, or * (at your option) any later version.
*! (at your option) any later version. *
*! * This program is distributed in the hope that it will be useful,
*! This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of
*! but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
*! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details.
*! GNU General Public License for more details. *
*! * You should have received a copy of the GNU General Public License
*! You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>.
*! along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#undef DEBUG /* should be before linux/module.h - enables dev_dbg at boot in this file */ #undef DEBUG /* should be before linux/module.h - enables dev_dbg at boot in this file */
#include <linux/i2c.h> #include <linux/i2c.h>
......
/*!******************************************************************************** /*!********************************************************************************
*! FILE NAME : exif353.c * @file exif353.c
*! DESCRIPTION: Drivers for Exif manipulation * @brief Drivers for Exif manipulation
*! Copyright (C) 2008 Elphel, Inc. * @copyright Copyright (C) 2008 Elphel, Inc.
*! -----------------------------------------------------------------------------**
*! *
*! This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
*! it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
*! the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
*! (at your option) any later version. * (at your option) any later version.
*! *
*! This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
*! but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
*! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
*! GNU General Public License for more details. * GNU General Public License for more details.
*! *
*! You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
*! along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*! -----------------------------------------------------------------------------**
*! $Log: exif353.c,v $ * $Log: exif353.c,v $
*! Revision 1.2 2009/02/18 06:27:34 elphel * Revision 1.2 2009/02/18 06:27:34 elphel
*! fixed system date calculation fro Exif (was 2 days ahead in the years after leap) * fixed system date calculation fro Exif (was 2 days ahead in the years after leap)
*! *
*! Revision 1.1.1.1 2008/11/27 20:04:00 elphel * Revision 1.1.1.1 2008/11/27 20:04:00 elphel
*! *
*! *
*! Revision 1.3 2008/09/20 00:29:49 elphel * Revision 1.3 2008/09/20 00:29:49 elphel
*! moved driver major/minor numbers to a single file - include/asm-cris/elphel/driver_numbers.h * moved driver major/minor numbers to a single file - include/asm-cris/elphel/driver_numbers.h
*! *
*! Revision 1.2 2008/09/12 00:23:59 elphel * Revision 1.2 2008/09/12 00:23:59 elphel
*! removed cc353.c, cc353.h * removed cc353.c, cc353.h
*! *
*! Revision 1.4 2008/04/25 21:28:56 elphel * Revision 1.4 2008/04/25 21:28:56 elphel
*! added more functions for access from the IRQ, changed them to inline * added more functions for access from the IRQ, changed them to inline
*! *
*! Revision 1.3 2008/04/11 23:16:51 elphel * Revision 1.3 2008/04/11 23:16:51 elphel
*! removed unneeded local_irq_disable() after local_irq_save_flags() * removed unneeded local_irq_disable() after local_irq_save_flags()
*! *
*! Revision 1.2 2008/04/07 09:45:30 elphel * Revision 1.2 2008/04/07 09:45:30 elphel
*! removed unused variable * removed unused variable
*! *
*! Revision 1.1 2008/04/07 09:09:07 elphel * Revision 1.1 2008/04/07 09:09:07 elphel
*! New driver to handle Exif * New driver to handle Exif
*! *
*! *
*/ */
......
/*!*************************************************************************** /**************************************************************************//**
*! FILE NAME : fpgajtag353.c * @file fpgajtag353.c
*! DESCRIPTION: TBD * @brief TBD
*! Copyright 2002-20016 (C) Elphel, Inc. * @copyright Copyright 2002-20016 (C) Elphel, Inc.
*! -----------------------------------------------------------------------------** *
*! * This program is free software: you can redistribute it and/or modify
*! This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by
*! it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or
*! the Free Software Foundation, either version 2 of the License, or * (at your option) any later version.
*! (at your option) any later version. *
*! * This program is distributed in the hope that it will be useful,
*! This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of
*! but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
*! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details.
*! GNU General Public License for more details. *
*! * You should have received a copy of the GNU General Public License
*! You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>.
*! along with this program. If not, see <http://www.gnu.org/licenses/>. * -----------------------------------------------------------------------------**
*! -----------------------------------------------------------------------------**
*/ */
#undef DEBUG #undef DEBUG
/****************** INCLUDE FILES SECTION ***********************************/ /****************** INCLUDE FILES SECTION ***********************************/
......
/** @file framepars.c /** @file framepars.c
* @brief Handling of frame parameters, making use of FPGA i2c * @brief Handling of frame parameters, making use of FPGA i2c
* and command sequencer that accepts commands up to 6 frames ahead. * and command sequencer that accepts commands up to 6 frames ahead.
*
* This module includes parameter storage, code called from ISR, * This module includes parameter storage, code called from ISR,
* from other kernel drivers as well as from the user space * from other kernel drivers as well as from the user space
* Copyright (C) 2016 Elphel, Inc. * @copyright Copyright (C) 2016 Elphel, Inc.
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* @brief This file contains methods for JPEG tables and headers generation and * @brief This file contains methods for JPEG tables and headers generation and
* JPEG files composition from data compressed by FPGA. * JPEG files composition from data compressed by FPGA.
* *
* Copyright (C) 2016 Elphel, Inc * @copyright Copyright (C) 2016 Elphel, Inc
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
...@@ -328,18 +328,18 @@ int jpeghead_open(struct inode *inode, struct file *filp) ...@@ -328,18 +328,18 @@ int jpeghead_open(struct inode *inode, struct file *filp)
} }
/*!================================================================= /*!=================================================================
*! Overloading lseek with additional functionality (to avoid ioctls) * Overloading lseek with additional functionality (to avoid ioctls)
*! with orig==SEEK_END lseek will treat (offset>0) as a byte pointer * with orig==SEEK_END lseek will treat (offset>0) as a byte pointer
*! in (char *)ccam_dma_buf_ptr of a frame pointer and use quality, * in (char *)ccam_dma_buf_ptr of a frame pointer and use quality,
*! width and height to regenerate header. * width and height to regenerate header.
*! frame pointers are 32-bytes aligned, so adding 1 to offest * frame pointers are 32-bytes aligned, so adding 1 to offest
*! will make sure it is always >0 (as offset=0, orig=SEEK_END * will make sure it is always >0 (as offset=0, orig=SEEK_END
*! will just move pointer to the end and return file length. * will just move pointer to the end and return file length.
*! *
*! When called with orig==SEEK_END, offset>0 lseek will position * When called with orig==SEEK_END, offset>0 lseek will position
*! file at the very beginning and return 0 if OK, -EINVAL if * file at the very beginning and return 0 if OK, -EINVAL if
*! frame header is not found for the specified offset * frame header is not found for the specified offset
*!================================================================*/ *================================================================*/
loff_t jpeghead_lseek(struct file *file, loff_t offset, int orig, loff_t jpeghead_lseek(struct file *file, loff_t offset, int orig,
struct interframe_params_t *fp) struct interframe_params_t *fp)
{ {
...@@ -429,18 +429,18 @@ int huffman_open(struct inode *inode, struct file *filp) ...@@ -429,18 +429,18 @@ int huffman_open(struct inode *inode, struct file *filp)
} }
/*!================================================================= /*!=================================================================
*! Overloading lseek with additional functionality * Overloading lseek with additional functionality
*! with orig==SEEK_END , offset==LSEEK_HUFFMAN_DC0 - position at Huffman DC0 * with orig==SEEK_END , offset==LSEEK_HUFFMAN_DC0 - position at Huffman DC0
*! with orig==SEEK_END , offset==LSEEK_HUFFMAN_AC0 - position at Huffman DC0 * with orig==SEEK_END , offset==LSEEK_HUFFMAN_AC0 - position at Huffman DC0
*! with orig==SEEK_END , offset==LSEEK_HUFFMAN_DC1 - position at Huffman DC0 * with orig==SEEK_END , offset==LSEEK_HUFFMAN_DC1 - position at Huffman DC0
*! with orig==SEEK_END , offset==LSEEK_HUFFMAN_AC1 - position at Huffman DC0 * with orig==SEEK_END , offset==LSEEK_HUFFMAN_AC1 - position at Huffman DC0
*! with orig==SEEK_END , offset==LSEEK_HUFFMAN_FPGATAB - position at FPGA table * with orig==SEEK_END , offset==LSEEK_HUFFMAN_FPGATAB - position at FPGA table
*! with orig==SEEK_END , offset==LSEEK_HUFFMAN_DEFAULT - fill in default tables * with orig==SEEK_END , offset==LSEEK_HUFFMAN_DEFAULT - fill in default tables
*! with orig==SEEK_END , offset==LSEEK_HUFFMAN_FPGACALC - calculate FPGA table * with orig==SEEK_END , offset==LSEEK_HUFFMAN_FPGACALC - calculate FPGA table
*! with orig==SEEK_END , offset==LSEEK_HUFFMAN_FPGAPGM - program FPGA table * with orig==SEEK_END , offset==LSEEK_HUFFMAN_FPGAPGM - program FPGA table
*! those commands do not move the file pointer (return current), * those commands do not move the file pointer (return current),
*! or negative in the case of error (calculate FPGA table) * or negative in the case of error (calculate FPGA table)
*!================================================================*/ *================================================================*/
loff_t huffman_lseek(struct file *file, loff_t offset, int orig) loff_t huffman_lseek(struct file *file, loff_t offset, int orig)
{ {
unsigned int minor = MINOR(file->f_inode->i_rdev); unsigned int minor = MINOR(file->f_inode->i_rdev);
......
/*!******************************************************************************** /*!********************************************************************************
*! FILE NAME : param_depend.h * file param_depend.h
*! DESCRIPTION: Specifies, which actions should be performed when some acquisition *! DESCRIPTION: Specifies, which actions should be performed when some acquisition
*! parameters are changed *! parameters are changed
*! Copyright (C) 2008 Elphel, Inc. *! Copyright (C) 2008 Elphel, Inc.
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
* FPGA table accommodates 8 pairs of quantization coefficients, so software tries * FPGA table accommodates 8 pairs of quantization coefficients, so software tries
* to reuse loaded tables when possible * to reuse loaded tables when possible
* *
* Copyright (C) 2016 Elphel, Inc. * @copyright Copyright (C) 2016 Elphel, Inc.
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
......
/** @file sensor_common.h /**
* @file sensor_common.c
* @brief This module handles sensor discovery, initialization and programming tasks * @brief This module handles sensor discovery, initialization and programming tasks
* common for all sensors. Task that are implemented: * common for all sensors. Task that are implemented:
* - system initialization (?) * - system initialization (?)
...@@ -7,9 +8,7 @@ ...@@ -7,9 +8,7 @@
* - interrupts handling * - interrupts handling
* - tasklets * - tasklets
* - device driver that includes waiting for the next frame regardless of compression * - device driver that includes waiting for the next frame regardless of compression
*/ * @copyright Copyright (C) 2016 Elphel, Inc.
/* Copyright (C) 2016 Elphel, Inc.
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
...@@ -79,45 +78,27 @@ ...@@ -79,45 +78,27 @@
//#include "x393.h" //#include "x393.h"
#include "x393_helpers.h" #include "x393_helpers.h"
/** @brief Driver name to display in log messages. */ /** @brief Driver name to display in log messages.*/
#define IMAGEACQ_DRIVER_NAME "Elphel (R) Model 393 Image Acquisition device driver" #define IMAGEACQ_DRIVER_NAME "Elphel (R) Model 393 Image Acquisition device driver"
/** @brief The size in bytes of L2 cache invalidation area. This size must be aligned to cache line size.
* 16 kbytes seems to be good starting point. */ /** @brief The size in bytes of L2 cache invalidation area. This size must be aligned to cache line size. 16 kbytes seems to be good starting point.*/
#define L2_INVAL_SIZE (32 * 1024) #define L2_INVAL_SIZE (32 * 1024)
/**@struct jpeg_ptr_t /** @brief Contains read and write pointers along with IRQ number for a single channel*/
* @brief \e jpeg_ptr_t structure contains read and write pointers along with
* IRQ number for a single channel
* @var jpeg_ptr_t::jpeg_wr
* JPEG write pointer in 32 bit words
* @var jpeg_ptr_t::jpeg_rp
* JPEG read pointer in 32 bit words
* @var jpeg_ptr_t::fpga_cntr_prev
* This field contains previous value of the FPGA transfer counter which is used
* to find out if it has changed. This pointer is in 32 bit words.
* @var jpeg_ptr_t::irq_num_comp
* IRQ number associated with compressor
* @var jpeg_ptr_t::irq_num_sens
* IRQ number associated with sensor
* @var jpeg_ptr_t::chn_num
* Current channel number
*/
struct jpeg_ptr_t { struct jpeg_ptr_t {
volatile int jpeg_wp; volatile int jpeg_wp; ///< JPEG write pointer in 32 bit words
volatile int jpeg_rp; volatile int jpeg_rp; ///< JPEG read pointer in 32 bit words
volatile int fpga_cntr_prev; volatile int fpga_cntr_prev; ///< This field contains previous value of the FPGA transfer counter which is used to find out if it has changed. This pointer is in 32 bit words.
unsigned int irq_num_comp; unsigned int irq_num_comp; ///< IRQ number associated with compressor
unsigned int irq_num_sens; unsigned int irq_num_sens; ///< IRQ number associated with sensor
unsigned int chn_num; unsigned int chn_num; ///< Current channel number
volatile unsigned int flags; volatile unsigned int flags;
}; };
/**@struct image_acq_pd_t /** @brief Contains private data for the image acquisition driver */
* @brief \e image_acq_pd contains private data for the image acquisition driver
*/
struct image_acq_pd_t { struct image_acq_pd_t {
int minor; int minor; ///< Driver minor number
struct jpeg_ptr_t jpeg_ptr[SENSOR_PORTS]; struct jpeg_ptr_t jpeg_ptr[SENSOR_PORTS]; ///< Array of read/write pointers
}; };
/* debug code follows */ /* debug code follows */
long long zero_counter[SENSOR_PORTS] = {0}; long long zero_counter[SENSOR_PORTS] = {0};
...@@ -146,17 +127,21 @@ long long get_frame_pos(unsigned int chn, unsigned int pos) ...@@ -146,17 +127,21 @@ long long get_frame_pos(unsigned int chn, unsigned int pos)
static struct image_acq_pd_t image_acq_priv; static struct image_acq_pd_t image_acq_priv;
static volatile int JPEG_wp; //static volatile int JPEG_wp;
static volatile int JPEG_rp; //static volatile int JPEG_rp;
static int fpga_counter_prev=0; /// Previous value of the FPGA transfer counter (to find out if it did change) //static int fpga_counter_prev=0; ///< Previous value of the FPGA transfer counter (to find out if it did change)
static struct meta_offsets_t { // works like a cache to time save on looking for tags in the directory (forced to recalculate if does not match)
int Image_DateTime; // will have offset of the Exif_Image_DateTime data in meta page (Exif_Photo_SubSecTime should go immediately after in meta page) /** @brief Works like a cache to time save on looking for tags in the directory (forced to recalculate if does not match)
int Photo_DateTimeOriginal; * will have offset of the Exif_Image_DateTime data in meta page (Exif_Photo_SubSecTime should go immediately after in meta page)
int Photo_ExposureTime; */
int Image_ImageNumber; static struct meta_offsets_t {
int Image_Orientation; int Image_DateTime; ///< EXIF Date/Time offset
int Photo_MakerNote; int Photo_DateTimeOriginal; ///< EXIF Date/Time Original offset
int PageNumber; int Photo_ExposureTime; ///< EXIF exposure offset
int Image_ImageNumber; ///< EXIF image number offset
int Image_Orientation; ///< EXIF image orientation offset
int Photo_MakerNote; ///< EXIF maker note (custom data for multi-frame composite images) offset
int PageNumber; ///< EXIF subchannel (0..3) number offset
} meta_offsets; } meta_offsets;
#ifdef TEST_DISABLE_CODE #ifdef TEST_DISABLE_CODE
...@@ -205,6 +190,7 @@ void tasklet_fpga_function(unsigned long arg); ...@@ -205,6 +190,7 @@ void tasklet_fpga_function(unsigned long arg);
/** /**
* @brief Copy #sensorproc structure, needed for multisensor board to be able * @brief Copy #sensorproc structure, needed for multisensor board to be able
* to replace some of the functions * to replace some of the functions
* @param[in] sensor_port sesnolr port number
* @param[in] copy pointer to a copy structure * @param[in] copy pointer to a copy structure
* @return pointer to a \b copy structure * @return pointer to a \b copy structure
*/ */
...@@ -420,6 +406,7 @@ inline struct interframe_params_t* updateIRQ_interframe(struct jpeg_ptr_t *jptr) ...@@ -420,6 +406,7 @@ inline struct interframe_params_t* updateIRQ_interframe(struct jpeg_ptr_t *jptr)
/** /**
* @brief Fill exif data with the current frame data, save pointer to Exif page in the interframe area * @brief Fill exif data with the current frame data, save pointer to Exif page in the interframe area
* @param jptr pointer to jpeg_ptr_t structure with read/write image pointers
* @param interframe pointer to interframe parameters structure * @param interframe pointer to interframe parameters structure
*/ */
inline void updateIRQ_Exif(struct jpeg_ptr_t *jptr, struct interframe_params_t* interframe) { inline void updateIRQ_Exif(struct jpeg_ptr_t *jptr, struct interframe_params_t* interframe) {
......
/** @file sensor_common.c
*
*/
#ifndef _SENSOR_COMMON_H #ifndef _SENSOR_COMMON_H
#define _SENSOR_COMMON_H #define _SENSOR_COMMON_H
......
/******************************************************************************* /***************************************************************************//**
* FILE NAME : sensor_i2c.c * @file sensor_i2c.c
* DESCRIPTION: Interface to FPGA-based i2c sequencer for sensor ports * @brief Interface to FPGA-based i2c sequencer for sensor ports
* Copyright 2016 (C) Elphel, Inc. * @copyright Copyright 2016 (C) Elphel, Inc.
* -----------------------------------------------------------------------------*
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
......
/******************************************************************************* /*******************************************************************************
* FILE NAME : sensor_i2c.h * @file sensor_i2c.h
* DESCRIPTION: Interface to FPGA-based i2c sequencer for sensor ports * @brief Interface to FPGA-based i2c sequencer for sensor ports
* Copyright 2016 (C) Elphel, Inc. * @copyright Copyright 2016 (C) Elphel, Inc.
* -----------------------------------------------------------------------------* * -----------------------------------------------------------------------------*
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
......
/*!*************************************************************************** /*!***************************************************************************
*! FILE NAME : ltc3589.c * @file ltc3589.c
*! DESCRIPTION: control of the Linear Technology LTC3589 8-channel voltage regulator * @brief control of the Linear Technology LTC3589 8-channel voltage regulator
*! Copyright (C) 2013 Elphel, Inc. * @copyright Copyright (C) 2013 Elphel, Inc.
*! -----------------------------------------------------------------------------**
*! *
*! This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
*! it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
*! the Free Software Foundation, either version 2 of the License, or * the Free Software Foundation, either version 2 of the License, or
*! (at your option) any later version. * (at your option) any later version.
*! *
*! This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
*! but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
*! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
*! GNU General Public License for more details. * GNU General Public License for more details.
*! *
*! You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
*! along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#undef DEBUG /* should be before linux/module.h - enables dev_dbg at boot in this file */ #undef DEBUG /* should be before linux/module.h - enables dev_dbg at boot in this file */
#include <linux/init.h> #include <linux/init.h>
......
/*!*************************************************************************** /*!***************************************************************************
*! FILE NAME : vsc330x.c * @file vsc330x.c
*! DESCRIPTION: control of the VSC3304 4x4 crosspoint switch * @brief control of the VSC3304 4x4 crosspoint switch
*! Copyright (C) 2013-2016 Elphel, Inc. * @copyright Copyright (C) 2013-2016 Elphel, Inc.
*! -----------------------------------------------------------------------------**
*! *
*! This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
*! it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
*! the Free Software Foundation, either version 2 of the License, or * the Free Software Foundation, either version 2 of the License, or
*! (at your option) any later version. * (at your option) any later version.
*! *
*! This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
*! but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
*! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
*! GNU General Public License for more details. * GNU General Public License for more details.
*! *
*! You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
*! along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include <linux/i2c.h> #include <linux/i2c.h>
......
/*!*************************************************************************** /*!***************************************************************************
*! FILE NAME : elphel393-mem.h * @file elphel393-mem.h
*! DESCRIPTION: * @brief
*! Copyright (C) 2015 Elphel, Inc. * @copyright Copyright (C) 2015 Elphel, Inc.
*! -----------------------------------------------------------------------------**
*! *
*! This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
*! it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
*! the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
*! (at your option) any later version. * (at your option) any later version.
*! *
*! This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
*! but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
*! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
*! GNU General Public License for more details. * GNU General Public License for more details.
*! *
*! You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
*! along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*!****************************************************************************/ *****************************************************************************/
struct elphel_buf_t struct elphel_buf_t
{ {
// Coherent DMA buffer // Coherent DMA buffer
......
/*!*************************************************************************** /*!***************************************************************************
*! FILE NAME : ltc3589.c * @file ltc3589.c
*! DESCRIPTION: control of the Linear Technology LTC3589 8-channel voltage regulator * @brief control of the Linear Technology LTC3589 8-channel voltage regulator
*! Copyright (C) 2013 Elphel, Inc. * @copyright Copyright (C) 2013 Elphel, Inc.
*! -----------------------------------------------------------------------------**
*! *
*! This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
*! it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
*! the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
*! (at your option) any later version. * (at your option) any later version.
*! *
*! This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
*! but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
*! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
*! GNU General Public License for more details. * GNU General Public License for more details.
*! *
*! You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
*! along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef __LINUX_LTC3589_H #ifndef __LINUX_LTC3589_H
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment