On Wed, Jan 21, 2015 at 09:46:47AM +0530, Sumit Semwal wrote:
+static int calc_constraints(struct device *dev,
struct dma_buf_constraints *calc_cons)
+{
- struct dma_buf_constraints cons = *calc_cons;
- cons.dma_mask &= dma_get_mask(dev);
I don't think this makes much sense when you consider that the DMA infrastructure supports buses with offsets. The DMA mask is th upper limit of the _bus_ specific address, it is not a mask per-se.
What this means is that &= is not the right operation. Moreover, simply comparing masks which could be from devices on unrelated buses doesn't make sense either.
However, that said, I don't have an answer for what you want to achieve here.