Ignore:
Timestamp:
Apr 19, 2025, 8:08:37 PM (4 months ago)
Author:
David Azarewicz
Message:

Merge in changes from 6.6-LTS branch.
Fixed additional 25+ problems.

Location:
GPL/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • GPL/trunk

  • GPL/trunk/alsa-kernel/include/sound/soc-component.h

    r695 r772  
    9999        int (*set_jack)(struct snd_soc_component *component,
    100100                        struct snd_soc_jack *jack,  void *data);
     101        int (*get_jack_type)(struct snd_soc_component *component);
    101102
    102103        /* DT */
     
    137138                struct snd_pcm_audio_tstamp_config *audio_tstamp_config,
    138139                struct snd_pcm_audio_tstamp_report *audio_tstamp_report);
    139         int (*copy_user)(struct snd_soc_component *component,
    140                         struct snd_pcm_substream *substream, int channel,
    141                          unsigned long pos, void __user *buf,
    142                         unsigned long bytes);
     140        int (*copy)(struct snd_soc_component *component,
     141                    struct snd_pcm_substream *substream, int channel,
     142                    unsigned long pos, struct iov_iter *iter,
     143                    unsigned long bytes);
    143144        struct page *(*page)(struct snd_soc_component *component,
    144145                             struct snd_pcm_substream *substream,
     
    149150        int (*ack)(struct snd_soc_component *component,
    150151                   struct snd_pcm_substream *substream);
     152        snd_pcm_sframes_t (*delay)(struct snd_soc_component *component,
     153                                   struct snd_pcm_substream *substream);
    151154
    152155        const struct snd_compress_ops *compress_ops;
     
    155158        int probe_order;
    156159        int remove_order;
     160
     161        /*
     162         * soc_pcm_trigger() start/stop sequence.
     163         * see also
     164         *      snd_soc_dai_link
     165         *      soc_pcm_trigger()
     166         */
     167        enum snd_soc_trigger_order trigger_start;
     168        enum snd_soc_trigger_order trigger_stop;
    157169
    158170        /*
     
    168180        unsigned int suspend_bias_off:1;
    169181        unsigned int use_pmdown_time:1; /* care pmdown_time at stop */
     182        /*
     183         * Indicates that the component does not care about the endianness of
     184         * PCM audio data and the core will ensure that both LE and BE variants
     185         * of each used format are present. Typically this is because the
     186         * component sits behind a bus that abstracts away the endian of the
     187         * original data, ie. one for which the transmission endian is defined
     188         * (I2S/SLIMbus/SoundWire), or the concept of endian doesn't exist (PDM,
     189         * analogue).
     190         */
    170191        unsigned int endianness:1;
    171         unsigned int non_legacy_dai_naming:1;
     192        unsigned int legacy_dai_naming:1;
    172193
    173194        /* this component uses topology and ignore machine driver FEs */
     
    178199        bool use_dai_pcm_id;    /* use DAI link PCM ID as PCM device number */
    179200        int be_pcm_base;        /* base device ID for all BE PCMs */
     201
     202#ifdef CONFIG_DEBUG_FS
     203        const char *debugfs_prefix;
     204#endif
    180205};
    181206
     
    221246
    222247        /* function mark */
    223         struct snd_pcm_substream *mark_module;
     248        void *mark_module;
    224249        struct snd_pcm_substream *mark_open;
    225250        struct snd_pcm_substream *mark_hw_params;
     
    228253        void *mark_pm;
    229254
    230 #ifdef CONFIG_DEBUG_FS
    231255        struct dentry *debugfs_root;
    232256        const char *debugfs_prefix;
    233 #endif
    234257};
    235258
     
    372395int snd_soc_component_set_jack(struct snd_soc_component *component,
    373396                               struct snd_soc_jack *jack, void *data);
     397int snd_soc_component_get_jack_type(struct snd_soc_component *component);
    374398
    375399void snd_soc_component_seq_notifier(struct snd_soc_component *component,
     
    392416        snd_soc_component_module_get(component, substream, 1)
    393417int snd_soc_component_module_get(struct snd_soc_component *component,
    394                                  struct snd_pcm_substream *substream,
    395                                  int upon_open);
     418                                 void *mark, int upon_open);
    396419#define snd_soc_component_module_put_when_remove(component)     \
    397420        snd_soc_component_module_put(component, NULL, 0, 0)
     
    399422        snd_soc_component_module_put(component, substream, 1, rollback)
    400423void snd_soc_component_module_put(struct snd_soc_component *component,
    401                                   struct snd_pcm_substream *substream,
    402                                   int upon_open, int rollback);
     424                                  void *mark, int upon_open, int rollback);
    403425
    404426static inline void snd_soc_component_set_drvdata(struct snd_soc_component *c,
     
    440462        const char *pin);
    441463
     464/* component controls */
     465int snd_soc_component_notify_control(struct snd_soc_component *component,
     466                                     const char * const ctl);
     467
    442468/* component driver ops */
    443469int snd_soc_component_open(struct snd_soc_component *component,
     
    456482                                        const struct of_phandle_args *args,
    457483                                        const char **dai_name);
    458 int snd_soc_component_compr_open(struct snd_compr_stream *cstream);
    459 void snd_soc_component_compr_free(struct snd_compr_stream *cstream,
     484int snd_soc_component_compr_open(struct snd_soc_component *component,
     485                                 struct snd_compr_stream *cstream);
     486void snd_soc_component_compr_free(struct snd_soc_component *component,
     487                                  struct snd_compr_stream *cstream,
    460488                                  int rollback);
    461489int snd_soc_component_compr_trigger(struct snd_compr_stream *cstream, int cmd);
     
    482510                                unsigned int cmd, void *arg);
    483511int snd_soc_pcm_component_sync_stop(struct snd_pcm_substream *substream);
    484 int snd_soc_pcm_component_copy_user(struct snd_pcm_substream *substream,
    485                                     int channel, unsigned long pos,
    486                                     void __user *buf, unsigned long bytes);
     512int snd_soc_pcm_component_copy(struct snd_pcm_substream *substream,
     513                               int channel, unsigned long pos,
     514                               struct iov_iter *iter, unsigned long bytes);
    487515struct page *snd_soc_pcm_component_page(struct snd_pcm_substream *substream,
    488516                                        unsigned long offset);
     
    503531                                          void *stream, int rollback);
    504532int snd_soc_pcm_component_ack(struct snd_pcm_substream *substream);
     533void snd_soc_pcm_component_delay(struct snd_pcm_substream *substream,
     534                                 snd_pcm_sframes_t *cpu_delay, snd_pcm_sframes_t *codec_delay);
    505535
    506536#endif /* __SOC_COMPONENT_H */
Note: See TracChangeset for help on using the changeset viewer.