linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: Mark Salter <msalter@redhat.com>
Cc: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org
Subject: Re: [PATCH v3 19/24] C6X: headers
Date: Wed, 28 Sep 2011 16:07:11 +0200	[thread overview]
Message-ID: <201109281607.11228.arnd@arndb.de> (raw)
In-Reply-To: <1317155405-26235-20-git-send-email-msalter@redhat.com>

On Tuesday 27 September 2011, Mark Salter wrote:

> +
> +static inline void __delay(unsigned long loops)
> +{
> +	uint32_t tmp;
> +
> +	/* 6 cycles per loop */
> +	asm volatile ("        mv    .s1  %0,%1\n"
> +		      "0: [%1] b     .s1  0b\n"
> +		      "        add   .l1  -6,%0,%0\n"
> +		      "        cmplt .l1  1,%0,%1\n"
> +		      "        nop   3\n"
> +		      : "+a"(loops), "=A"(tmp));
> +}
> +
> +static inline void _c6x_tickdelay(unsigned int x)
> +{
> +	uint32_t cnt, endcnt;
> +
> +	asm volatile ("        mvc   .s2   TSCL,%0\n"
> +		      "        add   .s2x  %0,%1,%2\n"
> +		      " ||     mvk   .l2   1,B0\n"
> +		      "0: [B0] b     .s2   0b\n"
> +		      "        mvc   .s2   TSCL,%0\n"
> +		      "        sub   .s2   %0,%2,%0\n"
> +		      "        cmpgt .l2   0,%0,B0\n"
> +		      "        nop   2\n"
> +		      : "=b"(cnt), "+a"(x), "=b"(endcnt) : : "B0");
> +}

Do you actually need to provide the __delay function here?
I think it's really only used by the calibrate_delay() function
that you don't need.

