Delay execution of hiface_chip_destroy() to after the last close

This avoids problems when the last close is called after the disconnect
callback, when this happened we were freeing resources (namely in
hiface_pcm_destroy) and then accessing them in the pcm close callback,
which lead to unpredictable behaviors: sometimes the driver was Oops-ing
and sometimes not, depending on the content of the previously freed
memory.

Signed-off-by: Antonio Ospite <ao2@amarulasolutions.com>
Print out "called" instead of "func" in the debug output

This is in order to make it clearer that the print statement just states
that the function has been called.

It is a detail indeed but when I read logs I find this name less
distracting.

Signed-off-by: Antonio Ospite <ao2@amarulasolutions.com>
Rename chip->regidx to chip->index

Signed-off-by: Antonio Ospite <ao2@amarulasolutions.com>