Cuando digo malograda, me refiero a defectuosa
el dispositivo esta defectuoso por naturaleza, esto aunque tengas soporte en tu kernel para ello, esta defectuoso si funciona , funcionara a medias o con fallas pero si esta muy muy defectuoso no funcionara aun teniendo soporte para ello ... porque ya es algo independiente del soporte o driver es algo ya del dispositivo como tal. De nada me serviria por ejemplo tener soporte para una tarjeta de red Broadcom si esta se defectua y deja de funcionar o funciona de mala manera.. no es culpa del driver o soporte en tu kernel, es culpa del dispositivo, quiero que lleves esto claro.
Si esta defectuosa hacerla andar??? bueno puede ser no es que el hardware sea lo mio, pero hay de todo
y gente que arregla dispositivos defectuosos siempre y cuando se pueda, pero me temo que para 'repararlo' a ese nivel (ya que esta defectuoso de manera fisica) no puedes hacerlo mediante un driver de un kernel ni mucho menos, sino con algun destornillador, sacar el dispositivo de la maquina y tu manualmente repararlo
Tu ultima pregunta, no es que estudies o no C o ensamblador o similar, si la tarjeta fisicamente tiene un golpe o algo que por esta razon este defectuosa, no vas a poder repararla en ningun kernel de ningun sistema operativo, porque el asunto es fisico del dispositivo. Otra cosa fuera que tu tarjeta este nueva en perfectas condiciones fisicas, y te descargues un driver y dicho driver soporte audio pero no tenga salida de micro... entonces ahi si, el problema es del driver no de la tarjeta de audio, entonces ahi procedes a modificar el driver y buscar la manera logicamente de que funcione la tarjeta de audio y el dispositivo de microfono.
Son dos cosas muy distintas que estas preguntando...