Skip to content

Commit

Permalink
[PATCH] ppc32: 8xx commproc avoid direct pte manipulation, use dma co…
Browse files Browse the repository at this point in the history
…herent API instead

Touching the pte directly causes the 8Mbyte TLB entry to be invalidated.

This has been fixed in v2.4 for ages.

Signed-off-by: Marcelo Tosatti <marcelo.tosatti@cyclades.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Marcelo Tosatti authored and Linus Torvalds committed Aug 7, 2005
1 parent 204085c commit 079da35
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 23 deletions.
18 changes: 1 addition & 17 deletions arch/ppc/8xx_io/commproc.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,6 @@
#include <asm/tlbflush.h>
#include <asm/rheap.h>

extern int get_pteptr(struct mm_struct *mm, unsigned long addr, pte_t **ptep);

static void m8xx_cpm_dpinit(void);
static uint host_buffer; /* One page of host buffer */
static uint host_end; /* end + 1 */
Expand Down Expand Up @@ -108,14 +106,11 @@ struct hw_interrupt_type cpm_pic = {
.end = cpm_eoi,
};

extern void flush_tlb_page(struct vm_area_struct *vma, unsigned long vmaddr);

void
m8xx_cpm_reset(uint bootpage)
m8xx_cpm_reset(void)
{
volatile immap_t *imp;
volatile cpm8xx_t *commproc;
pte_t *pte;

imp = (immap_t *)IMAP_ADDR;
commproc = (cpm8xx_t *)&imp->im_cpm;
Expand Down Expand Up @@ -143,17 +138,6 @@ m8xx_cpm_reset(uint bootpage)
/* Reclaim the DP memory for our use. */
m8xx_cpm_dpinit();

/* get the PTE for the bootpage */
if (!get_pteptr(&init_mm, bootpage, &pte))
panic("get_pteptr failed\n");

/* and make it uncachable */
pte_val(*pte) |= _PAGE_NO_CACHE;
_tlbie(bootpage);

host_buffer = bootpage;
host_end = host_buffer + PAGE_SIZE;

/* Tell everyone where the comm processor resides.
*/
cpmp = (cpm8xx_t *)commproc;
Expand Down
8 changes: 2 additions & 6 deletions arch/ppc/syslib/m8xx_setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ unsigned char __res[sizeof(bd_t)];
extern void m8xx_ide_init(void);

extern unsigned long find_available_memory(void);
extern void m8xx_cpm_reset(uint cpm_page);
extern void m8xx_cpm_reset();
extern void m8xx_wdt_handler_install(bd_t *bp);
extern void rpxfb_alloc_pages(void);
extern void cpm_interrupt_init(void);
Expand All @@ -70,13 +70,9 @@ board_init(void)
void __init
m8xx_setup_arch(void)
{
int cpm_page;

cpm_page = (int) alloc_bootmem_pages(PAGE_SIZE);

/* Reset the Communication Processor Module.
*/
m8xx_cpm_reset(cpm_page);
m8xx_cpm_reset();

#ifdef CONFIG_FB_RPX
rpxfb_alloc_pages();
Expand Down

0 comments on commit 079da35

Please sign in to comment.