aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorAxel Lin <axel.lin@ingics.com>2014-02-15 01:26:21 -0500
committerMark Brown <broonie@linaro.org>2014-03-02 22:58:29 -0500
commit790fc55a77bc041d613da087b3e03bdc59edcfa5 (patch)
tree718f90dc64fcd40f98694fab74cc8b2edde41606 /lib
parent354312f16e49add1da78f0cfb2bcb633709d0071 (diff)
spi: omap-uwire: Convert to use bits_per_word_mask
Set bits_per_word_mask so spi core will reject transfers that attempt to use an unsupported bits_per_word value. Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Mark Brown <broonie@linaro.org>
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions
ass="hl opt">, unsigned long size) { struct io_mapping *iomap; if (!is_io_mapping_possible(base, size)) return NULL; iomap = kmalloc(sizeof(*iomap), GFP_KERNEL); if (!iomap) return NULL; iomap->base = base; iomap->size = size; iomap->prot = pgprot_writecombine(__pgprot(__PAGE_KERNEL)); return iomap; } static inline void io_mapping_free(struct io_mapping *mapping) { kfree(mapping); } /* Atomic map/unmap */ static inline void * io_mapping_map_atomic_wc(struct io_mapping *mapping, unsigned long offset) { resource_size_t phys_addr; unsigned long pfn; BUG_ON(offset >= mapping->size); phys_addr = mapping->base + offset; pfn = (unsigned long) (phys_addr >> PAGE_SHIFT); return iomap_atomic_prot_pfn(pfn, KM_USER0, mapping->prot); } static inline void io_mapping_unmap_atomic(void *vaddr) { iounmap_atomic(vaddr, KM_USER0); } static inline void * io_mapping_map_wc(struct io_mapping *mapping, unsigned long offset) { resource_size_t phys_addr; BUG_ON(offset >= mapping->size); phys_addr = mapping->base + offset; return ioremap_wc(phys_addr, PAGE_SIZE); } static inline void io_mapping_unmap(void *vaddr) { iounmap(vaddr); } #else /* this struct isn't actually defined anywhere */ struct io_mapping; /* Create the io_mapping object*/ static inline struct io_mapping * io_mapping_create_wc(resource_size_t base, unsigned long size) { return (struct io_mapping *) ioremap_wc(base, size); } static inline void io_mapping_free(struct io_mapping *mapping) { iounmap(mapping); } /* Atomic map/unmap */ static inline void * io_mapping_map_atomic_wc(struct io_mapping *mapping, unsigned long offset) { return ((char *) mapping) + offset; } static inline void io_mapping_unmap_atomic(void *vaddr) { } /* Non-atomic map/unmap */ static inline void * io_mapping_map_wc(struct io_mapping *mapping, unsigned long offset) { return ((char *) mapping) + offset; } static inline void io_mapping_unmap(void *vaddr) { } #endif /* HAVE_ATOMIC_IOMAP */ #endif /* _LINUX_IO_MAPPING_H */