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

intel.h (1884B)


      1/* SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) */
      2/* Copyright(c) 2015-17 Intel Corporation. */
      3
      4#ifndef __SDW_INTEL_LOCAL_H
      5#define __SDW_INTEL_LOCAL_H
      6
      7/**
      8 * struct sdw_intel_link_res - Soundwire Intel link resource structure,
      9 * typically populated by the controller driver.
     10 * @mmio_base: mmio base of SoundWire registers
     11 * @registers: Link IO registers base
     12 * @shim: Audio shim pointer
     13 * @alh: ALH (Audio Link Hub) pointer
     14 * @irq: Interrupt line
     15 * @ops: Shim callback ops
     16 * @dev: device implementing hw_params and free callbacks
     17 * @shim_lock: mutex to handle access to shared SHIM registers
     18 * @shim_mask: global pointer to check SHIM register initialization
     19 * @clock_stop_quirks: mask defining requested behavior on pm_suspend
     20 * @link_mask: global mask needed for power-up/down sequences
     21 * @cdns: Cadence master descriptor
     22 * @list: used to walk-through all masters exposed by the same controller
     23 */
     24struct sdw_intel_link_res {
     25	void __iomem *mmio_base; /* not strictly needed, useful for debug */
     26	void __iomem *registers;
     27	void __iomem *shim;
     28	void __iomem *alh;
     29	int irq;
     30	const struct sdw_intel_ops *ops;
     31	struct device *dev;
     32	struct mutex *shim_lock; /* protect shared registers */
     33	u32 *shim_mask;
     34	u32 clock_stop_quirks;
     35	u32 link_mask;
     36	struct sdw_cdns *cdns;
     37	struct list_head list;
     38};
     39
     40struct sdw_intel {
     41	struct sdw_cdns cdns;
     42	int instance;
     43	struct sdw_intel_link_res *link_res;
     44	bool startup_done;
     45#ifdef CONFIG_DEBUG_FS
     46	struct dentry *debugfs;
     47#endif
     48};
     49
     50int intel_link_startup(struct auxiliary_device *auxdev);
     51int intel_link_process_wakeen_event(struct auxiliary_device *auxdev);
     52
     53struct sdw_intel_link_dev {
     54	struct auxiliary_device auxdev;
     55	struct sdw_intel_link_res link_res;
     56};
     57
     58#define auxiliary_dev_to_sdw_intel_link_dev(auxiliary_dev) \
     59	container_of(auxiliary_dev, struct sdw_intel_link_dev, auxdev)
     60
     61#endif /* __SDW_INTEL_LOCAL_H */