Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lliubbo/blackfin

Pull small blackfin update from Bob Liu.

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lliubbo/blackfin:
blackfin: time-ts: Remove duplicate assignment
blackfin: pm: fix build error
blackfin: sync data in blackfin write buffer
blackfin: use bitmap library functions
blackfin: mem_init: update dmc config register

+13 -23
+1 -1
arch/blackfin/include/asm/mem_init.h
··· 411 411 .dmc_ddrcfg = 0x00000422, 412 412 .dmc_ddrtr0 = 0x20E0A424, 413 413 .dmc_ddrtr1 = 0x3020079E, 414 - .dmc_ddrtr2 = 0x0032020D, 414 + .dmc_ddrtr2 = 0x0032050D, 415 415 .dmc_ddrmr = 0x00000842, 416 416 .dmc_ddrmr1 = 0x4, 417 417 },
+1
arch/blackfin/include/asm/uaccess.h
··· 191 191 memcpy((void __force *)to, from, n); 192 192 else 193 193 return n; 194 + SSYNC(); 194 195 return 0; 195 196 } 196 197
+7 -16
arch/blackfin/kernel/dma-mapping.c
··· 13 13 #include <linux/dma-mapping.h> 14 14 #include <linux/scatterlist.h> 15 15 #include <linux/export.h> 16 + #include <linux/bitmap.h> 16 17 17 18 static spinlock_t dma_page_lock; 18 19 static unsigned long *dma_page; ··· 47 46 static unsigned long __alloc_dma_pages(unsigned int pages) 48 47 { 49 48 unsigned long ret = 0, flags; 50 - int i, count = 0; 49 + unsigned long start; 51 50 52 51 if (dma_initialized == 0) 53 52 dma_alloc_init(_ramend - DMA_UNCACHED_REGION, _ramend); 54 53 55 54 spin_lock_irqsave(&dma_page_lock, flags); 56 55 57 - for (i = 0; i < dma_pages;) { 58 - if (test_bit(i++, dma_page) == 0) { 59 - if (++count == pages) { 60 - while (count--) 61 - __set_bit(--i, dma_page); 62 - 63 - ret = dma_base + (i << PAGE_SHIFT); 64 - break; 65 - } 66 - } else 67 - count = 0; 56 + start = bitmap_find_next_zero_area(dma_page, dma_pages, 0, pages, 0); 57 + if (start < dma_pages) { 58 + ret = dma_base + (start << PAGE_SHIFT); 59 + bitmap_set(dma_page, start, pages); 68 60 } 69 61 spin_unlock_irqrestore(&dma_page_lock, flags); 70 62 return ret; ··· 67 73 { 68 74 unsigned long page = (addr - dma_base) >> PAGE_SHIFT; 69 75 unsigned long flags; 70 - int i; 71 76 72 77 if ((page + pages) > dma_pages) { 73 78 printk(KERN_ERR "%s: freeing outside range.\n", __func__); ··· 74 81 } 75 82 76 83 spin_lock_irqsave(&dma_page_lock, flags); 77 - for (i = page; i < page + pages; i++) 78 - __clear_bit(i, dma_page); 79 - 84 + bitmap_clear(dma_page, page, pages); 80 85 spin_unlock_irqrestore(&dma_page_lock, flags); 81 86 } 82 87
-6
arch/blackfin/kernel/time-ts.c
··· 329 329 evt->broadcast = smp_timer_broadcast; 330 330 #endif 331 331 332 - 333 - #ifdef CONFIG_SMP 334 - evt->broadcast = smp_timer_broadcast; 335 - #endif 336 - 337 - 338 332 evt->name = "bfin_core_timer"; 339 333 evt->rating = 350; 340 334 evt->irq = -1;
+4
arch/blackfin/mach-common/ints-priority.c
··· 1195 1195 .suspend = sec_suspend, 1196 1196 .resume = sec_resume, 1197 1197 }; 1198 + 1198 1199 #endif 1199 1200 #else 1200 1201 # define bfin_gpio_set_wake NULL ··· 1597 1596 bfin_write_SEC_SCI(1, SEC_CCTL, SEC_CCTL_EN | SEC_CCTL_NMI_EN); 1598 1597 1599 1598 init_software_driven_irq(); 1599 + 1600 + #ifdef CONFIG_PM 1600 1601 register_syscore_ops(&sec_pm_syscore_ops); 1602 + #endif 1601 1603 1602 1604 return 0; 1603 1605 }