blob: 807f75c882f76aaaf913dfc9cfafb6a52b01d516 [file] [log] [blame]
/*
* Samsung Exynos SoC series VIPx driver
*
* Copyright (c) 2018 Samsung Electronics Co., Ltd
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#include "vipx-log.h"
#include "vipx-debug.h"
#include "vipx-io.h"
void *vipx_io_copy_mem2io(void *dst, void *src, size_t size)
{
unsigned char *src8;
unsigned char *dst8;
src8 = (unsigned char *)(src);
dst8 = (unsigned char *)(dst);
/* first copy byte by byte till the source first alignment
* this step is necessary to ensure we do not even try to access
* data which is before the source buffer, hence it is not ours.
*/
/* complete the left overs */
while (size--) {
IOW8(*dst8, *src8);
dst8++;
src8++;
}
return dst;
}
void *vipx_io_copy_io2mem(void *dst, void *src, size_t size)
{
unsigned char *src8;
unsigned char *dst8;
src8 = (unsigned char *)(src);
dst8 = (unsigned char *)(dst);
while (size--) {
*dst8 = IOR8(*src8);
dst8++;
src8++;
}
return dst;
}