v_vscaler: Coefficient register base address offset changed in IP

Coefficient register base address offset changed in IP from
0x400 to  0x800 to accomodate all supported taps.
Split Phase and Coefficient programming logic in 2 independent
API's. For Bicubic and Bilinear scalers only Phase needs to
be programmed.

Signed-off-by: Rohit Consul <rohit.consul@xilinx.com>
Acked-by: Srikanth Vemula <svemula@xilinx.com>
This commit is contained in:
Rohit Consul 2015-08-20 14:04:07 -07:00 committed by Nava kishore Manne
parent 53ce20d940
commit a9740e3b93
2 changed files with 12 additions and 4 deletions

View file

@ -57,7 +57,7 @@
#define XV_VSCALER_CTRL_BITS_HWREG_HEIGHTOUT_DATA 16
#define XV_VSCALER_CTRL_ADDR_HWREG_LINERATE_DATA 0x028
#define XV_VSCALER_CTRL_BITS_HWREG_LINERATE_DATA 32
#define XV_VSCALER_CTRL_ADDR_HWREG_VFLTCOEFF_BASE 0x400
#define XV_VSCALER_CTRL_ADDR_HWREG_VFLTCOEFF_HIGH 0x7ff
#define XV_VSCALER_CTRL_ADDR_HWREG_VFLTCOEFF_BASE 0x800
#define XV_VSCALER_CTRL_ADDR_HWREG_VFLTCOEFF_HIGH 0xbff
#define XV_VSCALER_CTRL_WIDTH_HWREG_VFLTCOEFF 16
#define XV_VSCALER_CTRL_DEPTH_HWREG_VFLTCOEFF 384

View file

@ -349,6 +349,7 @@ void XV_VScalerDbgReportStatus(XV_vscaler *InstancePtr)
u32 widthin, heightin, heightout, linerate;
u32 baseAddr, taps, phases;
int val,i,j;
const char *ScalerTypeStr[] = {"Bilinear", "Bicubic", "Polyphase"};
/*
* Assert validates the input arguments
@ -375,18 +376,25 @@ void XV_VScalerDbgReportStatus(XV_vscaler *InstancePtr)
xil_printf("IsReady: %d\r\n", ready);
xil_printf("Ctrl: 0x%x\r\n\r\n", ctrl);
xil_printf("Scaler Type: %d\r\n",pVsc->Config.ScalerType);
if(pVsc->Config.ScalerType <= XV_VSCALER_POLYPHASE)
{
xil_printf("Scaler Type: %s\r\n",ScalerTypeStr[pVsc->Config.ScalerType]);
}
else
{
xil_printf("Scaler Type: Unknown\r\n");
}
xil_printf("Input Width: %d\r\n",widthin);
xil_printf("Input Height: %d\r\n",heightin);
xil_printf("Output Height: %d\r\n",heightout);
xil_printf("Line Rate: %d\r\n",linerate);
xil_printf("Num Phases: %d\r\n",phases);
xil_printf("Num Taps: %d\r\n",taps*2);
if(pVsc->Config.ScalerType == XV_VSCALER_POLYPHASE)
{
short lsb, msb;
xil_printf("Num Taps: %d\r\n",taps*2);
xil_printf("\r\nCoefficients:");
baseAddr = XV_vscaler_Get_HwReg_vfltCoeff_BaseAddress(pVsc);