Commit 1f78441a authored by Robert Sprowson's avatar Robert Sprowson

Update to use SyncPol interlace flags

This driver: cannot do interlaced sync, can DMA two different interlaced fields.
Requires Kernel-6_21 or later.

Version 0.42. Tagged as 'OMAPVideo-0_42'
parent e285399d
/* (0.41)
/* (0.42)
*
* This file is automatically maintained by srccommit, do not edit manually.
* Last processed by srccommit version: 1.1.
*
*/
#define Module_MajorVersion_CMHG 0.41
#define Module_MajorVersion_CMHG 0.42
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 31 May 2018
#define Module_Date_CMHG 02 Jul 2019
#define Module_MajorVersion "0.41"
#define Module_Version 41
#define Module_MajorVersion "0.42"
#define Module_Version 42
#define Module_MinorVersion ""
#define Module_Date "31 May 2018"
#define Module_Date "02 Jul 2019"
#define Module_ApplicationDate "31-May-18"
#define Module_ApplicationDate "02-Jul-19"
#define Module_ComponentName "OMAPVideo"
#define Module_ComponentPath "bsd/RiscOS/Sources/Video/HWSupport/OMAPVideo"
#define Module_FullVersion "0.41"
#define Module_HelpVersion "0.41 (31 May 2018)"
#define Module_LibraryVersionInfo "0:41"
#define Module_FullVersion "0.42"
#define Module_HelpVersion "0.42 (02 Jul 2019)"
#define Module_LibraryVersionInfo "0:42"
......@@ -180,15 +180,9 @@ static int do_setmode(_kernel_swi_regs *r)
irqlocked_unlock();
modelocked_read_unlock();
}
/* Process control list to determine interlace setting */
int interlace = 0;
for(int i=0;params->ControlList[i].index != ControlList_Terminator;i++)
switch(params->ControlList[i].index)
{
case ControlList_Interlaced:
interlace = params->ControlList[i].value;
break;
}
/* Determine interlace setting */
int interlace = (params->SyncPol & (SyncPol_Interlace | SyncPol_InterlaceFields)) ==
SyncPol_Interlace | SyncPol_InterlaceFields;
pixelformat format = getformat(params);
dprintf(("","do_setmode: format %s\n",pixelformatnames[format]));
......@@ -374,18 +368,11 @@ static int do_vetmode(_kernel_swi_regs *r)
/* TODO - Needs updating for display rotation, etc. */
r->r[4] = 0;
const VIDCList3 *params = (const VIDCList3 *) r->r[0];
/* Process control list to determine interlace setting */
int interlace = 0;
for(int i=0;params->ControlList[i].index != ControlList_Terminator;i++)
switch(params->ControlList[i].index)
{
case ControlList_Interlaced:
interlace = params->ControlList[i].value;
/* Check value is sensible (0 or 1) */
if((interlace>>1) != 0)
return 1;
break;
}
/* Determine interlace setting */
int interlace = params->SyncPol & (SyncPol_Interlace | SyncPol_InterlaceFields);
/* Check value is one supported */
if ((interlace != 0) && (interlace != (SyncPol_Interlace | SyncPol_InterlaceFields)))
return 1;
/* Check colour depth */
pixelformat format = getformat(params);
if(format == PIXELFORMAT_MAX)
......@@ -662,7 +649,6 @@ static int do_readinfo(_kernel_swi_regs *r)
int len = 0;
int version = 0;
int controllist[] = {
ControlList_Interlaced,
ControlList_NColour,
ControlList_ModeFlags,
ControlList_Terminator
......
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