audio policy: populate attributes for attached capture devices

Populate supported sampling rates, channel masks and formats when enumerating
attached build in capture devices.

Having this information for build-in mic is important for some applications.

Bug: 22729461.
Change-Id: I93f03296447a87c10f2615fa1b1c45e9879b4aa7
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
index 7530dcc..fc27789 100644
--- a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
@@ -2854,8 +2854,12 @@
                     ssize_t index =
                             mAvailableInputDevices.indexOf(inProfile->mSupportedDevices[k]);
                     // give a valid ID to an attached device once confirmed it is reachable
-                    if (index >= 0 && !mAvailableInputDevices[index]->isAttached()) {
-                        mAvailableInputDevices[index]->attach(mHwModules[i]);
+                    if (index >= 0) {
+                        sp<DeviceDescriptor> devDesc = mAvailableInputDevices[index];
+                        if (!devDesc->isAttached()) {
+                            devDesc->attach(mHwModules[i]);
+                            devDesc->importAudioPort(inProfile);
+                        }
                     }
                 }
                 mpClientInterface->closeInput(input);