A quick check on FM radio in CyanogenMod 12.X shows that SELinux policy needs to be set to Permissive, I'm currently on CM11 so I can't check CM12.X, but I believe SELinux is set to Enforcing as standard on KitKat and newer versions of Android. You can check your current SELinux policy by going into About Phone in the System Settings and scrolling to the bottom, or by using adb
adb shell getenforce
On CM11 this returns Enforcing as standard. You can change it to Permissive by running
adb shell su 0 setenforce 0
Test if your radio now works. I don't know if changing it to Permissive will break anything else though, maybe @Mustaavalkosta can help here..
You change back to Enforcing by running (or reboot as this change isn't permanent)
adb shell su 0 setenforce 1
If it works you can set SELinux policy Permissive to remain on reboots. Create /system/etc/init.d/08setperm with the following contents
and set the permissions to 755.