From: Jes Sorensen <Jes.Sorensen@xxxxxxxxxx> Signed-off-by: Jes Sorensen <Jes.Sorensen@xxxxxxxxxx> Signed-off-by: Benjamin Romer <benjamin.romer@xxxxxxxxxx> --- drivers/staging/unisys/include/visorbus.h | 1 - drivers/staging/unisys/visorbus/visorchannel.c | 53 ++++++++++------------ drivers/staging/unisys/visorchannel/globals.h | 1 - drivers/staging/unisys/visorutil/Makefile | 2 +- drivers/staging/unisys/visorutil/memregion.h | 35 -------------- .../staging/unisys/visorutil/memregion_direct.c | 26 ----------- 6 files changed, 25 insertions(+), 93 deletions(-) delete mode 100644 drivers/staging/unisys/visorutil/memregion.h delete mode 100644 drivers/staging/unisys/visorutil/memregion_direct.c diff --git a/drivers/staging/unisys/include/visorbus.h b/drivers/staging/unisys/include/visorbus.h index e1c6662..87ffff4 100644 --- a/drivers/staging/unisys/include/visorbus.h +++ b/drivers/staging/unisys/include/visorbus.h @@ -36,7 +36,6 @@ #include "periodic_work.h" #include "channel.h" -#include "memregion.h" #ifndef HOSTADDRESS #define HOSTADDRESS u64 diff --git a/drivers/staging/unisys/visorbus/visorchannel.c b/drivers/staging/unisys/visorbus/visorchannel.c index 564d325..ed652a0 100644 --- a/drivers/staging/unisys/visorbus/visorchannel.c +++ b/drivers/staging/unisys/visorbus/visorchannel.c @@ -17,12 +17,9 @@ /* * This provides Supervisor channel communication primitives, which are - * independent of the mechanism used to access the channel data. All channel - * data is accessed using the memregion abstraction. (memregion has both - * a CM2 implementation and a direct memory implementation.) + * independent of the mechanism used to access the channel data. */ -#include "memregion.h" #include "version.h" #include "visorbus.h" #include <linux/uuid.h> @@ -30,7 +27,9 @@ #define MYDRVNAME "visorchannel" struct visorchannel { - struct memregion memregion; /* from visor_memregion_create() */ + HOSTADDRESS physaddr; + ulong nbytes; + void __iomem *mapped; struct channel_header chan_hdr; uuid_le guid; ulong size; @@ -69,14 +68,14 @@ visorchannel_create_guts(HOSTADDRESS physaddr, ulong channel_bytes, if (!request_mem_region(physaddr, size, MYDRVNAME)) goto cleanup; - channel->memregion.mapped = ioremap_cache(physaddr, size); - if (!channel->memregion.mapped) { + channel->mapped = ioremap_cache(physaddr, size); + if (!channel->mapped) { release_mem_region(physaddr, size); goto cleanup; } - channel->memregion.physaddr = physaddr; - channel->memregion.nbytes = size; + channel->physaddr = physaddr; + channel->nbytes = size; err = visorchannel_read(channel, 0, &channel->chan_hdr, sizeof(struct channel_header)); @@ -89,22 +88,19 @@ visorchannel_create_guts(HOSTADDRESS physaddr, ulong channel_bytes, if (uuid_le_cmp(guid, NULL_UUID_LE) == 0) guid = channel->chan_hdr.chtype; - iounmap(channel->memregion.mapped); - release_mem_region(channel->memregion.physaddr, - channel->memregion.nbytes); - channel->memregion.mapped = NULL; - if (!request_mem_region(channel->memregion.physaddr, channel_bytes, - MYDRVNAME)) + iounmap(channel->mapped); + release_mem_region(channel->physaddr, channel->nbytes); + channel->mapped = NULL; + if (!request_mem_region(channel->physaddr, channel_bytes, MYDRVNAME)) goto cleanup; - channel->memregion.mapped = ioremap_cache(channel->memregion.physaddr, - channel_bytes); - if (!channel->memregion.mapped) { - release_mem_region(channel->memregion.physaddr, channel_bytes); + channel->mapped = ioremap_cache(channel->physaddr, channel_bytes); + if (!channel->mapped) { + release_mem_region(channel->physaddr, channel_bytes); goto cleanup; } - channel->memregion.nbytes = channel_bytes; + channel->nbytes = channel_bytes; channel->size = channel_bytes; channel->guid = guid; @@ -137,10 +133,9 @@ visorchannel_destroy(struct visorchannel *channel) { if (!channel) return; - if (channel->memregion.mapped) { - iounmap(channel->memregion.mapped); - release_mem_region(channel->memregion.physaddr, - channel->memregion.nbytes); + if (channel->mapped) { + iounmap(channel->mapped); + release_mem_region(channel->physaddr, channel->nbytes); } kfree(channel); } @@ -149,7 +144,7 @@ EXPORT_SYMBOL_GPL(visorchannel_destroy); HOSTADDRESS visorchannel_get_physaddr(struct visorchannel *channel) { - return channel->memregion.physaddr; + return channel->physaddr; } EXPORT_SYMBOL_GPL(visorchannel_get_physaddr); @@ -200,10 +195,10 @@ int visorchannel_read(struct visorchannel *channel, ulong offset, void *local, ulong nbytes) { - if (offset + nbytes > channel->memregion.nbytes) + if (offset + nbytes > channel->nbytes) return -EIO; - memcpy_fromio(local, channel->memregion.mapped + offset, nbytes); + memcpy_fromio(local, channel->mapped + offset, nbytes); return 0; } @@ -216,7 +211,7 @@ visorchannel_write(struct visorchannel *channel, ulong offset, size_t chdr_size = sizeof(struct channel_header); size_t copy_size; - if (offset + nbytes > channel->memregion.nbytes) + if (offset + nbytes > channel->nbytes) return -EIO; if (offset < chdr_size) { @@ -224,7 +219,7 @@ visorchannel_write(struct visorchannel *channel, ulong offset, memcpy(&channel->chan_hdr + offset, local, copy_size); } - memcpy_toio(channel->memregion.mapped + offset, local, nbytes); + memcpy_toio(channel->mapped + offset, local, nbytes); return 0; } diff --git a/drivers/staging/unisys/visorchannel/globals.h b/drivers/staging/unisys/visorchannel/globals.h index 0ed8e1d..6530413 100644 --- a/drivers/staging/unisys/visorchannel/globals.h +++ b/drivers/staging/unisys/visorchannel/globals.h @@ -19,7 +19,6 @@ #define __VISORCHANNEL_GLOBALS_H__ #include "timskmod.h" -#include "memregion.h" #include "version.h" #define MYDRVNAME "visorchannel" diff --git a/drivers/staging/unisys/visorutil/Makefile b/drivers/staging/unisys/visorutil/Makefile index d9ab5a3..f299787 100644 --- a/drivers/staging/unisys/visorutil/Makefile +++ b/drivers/staging/unisys/visorutil/Makefile @@ -4,6 +4,6 @@ obj-$(CONFIG_UNISYS_VISORUTIL) += visorutil.o -visorutil-y := charqueue.o periodic_work.o memregion_direct.o visorkmodutils.o +visorutil-y := charqueue.o periodic_work.o visorkmodutils.o ccflags-y += -Idrivers/staging/unisys/include diff --git a/drivers/staging/unisys/visorutil/memregion.h b/drivers/staging/unisys/visorutil/memregion.h deleted file mode 100644 index 62036cd..0000000 --- a/drivers/staging/unisys/visorutil/memregion.h +++ /dev/null @@ -1,35 +0,0 @@ -/* memregion.h - * - * Copyright (C) 2010 - 2013 UNISYS CORPORATION - * All rights reserved. - * - * 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 - * the Free Software Foundation; either version 2 of the License, or (at - * your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or - * NON INFRINGEMENT. See the GNU General Public License for more - * details. - */ - -#ifndef __MEMREGION_H__ -#define __MEMREGION_H__ - -#include "timskmod.h" - -/* struct memregion is an opaque structure to users. - * Fields are declared only in the implementation .c files. - */ -struct memregion { - HOSTADDRESS physaddr; - ulong nbytes; - void __iomem *mapped; -}; - -void memregion_dump(struct memregion *memregion, char *s, - ulong off, ulong len, struct seq_file *seq); - -#endif diff --git a/drivers/staging/unisys/visorutil/memregion_direct.c b/drivers/staging/unisys/visorutil/memregion_direct.c deleted file mode 100644 index 818f6a8..0000000 --- a/drivers/staging/unisys/visorutil/memregion_direct.c +++ /dev/null @@ -1,26 +0,0 @@ -/* memregion_direct.c - * - * Copyright (C) 2010 - 2013 UNISYS CORPORATION - * All rights reserved. - * - * 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 - * the Free Software Foundation; either version 2 of the License, or (at - * your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or - * NON INFRINGEMENT. See the GNU General Public License for more - * details. - */ - -/* - * This is an implementation of memory regions that can be used to read/write - * channel memory (in main memory of the host system) from code running in - * a virtual partition. - */ -#include "timskmod.h" -#include "memregion.h" - -#define MYDRVNAME "memregion" -- 2.1.4 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel