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

Commit 34b479ae authored by Jes Sorensen's avatar Jes Sorensen Committed by Greg Kroah-Hartman
Browse files

staging: unisys: Eliminate visor_memregion_write()



visorchannel's signal code should call visorchannel_write() directly.
This is more consistent and cleaner, and allows us to remove the last
memregion call.

Signed-off-by: default avatarJes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: default avatarBenjamin Romer <benjamin.romer@unisys.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 3b5bd6cc
Loading
Loading
Loading
Loading
+16 −18
Original line number Diff line number Diff line
@@ -250,8 +250,8 @@ visorchannel_clear(struct visorchannel *channel, ulong offset, u8 ch,

		if (nbytes < thisbytes)
			thisbytes = nbytes;
		err = visor_memregion_write(&channel->memregion,
					    offset + written, buf, thisbytes);
		err = visorchannel_write(channel, offset + written,
					 buf, thisbytes);
		if (err)
			goto cleanup;

@@ -291,7 +291,7 @@ EXPORT_SYMBOL_GPL(visorchannel_get_header);
 *  into host memory
 */
#define SIG_WRITE_FIELD(channel, queue, sig_hdr, FIELD)			 \
	(visor_memregion_write(&channel->memregion,			\
	(visorchannel_write(channel,					 \
			    SIG_QUEUE_OFFSET(&channel->chan_hdr, queue)+ \
			    offsetof(struct signal_queue_header, FIELD), \
			    &((sig_hdr)->FIELD),			 \
@@ -340,8 +340,7 @@ sig_write_data(struct visorchannel *channel, u32 queue,
	int signal_data_offset = SIG_DATA_OFFSET(&channel->chan_hdr, queue,
						 sig_hdr, slot);

	err = visor_memregion_write(&channel->memregion,
				    signal_data_offset,
	err = visorchannel_write(channel, signal_data_offset,
				 data, sig_hdr->signal_size);
	if (err)
		return FALSE;
@@ -403,9 +402,8 @@ signalinsert_inner(struct visorchannel *channel, u32 queue, void *msg)
	sig_hdr.head = ((sig_hdr.head + 1) % sig_hdr.max_slots);
	if (sig_hdr.head == sig_hdr.tail) {
		sig_hdr.num_overflows++;
		visor_memregion_write(&channel->memregion,
				      SIG_QUEUE_OFFSET(&channel->chan_hdr,
						       queue) +
		visorchannel_write(channel,
				   SIG_QUEUE_OFFSET(&channel->chan_hdr, queue) +
				   offsetof(struct signal_queue_header,
					    num_overflows),
				   &(sig_hdr.num_overflows),
+0 −2
Original line number Diff line number Diff line
@@ -29,8 +29,6 @@ struct memregion {
	void __iomem *mapped;
};

int visor_memregion_write(struct memregion *memregion,
			  ulong offset, void *src, ulong nbytes);
void memregion_dump(struct memregion *memregion, char *s,
		    ulong off, ulong len, struct seq_file *seq);

+0 −12
Original line number Diff line number Diff line
@@ -24,15 +24,3 @@
#include "memregion.h"

#define MYDRVNAME "memregion"

int
visor_memregion_write(struct memregion *memregion, ulong offset, void *src,
		      ulong nbytes)
{
	if (offset + nbytes > memregion->nbytes)
		return -EIO;

	memcpy_toio(memregion->mapped + offset, src, nbytes);
	return 0;
}
EXPORT_SYMBOL_GPL(visor_memregion_write);