Commit 1b1c1244 authored by Andrey Filippov's avatar Andrey Filippov
Browse files

start of merging with master

parent 03c34e84
Loading
Loading
Loading
Loading
+290 −81

File changed.

Preview size limit exceeded, changes collapsed.

+7 −3
Original line number Diff line number Diff line
@@ -31,9 +31,6 @@ unsigned int circbuf_poll (struct file *file, poll_table *wait);
 *!======================================================================================*/
extern wait_queue_head_t circbuf_wait_queue;

extern unsigned long  *ccam_dma_buf_ptr;
//unsigned long *circbuf_get_ccam_ptr(void);

// private data
struct circbuf_priv_t {
	int                 minor;
@@ -42,4 +39,11 @@ struct circbuf_priv_t {
};
extern struct circbuf_priv_t *circbuf_priv_ptr;

/* debug code follows */
extern unsigned short circbuf_quality;
extern unsigned short circbuf_height;
extern unsigned short circbuf_width;
extern unsigned char  circbuf_byrshift;
/* end of debug code */

#endif /* _CIRCBUF_H */
+4 −4
Original line number Diff line number Diff line
@@ -415,12 +415,12 @@ static int elphel393_clock10359_probe(struct platform_device *pdev)

static int elphel393_clock10359_remove(struct platform_device *pdev)
{
	dev_info(&pdev->dev,"Removing elphel393-sensor-i2c");
	dev_info(&pdev->dev,"Removing elphel393_clock10359");
	return 0;
}

static struct of_device_id elphel393_clock10359_of_match[] = {
	{ .compatible = "elphel,elphel393-sensor-i2c-1.00", },
	{ .compatible = "elphel,elphel393_clock10359-1.00", },
	{ /* end of table */}
};

@@ -430,7 +430,7 @@ static struct platform_driver elphel393_clock10359 = {
	.probe   = elphel393_clock10359_probe,
	.remove  = elphel393_clock10359_remove,
	.driver  = {
		.name  = "elphel393-sensor-i2c",
		.name  = DRV_NAME,
		.owner = THIS_MODULE,
		.of_match_table = elphel393_clock10359_of_match,
		.pm = NULL, /* power management */
@@ -440,7 +440,7 @@ static struct platform_driver elphel393_clock10359 = {
module_platform_driver(elphel393_clock10359);

MODULE_AUTHOR("Andrey Filippov  <andrey@elphel.com>");
MODULE_DESCRIPTION("Elphel 10393 sensor ports i2c");
MODULE_DESCRIPTION("Elphel 10393 10359");
MODULE_LICENSE("GPL");

+53 −41
Original line number Diff line number Diff line
@@ -176,12 +176,24 @@ ssize_t minor_file_size(int minor) { //return current file size for different mi
}
ssize_t minor_max_size(int minor) { //return max file size for different minors
	switch (minor) {
	case X3X3_EXIF_TEMPLATE: return MAX_EXIF_SIZE;
	case X3X3_EXIF_EXIF:     return MAX_EXIF_SIZE * (MAX_EXIF_FRAMES+1);
	case X3X3_EXIF_META:     return MAX_EXIF_SIZE;
	case X3X3_EXIF_METADIR:  return MAX_EXIF_FIELDS * sizeof(struct exif_dir_table_t);
	case X3X3_EXIF_TIME:     return sizeof(struct exif_time_t);
	default:return 0;
	case X3X3_EXIF_TEMPLATE:
		return MAX_EXIF_SIZE;
	case X3X3_EXIF_EXIF_CHN_0:
	case X3X3_EXIF_EXIF_CHN_1:
	case X3X3_EXIF_EXIF_CHN_2:
	case X3X3_EXIF_EXIF_CHN_3:
		return MAX_EXIF_SIZE * (MAX_EXIF_FRAMES+1);
	case X3X3_EXIF_META_CHN_0:
	case X3X3_EXIF_META_CHN_1:
	case X3X3_EXIF_META_CHN_2:
	case X3X3_EXIF_META_CHN_3:
		return MAX_EXIF_SIZE;
	case X3X3_EXIF_METADIR:
		return MAX_EXIF_FIELDS * sizeof(struct exif_dir_table_t);
	case X3X3_EXIF_TIME:
		return sizeof(struct exif_time_t);
	default:
		return 0;
	}
}
void exif_invalidate(void) { // 393: OK, only invalidates all ayt once
@@ -231,6 +243,7 @@ int exif_rebuild_chn(int sensor_port, int frames) {
		return -1;
	}
	memset(meta_buffer, 0, aexif_meta_size[sensor_port] * (MAX_EXIF_FRAMES+1));
	ameta_buffer[sensor_port] = meta_buffer;
	aexif_valid[sensor_port]  = 1;
	return 0;
}
@@ -507,7 +520,6 @@ static loff_t exif_lseek (struct file * file, loff_t offset, int orig) {
	int maxsize=minor_max_size(p);
	//   int sensor_port;
	int fp;

	switch (orig) {
	case SEEK_SET:
		file->f_pos = offset;
+5 −5
Original line number Diff line number Diff line
@@ -25,10 +25,10 @@ int exif_enable_chn(int sensor_port, int en); // enable/disable Exif process
int exif_enable(int en);                          // For all sensor ports
int dir_find_tag (unsigned long tag); //!find location of the tag field in meta page using long tag (Exif tag and tag group)

inline void write_meta_raw_irq(int sensor_port, char * data, int offset, int len); //write data to meta, called from IRQ
inline int write_meta_irq(int sensor_port, char * data, int * indx,  unsigned long ltag, int len); //write data to meta, called from IRQ(len==0 => use field length)
inline void putlong_meta_raw_irq(int sensor_port, unsigned long data, int offset); //write data to meta (4 bytes, big endian), called from IRQ
inline int putlong_meta_irq(int sensor_port, unsigned long data, int * indx,  unsigned long ltag); //write data to meta (4 bytes, big endian), from IRQ
void write_meta_raw_irq(int sensor_port, char * data, int offset, int len); //write data to meta, called from IRQ
int write_meta_irq(int sensor_port, char * data, int * indx,  unsigned long ltag, int len); //write data to meta, called from IRQ(len==0 => use field length)
void putlong_meta_raw_irq(int sensor_port, unsigned long data, int offset); //write data to meta (4 bytes, big endian), called from IRQ
int putlong_meta_irq(int sensor_port, unsigned long data, int * indx,  unsigned long ltag); //write data to meta (4 bytes, big endian), from IRQ
//void write_meta_raw_irq(char * data, int offset, int len); //write data to meta, called from IRQ
//int write_meta_irq(char * data, int * indx,  unsigned long ltag, int len); //write data to meta, called from IRQ(len==0 => use field length). Returns index of the written data, -1 if not written

@@ -37,7 +37,7 @@ int write_meta(int sensor_port, char * data, int * indx, unsigned long ltag, in
void putlong_meta_raw(int sensor_port, unsigned long data, int offset); //write data to meta (4 bytes, big endian), called from outside IRQ (atomic)
int putlong_meta(int sensor_port, unsigned long data, int * indx,  unsigned long ltag); //write data to meta (4 bytes, big endian), from outside IRQ (atomic). Returns index of the written data, -1 if not written

char * encode_time(unsigned long sec, unsigned long usec);
char * encode_time(char buf[27], unsigned long sec, unsigned long usec);
int store_meta(int sensor_port); //called from IRQ service - put current metadata to meta_buffer, return page index


Loading