intdir_find_tag(unsignedlongtag);//!find location of the tag field in meta page using long tag (Exif tag and tag group)
inlinevoidwrite_meta_raw_irq(intsensor_port,char*data,intoffset,intlen);//write data to meta, called from IRQ
inlineintwrite_meta_irq(intsensor_port,char*data,int*indx,unsignedlongltag,intlen);//write data to meta, called from IRQ(len==0 => use field length)
inlinevoidputlong_meta_raw_irq(intsensor_port,unsignedlongdata,intoffset);//write data to meta (4 bytes, big endian), called from IRQ
inlineintputlong_meta_irq(intsensor_port,unsignedlongdata,int*indx,unsignedlongltag);//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
voidwrite_meta_raw(intsensor_port,char*data,intoffset,intlen);//write data to meta, called from outside IRQ (atomic)
intwrite_meta(intsensor_port,char*data,int*indx,unsignedlongltag,intlen);//write data to meta, from outside IRQ (atomic) (len==0 => use field length). Returns index of the written data, -1 if not written
voidputlong_meta_raw(intsensor_port,unsignedlongdata,intoffset);//write data to meta (4 bytes, big endian), called from outside IRQ (atomic)
intputlong_meta(intsensor_port,unsignedlongdata,int*indx,unsignedlongltag);//write data to meta (4 bytes, big endian), from outside IRQ (atomic). Returns index of the written data, -1 if not written
/// Same for 10359 registers - will not change anything if there is no 10359 - these registers will not be changed, and if will be it wil cause no action
/// Same for 10359 registers - will not change anything if there is no 10359 - these registers will not be changed, and if will be it wil cause no action
for(i=0;i<P_M10359_NUMREGS;i++)afuncs2call[sensor_port][P_M10359_REGS+i]=ONCHANGE_SENSORREGS;/// by default each "manual" write to any of 256 registers will trigger pgm_sensorreg function
for(i=0;i<P_M10359_NUMREGS;i++)afuncs2call[sensor_port][P_M10359_REGS+i]=ONCHANGE_SENSORREGS;/// by default each "manual" write to any of 256 registers will trigger pgm_sensorreg function
initMultiPars();/// initialize structures for individual per-sensor parameters. Now only works for sensor registers using G_MULTI_REGSM. Should be called after/during sensor detection
initMultiPars(sensor_port);/// initialize structures for individual per-sensor parameters. Now only works for sensor registers using G_MULTI_REGSM. Should be called after/during sensor detection
frameParsInitialized=1;
frameParsInitialized=1;
}
}
...
@@ -335,7 +362,7 @@ inline unsigned long get_imageParamsPrev(int sensor_port, int n)
...
@@ -335,7 +362,7 @@ inline unsigned long get_imageParamsPrev(int sensor_port, int n)
* @param d data to write to the selected parameter
* @param d data to write to the selected parameter
// processParsSeq (sensorproc, thisFrameNumber & PARS_FRAMES_MASK, 0); ///maxahead=0, the rest will be processed after frame sync, from the tasklet
// processParsSeq (sensorproc, thisFrameNumber & PARS_FRAMES_MASK, 0); ///maxahead=0, the rest will be processed after frame sync, from the tasklet
MDF5(printk("\n"));
MDF5(printk("\n"));
processPars(sensorproc,thisFrameNumber(sensor_port)&PARS_FRAMES_MASK,0);///maxahead=0, the rest will be processed after frame sync, from the tasklet
processPars(sensor_port,sensorproc,thisFrameNumber(sensor_port)&PARS_FRAMES_MASK,0);///maxahead=0, the rest will be processed after frame sync, from the tasklet