linux/drivers/staging/media/atomisp/pci/ia_css_device_access.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0
   2/*
   3 * Support for Intel Camera Imaging ISP subsystem.
   4 * Copyright (c) 2015, Intel Corporation.
   5 *
   6 * This program is free software; you can redistribute it and/or modify it
   7 * under the terms and conditions of the GNU General Public License,
   8 * version 2, as published by the Free Software Foundation.
   9 *
  10 * This program is distributed in the hope it will be useful, but WITHOUT
  11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  12 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
  13 * more details.
  14 */
  15
  16#include "ia_css_device_access.h"
  17#include <type_support.h>   /* for uint*, size_t */
  18#include <system_local.h>   /* for hrt_address */
  19#include <ia_css_env.h>     /* for ia_css_hw_access_env */
  20#include <assert_support.h> /* for assert */
  21
  22static struct ia_css_hw_access_env my_env;
  23
  24void
  25ia_css_device_access_init(const struct ia_css_hw_access_env *env)
  26{
  27        assert(env);
  28
  29        my_env = *env;
  30}
  31
  32uint8_t
  33ia_css_device_load_uint8(const hrt_address addr)
  34{
  35        return my_env.load_8(addr);
  36}
  37
  38uint16_t
  39ia_css_device_load_uint16(const hrt_address addr)
  40{
  41        return my_env.load_16(addr);
  42}
  43
  44uint32_t
  45ia_css_device_load_uint32(const hrt_address addr)
  46{
  47        return my_env.load_32(addr);
  48}
  49
  50uint64_t
  51ia_css_device_load_uint64(const hrt_address addr)
  52{
  53        assert(0);
  54
  55        (void)addr;
  56        return 0;
  57}
  58
  59void
  60ia_css_device_store_uint8(const hrt_address addr, const uint8_t data)
  61{
  62        my_env.store_8(addr, data);
  63}
  64
  65void
  66ia_css_device_store_uint16(const hrt_address addr, const uint16_t data)
  67{
  68        my_env.store_16(addr, data);
  69}
  70
  71void
  72ia_css_device_store_uint32(const hrt_address addr, const uint32_t data)
  73{
  74        my_env.store_32(addr, data);
  75}
  76
  77void
  78ia_css_device_store_uint64(const hrt_address addr, const uint64_t data)
  79{
  80        assert(0);
  81
  82        (void)addr;
  83        (void)data;
  84}
  85
  86void
  87ia_css_device_load(const hrt_address addr, void *data, const size_t size)
  88{
  89        my_env.load(addr, data, (uint32_t)size);
  90}
  91
  92void
  93ia_css_device_store(const hrt_address addr, const void *data, const size_t size)
  94{
  95        my_env.store(addr, data, (uint32_t)size);
  96}
  97