From 01756036b54e6280dbb01322dcbd8e078991aec4 Mon Sep 17 00:00:00 2001 From: Laxminath Kasam Date: Tue, 6 Apr 2021 18:23:30 +0530 Subject: [PATCH] asoc: lpass-cdc: Update swr pdev initialize order During sound card register init call, if swr pdev is not initialized yet respective soundwire port config is not updated to soundwire controller device. In macro drivers, update swr pdev into macro private data prior to platform device add. Change-Id: Ifa67471cfc7a10b102b573df6285e598bb0b5e5e Signed-off-by: Laxminath Kasam --- asoc/codecs/bolero/rx-macro.c | 21 ++++++------ asoc/codecs/bolero/tx-macro.c | 21 ++++++------ asoc/codecs/bolero/va-macro.c | 21 ++++++------ asoc/codecs/bolero/wsa-macro.c | 35 ++++++++++---------- asoc/codecs/lpass-cdc/lpass-cdc-rx-macro.c | 21 ++++++------ asoc/codecs/lpass-cdc/lpass-cdc-va-macro.c | 21 ++++++------ asoc/codecs/lpass-cdc/lpass-cdc-wsa-macro.c | 35 ++++++++++---------- asoc/codecs/lpass-cdc/lpass-cdc-wsa2-macro.c | 35 ++++++++++---------- 8 files changed, 101 insertions(+), 109 deletions(-) diff --git a/asoc/codecs/bolero/rx-macro.c b/asoc/codecs/bolero/rx-macro.c index 042a4e182a..6d6ec55212 100644 --- a/asoc/codecs/bolero/rx-macro.c +++ b/asoc/codecs/bolero/rx-macro.c @@ -4054,17 +4054,7 @@ static void rx_macro_add_child_devices(struct work_struct *work) __func__, ctrl_num); goto fail_pdev_add; } - } - ret = platform_device_add(pdev); - if (ret) { - dev_err(&pdev->dev, - "%s: Cannot add platform device\n", - __func__); - goto fail_pdev_add; - } - - if (rx_swr_master_node) { temp = krealloc(swr_ctrl_data, (ctrl_num + 1) * sizeof( struct rx_swr_ctrl_data), @@ -4077,10 +4067,19 @@ static void rx_macro_add_child_devices(struct work_struct *work) swr_ctrl_data[ctrl_num].rx_swr_pdev = pdev; ctrl_num++; dev_dbg(&pdev->dev, - "%s: Added soundwire ctrl device(s)\n", + "%s: Adding soundwire ctrl device(s)\n", __func__); rx_priv->swr_ctrl_data = swr_ctrl_data; } + + ret = platform_device_add(pdev); + if (ret) { + dev_err(&pdev->dev, + "%s: Cannot add platform device\n", + __func__); + goto fail_pdev_add; + } + if (rx_priv->child_count < RX_MACRO_CHILD_DEVICES_MAX) rx_priv->pdev_child_devices[ rx_priv->child_count++] = pdev; diff --git a/asoc/codecs/bolero/tx-macro.c b/asoc/codecs/bolero/tx-macro.c index 39a2212830..b918ff0531 100644 --- a/asoc/codecs/bolero/tx-macro.c +++ b/asoc/codecs/bolero/tx-macro.c @@ -3322,17 +3322,7 @@ static void tx_macro_add_child_devices(struct work_struct *work) __func__, ctrl_num); goto fail_pdev_add; } - } - ret = platform_device_add(pdev); - if (ret) { - dev_err(&pdev->dev, - "%s: Cannot add platform device\n", - __func__); - goto fail_pdev_add; - } - - if (tx_swr_master_node) { temp = krealloc(swr_ctrl_data, (ctrl_num + 1) * sizeof( struct tx_macro_swr_ctrl_data), @@ -3345,10 +3335,19 @@ static void tx_macro_add_child_devices(struct work_struct *work) swr_ctrl_data[ctrl_num].tx_swr_pdev = pdev; ctrl_num++; dev_dbg(&pdev->dev, - "%s: Added soundwire ctrl device(s)\n", + "%s: Adding soundwire ctrl device(s)\n", __func__); tx_priv->swr_ctrl_data = swr_ctrl_data; } + + ret = platform_device_add(pdev); + if (ret) { + dev_err(&pdev->dev, + "%s: Cannot add platform device\n", + __func__); + goto fail_pdev_add; + } + if (tx_priv->child_count < TX_MACRO_CHILD_DEVICES_MAX) tx_priv->pdev_child_devices[ tx_priv->child_count++] = pdev; diff --git a/asoc/codecs/bolero/va-macro.c b/asoc/codecs/bolero/va-macro.c index 401c2be458..c3e595ee13 100644 --- a/asoc/codecs/bolero/va-macro.c +++ b/asoc/codecs/bolero/va-macro.c @@ -2944,17 +2944,7 @@ static void va_macro_add_child_devices(struct work_struct *work) __func__, ctrl_num); goto fail_pdev_add; } - } - ret = platform_device_add(pdev); - if (ret) { - dev_err(&pdev->dev, - "%s: Cannot add platform device\n", - __func__); - goto fail_pdev_add; - } - - if (va_swr_master_node) { temp = krealloc(swr_ctrl_data, (ctrl_num + 1) * sizeof( struct va_macro_swr_ctrl_data), @@ -2967,10 +2957,19 @@ static void va_macro_add_child_devices(struct work_struct *work) swr_ctrl_data[ctrl_num].va_swr_pdev = pdev; ctrl_num++; dev_dbg(&pdev->dev, - "%s: Added soundwire ctrl device(s)\n", + "%s: Adding soundwire ctrl device(s)\n", __func__); va_priv->swr_ctrl_data = swr_ctrl_data; } + + ret = platform_device_add(pdev); + if (ret) { + dev_err(&pdev->dev, + "%s: Cannot add platform device\n", + __func__); + goto fail_pdev_add; + } + if (va_priv->child_count < VA_MACRO_CHILD_DEVICES_MAX) va_priv->pdev_child_devices[ va_priv->child_count++] = pdev; diff --git a/asoc/codecs/bolero/wsa-macro.c b/asoc/codecs/bolero/wsa-macro.c index e65f9c38c9..68cbc15e5d 100644 --- a/asoc/codecs/bolero/wsa-macro.c +++ b/asoc/codecs/bolero/wsa-macro.c @@ -3076,6 +3076,23 @@ static void wsa_macro_add_child_devices(struct work_struct *work) __func__, ctrl_num); goto fail_pdev_add; } + + temp = krealloc(swr_ctrl_data, + (ctrl_num + 1) * sizeof( + struct wsa_macro_swr_ctrl_data), + GFP_KERNEL); + if (!temp) { + dev_err(&pdev->dev, "out of memory\n"); + ret = -ENOMEM; + goto fail_pdev_add; + } + swr_ctrl_data = temp; + swr_ctrl_data[ctrl_num].wsa_swr_pdev = pdev; + ctrl_num++; + dev_dbg(&pdev->dev, + "%s: Adding soundwire ctrl device(s)\n", + __func__); + wsa_priv->swr_ctrl_data = swr_ctrl_data; } ret = platform_device_add(pdev); @@ -3086,24 +3103,6 @@ static void wsa_macro_add_child_devices(struct work_struct *work) goto fail_pdev_add; } - if (!strcmp(node->name, "wsa_swr_master")) { - temp = krealloc(swr_ctrl_data, - (ctrl_num + 1) * sizeof( - struct wsa_macro_swr_ctrl_data), - GFP_KERNEL); - if (!temp) { - dev_err(&pdev->dev, "out of memory\n"); - ret = -ENOMEM; - goto err; - } - swr_ctrl_data = temp; - swr_ctrl_data[ctrl_num].wsa_swr_pdev = pdev; - ctrl_num++; - dev_dbg(&pdev->dev, - "%s: Added soundwire ctrl device(s)\n", - __func__); - wsa_priv->swr_ctrl_data = swr_ctrl_data; - } if (wsa_priv->child_count < WSA_MACRO_CHILD_DEVICES_MAX) wsa_priv->pdev_child_devices[ wsa_priv->child_count++] = pdev; diff --git a/asoc/codecs/lpass-cdc/lpass-cdc-rx-macro.c b/asoc/codecs/lpass-cdc/lpass-cdc-rx-macro.c index de1f158c68..1fa2cfe6b3 100644 --- a/asoc/codecs/lpass-cdc/lpass-cdc-rx-macro.c +++ b/asoc/codecs/lpass-cdc/lpass-cdc-rx-macro.c @@ -4027,17 +4027,7 @@ static void lpass_cdc_rx_macro_add_child_devices(struct work_struct *work) __func__, ctrl_num); goto fail_pdev_add; } - } - ret = platform_device_add(pdev); - if (ret) { - dev_err(&pdev->dev, - "%s: Cannot add platform device\n", - __func__); - goto fail_pdev_add; - } - - if (rx_swr_master_node) { temp = krealloc(swr_ctrl_data, (ctrl_num + 1) * sizeof( struct rx_swr_ctrl_data), @@ -4050,10 +4040,19 @@ static void lpass_cdc_rx_macro_add_child_devices(struct work_struct *work) swr_ctrl_data[ctrl_num].rx_swr_pdev = pdev; ctrl_num++; dev_dbg(&pdev->dev, - "%s: Added soundwire ctrl device(s)\n", + "%s: Adding soundwire ctrl device(s)\n", __func__); rx_priv->swr_ctrl_data = swr_ctrl_data; } + + ret = platform_device_add(pdev); + if (ret) { + dev_err(&pdev->dev, + "%s: Cannot add platform device\n", + __func__); + goto fail_pdev_add; + } + if (rx_priv->child_count < LPASS_CDC_RX_MACRO_CHILD_DEVICES_MAX) rx_priv->pdev_child_devices[ rx_priv->child_count++] = pdev; diff --git a/asoc/codecs/lpass-cdc/lpass-cdc-va-macro.c b/asoc/codecs/lpass-cdc/lpass-cdc-va-macro.c index b6e012f19c..fa1438ab31 100644 --- a/asoc/codecs/lpass-cdc/lpass-cdc-va-macro.c +++ b/asoc/codecs/lpass-cdc/lpass-cdc-va-macro.c @@ -2160,17 +2160,7 @@ static void lpass_cdc_va_macro_add_child_devices(struct work_struct *work) __func__, ctrl_num); goto fail_pdev_add; } - } - ret = platform_device_add(pdev); - if (ret) { - dev_err(&pdev->dev, - "%s: Cannot add platform device\n", - __func__); - goto fail_pdev_add; - } - - if (va_swr_master_node) { temp = krealloc(swr_ctrl_data, (ctrl_num + 1) * sizeof( struct lpass_cdc_va_macro_swr_ctrl_data), @@ -2183,10 +2173,19 @@ static void lpass_cdc_va_macro_add_child_devices(struct work_struct *work) swr_ctrl_data[ctrl_num].va_swr_pdev = pdev; ctrl_num++; dev_dbg(&pdev->dev, - "%s: Added soundwire ctrl device(s)\n", + "%s: Adding soundwire ctrl device(s)\n", __func__); va_priv->swr_ctrl_data = swr_ctrl_data; } + + ret = platform_device_add(pdev); + if (ret) { + dev_err(&pdev->dev, + "%s: Cannot add platform device\n", + __func__); + goto fail_pdev_add; + } + if (va_priv->child_count < LPASS_CDC_VA_MACRO_CHILD_DEVICES_MAX) va_priv->pdev_child_devices[ va_priv->child_count++] = pdev; diff --git a/asoc/codecs/lpass-cdc/lpass-cdc-wsa-macro.c b/asoc/codecs/lpass-cdc/lpass-cdc-wsa-macro.c index 757c4914e0..7e536ad723 100644 --- a/asoc/codecs/lpass-cdc/lpass-cdc-wsa-macro.c +++ b/asoc/codecs/lpass-cdc/lpass-cdc-wsa-macro.c @@ -2930,6 +2930,23 @@ static void lpass_cdc_wsa_macro_add_child_devices(struct work_struct *work) __func__, ctrl_num); goto fail_pdev_add; } + + temp = krealloc(swr_ctrl_data, + (ctrl_num + 1) * sizeof( + struct lpass_cdc_wsa_macro_swr_ctrl_data), + GFP_KERNEL); + if (!temp) { + dev_err(&pdev->dev, "out of memory\n"); + ret = -ENOMEM; + goto fail_pdev_add; + } + swr_ctrl_data = temp; + swr_ctrl_data[ctrl_num].wsa_swr_pdev = pdev; + ctrl_num++; + dev_dbg(&pdev->dev, + "%s: Adding soundwire ctrl device(s)\n", + __func__); + wsa_priv->swr_ctrl_data = swr_ctrl_data; } ret = platform_device_add(pdev); @@ -2940,24 +2957,6 @@ static void lpass_cdc_wsa_macro_add_child_devices(struct work_struct *work) goto fail_pdev_add; } - if (!strcmp(node->name, "wsa_swr_master")) { - temp = krealloc(swr_ctrl_data, - (ctrl_num + 1) * sizeof( - struct lpass_cdc_wsa_macro_swr_ctrl_data), - GFP_KERNEL); - if (!temp) { - dev_err(&pdev->dev, "out of memory\n"); - ret = -ENOMEM; - goto err; - } - swr_ctrl_data = temp; - swr_ctrl_data[ctrl_num].wsa_swr_pdev = pdev; - ctrl_num++; - dev_dbg(&pdev->dev, - "%s: Added soundwire ctrl device(s)\n", - __func__); - wsa_priv->swr_ctrl_data = swr_ctrl_data; - } if (wsa_priv->child_count < LPASS_CDC_WSA_MACRO_CHILD_DEVICES_MAX) wsa_priv->pdev_child_devices[ wsa_priv->child_count++] = pdev; diff --git a/asoc/codecs/lpass-cdc/lpass-cdc-wsa2-macro.c b/asoc/codecs/lpass-cdc/lpass-cdc-wsa2-macro.c index 6e92430359..1ea48453f5 100644 --- a/asoc/codecs/lpass-cdc/lpass-cdc-wsa2-macro.c +++ b/asoc/codecs/lpass-cdc/lpass-cdc-wsa2-macro.c @@ -2929,6 +2929,23 @@ static void lpass_cdc_wsa2_macro_add_child_devices(struct work_struct *work) __func__, ctrl_num); goto fail_pdev_add; } + + temp = krealloc(swr_ctrl_data, + (ctrl_num + 1) * sizeof( + struct lpass_cdc_wsa2_macro_swr_ctrl_data), + GFP_KERNEL); + if (!temp) { + dev_err(&pdev->dev, "out of memory\n"); + ret = -ENOMEM; + goto fail_pdev_add; + } + swr_ctrl_data = temp; + swr_ctrl_data[ctrl_num].wsa2_swr_pdev = pdev; + ctrl_num++; + dev_dbg(&pdev->dev, + "%s: Added soundwire ctrl device(s)\n", + __func__); + wsa2_priv->swr_ctrl_data = swr_ctrl_data; } ret = platform_device_add(pdev); @@ -2939,24 +2956,6 @@ static void lpass_cdc_wsa2_macro_add_child_devices(struct work_struct *work) goto fail_pdev_add; } - if (!strcmp(node->name, "wsa2_swr_master")) { - temp = krealloc(swr_ctrl_data, - (ctrl_num + 1) * sizeof( - struct lpass_cdc_wsa2_macro_swr_ctrl_data), - GFP_KERNEL); - if (!temp) { - dev_err(&pdev->dev, "out of memory\n"); - ret = -ENOMEM; - goto err; - } - swr_ctrl_data = temp; - swr_ctrl_data[ctrl_num].wsa2_swr_pdev = pdev; - ctrl_num++; - dev_dbg(&pdev->dev, - "%s: Added soundwire ctrl device(s)\n", - __func__); - wsa2_priv->swr_ctrl_data = swr_ctrl_data; - } if (wsa2_priv->child_count < LPASS_CDC_WSA2_MACRO_CHILD_DEVICES_MAX) wsa2_priv->pdev_child_devices[ wsa2_priv->child_count++] = pdev;