ASoC: Intel: Skylake: Remove soc-topology ABI v4 support
authorCezary Rojewski <cezary.rojewski@intel.com>
Wed, 3 Apr 2024 09:16:26 +0000 (11:16 +0200)
committerMark Brown <broonie@kernel.org>
Thu, 4 Apr 2024 14:50:03 +0000 (15:50 +0100)
The only known users are Chromebook configurations. Starting from
kernel v5.4, all of them are making use of soc-topology ABI v5.

Cc: Curtis Malainey <cujomalainey@chromium.org>
Cc: Ɓukasz Majczak <lmajczak@google.com>
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
Link: https://msgid.link/r/20240403091629.647267-2-cezary.rojewski@intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
include/uapi/sound/skl-tplg-interface.h
sound/soc/intel/skylake/skl-topology.c

index 4bf9c4f9add8ae204757089cbd73d75f7e1c1dae..940c4269322bdf6f3832916da87aa69a375b345b 100644 (file)
@@ -165,78 +165,4 @@ enum skl_tuple_type {
        SKL_TYPE_DATA
 };
 
-/* v4 configuration data */
-
-struct skl_dfw_v4_module_pin {
-       __u16 module_id;
-       __u16 instance_id;
-} __packed;
-
-struct skl_dfw_v4_module_fmt {
-       __u32 channels;
-       __u32 freq;
-       __u32 bit_depth;
-       __u32 valid_bit_depth;
-       __u32 ch_cfg;
-       __u32 interleaving_style;
-       __u32 sample_type;
-       __u32 ch_map;
-} __packed;
-
-struct skl_dfw_v4_module_caps {
-       __u32 set_params:2;
-       __u32 rsvd:30;
-       __u32 param_id;
-       __u32 caps_size;
-       __u32 caps[HDA_SST_CFG_MAX];
-} __packed;
-
-struct skl_dfw_v4_pipe {
-       __u8 pipe_id;
-       __u8 pipe_priority;
-       __u16 conn_type:4;
-       __u16 rsvd:4;
-       __u16 memory_pages:8;
-} __packed;
-
-struct skl_dfw_v4_module {
-       char uuid[SKL_UUID_STR_SZ];
-
-       __u16 module_id;
-       __u16 instance_id;
-       __u32 max_mcps;
-       __u32 mem_pages;
-       __u32 obs;
-       __u32 ibs;
-       __u32 vbus_id;
-
-       __u32 max_in_queue:8;
-       __u32 max_out_queue:8;
-       __u32 time_slot:8;
-       __u32 core_id:4;
-       __u32 rsvd1:4;
-
-       __u32 module_type:8;
-       __u32 conn_type:4;
-       __u32 dev_type:4;
-       __u32 hw_conn_type:4;
-       __u32 rsvd2:12;
-
-       __u32 params_fixup:8;
-       __u32 converter:8;
-       __u32 input_pin_type:1;
-       __u32 output_pin_type:1;
-       __u32 is_dynamic_in_pin:1;
-       __u32 is_dynamic_out_pin:1;
-       __u32 is_loadable:1;
-       __u32 rsvd3:11;
-
-       struct skl_dfw_v4_pipe pipe;
-       struct skl_dfw_v4_module_fmt in_fmt[MAX_IN_QUEUE];
-       struct skl_dfw_v4_module_fmt out_fmt[MAX_OUT_QUEUE];
-       struct skl_dfw_v4_module_pin in_pin[MAX_IN_QUEUE];
-       struct skl_dfw_v4_module_pin out_pin[MAX_OUT_QUEUE];
-       struct skl_dfw_v4_module_caps caps;
-} __packed;
-
 #endif
index 96cfebded0724ca0ef4b841a5e22deca19d08c8f..e27f0fc3d897958a609846cc2f9abb095f2a90da 100644 (file)
@@ -2682,168 +2682,6 @@ static int skl_tplg_get_desc_blocks(struct device *dev,
        return -EINVAL;
 }
 
