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

internal.h (2599B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/*
      3 * Driver for the Synopsys DesignWare DMA Controller
      4 *
      5 * Copyright (C) 2013 Intel Corporation
      6 */
      7
      8#ifndef _DMA_DW_INTERNAL_H
      9#define _DMA_DW_INTERNAL_H
     10
     11#include <linux/dma/dw.h>
     12
     13#include "regs.h"
     14
     15int do_dma_probe(struct dw_dma_chip *chip);
     16int do_dma_remove(struct dw_dma_chip *chip);
     17
     18void do_dw_dma_on(struct dw_dma *dw);
     19void do_dw_dma_off(struct dw_dma *dw);
     20
     21int do_dw_dma_disable(struct dw_dma_chip *chip);
     22int do_dw_dma_enable(struct dw_dma_chip *chip);
     23
     24extern bool dw_dma_filter(struct dma_chan *chan, void *param);
     25
     26#ifdef CONFIG_ACPI
     27void dw_dma_acpi_controller_register(struct dw_dma *dw);
     28void dw_dma_acpi_controller_free(struct dw_dma *dw);
     29#else /* !CONFIG_ACPI */
     30static inline void dw_dma_acpi_controller_register(struct dw_dma *dw) {}
     31static inline void dw_dma_acpi_controller_free(struct dw_dma *dw) {}
     32#endif /* !CONFIG_ACPI */
     33
     34struct platform_device;
     35
     36#ifdef CONFIG_OF
     37struct dw_dma_platform_data *dw_dma_parse_dt(struct platform_device *pdev);
     38void dw_dma_of_controller_register(struct dw_dma *dw);
     39void dw_dma_of_controller_free(struct dw_dma *dw);
     40#else
     41static inline struct dw_dma_platform_data *dw_dma_parse_dt(struct platform_device *pdev)
     42{
     43	return NULL;
     44}
     45static inline void dw_dma_of_controller_register(struct dw_dma *dw) {}
     46static inline void dw_dma_of_controller_free(struct dw_dma *dw) {}
     47#endif
     48
     49struct dw_dma_chip_pdata {
     50	const struct dw_dma_platform_data *pdata;
     51	int (*probe)(struct dw_dma_chip *chip);
     52	int (*remove)(struct dw_dma_chip *chip);
     53	struct dw_dma_chip *chip;
     54};
     55
     56static __maybe_unused const struct dw_dma_chip_pdata dw_dma_chip_pdata = {
     57	.probe = dw_dma_probe,
     58	.remove = dw_dma_remove,
     59};
     60
     61static const struct dw_dma_platform_data idma32_pdata = {
     62	.nr_channels = 8,
     63	.chan_allocation_order = CHAN_ALLOCATION_ASCENDING,
     64	.chan_priority = CHAN_PRIORITY_ASCENDING,
     65	.block_size = 131071,
     66	.nr_masters = 1,
     67	.data_width = {4},
     68	.multi_block = {1, 1, 1, 1, 1, 1, 1, 1},
     69};
     70
     71static __maybe_unused const struct dw_dma_chip_pdata idma32_chip_pdata = {
     72	.pdata = &idma32_pdata,
     73	.probe = idma32_dma_probe,
     74	.remove = idma32_dma_remove,
     75};
     76
     77static const struct dw_dma_platform_data xbar_pdata = {
     78	.nr_channels = 8,
     79	.chan_allocation_order = CHAN_ALLOCATION_ASCENDING,
     80	.chan_priority = CHAN_PRIORITY_ASCENDING,
     81	.block_size = 131071,
     82	.nr_masters = 1,
     83	.data_width = {4},
     84	.quirks = DW_DMA_QUIRK_XBAR_PRESENT,
     85};
     86
     87static __maybe_unused const struct dw_dma_chip_pdata xbar_chip_pdata = {
     88	.pdata = &xbar_pdata,
     89	.probe = idma32_dma_probe,
     90	.remove = idma32_dma_remove,
     91};
     92
     93#endif /* _DMA_DW_INTERNAL_H */