cregit-Linux how code gets into the kernel

Release 4.14 arch/mn10300/lib/delay.c

Directory: arch/mn10300/lib
/* MN10300 Short delay interpolation routines
 *
 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
 * Written by David Howells (dhowells@redhat.com)
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public Licence
 * as published by the Free Software Foundation; either version
 * 2 of the Licence, or (at your option) any later version.
 */
#include <linux/module.h>
#include <linux/sched.h>
#include <linux/delay.h>
#include <asm/div64.h>

/*
 * basic delay loop
 */

void __delay(unsigned long loops) { int d0; asm volatile( " bra 1f \n" " .align 4 \n" "1: bra 2f \n" " .align 4 \n" "2: add -1,%0 \n" " bne 2b \n" : "=&d" (d0) : "0" (loops) : "cc"); }

Contributors

PersonTokensPropCommitsCommitProp
David Howells1493.33%150.00%
Mark Salter16.67%150.00%
Total15100.00%2100.00%

EXPORT_SYMBOL(__delay); /* * handle a delay specified in terms of microseconds */
void __udelay(unsigned long usecs) { unsigned long start, stop, cnt; /* usecs * CLK / 1E6 */ stop = __muldiv64u(usecs, MN10300_TSCCLK, 1000000); start = TMTSCBC; do { cnt = start - TMTSCBC; } while (cnt < stop); }

Contributors

PersonTokensPropCommitsCommitProp
David Howells3979.59%150.00%
Akira Takeuchi1020.41%150.00%
Total49100.00%2100.00%

EXPORT_SYMBOL(__udelay);

Overall Contributors

PersonTokensPropCommitsCommitProp
David Howells7887.64%133.33%
Akira Takeuchi1011.24%133.33%
Mark Salter11.12%133.33%
Total89100.00%3100.00%
Directory: arch/mn10300/lib
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.