> diff --git a/arch/c6x/include/asm/unaligned.h b/arch/c6x/include/asm/unaligned.h
> new file mode 100644
> index 0000000..1dcb006
> --- /dev/null
> +++ b/arch/c6x/include/asm/unaligned.h
> @@ -0,0 +1,288 @@
> +/*
> + *  Port on Texas Instruments TMS320C6x architecture

This file basically just optimizes unaligned endianess conversion, but
you don't provide an optimized swab.h, which is the regular endianess
conversion.

I think it would less code and more useful to provide your own swab.h
and use the generic unaligned.h.

	Arnd

  parent reply	other threads:[~2011-09-28 14:07 UTC|newest]

Thread overview: 96+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-27 20:29 [PATCH v3 00/24] C6X: New architecture Mark Salter
2011-09-27 20:29 ` [PATCH v3 01/24] fix default __strnlen_user macro Mark Salter
2011-09-28 13:20   ` Arnd Bergmann
2011-09-28 13:20     ` Arnd Bergmann
2011-09-27 20:29 ` [PATCH v3 02/24] fixed generic page.h for non-zero PAGE_OFFSET Mark Salter
2011-09-27 20:29   ` Mark Salter
2011-09-27 20:29 ` [PATCH v3 03/24] add ELF machine define for TI C6X DSPs Mark Salter
2011-09-27 20:29 ` [PATCH v3 04/24] add missing __iomem to generic iounmap declaration Mark Salter
2011-09-27 20:29   ` Mark Salter
2011-09-28 13:19   ` Arnd Bergmann
2011-09-27 20:29 ` [PATCH v3 05/24] C6X: build infrastructure Mark Salter
2011-09-27 20:29   ` Mark Salter
2011-09-28 13:23   ` Arnd Bergmann
2011-09-28 14:32     ` Mark Salter
2011-09-28 14:57       ` Arnd Bergmann
2011-09-28 14:57         ` Arnd Bergmann
2011-09-27 20:29 ` [PATCH v3 06/24] C6X: early boot code Mark Salter
2011-09-27 20:29   ` Mark Salter
2011-09-28 13:26   ` Arnd Bergmann
2011-09-28 14:06     ` Mark Salter
2011-09-28 15:00       ` Arnd Bergmann
2011-09-28 15:00         ` Arnd Bergmann
2011-09-27 20:29 ` [PATCH v3 07/24] C6X: devicetree support Mark Salter
2011-09-27 20:29   ` Mark Salter
2011-09-28 13:31   ` Arnd Bergmann
2011-09-28 14:44     ` Mark Salter
2011-09-28 14:57       ` Arnd Bergmann
2011-09-28 23:11     ` Grant Likely
2011-09-28 23:11       ` Grant Likely
2011-09-27 20:29 ` [PATCH v3 08/24] C6X: memory management and DMA support Mark Salter
2011-09-27 20:29   ` Mark Salter
2011-09-28 13:46   ` Arnd Bergmann
2011-09-27 20:29 ` [PATCH v3 09/24] C6X: process management Mark Salter
2011-09-27 20:29   ` Mark Salter
2011-09-28 13:47   ` Arnd Bergmann
2011-09-27 20:29 ` [PATCH v3 10/24] C6X: signal management Mark Salter
2011-09-27 20:29   ` Mark Salter
2011-09-28 13:48   ` Arnd Bergmann
2011-09-27 20:29 ` [PATCH v3 11/24] C6X: time management Mark Salter
2011-09-27 23:41   ` Thomas Gleixner
2011-09-28 12:48     ` Mark Salter
2011-09-27 20:29 ` [PATCH v3 12/24] C6X: interrupt handling Mark Salter
2011-09-27 20:29   ` Mark Salter
2011-09-27 23:30   ` Thomas Gleixner
2011-09-27 20:29 ` [PATCH v3 13/24] C6X: syscalls Mark Salter
2011-09-27 20:29   ` Mark Salter
2011-09-28 13:49   ` Arnd Bergmann
2011-09-27 20:29 ` [PATCH v3 14/24] C6X: traps Mark Salter
2011-09-27 20:29   ` Mark Salter
2011-09-28 13:50   ` Arnd Bergmann
2011-09-28 13:50     ` Arnd Bergmann
2011-09-27 20:29 ` [PATCH v3 15/24] C6X: clocks Mark Salter
2011-09-27 20:29   ` Mark Salter
2011-09-28 13:51   ` Arnd Bergmann
2011-09-27 20:29 ` [PATCH v3 16/24] C6X: cache control Mark Salter
2011-09-27 20:29   ` Mark Salter
2011-09-28 13:52   ` Arnd Bergmann
2011-09-28 13:52     ` Arnd Bergmann
2011-09-27 20:29 ` [PATCH v3 17/24] C6X: loadable module support Mark Salter
2011-09-27 20:29   ` Mark Salter
2011-09-28 13:54   ` Arnd Bergmann
2011-09-27 20:29 ` [PATCH v3 18/24] C6X: ptrace support Mark Salter
2011-09-28 13:57   ` Arnd Bergmann
2011-09-28 13:57     ` Arnd Bergmann
2011-09-27 20:30 ` [PATCH v3 19/24] C6X: headers Mark Salter
2011-09-27 20:30   ` Mark Salter
2011-09-28 14:07   ` Arnd Bergmann [this message]
2011-09-28 14:07     ` Arnd Bergmann
2011-09-29 13:32     ` Mark Salter
2011-09-29 13:32       ` Mark Salter
2011-09-29 14:24     ` Mark Salter
2011-09-29 14:41       ` Arnd Bergmann
2011-09-27 20:30 ` [PATCH v3 20/24] C6X: library code Mark Salter
2011-09-27 20:30   ` Mark Salter
2011-09-28 14:09   ` Arnd Bergmann
2011-09-28 14:09     ` Arnd Bergmann
2011-09-27 20:30 ` [PATCH v3 21/24] C6X: general SoC support Mark Salter
2011-09-28 14:19   ` Arnd Bergmann
2011-09-27 20:30 ` [PATCH v3 22/24] C6X: EMIF - External Memory Interface Mark Salter
2011-09-28 14:13   ` Arnd Bergmann
2011-09-27 20:30 ` [PATCH v3 23/24] C6X: DSCR - Device State Configuration Registers Mark Salter
2011-09-27 20:30   ` Mark Salter
2011-09-28 14:11   ` Arnd Bergmann
2011-09-27 20:30 ` [PATCH v3 24/24] C6X: MAINTAINERS Mark Salter
2011-09-27 20:30   ` Mark Salter
2011-09-28 14:09   ` Arnd Bergmann
2011-09-28 14:09     ` Arnd Bergmann
2011-09-27 23:15 ` [PATCH v3 00/24] C6X: New architecture Stephen Rothwell
2011-09-28 14:33   ` Arnd Bergmann
2011-09-28 21:49 ` Valdis.Kletnieks
2011-09-29 10:33   ` Arnd Bergmann
2011-09-29 12:21     ` Mark Salter
2011-09-29 12:42       ` Valdis.Kletnieks
2011-09-29 13:02         ` Mark Salter
2011-09-29 13:02           ` Mark Salter
2011-09-29 13:18           ` Arnd Bergmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201109281607.11228.arnd@arndb.de \
    --to=arnd@arndb.de \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=msalter@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).