cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

sigmadsp-regmap.c (1573B)


      1// SPDX-License-Identifier: GPL-2.0-or-later
      2/*
      3 * Load Analog Devices SigmaStudio firmware files
      4 *
      5 * Copyright 2009-2011 Analog Devices Inc.
      6 */
      7
      8#include <linux/regmap.h>
      9#include <linux/export.h>
     10#include <linux/module.h>
     11
     12#include "sigmadsp.h"
     13
     14static int sigmadsp_write_regmap(void *control_data,
     15	unsigned int addr, const uint8_t data[], size_t len)
     16{
     17	return regmap_raw_write(control_data, addr,
     18		data, len);
     19}
     20
     21static int sigmadsp_read_regmap(void *control_data,
     22	unsigned int addr, uint8_t data[], size_t len)
     23{
     24	return regmap_raw_read(control_data, addr,
     25		data, len);
     26}
     27
     28/**
     29 * devm_sigmadsp_init_regmap() - Initialize SigmaDSP instance
     30 * @dev: The parent device
     31 * @regmap: Regmap instance to use
     32 * @ops: The sigmadsp_ops to use for this instance
     33 * @firmware_name: Name of the firmware file to load
     34 *
     35 * Allocates a SigmaDSP instance and loads the specified firmware file.
     36 *
     37 * Returns a pointer to a struct sigmadsp on success, or a PTR_ERR() on error.
     38 */
     39struct sigmadsp *devm_sigmadsp_init_regmap(struct device *dev,
     40	struct regmap *regmap, const struct sigmadsp_ops *ops,
     41	const char *firmware_name)
     42{
     43	struct sigmadsp *sigmadsp;
     44
     45	sigmadsp = devm_sigmadsp_init(dev, ops, firmware_name);
     46	if (IS_ERR(sigmadsp))
     47		return sigmadsp;
     48
     49	sigmadsp->control_data = regmap;
     50	sigmadsp->write = sigmadsp_write_regmap;
     51	sigmadsp->read = sigmadsp_read_regmap;
     52
     53	return sigmadsp;
     54}
     55EXPORT_SYMBOL_GPL(devm_sigmadsp_init_regmap);
     56
     57MODULE_AUTHOR("Lars-Peter Clausen <lars@metafoo.de>");
     58MODULE_DESCRIPTION("SigmaDSP regmap firmware loader");
     59MODULE_LICENSE("GPL");