summaryrefslogtreecommitdiffstats
path: root/drivers/clocksource
ModeNameSize
-rw-r--r--Makefile296logstatsplainblame
-rw-r--r--acpi_pm.c6698logstatsplainblame
-rw-r--r--cyclone.c3125logstatsplainblame
-rw-r--r--scx200_hrt.c3066logstatsplainblame
-rw-r--r--sh_cmt.c16637logstatsplainblame
-rw-r--r--sh_mtu2.c8417logstatsplainblame
-rw-r--r--sh_tmu.c10861logstatsplainblame
-rw-r--r--tcb_clksrc.c8542logstatsplainblame
2' href='#n212'>212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293




































































































































































































































































































                                                                                                                    
/*
 *  linux/drivers/video/iplan2p2.c -- Low level frame buffer operations for
 *				      interleaved bitplanes à la Atari (2
 *				      planes, 2 bytes interleave)
 *
 *	Created 5 Apr 1997 by Geert Uytterhoeven
 *
 *  This file is subject to the terms and conditions of the GNU General Public
 *  License.  See the file COPYING in the main directory of this archive for
 *  more details.
 */

#include <linux/module.h>
#include <linux/string.h>
#include <linux/fb.h>

#include <asm/setup.h>

#include "atafb.h"

#define BPL	2
#include "atafb_utils.h"

void atafb_iplan2p2_copyarea(struct fb_info *info, u_long next_line,
			     int sy, int sx, int dy, int dx,
			     int height, int width)
{
	/*  bmove() has to distinguish two major cases: If both, source and
	 *  destination, start at even addresses or both are at odd
	 *  addresses, just the first odd and last even column (if present)
	 *  require special treatment (memmove_col()). The rest between
	 *  then can be copied by normal operations, because all adjacent
	 *  bytes are affected and are to be stored in the same order.
	 *    The pathological case is when the move should go from an odd
	 *  address to an even or vice versa. Since the bytes in the plane
	 *  words must be assembled in new order, it seems wisest to make
	 *  all movements by memmove_col().
	 */

	u8 *src, *dst;
	u32 *s, *d;
	int w, l , i, j;
	u_int colsize;
	u_int upwards = (dy < sy) || (dy == sy && dx < sx);

	colsize = height;
	if (!((sx ^ dx) & 15)) {
		/* odd->odd or even->even */