This is round 14 of the initial bluetooth: separate HSP and HFP patch. It includes the review feedback and a global on/off switch just in case there's a problem headset with dual HFP/HSP but non-working HFP.
This one now includes a proper rfcomm negotiation (see patch 3 "bluetooth: add correct rfcomm negotiation"). I've finally figured out a bug in the rfcomm negotiation that was causing issues with my LG 900 headset, so I think it's now working for everything (but testing would be welcome). This incarnation changes the name of the enabling option and only defaults to true if the native backend is selected (which becomes the default).