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

Commit 5076c158 authored by Helge Deller's avatar Helge Deller Committed by Kyle McMartin
Browse files

[PARISC] I/O-Space must be ioremap_nocache()'d



Addresses in F-space must be accessed uncached on most parisc machines.

Signed-off-by: default avatarHelge Deller <deller@parisc-linux.org>
Signed-off-by: default avatarKyle McMartin <kyle@parisc-linux.org>
parent 94c3e87a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -805,7 +805,7 @@ static int perf_write_image(uint64_t *memaddr)
		return -1;
	}

	runway = ioremap(cpu_device->hpa.start, 4096);
	runway = ioremap_nocache(cpu_device->hpa.start, 4096);

	/* Merge intrigue bits into Runway STATUS 0 */
	tmp64 = __raw_readq(runway + RUNWAY_STATUS) & 0xffecfffffffffffful;
+2 −2
Original line number Diff line number Diff line
/*
 * drivers/input/serio/gscps2.c
 *
 * Copyright (c) 2004 Helge Deller <deller@gmx.de>
 * Copyright (c) 2004-2006 Helge Deller <deller@gmx.de>
 * Copyright (c) 2002 Laurent Canet <canetl@esiee.fr>
 * Copyright (c) 2002 Thibaut Varene <varenet@parisc-linux.org>
 *
@@ -354,7 +354,7 @@ static int __init gscps2_probe(struct parisc_device *dev)
	memset(serio, 0, sizeof(struct serio));
	ps2port->port = serio;
	ps2port->padev = dev;
	ps2port->addr = ioremap(hpa, GSC_STATUS + 4);
	ps2port->addr = ioremap_nocache(hpa, GSC_STATUS + 4);
	spin_lock_init(&ps2port->lock);

	gscps2_reset(ps2port);
+1 −1
Original line number Diff line number Diff line
@@ -1560,7 +1560,7 @@ static int ccio_probe(struct parisc_device *dev)
	*ioc_p = ioc;

	ioc->hw_path = dev->hw_path;
	ioc->ioc_regs = ioremap(dev->hpa.start, 4096);
	ioc->ioc_regs = ioremap_nocache(dev->hpa.start, 4096);
	ccio_ioc_init(ioc);
	ccio_init_resources(ioc);
	hppa_dma_ops = &ccio_ops;
+3 −2
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@
**	(c) Copyright 1999 SuSE GmbH
**	(c) Copyright 1999,2000 Hewlett-Packard Company
**	(c) Copyright 2000 Grant Grundler
**	(c) Copyright 2006 Helge Deller
**
**	This program is free software; you can redistribute it and/or modify
**	it under the terms of the GNU General Public License as published by
@@ -785,7 +786,7 @@ dino_bridge_init(struct dino_device *dino_dev, const char *name)
		if((io_addr & (1 << i)) == 0)
			continue;

		start = (unsigned long)(signed int)(0xf0000000 | (i << 23));
		start = F_EXTEND(0xf0000000UL) | (i << 23);
		end = start + 8 * 1024 * 1024 - 1;

		DBG("DINO RANGE %d is at 0x%lx-0x%lx\n", count,
@@ -996,7 +997,7 @@ static int __init dino_probe(struct parisc_device *dev)
	}

	dino_dev->hba.dev = dev;
	dino_dev->hba.base_addr = ioremap(hpa, 4096);
	dino_dev->hba.base_addr = ioremap_nocache(hpa, 4096);
	dino_dev->hba.lmmio_space_offset = 0;	/* CPU addrs == bus addrs */
	spin_lock_init(&dino_dev->dinosaur_pen);
	dino_dev->hba.iommu = ccio_get_iommu(dev);
+1 −1
Original line number Diff line number Diff line
@@ -366,7 +366,7 @@ static int __devinit eisa_probe(struct parisc_device *dev)
			eisa_dev.eeprom_addr = MIRAGE_EEPROM_BASE_ADDR;
		}
	}
	eisa_eeprom_addr = ioremap(eisa_dev.eeprom_addr, HPEE_MAX_LENGTH);
	eisa_eeprom_addr = ioremap_nocache(eisa_dev.eeprom_addr, HPEE_MAX_LENGTH);
	result = eisa_enumerator(eisa_dev.eeprom_addr, &eisa_dev.hba.io_space,
			&eisa_dev.hba.lmmio_space);
	init_eisa_pic();
Loading