Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit df24eef3 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
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
parents 5f32ed14 f656c240
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -411,7 +411,7 @@ static struct ddr_config ddr_config_table[] __attribute__((section(".data_l1")))
		.dmc_ddrcfg = 0x00000422,
		.dmc_ddrtr0 = 0x20E0A424,
		.dmc_ddrtr1 = 0x3020079E,
		.dmc_ddrtr2 = 0x0032020D,
		.dmc_ddrtr2 = 0x0032050D,
		.dmc_ddrmr  = 0x00000842,
		.dmc_ddrmr1 = 0x4,
	},
+1 −0
Original line number Diff line number Diff line
@@ -191,6 +191,7 @@ copy_to_user(void __user *to, const void *from, unsigned long n)
		memcpy((void __force *)to, from, n);
	else
		return n;
	SSYNC();
	return 0;
}

+7 −16
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@
#include <linux/dma-mapping.h>
#include <linux/scatterlist.h>
#include <linux/export.h>
#include <linux/bitmap.h>

static spinlock_t dma_page_lock;
static unsigned long *dma_page;
@@ -46,24 +47,17 @@ static inline unsigned int get_pages(size_t size)
static unsigned long __alloc_dma_pages(unsigned int pages)
{
	unsigned long ret = 0, flags;
	int i, count = 0;
	unsigned long start;

	if (dma_initialized == 0)
		dma_alloc_init(_ramend - DMA_UNCACHED_REGION, _ramend);

	spin_lock_irqsave(&dma_page_lock, flags);

	for (i = 0; i < dma_pages;) {
		if (test_bit(i++, dma_page) == 0) {
			if (++count == pages) {
				while (count--)
					__set_bit(--i, dma_page);

				ret = dma_base + (i << PAGE_SHIFT);
				break;
			}
		} else
			count = 0;
	start = bitmap_find_next_zero_area(dma_page, dma_pages, 0, pages, 0);
	if (start < dma_pages) {
		ret = dma_base + (start << PAGE_SHIFT);
		bitmap_set(dma_page, start, pages);
	}
	spin_unlock_irqrestore(&dma_page_lock, flags);
	return ret;
@@ -73,7 +67,6 @@ static void __free_dma_pages(unsigned long addr, unsigned int pages)
{
	unsigned long page = (addr - dma_base) >> PAGE_SHIFT;
	unsigned long flags;
	int i;

	if ((page + pages) > dma_pages) {
		printk(KERN_ERR "%s: freeing outside range.\n", __func__);
@@ -81,9 +74,7 @@ static void __free_dma_pages(unsigned long addr, unsigned int pages)
	}

	spin_lock_irqsave(&dma_page_lock, flags);
	for (i = page; i < page + pages; i++)
		__clear_bit(i, dma_page);

	bitmap_clear(dma_page, page, pages);
	spin_unlock_irqrestore(&dma_page_lock, flags);
}

+0 −6
Original line number Diff line number Diff line
@@ -329,12 +329,6 @@ void bfin_coretmr_clockevent_init(void)
	evt->broadcast = smp_timer_broadcast;
#endif


#ifdef CONFIG_SMP
	evt->broadcast = smp_timer_broadcast;
#endif


	evt->name = "bfin_core_timer";
	evt->rating = 350;
	evt->irq = -1;
+4 −0
Original line number Diff line number Diff line
@@ -1195,6 +1195,7 @@ static struct syscore_ops sec_pm_syscore_ops = {
	.suspend = sec_suspend,
	.resume = sec_resume,
};

#endif
#else
# define bfin_gpio_set_wake NULL
@@ -1596,7 +1597,10 @@ int __init init_arch_irq(void)
	bfin_write_SEC_SCI(1, SEC_CCTL, SEC_CCTL_EN | SEC_CCTL_NMI_EN);

	init_software_driven_irq();

#ifdef CONFIG_PM
	register_syscore_ops(&sec_pm_syscore_ops);
#endif

	return 0;
}