Oh my, a libsolv bug. The obsoletes pruning code in the weak deps handling was never updated, so it still used the old "obsoletes work on provides" semantics. The installed kernel-desktop obsoletes ath3k-firmware <= 1.0, which is provided by kernel-xen. Fixed in libsolv with commit e810d2f44efab6f2fd598f0c2643a5a3741edae2