hal: update combo device handling

If the wired headset/headphone/line devices are handled by
a different backend than speaker/earpiece devices, the combo
devices such as speaker+headphones can be split into individual
devices and enabled/disabled independently.

Conflicts:
	hal/msm8916/platform.c
	hal/msm8974/platform.c

Change-Id: I30e90f398ef204d106b5d8dac8fba166583bdbc8
diff --git a/hal/platform_api.h b/hal/platform_api.h
index fb72e40..65bcc98 100644
--- a/hal/platform_api.h
+++ b/hal/platform_api.h
@@ -54,7 +54,6 @@
 int platform_get_snd_device_bit_width(snd_device_t snd_device);
 int platform_set_native_support(int na_mode);
 int platform_get_native_support();
-int platform_get_backend_index(snd_device_t snd_device);
 int platform_send_audio_calibration(void *platform, struct audio_usecase *usecase,
                                     int app_type, int sample_rate);
 int platform_get_default_app_type(void *platform);
@@ -99,7 +98,8 @@
 bool platform_sound_trigger_device_needs_event(snd_device_t snd_device);
 bool platform_sound_trigger_usecase_needs_event(audio_usecase_t uc_id);
 
-int platform_set_snd_device_backend(snd_device_t snd_device, const char * backend);
+int platform_set_snd_device_backend(snd_device_t snd_device, const char * backend,
+                                    const char * hw_interface);
 
 /* From platform_info.c */
 int platform_info_init(const char *filename, void *);
@@ -138,4 +138,10 @@
 int platform_get_spkr_prot_acdb_id(snd_device_t snd_device);
 int platform_get_spkr_prot_snd_device(snd_device_t snd_device);
 int platform_spkr_prot_is_wsa_analog_mode(void *adev);
+bool platform_can_split_snd_device(void *platform,
+                                   snd_device_t snd_device,
+                                   int *num_devices,
+                                   snd_device_t *new_snd_devices);
+
+bool platform_check_backends_match(snd_device_t snd_device1, snd_device_t snd_device2);
 #endif // AUDIO_PLATFORM_API_H