-/* Functions to parse private data from configuration file format v4 */
-
-/*
- * Add pipeline from topology binary into driver pipeline list
- *
- * If already added we return that instance
- * Otherwise we create a new instance and add into driver list
- */
-static int skl_tplg_add_pipe_v4(struct device *dev,
-                       struct skl_module_cfg *mconfig, struct skl_dev *skl,
-                       struct skl_dfw_v4_pipe *dfw_pipe)
-{
-       struct skl_pipeline *ppl;
-       struct skl_pipe *pipe;
-       struct skl_pipe_params *params;
-
-       list_for_each_entry(ppl, &skl->ppl_list, node) {
-               if (ppl->pipe->ppl_id == dfw_pipe->pipe_id) {
-                       mconfig->pipe = ppl->pipe;
-                       return 0;
-               }
-       }
-
-       ppl = devm_kzalloc(dev, sizeof(*ppl), GFP_KERNEL);
-       if (!ppl)
-               return -ENOMEM;
-
-       pipe = devm_kzalloc(dev, sizeof(*pipe), GFP_KERNEL);
-       if (!pipe)
-               return -ENOMEM;
-
-       params = devm_kzalloc(dev, sizeof(*params), GFP_KERNEL);
-       if (!params)
-               return -ENOMEM;
-
-       pipe->ppl_id = dfw_pipe->pipe_id;
-       pipe->memory_pages = dfw_pipe->memory_pages;
-       pipe->pipe_priority = dfw_pipe->pipe_priority;
-       pipe->conn_type = dfw_pipe->conn_type;
-       pipe->state = SKL_PIPE_INVALID;
-       pipe->p_params = params;
-       INIT_LIST_HEAD(&pipe->w_list);
-
-       ppl->pipe = pipe;
-       list_add(&ppl->node, &skl->ppl_list);
-
-       mconfig->pipe = pipe;
-
-       return 0;
-}
-
-static void skl_fill_module_pin_info_v4(struct skl_dfw_v4_module_pin *dfw_pin,
-                                       struct skl_module_pin *m_pin,
-                                       bool is_dynamic, int max_pin)
-{
-       int i;
-
-       for (i = 0; i < max_pin; i++) {
-               m_pin[i].id.module_id = dfw_pin[i].module_id;
-               m_pin[i].id.instance_id = dfw_pin[i].instance_id;
-               m_pin[i].in_use = false;
-               m_pin[i].is_dynamic = is_dynamic;
-               m_pin[i].pin_state = SKL_PIN_UNBIND;
-       }
-}
-
-static void skl_tplg_fill_fmt_v4(struct skl_module_pin_fmt *dst_fmt,
-                                struct skl_dfw_v4_module_fmt *src_fmt,
-                                int pins)
-{
-       int i;
-
-       for (i = 0; i < pins; i++) {
-               dst_fmt[i].fmt.channels  = src_fmt[i].channels;
-               dst_fmt[i].fmt.s_freq = src_fmt[i].freq;
-               dst_fmt[i].fmt.bit_depth = src_fmt[i].bit_depth;
-               dst_fmt[i].fmt.valid_bit_depth = src_fmt[i].valid_bit_depth;
-               dst_fmt[i].fmt.ch_cfg = src_fmt[i].ch_cfg;
-               dst_fmt[i].fmt.ch_map = src_fmt[i].ch_map;
-               dst_fmt[i].fmt.interleaving_style =
-                                               src_fmt[i].interleaving_style;
-               dst_fmt[i].fmt.sample_type = src_fmt[i].sample_type;
-       }
-}
-
-static int skl_tplg_get_pvt_data_v4(struct snd_soc_tplg_dapm_widget *tplg_w,
-                                   struct skl_dev *skl, struct device *dev,
-                                   struct skl_module_cfg *mconfig)
-{
-       struct skl_dfw_v4_module *dfw =
-                               (struct skl_dfw_v4_module *)tplg_w->priv.data;
-       int ret;
-       int idx = mconfig->fmt_cfg_idx;
-
-       dev_dbg(dev, "Parsing Skylake v4 widget topology data\n");
-
-       ret = guid_parse(dfw->uuid, (guid_t *)mconfig->guid);
-       if (ret)
-               return ret;
-       mconfig->id.module_id = -1;
-       mconfig->id.instance_id = dfw->instance_id;
-       mconfig->module->resources[0].cpc = dfw->max_mcps / 1000;
-       mconfig->module->resources[0].ibs = dfw->ibs;
-       mconfig->module->resources[0].obs = dfw->obs;
-       mconfig->core_id = dfw->core_id;
-       mconfig->module->max_input_pins = dfw->max_in_queue;
-       mconfig->module->max_output_pins = dfw->max_out_queue;
-       mconfig->module->loadable = dfw->is_loadable;
-       skl_tplg_fill_fmt_v4(mconfig->module->formats[0].inputs, dfw->in_fmt,
-                            MAX_IN_QUEUE);
-       skl_tplg_fill_fmt_v4(mconfig->module->formats[0].outputs, dfw->out_fmt,
-                            MAX_OUT_QUEUE);
-
-       mconfig->params_fixup = dfw->params_fixup;
-       mconfig->converter = dfw->converter;
-       mconfig->m_type = dfw->module_type;
-       mconfig->vbus_id = dfw->vbus_id;
-       mconfig->module->resources[0].is_pages = dfw->mem_pages;
-
-       ret = skl_tplg_add_pipe_v4(dev, mconfig, skl, &dfw->pipe);
-       if (ret)
-               return ret;
-
-       mconfig->dev_type = dfw->dev_type;
-       mconfig->hw_conn_type = dfw->hw_conn_type;
-       mconfig->time_slot = dfw->time_slot;
-       mconfig->formats_config[idx].caps_size = dfw->caps.caps_size;
-
-       mconfig->m_in_pin = devm_kcalloc(dev,
-                               MAX_IN_QUEUE, sizeof(*mconfig->m_in_pin),
-                               GFP_KERNEL);
-       if (!mconfig->m_in_pin)
-               return -ENOMEM;
-
-       mconfig->m_out_pin = devm_kcalloc(dev,
-                               MAX_OUT_QUEUE, sizeof(*mconfig->m_out_pin),
-                               GFP_KERNEL);
-       if (!mconfig->m_out_pin)
-               return -ENOMEM;
-
-       skl_fill_module_pin_info_v4(dfw->in_pin, mconfig->m_in_pin,
-                                   dfw->is_dynamic_in_pin,
-                                   mconfig->module->max_input_pins);
-       skl_fill_module_pin_info_v4(dfw->out_pin, mconfig->m_out_pin,
-                                   dfw->is_dynamic_out_pin,
-                                   mconfig->module->max_output_pins);
-
-       if (mconfig->formats_config[idx].caps_size) {
-               mconfig->formats_config[idx].set_params = dfw->caps.set_params;
-               mconfig->formats_config[idx].param_id = dfw->caps.param_id;
-               mconfig->formats_config[idx].caps =
-               devm_kzalloc(dev, mconfig->formats_config[idx].caps_size,
-                            GFP_KERNEL);
-               if (!mconfig->formats_config[idx].caps)
-                       return -ENOMEM;
-               memcpy(mconfig->formats_config[idx].caps, dfw->caps.caps,
-                      dfw->caps.caps_size);
-       }
-
-       return 0;
-}
-
 static int skl_tplg_get_caps_data(struct device *dev, char *data,
                                  struct skl_module_cfg *mconfig)
 {
@@ -2877,13 +2715,6 @@ static int skl_tplg_get_pvt_data(struct snd_soc_tplg_dapm_widget *tplg_w,
        char *data;
        int ret;
 
-       /*
-        * v4 configuration files have a valid UUID at the start of
-        * the widget's private data.
-        */
-       if (uuid_is_valid((char *)tplg_w->priv.data))
-               return skl_tplg_get_pvt_data_v4(tplg_w, skl, dev, mconfig);
-
        /* Read the NUM_DATA_BLOCKS descriptor */
        array = (struct snd_soc_tplg_vendor_array *)tplg_w->priv.data;
        ret = skl_tplg_get_desc_blocks(dev, array);