Prechádzať zdrojové kódy

Register only once with ALSA

Register only once with ALSA.

CRs-Fixed: 3543436
Change-Id: Ibc9bffd048921a7e3666c41771e9e08349af57d3
Signed-off-by: Satish Kumar Kodishala <[email protected]>
Satish Kumar Kodishala 2 rokov pred
rodič
commit
c0568d1c4d
1 zmenil súbory, kde vykonal 8 pridanie a 1 odobranie
  1. 8 1
      slimbus/btfm_slim.c

+ 8 - 1
slimbus/btfm_slim.c

@@ -38,6 +38,8 @@ struct btfmslim *btfm_slim_drv_data;
 
 static int btfm_num_ports_open;
 
+static bool is_registered;
+
 int btfm_slim_write(struct btfmslim *btfmslim,
 		uint16_t reg, uint8_t reg_val, uint8_t pgd)
 {
@@ -577,7 +579,11 @@ static int btfm_slim_status(struct slim_device *sdev,
 	btfm_slim = dev_get_drvdata(dev);
 
 #if IS_ENABLED(CONFIG_BTFM_SLIM)
-	ret = btfm_slim_register_codec(btfm_slim);
+	if (!is_registered) {
+		ret = btfm_slim_register_codec(btfm_slim);
+		if (ret == 0)
+			is_registered = true;
+	}
 #else
 	btfm_slim_get_hwep_details(sdev, btfm_slim);
 	ret = btfm_slim_register_hw_ep(btfm_slim);
@@ -613,6 +619,7 @@ static int btfm_slim_probe(struct slim_device *slim)
 	pr_info("%s: name = %s\n", __func__, dev_name(&slim->dev));
 	/*this as true during the probe then slimbus won't check for logical address*/
 	slim->is_laddr_valid = true;
+	is_registered = false;
 
 	dev_set_name(&slim->dev, "%s", BTFMSLIM_DEV_NAME);
 	pr_info("%s: name = %s\n", __func__, dev_name(&slim->dev));