Commit 8f28afac authored by Linus Torvalds's avatar Linus Torvalds

Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6

parents c6b3feaf 4f3f2f6f
...@@ -295,8 +295,7 @@ static void iommu_release_one(u32 busa, int npages, struct sbus_bus *sbus) ...@@ -295,8 +295,7 @@ static void iommu_release_one(u32 busa, int npages, struct sbus_bus *sbus)
int ioptex; int ioptex;
int i; int i;
if (busa < iommu->start) BUG_ON(busa < iommu->start);
BUG();
ioptex = (busa - iommu->start) >> PAGE_SHIFT; ioptex = (busa - iommu->start) >> PAGE_SHIFT;
for (i = 0; i < npages; i++) { for (i = 0; i < npages; i++) {
iopte_val(iommu->page_table[ioptex + i]) = 0; iopte_val(iommu->page_table[ioptex + i]) = 0;
...@@ -340,9 +339,9 @@ static int iommu_map_dma_area(dma_addr_t *pba, unsigned long va, ...@@ -340,9 +339,9 @@ static int iommu_map_dma_area(dma_addr_t *pba, unsigned long va,
iopte_t *first; iopte_t *first;
int ioptex; int ioptex;
if ((va & ~PAGE_MASK) != 0) BUG(); BUG_ON((va & ~PAGE_MASK) != 0);
if ((addr & ~PAGE_MASK) != 0) BUG(); BUG_ON((addr & ~PAGE_MASK) != 0);
if ((len & ~PAGE_MASK) != 0) BUG(); BUG_ON((len & ~PAGE_MASK) != 0);
/* page color = physical address */ /* page color = physical address */
ioptex = bit_map_string_get(&iommu->usemap, len >> PAGE_SHIFT, ioptex = bit_map_string_get(&iommu->usemap, len >> PAGE_SHIFT,
...@@ -405,8 +404,8 @@ static void iommu_unmap_dma_area(unsigned long busa, int len) ...@@ -405,8 +404,8 @@ static void iommu_unmap_dma_area(unsigned long busa, int len)
unsigned long end; unsigned long end;
int ioptex = (busa - iommu->start) >> PAGE_SHIFT; int ioptex = (busa - iommu->start) >> PAGE_SHIFT;
if ((busa & ~PAGE_MASK) != 0) BUG(); BUG_ON((busa & ~PAGE_MASK) != 0);
if ((len & ~PAGE_MASK) != 0) BUG(); BUG_ON((len & ~PAGE_MASK) != 0);
iopte += ioptex; iopte += ioptex;
end = busa + len; end = busa + len;
......
...@@ -280,9 +280,9 @@ static struct sparc64_tick_ops stick_operations __read_mostly = { ...@@ -280,9 +280,9 @@ static struct sparc64_tick_ops stick_operations __read_mostly = {
* Since STICK is constantly updating, we have to access it carefully. * Since STICK is constantly updating, we have to access it carefully.
* *
* The sequence we use to read is: * The sequence we use to read is:
* 1) read low * 1) read high
* 2) read high * 2) read low
* 3) read low again, if it rolled over increment high by 1 * 3) read high again, if it rolled re-read both low and high again.
* *
* Writing STICK safely is also tricky: * Writing STICK safely is also tricky:
* 1) write low to zero * 1) write low to zero
...@@ -295,18 +295,18 @@ static struct sparc64_tick_ops stick_operations __read_mostly = { ...@@ -295,18 +295,18 @@ static struct sparc64_tick_ops stick_operations __read_mostly = {
static unsigned long __hbird_read_stick(void) static unsigned long __hbird_read_stick(void)
{ {
unsigned long ret, tmp1, tmp2, tmp3; unsigned long ret, tmp1, tmp2, tmp3;
unsigned long addr = HBIRD_STICK_ADDR; unsigned long addr = HBIRD_STICK_ADDR+8;
__asm__ __volatile__("ldxa [%1] %5, %2\n\t" __asm__ __volatile__("ldxa [%1] %5, %2\n"
"add %1, 0x8, %1\n\t" "1:\n\t"
"ldxa [%1] %5, %3\n\t"
"sub %1, 0x8, %1\n\t" "sub %1, 0x8, %1\n\t"
"ldxa [%1] %5, %3\n\t"
"add %1, 0x8, %1\n\t"
"ldxa [%1] %5, %4\n\t" "ldxa [%1] %5, %4\n\t"
"cmp %4, %2\n\t" "cmp %4, %2\n\t"
"blu,a,pn %%xcc, 1f\n\t" "bne,a,pn %%xcc, 1b\n\t"
" add %3, 1, %3\n" " mov %4, %2\n\t"
"1:\n\t" "sllx %4, 32, %4\n\t"
"sllx %3, 32, %3\n\t"
"or %3, %4, %0\n\t" "or %3, %4, %0\n\t"
: "=&r" (ret), "=&r" (addr), : "=&r" (ret), "=&r" (addr),
"=&r" (tmp1), "=&r" (tmp2), "=&r" (tmp3) "=&r" (tmp1), "=&r" (tmp2), "=&r" (tmp3)
......
...@@ -199,8 +199,7 @@ struct fbcmap32 { ...@@ -199,8 +199,7 @@ struct fbcmap32 {
#define FBIOPUTCMAP32 _IOW('F', 3, struct fbcmap32) #define FBIOPUTCMAP32 _IOW('F', 3, struct fbcmap32)
#define FBIOGETCMAP32 _IOW('F', 4, struct fbcmap32) #define FBIOGETCMAP32 _IOW('F', 4, struct fbcmap32)
static int fbiogetputcmap(struct file *file, struct fb_info *info, static int fbiogetputcmap(struct fb_info *info, unsigned int cmd, unsigned long arg)
unsigned int cmd, unsigned long arg)
{ {
struct fbcmap32 __user *argp = (void __user *)arg; struct fbcmap32 __user *argp = (void __user *)arg;
struct fbcmap __user *p = compat_alloc_user_space(sizeof(*p)); struct fbcmap __user *p = compat_alloc_user_space(sizeof(*p));
...@@ -236,8 +235,7 @@ struct fbcursor32 { ...@@ -236,8 +235,7 @@ struct fbcursor32 {
#define FBIOSCURSOR32 _IOW('F', 24, struct fbcursor32) #define FBIOSCURSOR32 _IOW('F', 24, struct fbcursor32)
#define FBIOGCURSOR32 _IOW('F', 25, struct fbcursor32) #define FBIOGCURSOR32 _IOW('F', 25, struct fbcursor32)
static int fbiogscursor(struct file *file, struct fb_info *info, static int fbiogscursor(struct fb_info *info, unsigned long arg)
unsigned long arg)
{ {
struct fbcursor __user *p = compat_alloc_user_space(sizeof(*p)); struct fbcursor __user *p = compat_alloc_user_space(sizeof(*p));
struct fbcursor32 __user *argp = (void __user *)arg; struct fbcursor32 __user *argp = (void __user *)arg;
...@@ -263,8 +261,7 @@ static int fbiogscursor(struct file *file, struct fb_info *info, ...@@ -263,8 +261,7 @@ static int fbiogscursor(struct file *file, struct fb_info *info,
return info->fbops->fb_ioctl(info, FBIOSCURSOR, (unsigned long)p); return info->fbops->fb_ioctl(info, FBIOSCURSOR, (unsigned long)p);
} }
long sbusfb_compat_ioctl(struct fb_info *info, unsigned int cmd, int sbusfb_compat_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg)
unsigned long arg)
{ {
switch (cmd) { switch (cmd) {
case FBIOGTYPE: case FBIOGTYPE:
......
...@@ -20,7 +20,7 @@ extern int sbusfb_mmap_helper(struct sbus_mmap_map *map, ...@@ -20,7 +20,7 @@ extern int sbusfb_mmap_helper(struct sbus_mmap_map *map,
int sbusfb_ioctl_helper(unsigned long cmd, unsigned long arg, int sbusfb_ioctl_helper(unsigned long cmd, unsigned long arg,
struct fb_info *info, struct fb_info *info,
int type, int fb_depth, unsigned long fb_size); int type, int fb_depth, unsigned long fb_size);
long sbusfb_compat_ioctl(struct fb_info *info, unsigned int cmd, int sbusfb_compat_ioctl(struct fb_info *info, unsigned int cmd,
unsigned long arg); unsigned long arg);
#endif /* _SBUSLIB_H */ #endif /* _SBUSLIB_H */
...@@ -69,13 +69,14 @@ struct sbus_dma_info { ...@@ -69,13 +69,14 @@ struct sbus_dma_info {
}; };
#endif #endif
struct snd_cs4231;
struct cs4231_dma_control { struct cs4231_dma_control {
void (*prepare)(struct cs4231_dma_control *dma_cont, int dir); void (*prepare)(struct cs4231_dma_control *dma_cont, int dir);
void (*enable)(struct cs4231_dma_control *dma_cont, int on); void (*enable)(struct cs4231_dma_control *dma_cont, int on);
int (*request)(struct cs4231_dma_control *dma_cont, dma_addr_t bus_addr, size_t len); int (*request)(struct cs4231_dma_control *dma_cont, dma_addr_t bus_addr, size_t len);
unsigned int (*address)(struct cs4231_dma_control *dma_cont); unsigned int (*address)(struct cs4231_dma_control *dma_cont);
void (*reset)(struct snd_cs4231 *chip); void (*reset)(struct snd_cs4231 *chip);
void (*preallocate)(struct snd_cs4231 *chip, struct snd_snd_pcm *pcm); void (*preallocate)(struct snd_cs4231 *chip, struct snd_pcm *pcm);
#ifdef EBUS_SUPPORT #ifdef EBUS_SUPPORT
struct ebus_dma_info ebus_info; struct ebus_dma_info ebus_info;
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment