HDA-Intel is a very strange hardware. For different drivers you have to pass different options to the module. For example on Sony laptop I had to pass model=toshiba06 (or something like this do not remember exactly). And after that internal mic started to work and volume became reasonable.
For newer kernels - 22.214.171.124 - everything is detected automatically for my hardware, so I do not need to pass this options anymore. Look at Documentation in source tree of kernel.