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

wil_platform.h (2536B)


      1/* SPDX-License-Identifier: ISC */
      2/*
      3 * Copyright (c) 2014-2017 Qualcomm Atheros, Inc.
      4 */
      5
      6#ifndef __WIL_PLATFORM_H__
      7#define __WIL_PLATFORM_H__
      8
      9struct device;
     10
     11enum wil_platform_event {
     12	WIL_PLATFORM_EVT_FW_CRASH = 0,
     13	WIL_PLATFORM_EVT_PRE_RESET = 1,
     14	WIL_PLATFORM_EVT_FW_RDY = 2,
     15	WIL_PLATFORM_EVT_PRE_SUSPEND = 3,
     16	WIL_PLATFORM_EVT_POST_SUSPEND = 4,
     17};
     18
     19enum wil_platform_features {
     20	WIL_PLATFORM_FEATURE_FW_EXT_CLK_CONTROL = 0,
     21	WIL_PLATFORM_FEATURE_TRIPLE_MSI = 1,
     22	WIL_PLATFORM_FEATURE_MAX,
     23};
     24
     25enum wil_platform_capa {
     26	WIL_PLATFORM_CAPA_RADIO_ON_IN_SUSPEND = 0,
     27	WIL_PLATFORM_CAPA_T_PWR_ON_0 = 1,
     28	WIL_PLATFORM_CAPA_EXT_CLK = 2,
     29	WIL_PLATFORM_CAPA_MAX,
     30};
     31
     32/**
     33 * struct wil_platform_ops - wil platform module calls from this
     34 * driver to platform driver
     35 */
     36struct wil_platform_ops {
     37	int (*bus_request)(void *handle, uint32_t kbps /* KBytes/Sec */);
     38	int (*suspend)(void *handle, bool keep_device_power);
     39	int (*resume)(void *handle, bool device_powered_on);
     40	void (*uninit)(void *handle);
     41	int (*notify)(void *handle, enum wil_platform_event evt);
     42	int (*get_capa)(void *handle);
     43	void (*set_features)(void *handle, int features);
     44};
     45
     46/**
     47 * struct wil_platform_rops - wil platform module callbacks from
     48 * platform driver to this driver
     49 * @ramdump: store a ramdump from the wil firmware. The platform
     50 *	driver may add additional data to the ramdump to
     51 *	generate the final crash dump.
     52 * @fw_recovery: start a firmware recovery process. Called as
     53 *      part of a crash recovery process which may include other
     54 *      related platform subsystems.
     55 */
     56struct wil_platform_rops {
     57	int (*ramdump)(void *wil_handle, void *buf, uint32_t size);
     58	int (*fw_recovery)(void *wil_handle);
     59};
     60
     61/**
     62 * wil_platform_init - initialize the platform driver
     63 *
     64 * @dev - pointer to the wil6210 device
     65 * @ops - structure with platform driver operations. Platform
     66 *	driver will fill this structure with function pointers.
     67 * @rops - structure with callbacks from platform driver to
     68 *	this driver. The platform driver copies the structure to
     69 *	its own storage. Can be NULL if this driver does not
     70 *	support crash recovery.
     71 * @wil_handle - context for this driver that will be passed
     72 *      when platform driver invokes one of the callbacks in
     73 *      rops. May be NULL if rops is NULL.
     74 */
     75void *wil_platform_init(struct device *dev, struct wil_platform_ops *ops,
     76			const struct wil_platform_rops *rops, void *wil_handle);
     77
     78int __init wil_platform_modinit(void);
     79void wil_platform_modexit(void);
     80
     81#endif /* __WIL_PLATFORM_H__ */