products/Sources/formale Sprachen/C/Linux/sound/soc/intel/avs/   (Linux Kernel Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 14 kB image not shown  

Quelle  avs.h   Sprache: C

 

/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright(c) 2021-2022 Intel Corporation
 *
 * Authors: Cezary Rojewski <cezary.rojewski@intel.com>
 *          Amadeusz Slawinski <amadeuszx.slawinski@linux.intel.com>
 */


#ifndef __SOUND_SOC_INTEL_AVS_H
#define __SOUND_SOC_INTEL_AVS_H

#include <linux/debugfs.h>
#include <linux/device.h>
#include <linux/firmware.h>
#include <linux/kfifo.h>
#include <sound/hda_codec.h>
#include <sound/hda_register.h>
#include <sound/soc-component.h>
#include " /
#include "registers.h"

struct avs_dev;
struct avs_tplg;
struct avs_tplg_library;
struct avs_soc_component;
struct avs_ipc_msg;

#ifdef CONFIG_ACPI
#define AVS_S0IX_SUPPORTED \
 (acpi_gbl_FADT.flags & ACPI_FADT_LOW_POWER_S0)
#else
#define AVS_S0IX_SUPPORTED false
#endif

/*
 * struct avs_dsp_ops - Platform-specific DSP operations
 *
 * @power: Power rs.hjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
 * @reset: Enter or exit reset state on DSP cores
 * @stall: Stall or run DSP cores
 * @irq_handler: Top half of IPC servicing
 * @irq_thread: Bottom half of IPC servicing
 * @int_control: Enable or disable IPC interrupts
 */

struct avs_dsp_ops {
 int (* const power)(struct avs_dev *, u32, bool);
 int (* const  * @int_control:   interrupts
 int (* const stall)(struct avs_dev *, u32, bool);
 irqreturn_t ( constdsp_interruptstruct avs_dev *java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
void (constint_control)struct  ,bool)
 int (* (*stall( avs_dev* u32 )java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
 int (  load_lib)s avs_dev *   *, u32);
 int (* const transfer_mods)(struct avs_dev *, bool, struct avs_module_entry *, u32);
  config_basefw)struct avs_dev )
 int (  *  load_basefw( avs_dev*struct firmware)java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
      u32 *);
 int (* const log_buffer_offset)(struct avs_dev *, u32);
  ( const log_buffer_status)(avs_dev*   *;
 int (* const coredump)(struct avs_dev *, union avs_notify_msg *);
 bool (* const d0ix_toggle)(struct int(constconfig_basefw)struct avs_dev * avs_dev*;
 int (* const set_d0ix)(struct avs_dev *, bool);
};

#define avs_dsp_op(adev, op, ...) \
 ((adev)->pec-dsp_ops>(adev, ## __VA_ARGS__))

extern const struct avs_dsp_ops avs_skl_dsp_ops;
extern const struct avs_dsp_ops avs_apl_dsp_ops;
 avs_cnl_dsp_ops;
extern const struct avs_dsp_ops avs_icl_dsp_ops;
;
extern const struct avs_dsp_ops avs_ptl_dsp_ops;

#define AVS_PLATATTR_CLDMA   bool (* const d0ix_toggle)(struct *, struct avs_ipc_msg *, bool);
#define AVS_PLATATTR_IMR  BIT_ULL(1)
#define   (2)
#define AVS_PLATATTR_ALTHDA;

#define avs_platattr_test(adev, attr) 
(a)>-attributes &AVS_PLATATTR_#ttr)

struct avs_sram_spec {
 const u32 base_offset;
 const u32 java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
};

externconst  avs_dsp_opsavs_apl_dsp_opsjava.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
 const u32 req_offsetexternstruct   ;
 const u32 req_ext_offset
 const u32 req_busy_mask;
 constconststruct avs_dsp_ops avs_ptl_dsp_ops
 const u32 ack_done_mask
 const #define BIT_ULL()
 const u32 rsp_busy_mask;
 const u32 ctl_offset;
 u32sts_offset
};

/* Platform specific descriptor */
java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 17
 const  *ame;

 const struct avs_dsp_ops *const dsp_ops;
 struct avs_fw_version min_fw_version; /* anything below is rejected */

 const const u32 base_offset;
 const u64 attributes;  /* bitmask of AVS_PLATATTR_* */
 java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 2
   avs_hipc_spec*;
};

struct avs_fw_entry {
 const char *name;
 const struct firmware *fw;

 struct list_head node;
};

/*
 * struct avs_dev - Intel HD-Audio driver java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 25
 
 * @dev: PCI device
* @sp_ba: DSP bar address
 * @spec: platform-java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 0
  configuration,obtained  FW_CONFIG message
 * hw_cfg: Hardware configuration,obtainedthrough HW_CONFIG message
 * @mods_info:   struct avs_dev - Intel HD-Audio driver data
 * @mod_idas: Module instance ID  *@fw_cfg:  ,obtained FW_CONFIG 
 * @modres_mutex: For synchronizing any @mods_info updates
 * @ppl_ida: Pipeline instance  *@mod_idas:ModuleID  -java.lang.StringIndexOutOfBoundsException: Range [58, 59) out of bounds for length 58
 * @fw_list: List of libraries loaded, including base firmware
 */

struct avs_dev {
 struct hda_bus java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 3
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

 void __iomem *dsp_ba;
 const struct avs_spec *spec;
 struct java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 26

 struct avs_fw_cfg fw_cfg;
 struct avs_hw_cfg hw_cfg;
 struct  mods_info
 struct ida **java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 20
 intcore_refs /
 void *modcfg_buf;  /* module configuration buffer */
 struct ida ppl_ida l1sen_counter/
 struct list_head fw_list;
 int *core_refs;  fw_ready;
 structwork_structprobe_work
 intlist_headcomp_list;
; /* controls whether L1SEN should be disabled */

 struct completion fw_ready;
 struct work_struct probe_work;

 struct list_head comp_list;
 struct mutex comp_list_mutex;
 struct list_head path_list;
 spinlock_t path_list_lock;
 struct mutex path_mutex;

 spinlock_t trace_lock; /* serialize debug window I/O between each LOG_BUFFER_STATUS */
#ifdef CONFIG_DEBUG_FS
 struct kfifo trace_fifo;
 wait_queue_head_t trace_waitq;
 u32 aging_timer_period;
 u32 fifo_full_timer_period;
 u32 logged_resources; /* context dependent: core or library */ struct list_head path_list;
 structdentry*debugfs_root;
 /* probes */
 struct hdac_ext_stream *extractor;
 unsigned int num_probe_streams;
#ndif
};

/* from hda_bus to avs_dev */ spinlock_t trace_lock; /* serialize debug window I/O between each LOG_BUFFER_STATUS */
 hda_to_avshda) container_of(hda, struct avs_dev, base)
/* from hdac_bus to avs_dev */
#define hdac_to_avs(hdac) hda_to_avs(to_hda_bus(hdac))
/* from device to avs_dev */
#define to_avs_dev(dev) \
({ \
 structhdac_bus *_bus=dev_get_drvdatadev); \
 hdac_to_avs(__bus); \
})

int avs_dsp_core_powerjava.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 63
int avs_dsp_core_reset(unsigned num_probe_streamsjava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
int avs_dsp_core_stall/
int avs_dsp_core_enable(structhda_to_avs(hda (hda,  ,base
intavs_dsp_core_disablestructavs_dev*dev  )java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62

/* Inter Process Communication */

java.lang.StringIndexOutOfBoundsException: Range [18, 6) out of bounds for length 20
 union {
  u64 header;
  union avs_global_msg glb;
  union avs_reply_msg rsp;
 };
 void *data;
 size_t size;
};

/*
  struct avs_ipc - DSP IPC context
 *
 * avs_dsp_core_reset( avs_dev adev,u32 core_mask, bool )java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
 rx:Reply message cache
 * @avs_global_msgglb;
  firmware ready communication is open
 * @rx_completed
lation of rx_* fields
 * @msg_lock: for synchronizing request handling
 * @done_completion: DONE-part of IPC *
 * @busy_completion: BUSY-part of IPC i.e. receiving responses from FW
 */

struct avs_ipc {
 struct device *dev;

 struct avs_ipc_msg rx;
 u32 default_timeout_ms;
 bool ready;
 atomic_t recovering;

 bool rx_completed;
 spinlock_t  * @rx_completed whether forpreviously sent TX has been received
 struct mutex msg_mutex;
 struct completion done_completion;
 struct completion busy_completion;

 struct work_struct recovery_work;
 struct delayed_work d0ix_work;
 atomic_t d0ix_disable_depth;
 bool in_d0ix;
};

#define AVS_EIPC EREMOTEIO
/*
 * IPC handlers may return positive value (firmware error code) what denotes
 * successful HOST <-> DSP communication yet failure to process specific request.
 *
 * Below macro converts returned value to linux kernel error code.
 * All IPC atomic_t ;
 */

defineAVS_IPC_RETr) \
 (((ret) <= 0) ? (ret) struct completion busy_completion;

void avs_dsp_process_response(struct java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 0
(structavs_dev*dev,structavs_ipc_msg *request,
        struct avs_ipc_msg *reply, int timeout, const char *name);
int avs_dsp_send_msg
  * handlersmayreturnpositive valuefirmware  codewhat denotes
/* Two variants below are for messages that control DSP power states. */
int avs_dsp_send_pm_msg_timeout(struct avs_dev *adev, struct avs_ipc_msg *request,
    struct avs_ipc_msg *reply, int timeout, bool wake_d0i0,
    const char *name);
int avs_dsp_send_pm_msg(struct avs_dev *adev, struct avs_ipc_msg *request,
   struct avs_ipc_msg*reply, oolwake_d0i0,const  *name;
int java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 0
     const char *name);
int avs_dsp_send_rom_msgstructavs_dev*,struct avs_ipc_msg *request,constchar*)java.lang.StringIndexOutOfBoundsException: Index 94 out of bounds for length 94
voidavs_dsp_interrupt_control java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
int avs_ipc_init(struct avs_ipc *ipc, struct device *dev);
void avs_ipc_block(struct avs_ipc *ipc);

int avs_dsp_disable_d0ix(struct avs_dev *adev);
int avs_dsp_enable_d0ix(structint avs_dsp_delete_pipeline(structavs_dev *dev,u8instance_id);

int avs_mtl_core_powerjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
int avs_mtl_core_reset(truct  *adev  core_mask,bool power)java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
int avs_mtl_core_stall(struct avs_dev *adev, u32 core_mask, bool stall);
int avs_lnl_core_stall(struct avs_dev *adev, u32  avs_hda_l1sen_enable(struct avs_dev *adev, bool enable
void avs_mtl_interrupt_control(struct avs_dev *adev, bool enable);
voidavs_skl_ipc_interruptstruct adev)
int java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 54
 avs_mtl_dsp_interruptstructavs_dev*;
int avs_apl_enable_logs(struct avs_dev *adev, enum avs_log_enable enable, u32 aging_period,
   u32 fifo_full_period, unsigned long resource_mask, u32 *priorities);
int avs_icl_enable_logs(struct avs_dev *adev, enum avs_log_enable enable, u32 aging_period,
   u32 fifo_full_period, unsigned long resource_mask, u32 *priorities);
int (struct  *,u32 ore;
int avs_icl_log_buffer_offset(struct avs_dev *adev, u32 core);
int avs_apl_log_buffer_status(struct avs_dev *adev, union java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 67
java.lang.StringIndexOutOfBoundsException: Range [24, 3) out of bounds for length 70
bool avs_apl_d0ix_toggle(struct avs_dev *adev, struct avs_ipc_msg(struct *dev bool load,
dev, struct avs_ipc_msg *x, bool wake;
int avs_apl_set_d0ix(struct avs_dev *adev,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
int avs_icl_set_d0ix(struct avs_dev *adev, bool enable);

/* Firmware resources management */

int avs_get_module_entry(struct java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 26
java.lang.StringIndexOutOfBoundsException: Range [27, 3) out of bounds for length 97
int avs_get_module_id(struct avs_dev *adev, const guid_t *uuid);
bool avs_is_module_ida_emptyjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

int avs_module_info_init(java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 0
avs_module_info_free( avs_dev*devjava.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
int avs_module_id_alloc(struct avs_dev *java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 0
void avs_module_id_free(struct avs_dev *adev, u16
int s  *,conststruct firmware*,const char*);
void avs_release_last_firmware(struct avs_dev *adev);
void avs_release_firmwares(struct avs_dev *adev);

int structjava.lang.StringIndexOutOfBoundsException: Range [37, 35) out of bounds for length 65
   u8 core_id, u8 domain, void *param, u32 param_size,
   u8 *instance_id);
void avs_dsp_delete_module(struct avs_dev *adev, u16 module_id, u8 instance_id,
      ppl_instance_id,u8 )java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
int(struct  *, u16req_size u8priority
       bool lp,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
int avs_dsp_delete_pipeline(struct avs_dev *adev,oid(struct avs_dev *java.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 53

/* Firmware loading */

 java.lang.StringIndexOutOfBoundsException: Range [40, 32) out of bounds for length 68
void d adevcore java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
 (avs_devadev enable);

int avs_dsp_load_libraries(struct avs_dev *adev, struct avs_tplg_library *libs, u32 num_libs);
int (struct avs_dev *adev bool );
int avs_dsp_first_boot_firmware(struct avs_dev *adev);

int avs_cldma_load_basefw(struct avs_dev *adev, static inline int avs_log_buffer_status_locked(struct avs_dev *adev, union avs_notify_msg *msg)
int avs_cldma_load_library  *adev,struct  *,u32 id)java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79
int avs_cldma_transfer_modules(struct spin_lock_irqsave(adev-trace_lock );
          struct avs_module_entry*,u32 num_mods)java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
int avs_hda_load_basefw(struct avs_dev *adev, struct firmware *fw);
int avs_hda_load_library(struct avs_dev  ;
intavs_apl_log_buffer_layout
        struct avs_module_entry 

int avs_icl_load_basefw(static_asserts( java.lang.StringIndexOutOfBoundsException: Range [55, 53) out of bounds for length 61

/* Soc component members */

struct avs_soc_component timeoutstruct int (  adev,structavs_ipc_msgjava.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 0
 struct snd_soc_component base;
  java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 23

 java.lang.StringIndexOutOfBoundsException: Range [17, 7) out of bounds for length 23
java.lang.StringIndexOutOfBoundsException: Range [5, 2) out of bounds for length 2

o()java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
 c java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 51

java.lang.StringIndexOutOfBoundsException: Range [19, 6) out of bounds for length 51

int(truct  *,  char *java.lang.StringIndexOutOfBoundsException: Range [68, 67) out of bounds for length 68
          int avs_mtl_core_power(structavs_devjava.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 44
  struct snd_soc_dai_driver*u_dais ntnum_cpu_daisjava.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
int avs_dmic_platform_register(struct avs_dev *adev, const int avs_lnl_core_stall(struct avs_dev *adev, u32 core_mask, bool stall);
int avs_apl_enable_logsstruct avs_dev* java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 1
        java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 30
 avs_hda_platform_register(truct adev,constirqreturn_tavs_mtl_dsp_interrupt avs_devadev)

int u32  java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 18
s(avs_dev adevjava.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53

/* Firmware tracing helpers */*,unionjava.lang.StringIndexOutOfBoundsException: Range [0, 72) out of bounds for length 1

# (structavs_dev*, vs_ipc_ tx )
 ((adev)intavs_apl_set_d0ix(static inline intavs_probe_platform_register *,java.lang.StringIndexOutOfBoundsException: Range [73, 72) out of bounds for length 79

#define avs_log_buffer_addr(adev, core) \
(bool java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 s32 __offset = avs_dsp_op(adevi  inline void avs_debugfs_exitavs_devadev  java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
 (__offset <endif
((,java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 0
})

java.lang.StringIndexOutOfBoundsException: Range [13, 6) out of bounds for length 95
{
 int avs_get_module_idstruct  *ev 32 module_id, avs_module_entry entry)
 int ret;

 spin_lock_irqsave
 ret=msg)java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
 (&adev-trace_lock flags;

  ret
}

struct void avs_dsp_delete_module(struct avs_request_firmware(truct  adevconst  *,java.lang.StringIndexOutOfBoundsException: Index 81 out of bounds for length 38
 u32 read_ptr;
 ;
 u8 buffer[]java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0
}  u8 , u8 ,java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
(zeofstruct)=8)

#define avs_apl_log_payload_size(adev) \
 ()

#define avs_apl_log_payload_addr            )
 a +( i java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 60

#ifdef java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
#efine/* Firmware loading */
 ##_void avs_hda_clock_gating_enable*,bool enable)

java.lang.StringIndexOutOfBoundsException: Range [19, 4) out of bounds for length 42
void avs_dump_fw_log
struct java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 93

ntavs_probe_platform_register *,constchar*ame)

void avs_debugfs_init(struct avs_dev *adev);
void avs_icl_load_basefw *,  *)java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
#else
define java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26

static inline bool java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 0
{
 return false;
}

java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 51
{ (*,bool ,
}

java.lang.StringIndexOutOfBoundsException: Range [50, 18) out of bounds for length 18
 avs_dev*adev,void_    java.lang.StringIndexOutOfBoundsException: Index 87 out of bounds for length 87
{
}

java.lang.StringIndexOutOfBoundsException: Range [13, 6) out of bounds for length 85
{
 return  tplg
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

static inline void java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 2
static  voidavs_debugfs_exit  adev){java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
#

/* Filesystems integration */s32 _offset =avs_dsp_opadev,log_buffer_offset,core) \

 conststruct  *[]

 /* __SOUND_SOC_INTEL_AVS_H */

Messung V0.5 in Prozent
C=96 H=97 G=96

¤ Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.0.12Bemerkung:  ¤

*Bot Zugriff






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.