Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-elphel
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
linux-elphel
Commits
4c95cc78
Commit
4c95cc78
authored
Nov 17, 2016
by
Andrey Filippov
Browse files
Options
Browse Files
Download
Plain Diff
merged with framepars, correcting video memory access lines comparison
parents
6e83fec5
447b18ef
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
19 additions
and
9 deletions
+19
-9
latency.h
src/drivers/elphel/latency.h
+2
-0
param_depend.h
src/drivers/elphel/param_depend.h
+6
-1
pgm_functions.c
src/drivers/elphel/pgm_functions.c
+9
-6
x393_videomem.c
src/drivers/elphel/x393_videomem.c
+1
-1
c313a.h
src/include/uapi/elphel/c313a.h
+1
-1
No files found.
src/drivers/elphel/latency.h
View file @
4c95cc78
...
@@ -164,6 +164,8 @@ const unsigned long ahead_tab[]=
...
@@ -164,6 +164,8 @@ const unsigned long ahead_tab[]=
// NC393 - triggered mode wants onchange_compstop==2, while onchange_window == 1?
// NC393 - triggered mode wants onchange_compstop==2, while onchange_window == 1?
// onchange_compstop, 0, 2, 1, 2, 1, 0, /// stop compressor when changing geometry
// onchange_compstop, 0, 2, 1, 2, 1, 0, /// stop compressor when changing geometry
/// onchange_compstop, 0, 2, 1, 1, 1, 0, /// stop compressor when changing geometry
/// onchange_compstop, 0, 2, 1, 1, 1, 0, /// stop compressor when changing geometry
// TODO: NC393 now comstop is used when changing color modes does not need two cycles - just 1
onchange_compstop
,
0
,
2
,
2
,
2
,
2
,
0
,
/// stop compressor when changing geometry
onchange_compstop
,
0
,
2
,
2
,
2
,
2
,
0
,
/// stop compressor when changing geometry
onchange_compctl
,
0
,
0
,
1
,
1
,
1
,
0
,
/// only start/stop/single (after explicitly changed, not when geometry was changed)
onchange_compctl
,
0
,
0
,
1
,
1
,
1
,
0
,
/// only start/stop/single (after explicitly changed, not when geometry was changed)
// onchange_gammaload, 1, 0, 0, 0, 0, 0, /// write gamma tables (should be prepared). Maybe - just last byte, to activate?
// onchange_gammaload, 1, 0, 0, 0, 0, 0, /// write gamma tables (should be prepared). Maybe - just last byte, to activate?
...
...
src/drivers/elphel/param_depend.h
View file @
4c95cc78
...
@@ -199,7 +199,12 @@ const unsigned long param_depend_tab[]=
...
@@ -199,7 +199,12 @@ const unsigned long param_depend_tab[]=
P_BIN_VERT
,
ONCHANGE_WINDOW
|
ONCHANGE_EXPOSURE
|
ONCHANGE_HIST
|
ONCHANGE_AEXP
|
ONCHANGE_FOCUSMODE
|
ONCHANGE_LIMITFPS
|
ONCHANGE_HIST
|
\
P_BIN_VERT
,
ONCHANGE_WINDOW
|
ONCHANGE_EXPOSURE
|
ONCHANGE_HIST
|
ONCHANGE_AEXP
|
ONCHANGE_FOCUSMODE
|
ONCHANGE_LIMITFPS
|
ONCHANGE_HIST
|
\
ONCHANGE_MEMSENSOR
|
ONCHANGE_MEMCOMPRESSOR
|
ONCHANGE_COMPMODE
|
ONCHANGE_COMPSTOP
|
ONCHANGE_COMPRESTART
|
ONCHANGE_SENSORIN
,
ONCHANGE_MEMSENSOR
|
ONCHANGE_MEMCOMPRESSOR
|
ONCHANGE_COMPMODE
|
ONCHANGE_COMPSTOP
|
ONCHANGE_COMPRESTART
|
ONCHANGE_SENSORIN
,
//Oleg 20161014: trying to restart the compressor: + ONCHANGE_COMPSTOP | ONCHANGE_COMPRESTART
//Oleg 20161014: trying to restart the compressor: + ONCHANGE_COMPSTOP | ONCHANGE_COMPRESTART
P_COLOR
,
ONCHANGE_COMPMODE
|
ONCHANGE_LIMITFPS
|
ONCHANGE_MEMCOMPRESSOR
|
ONCHANGE_COMPSTOP
|
ONCHANGE_COMPRESTART
,
// P_COLOR, ONCHANGE_COMPMODE | ONCHANGE_LIMITFPS | ONCHANGE_MEMSENSOR | ONCHANGE_MEMCOMPRESSOR | ONCHANGE_COMPSTOP | ONCHANGE_COMPRESTART,
//Added ONCHANGE_WINDOW and related as JPEG <-> JP4 change window by the border pixels
P_COLOR
,
ONCHANGE_WINDOW
|
ONCHANGE_EXPOSURE
|
ONCHANGE_HIST
|
ONCHANGE_AEXP
|
ONCHANGE_FOCUSMODE
|
ONCHANGE_LIMITFPS
|
ONCHANGE_HIST
|
\
ONCHANGE_MEMSENSOR
|
ONCHANGE_MEMCOMPRESSOR
|
ONCHANGE_COMPMODE
|
ONCHANGE_COMPSTOP
|
ONCHANGE_COMPRESTART
|
ONCHANGE_SENSORIN
,
//P_COLOR, ONCHANGE_COMPMODE | ONCHANGE_LIMITFPS | ONCHANGE_MEMCOMPRESSOR,
//P_COLOR, ONCHANGE_COMPMODE | ONCHANGE_LIMITFPS | ONCHANGE_MEMCOMPRESSOR,
// P_PF_HEIGHT, ONCHANGE_RECALCSEQ | ONCHANGE_SENSORIN | ONCHANGE_LIMITFPS | ONCHANGE_MEMSENSOR | ONCHANGE_MEMCOMPRESSOR | ONCHANGE_COMPMODE | ONCHANGE_COMPSTOP | ONCHANGE_COMPRESTART ,
// P_PF_HEIGHT, ONCHANGE_RECALCSEQ | ONCHANGE_SENSORIN | ONCHANGE_LIMITFPS | ONCHANGE_MEMSENSOR | ONCHANGE_MEMCOMPRESSOR | ONCHANGE_COMPMODE | ONCHANGE_COMPSTOP | ONCHANGE_COMPRESTART ,
P_PF_HEIGHT
,
ONCHANGE_RECALCSEQ
|
ONCHANGE_WINDOW
|
ONCHANGE_EXPOSURE
|
ONCHANGE_HIST
|
ONCHANGE_AEXP
|
ONCHANGE_FOCUSMODE
|
ONCHANGE_LIMITFPS
|
ONCHANGE_HIST
|
\
P_PF_HEIGHT
,
ONCHANGE_RECALCSEQ
|
ONCHANGE_WINDOW
|
ONCHANGE_EXPOSURE
|
ONCHANGE_HIST
|
ONCHANGE_AEXP
|
ONCHANGE_FOCUSMODE
|
ONCHANGE_LIMITFPS
|
ONCHANGE_HIST
|
\
...
...
src/drivers/elphel/pgm_functions.c
View file @
4c95cc78
...
@@ -1164,7 +1164,7 @@ int pgm_limitfps (int sensor_port, ///< sensor port number (0..3
...
@@ -1164,7 +1164,7 @@ int pgm_limitfps (int sensor_port, ///< sensor port number (0..3
dev_dbg
(
g_dev_ptr
,
"{%d} frame16=%d
\n
"
,
sensor_port
,
frame16
);
dev_dbg
(
g_dev_ptr
,
"{%d} frame16=%d
\n
"
,
sensor_port
,
frame16
);
MDP
(
DBGB_PSFN
,
sensor_port
,
"frame16=%d
\n
"
,
frame16
)
MDP
(
DBGB_PSFN
,
sensor_port
,
"frame16=%d
\n
"
,
frame16
)
if
(
frame16
>=
PARS_FRAMES
)
return
-
1
;
// wrong frame
if
(
frame16
>=
PARS_FRAMES
)
return
-
1
;
// wrong frame
cycles
=
thispars
->
pars
[
P_TILES
];
// number of tiles
cycles
=
thispars
->
pars
[
P_TILES
];
// number of tiles
nc393: [P_TILES] == 0!
// dev_dbg(g_dev_ptr,"{%d} tiles=%d(0x%x)\n",sensor_port,cycles,cycles);
// dev_dbg(g_dev_ptr,"{%d} tiles=%d(0x%x)\n",sensor_port,cycles,cycles);
switch
(
thispars
->
pars
[
P_COLOR
]
&
0x0f
){
switch
(
thispars
->
pars
[
P_COLOR
]
&
0x0f
){
case
COLORMODE_MONO6
:
case
COLORMODE_MONO6
:
...
@@ -1239,7 +1239,7 @@ int pgm_limitfps (int sensor_port, ///< sensor port number (0..3
...
@@ -1239,7 +1239,7 @@ int pgm_limitfps (int sensor_port, ///< sensor port number (0..3
dev_dbg
(
g_dev_ptr
,
"{%d} period =%d(0x%x)
\n
"
,
sensor_port
,
period
,
period
);
dev_dbg
(
g_dev_ptr
,
"{%d} period =%d(0x%x)
\n
"
,
sensor_port
,
period
,
period
);
#endif
#endif
}
}
dev_dbg
(
g_dev_ptr
,
"{%d} period=%d
\n
"
,
sensor_port
,
period
);
dev_dbg
(
g_dev_ptr
,
"{%d} period=%d
\n
"
,
sensor_port
,
period
);
MDP
(
DBGB_PADD
,
sensor_port
,
"period =%d(0x%x)
\n
"
,
period
,
period
)
MDP
(
DBGB_PADD
,
sensor_port
,
"period =%d(0x%x)
\n
"
,
period
,
period
)
if
((
thispars
->
pars
[
P_FPSFLAGS
]
&
1
)
&&
(
period
>
min_period
))
min_period
=
period
;
if
((
thispars
->
pars
[
P_FPSFLAGS
]
&
1
)
&&
(
period
>
min_period
))
min_period
=
period
;
// *********************************************************** P_PF_HEIGHT
// *********************************************************** P_PF_HEIGHT
...
@@ -2025,7 +2025,7 @@ int pgm_memcompressor (int sensor_port, ///< sensor port number (
...
@@ -2025,7 +2025,7 @@ int pgm_memcompressor (int sensor_port, ///< sensor port number (
int
tile_height
;
// 16/18 (20 not yet implemented)
int
tile_height
;
// 16/18 (20 not yet implemented)
x393_cmprs_frame_format_t
cmprs_frame_format
=
{.
d32
=
0
};
x393_cmprs_frame_format_t
cmprs_frame_format
=
{.
d32
=
0
};
dev_dbg
(
g_dev_ptr
,
"{%d} frame16=%d
\n
"
,
sensor_port
,
frame16
);
dev_dbg
(
g_dev_ptr
,
"{%d} frame16=%d
, pars[P_COLOR]=0x%x
\n
"
,
sensor_port
,
frame16
,
(
int
)
thispars
->
pars
[
P_COLOR
]
);
MDP
(
DBGB_PSFN
,
sensor_port
,
"frame16=%d
\n
"
,
frame16
)
MDP
(
DBGB_PSFN
,
sensor_port
,
"frame16=%d
\n
"
,
frame16
)
if
(
frame16
>=
PARS_FRAMES
)
return
-
1
;
// wrong frame
if
(
frame16
>=
PARS_FRAMES
)
return
-
1
;
// wrong frame
width_marg
=
thispars
->
pars
[
P_ACTUAL_WIDTH
];
width_marg
=
thispars
->
pars
[
P_ACTUAL_WIDTH
];
...
@@ -2067,17 +2067,20 @@ int pgm_memcompressor (int sensor_port, ///< sensor port number (
...
@@ -2067,17 +2067,20 @@ int pgm_memcompressor (int sensor_port, ///< sensor port number (
// height_marg, // 16-bit window height (in scan lines)
// height_marg, // 16-bit window height (in scan lines)
0
,
// 13-bit window left margin in 8-bursts (16 bytes)
0
,
// 13-bit window left margin in 8-bursts (16 bytes)
cmprs_top
,
// 16-bit window top margin (in scan lines
cmprs_top
,
// 16-bit window top margin (in scan lines
tile_width
,
// tile width in b
j
ursts (16-pixels each)
tile_width
,
// tile width in bursts (16-pixels each)
tile_height
,
// tile height: 18 for color JPEG, 16 for JP4 flavors // = 18
tile_height
,
// tile height: 18 for color JPEG, 16 for JP4 flavors // = 18
16
,
// tile vertical step in pixel rows (JPEG18/jp4 = 16) // = 16
16
,
// tile vertical step in pixel rows (JPEG18/jp4 = 16) // = 16
(
frame16
<
0
)
?
ASAP
:
ABSOLUTE
,
// how to apply commands - directly or through channel sequencer
(
frame16
<
0
)
?
ASAP
:
ABSOLUTE
,
// how to apply commands - directly or through channel sequencer
frame16
);
// Frame number the command should be applied to (if not immediate mode)
frame16
);
// Frame number the command should be applied to (if not immediate mode)
X393_SEQ_SEND1
(
sensor_port
,
frame16
,
x393_cmprs_format
,
cmprs_frame_format
);
X393_SEQ_SEND1
(
sensor_port
,
frame16
,
x393_cmprs_format
,
cmprs_frame_format
);
dev_dbg
(
g_dev_ptr
,
"{%d} X3X3_SEQ_SEND1(0x%x, 0x%x, x393_cmprs_format, 0x%x)
\n
"
,
sensor_port
,
sensor_port
,
frame16
,
cmprs_frame_format
.
d32
);
// update P_TILES
setFramePar
(
sensor_port
,
thispars
,
P_TILES
,
(
cmprs_frame_format
.
num_macro_cols_m1
+
1
)
*
(
cmprs_frame_format
.
num_macro_rows_m1
+
1
));
return
0
;
return
0
;
// TODO: Do we need to maintain P_IMGSZMEM ?
// TODO: Do we need to maintain P_IMGSZMEM ?
// #define P_PAGE_ACQ 18 ///< Number of image page buffer to acquire to (0.1?)
// #define P_PAGE_READ 19 ///< Number of image page buffer to read from to (0.1?)
#else
#else
...
...
src/drivers/elphel/x393_videomem.c
View file @
4c95cc78
...
@@ -322,7 +322,7 @@ int control_compressor_memory (int num_sensor, ///< sensor port number (0.
...
@@ -322,7 +322,7 @@ int control_compressor_memory (int num_sensor, ///< sensor port number (0.
break
;
break
;
case
COMPRESSOR_RUN_CONT
:
case
COMPRESSOR_RUN_CONT
:
break
;
break
;
case
SEN
SOR_RUN_RESET
:
case
COMPRES
SOR_RUN_RESET
:
mcntrl_mode
.
chn_nreset
=
0
;
mcntrl_mode
.
chn_nreset
=
0
;
mcntrl_mode
.
enable
=
0
;
mcntrl_mode
.
enable
=
0
;
break
;
break
;
...
...
src/include/uapi/elphel/c313a.h
View file @
4c95cc78
...
@@ -291,7 +291,7 @@
...
@@ -291,7 +291,7 @@
#define COMPRESSOR_RUN_STOP 0 ///< Compressor mode: STOP
#define COMPRESSOR_RUN_STOP 0 ///< Compressor mode: STOP
#define COMPRESSOR_RUN_SINGLE 1 ///< Compressor mode: SINGLE
#define COMPRESSOR_RUN_SINGLE 1 ///< Compressor mode: SINGLE
#define COMPRESSOR_RUN_CONT 2 ///< Compressor mode: RUN
#define COMPRESSOR_RUN_CONT 2 ///< Compressor mode: RUN
#define COMPRESSOR_RUN_RESET
2
///< Compressor mode: RESET
#define COMPRESSOR_RUN_RESET
3
///< Compressor mode: RESET
#define P_BAYER 6 ///< filter number at (0,0) 0-R, 1-G(R), 2-G(B), 3 - B. Write enabled at first, move to WindowSize later
#define P_BAYER 6 ///< filter number at (0,0) 0-R, 1-G(R), 2-G(B), 3 - B. Write enabled at first, move to WindowSize later
#define P_TRIGGERED 7 ///< when trigger occured - 4 LSBs - pixel in DMA word, higher bits - number of DMA word OBSOLETE
#define P_TRIGGERED 7 ///< when trigger occured - 4 LSBs - pixel in DMA word, higher bits - number of DMA word OBSOLETE
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment