All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Heiko Stübner" <heiko@sntech.de>
To: Romain Naour <romain.naour@openwide.fr>
Cc: tomasz.figa@gmail.com, Kukjin Kim <kgene.kim@samsung.com>,
	linux-samsung-soc@vger.kernel.org, ben-linux@fluff.org,
	'Sylwester Nawrocki' <sylvester.nawrocki@gmail.com>
Subject: Re: [PATCH 5/5 v2] Remove unused plat-samsung/time.c
Date: Mon, 10 Dec 2012 13:57:53 +0100	[thread overview]
Message-ID: <201212101357.54716.heiko@sntech.de> (raw)
In-Reply-To: <50BBAF96.2000209@openwide.fr>

Am Sonntag, 2. Dezember 2012, 20:44:22 schrieb Romain Naour:
> Since all Samsung devices use clocksource/clockevent API, we can remove
> unused sys_timer s3c24xx-timer (plat-samsung/time.c)

The patch is corrupted, as it contains wrapped lines and does not apply 
against the current linux-next tree


> Signed-off-by: Naour Romain <romain.naour@openwide.fr>
> 
>  delete mode 100644 arch/arm/plat-samsung/time.c

and what does this line do in the patch description? It seems your mail client 
mangled the "--" parting the patch message from the stats/comment section.


> diff --git a/arch/arm/plat-samsung/Makefile
> b/arch/arm/plat-samsung/Makefile index 06f2312..162e0df 100644
> --- a/arch/arm/plat-samsung/Makefile
> +++ b/arch/arm/plat-samsung/Makefile
> @@ -12,7 +12,6 @@ obj-				:=
>  # Objects we always build independent of SoC choice
> 
>  obj-y				+= init.o cpu.o
> -obj-$(CONFIG_ARCH_USES_GETTIMEOFFSET)   += time.o
>  obj-$(CONFIG_SAMSUNG_HRT) 		+= samsung-time.o
> 
>  obj-$(CONFIG_SAMSUNG_CLOCK)	+= clock.o
> diff --git a/arch/arm/plat-samsung/include/plat/cpu.h
> b/arch/arm/plat-samsung/include/plat/cpu.h
> index 86fb5f3..84a50ee 100644
> --- a/arch/arm/plat-samsung/include/plat/cpu.h
> +++ b/arch/arm/plat-samsung/include/plat/cpu.h
> @@ -184,11 +184,6 @@ extern void s3c24xx_init_uartdevs(char *name,
>  				  struct s3c24xx_uart_resources *res,
>  				  struct s3c2410_uartcfg *cfg, int no);
> 
> -/* timer for s5pc100 only */
> -
> -struct sys_timer;
> -extern struct sys_timer s3c24xx_timer;
> -
>  extern struct syscore_ops s3c2410_pm_syscore_ops;
>  extern struct syscore_ops s3c2412_pm_syscore_ops;
>  extern struct syscore_ops s3c2416_pm_syscore_ops;
> diff --git a/arch/arm/plat-samsung/time.c b/arch/arm/plat-samsung/time.c
> deleted file mode 100644
> index 60552e2..0000000
> --- a/arch/arm/plat-samsung/time.c
> +++ /dev/null
> @@ -1,285 +0,0 @@
> -/* linux/arch/arm/plat-samsung/time.c
> - *
> - * Copyright (C) 2003-2005 Simtec Electronics
> - *	Ben Dooks, <ben@simtec.co.uk>
> - *
> - * 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.  See the
> - * GNU General Public License for more details.
> - *
> - * You should have received a copy of the GNU General Public License
> - * along with this program; if not, write to the Free Software
> - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
>  USA
> - */
> -
> -#include <linux/kernel.h>
> -#include <linux/sched.h>
> -#include <linux/init.h>
> -#include <linux/interrupt.h>
> -#include <linux/irq.h>
> -#include <linux/err.h>
> -#include <linux/clk.h>
> -#include <linux/io.h>
> -#include <linux/platform_device.h>
> -
> -#include <asm/mach-types.h>
> -
> -#include <asm/irq.h>
> -#include <mach/map.h>
> -#include <plat/regs-timer.h>
> -#include <mach/regs-irq.h>
> -#include <asm/mach/time.h>
> -#include <mach/tick.h>
> -
> -#include <plat/clock.h>
> -#include <plat/cpu.h>
> -
> -static unsigned long timer_startval;
> -static unsigned long timer_usec_ticks;
> -
> -#ifndef TICK_MAX
> -#define TICK_MAX (0xffff)
> -#endif
> -
> -#define TIMER_USEC_SHIFT 16
> -
> -/* we use the shifted arithmetic to work out the ratio of timer ticks
> - * to usecs, as often the peripheral clock is not a nice even multiple
> - * of 1MHz.
> - *
> - * shift of 14 and 15 are too low for the 12MHz, 16 seems to be ok
> - * for the current HZ value of 200 without producing overflows.
> - *
> - * Original patch by Dimitry Andric, updated by Ben Dooks
> -*/
> -
> -
> -/* timer_mask_usec_ticks
> - *
> - * given a clock and divisor, make the value to pass into
> timer_ticks_to_usec
> - * to scale the ticks into usecs
> -*/
> -
> -static inline unsigned long
> -timer_mask_usec_ticks(unsigned long scaler, unsigned long pclk)
> -{
> -	unsigned long den = pclk / 1000;
> -
> -	return ((1000 << TIMER_USEC_SHIFT) * scaler + (den >> 1)) / den;
> -}
> -
> -/* timer_ticks_to_usec
> - *
> - * convert timer ticks to usec.
> -*/
> -
> -static inline unsigned long timer_ticks_to_usec(unsigned long ticks)
> -{
> -	unsigned long res;
> -
> -	res = ticks * timer_usec_ticks;
> -	res += 1 << (TIMER_USEC_SHIFT - 4);	/* round up slightly */
> -
> -	return res >> TIMER_USEC_SHIFT;
> -}
> -
> -/***
> - * Returns microsecond  since last clock interrupt.  Note that interrupts
> - * will have been disabled by do_gettimeoffset()
> - * IRQs are disabled before entering here from do_gettimeofday()
> - */
> -
> -static unsigned long s3c2410_gettimeoffset (void)
> -{
> -	unsigned long tdone;
> -	unsigned long tval;
> -
> -	/* work out how many ticks have gone since last timer interrupt */
> -
> -	tval =  __raw_readl(S3C2410_TCNTO(4));
> -	tdone = timer_startval - tval;
> -
> -	/* check to see if there is an interrupt pending */
> -
> -	if (s3c24xx_ostimer_pending()) {
> -		/* re-read the timer, and try and fix up for the missed
> -		 * interrupt. Note, the interrupt may go off before the
> -		 * timer has re-loaded from wrapping.
> -		 */
> -
> -		tval =  __raw_readl(S3C2410_TCNTO(4));
> -		tdone = timer_startval - tval;
> -
> -		if (tval != 0)
> -			tdone += timer_startval;
> -	}
> -
> -	return timer_ticks_to_usec(tdone);
> -}
> -
> -
> -/*
> - * IRQ handler for the timer
> - */
> -static irqreturn_t
> -s3c2410_timer_interrupt(int irq, void *dev_id)
> -{
> -	timer_tick();
> -	return IRQ_HANDLED;
> -}
> -
> -static struct irqaction s3c2410_timer_irq = {
> -	.name		= "S3C2410 Timer Tick",
> -	.flags		= IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL,
> -	.handler	= s3c2410_timer_interrupt,
> -};
> -
> -#define use_tclk1_12() ( \
> -	machine_is_bast()	|| \
> -	machine_is_vr1000()	|| \
> -	machine_is_anubis()	|| \
> -	machine_is_osiris())
> -
> -static struct clk *tin;
> -static struct clk *tdiv;
> -static struct clk *timerclk;
> -
> -/*
> - * Set up timer interrupt, and return the current time in seconds.
> - *
> - * Currently we only use timer4, as it is the only timer which has no
> - * other function that can be exploited externally
> - */
> -static void s3c2410_timer_setup (void)
> -{
> -	unsigned long tcon;
> -	unsigned long tcnt;
> -	unsigned long tcfg1;
> -	unsigned long tcfg0;
> -
> -	tcnt = TICK_MAX;  /* default value for tcnt */
> -
> -	/* configure the system for whichever machine is in use */
> -
> -	if (use_tclk1_12()) {
> -		/* timer is at 12MHz, scaler is 1 */
> -		timer_usec_ticks = timer_mask_usec_ticks(1, 12000000);
> -		tcnt = 12000000 / HZ;
> -
> -		tcfg1 = __raw_readl(S3C2410_TCFG1);
> -		tcfg1 &= ~S3C2410_TCFG1_MUX4_MASK;
> -		tcfg1 |= S3C2410_TCFG1_MUX4_TCLK1;
> -		__raw_writel(tcfg1, S3C2410_TCFG1);
> -	} else {
> -		unsigned long pclk;
> -		struct clk *tscaler;
> -
> -		/* for the h1940 (and others), we use the pclk from the core
> -		 * to generate the timer values. since values around 50 to
> -		 * 70MHz are not values we can directly generate the timer
> -		 * value from, we need to pre-scale and divide before using it.
> -		 *
> -		 * for instance, using 50.7MHz and dividing by 6 gives 8.45MHz
> -		 * (8.45 ticks per usec)
> -		 */
> -
> -		pclk = clk_get_rate(timerclk);
> -
> -		/* configure clock tick */
> -
> -		timer_usec_ticks = timer_mask_usec_ticks(6, pclk);
> -
> -		tscaler = clk_get_parent(tdiv);
> -
> -		clk_set_rate(tscaler, pclk / 3);
> -		clk_set_rate(tdiv, pclk / 6);
> -		clk_set_parent(tin, tdiv);
> -
> -		tcnt = clk_get_rate(tin) / HZ;
> -	}
> -
> -	tcon = __raw_readl(S3C2410_TCON);
> -	tcfg0 = __raw_readl(S3C2410_TCFG0);
> -	tcfg1 = __raw_readl(S3C2410_TCFG1);
> -
> -	/* timers reload after counting zero, so reduce the count by 1 */
> -
> -	tcnt--;
> -
> -	printk(KERN_DEBUG "timer tcon=%08lx, tcnt %04lx, tcfg %08lx,%08lx,
> usec %08lx\n",
> -	       tcon, tcnt, tcfg0, tcfg1, timer_usec_ticks);
> -
> -	/* check to see if timer is within 16bit range... */
> -	if (tcnt > TICK_MAX) {
> -		panic("setup_timer: HZ is too small, cannot configure timer!");
> -		return;
> -	}
> -
> -	__raw_writel(tcfg1, S3C2410_TCFG1);
> -	__raw_writel(tcfg0, S3C2410_TCFG0);
> -
> -	timer_startval = tcnt;
> -	__raw_writel(tcnt, S3C2410_TCNTB(4));
> -
> -	/* ensure timer is stopped... */
> -
> -	tcon &= ~(7<<20);
> -	tcon |= S3C2410_TCON_T4RELOAD;
> -	tcon |= S3C2410_TCON_T4MANUALUPD;
> -
> -	__raw_writel(tcon, S3C2410_TCON);
> -	__raw_writel(tcnt, S3C2410_TCNTB(4));
> -	__raw_writel(tcnt, S3C2410_TCMPB(4));
> -
> -	/* start the timer running */
> -	tcon |= S3C2410_TCON_T4START;
> -	tcon &= ~S3C2410_TCON_T4MANUALUPD;
> -	__raw_writel(tcon, S3C2410_TCON);
> -}
> -
> -static void __init s3c2410_timer_resources(void)
> -{
> -	struct platform_device tmpdev;
> -
> -	tmpdev.dev.bus = &platform_bus_type;
> -	tmpdev.id = 4;
> -
> -	timerclk = clk_get(NULL, "timers");
> -	if (IS_ERR(timerclk))
> -		panic("failed to get clock for system timer");
> -
> -	clk_enable(timerclk);
> -
> -	if (!use_tclk1_12()) {
> -		tmpdev.id = 4;
> -		tmpdev.dev.init_name = "s3c24xx-pwm.4";
> -		tin = clk_get(&tmpdev.dev, "pwm-tin");
> -		if (IS_ERR(tin))
> -			panic("failed to get pwm-tin clock for system timer");
> -
> -		tdiv = clk_get(&tmpdev.dev, "pwm-tdiv");
> -		if (IS_ERR(tdiv))
> -			panic("failed to get pwm-tdiv clock for system timer");
> -	}
> -
> -	clk_enable(tin);
> -}
> -
> -static void __init s3c2410_timer_init(void)
> -{
> -	s3c2410_timer_resources();
> -	s3c2410_timer_setup();
> -	setup_irq(IRQ_TIMER4, &s3c2410_timer_irq);
> -}
> -
> -struct sys_timer s3c24xx_timer = {
> -	.init		= s3c2410_timer_init,
> -	.offset		= s3c2410_gettimeoffset,
> -	.resume		= s3c2410_timer_setup
> -};

4

  reply	other threads:[~2012-12-10 12:58 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-24 20:56 [PATCH] S3C24XX: add clockevent/clocksource support Romain Naour
2012-10-25 20:39 ` Tomasz Figa
2012-10-26 10:51   ` Romain Naour
2012-11-23  2:30     ` Kukjin Kim
2012-11-25  2:54       ` Romain Naour
2012-11-25 11:09         ` Tomasz Figa
2012-11-27 23:27         ` [PATCH 1/3] Rename s5p-time to samsung-time Romain Naour
2012-11-27 23:57           ` Heiko Stübner
2012-11-29 23:18             ` Romain Naour
2012-11-29 23:59               ` Heiko Stübner
2012-12-02 19:43               ` [PATCH 0/5 v2] S3C / S5PC100: add clockevent/clocksource support Romain Naour
2012-12-02 19:44             ` [PATCH 1/5 v2] Rename s5p-time to samsung-time Romain Naour
2012-12-10 12:59               ` Heiko Stübner
2012-12-15 21:43                 ` Romain Naour
2013-01-08 21:00                   ` Tomasz Figa
2013-01-09 19:26                     ` Kukjin Kim
2013-01-09 22:43                       ` Romain Naour
2013-01-09 22:43                     ` [PATCH 0/5 v3] S3C / S5PC100: add clockevent/clocksource support Romain Naour
2013-01-10  0:14                       ` Tomasz Figa
2013-01-10  0:38                         ` Kukjin Kim
2013-01-10  0:37                       ` Heiko Stübner
2013-01-10  0:48                         ` Kukjin Kim
2013-01-09 22:43                     ` [PATCH 1/5 v3] Rename s5p-time to samsung-time Romain Naour
2013-01-09 22:43                     ` [PATCH 2/5 v3] Add samsung-time support for s3c24xx Romain Naour
2013-01-10  3:03                       ` Kukjin Kim
2013-01-09 22:44                     ` [PATCH 3/5 v3] Add samsung-time support for s3c64xx Romain Naour
2013-01-09 22:44                     ` [PATCH 4/5 v3] Add samsung-time support for s5pc100 Romain Naour
2013-01-09 22:44                     ` [PATCH 5/5 v3] Remove unused plat-samsung/time.c Romain Naour
2012-12-02 19:44             ` [PATCH 2/5 v2] Add samsung-time support for s3c24xx Romain Naour
2012-12-10 13:00               ` Heiko Stübner
2012-12-15 21:40                 ` Romain Naour
2012-12-02 19:44             ` [PATCH 3/5 v2] Add samsung-time support for s3c64xx Romain Naour
2012-12-02 19:44             ` [PATCH 4/5 v2] Add samsung-time support for s5pc100 Romain Naour
2012-12-02 19:44             ` [PATCH 5/5 v2] Remove unused plat-samsung/time.c Romain Naour
2012-12-10 12:57               ` Heiko Stübner [this message]
2012-12-15 21:40                 ` Romain Naour
2012-12-15 21:40             ` [PATCH 5/5 v3] " Romain Naour
2012-11-27 23:27         ` [PATCH 2/3] Add samsung-time support for s3c24xx Romain Naour
2012-11-27 23:27         ` [PATCH 3/3] Add samsung-time support for s3c64xx Romain Naour

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=201212101357.54716.heiko@sntech.de \
    --to=heiko@sntech.de \
    --cc=ben-linux@fluff.org \
    --cc=kgene.kim@samsung.com \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=romain.naour@openwide.fr \
    --cc=sylvester.nawrocki@gmail.com \
    --cc=tomasz.figa@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.