On 7 May 2014 13:09, Johannes Berg <johannes@xxxxxxxxxxxxxxxx> wrote: > On Wed, 2014-05-07 at 12:38 +0200, Michal Kazior wrote: > >> I was actually thinking of just providing the bare minimum to fulfill >> requirements for the CSA case: int foo(*hw, **vifs, n_vifs, *oldctx, >> *newctx, flags). >> >> Having an array of transactions passed through a single call seems >> more robust and cleaner. Naiive drivers might just iterate over each >> entry while more complex drivers might examine the whole request and >> detect chanctx swapping. > > Not sure what you mean by "detect chanctx swapping" - the flags would > indicate that anyway, no? In any case, I like this better than a more > general transaction API I think, it's easier for the driver > implementation and clearer as to what needs to be done/supported. You could submit a transaction sequence: - new chanctx2 - switch vif1 chanctx1->chanctx2 - switch vif2 chanctx1->chanctx2 - remove chanctx1 Driver could infer this is a channel switch and depending on it's capabilities/limitations perform some extra actions or just map it to internal commands 1:1. Michał -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html