From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753238Ab1DRG4b (ORCPT ); Mon, 18 Apr 2011 02:56:31 -0400 Received: from moutng.kundenserver.de ([212.227.126.171]:63493 "EHLO moutng.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752919Ab1DRG4Y (ORCPT ); Mon, 18 Apr 2011 02:56:24 -0400 From: Arnd Bergmann To: Richard Cochran Subject: Re: [PATCH V14 3/4] ptp: Added a clock driver for the IXP46x. Date: Mon, 18 Apr 2011 08:56:03 +0200 User-Agent: KMail/1.12.2 (Linux/2.6.37; KDE/4.3.2; x86_64; ; ) Cc: linux-kernel@vger.kernel.org, linux-api@vger.kernel.org, netdev@vger.kernel.org, devicetree-discuss@lists.ozlabs.org, linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, Alan Cox , Christoph Lameter , David Miller , John Stultz , Krzysztof Halasa , Peter Zijlstra , Rodolfo Giometti , Thomas Gleixner , Benjamin Herrenschmidt , Mike Frysinger , Paul Mackerras , Russell King References: In-Reply-To: MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201104180856.04186.arnd@arndb.de> X-Provags-ID: V02:K0:RNlgAGuD02dUOXst3QWNMqT9xVW/Upl2+DrsRHZV7GL TpSBk3lcL9/aKKMkJp7+rkrxkmKQJEWzk1BJfdx7d1LDMCXHoW l4DXx4hp5cXm0vSN/Fynmppys1fyxgqI5+OaWca2gbB/hvA9h5 ikQ+cqVPNcstQs7U8r8MNaimxKw6mpwbJMBCKJ6KiRFcQ6BSzc g7K4LlSDAR9NlaYwqOeeA== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Monday 18 April 2011, Richard Cochran wrote: > +static void ixp_rx_timestamp(struct port *port, struct sk_buff *skb) > +{ > + struct skb_shared_hwtstamps *shhwtstamps; > + struct ixp46x_ts_regs *regs; > + u64 ns; > + u32 ch, hi, lo, val; > + u16 uid, seq; > + > + if (!port->hwts_rx_en) > + return; > + > + ch = PORT2CHANNEL(port); > + > + regs = (struct ixp46x_ts_regs __iomem *) IXP4XX_TIMESYNC_BASE_VIRT; > + > + val = __raw_readl(®s->channel[ch].ch_event); > + > + if (!(val & RX_SNAPSHOT_LOCKED)) > + return; > + > + lo = __raw_readl(®s->channel[ch].src_uuid_lo); > + hi = __raw_readl(®s->channel[ch].src_uuid_hi); > + I guess you should use readl(), not __raw_readl() here. The __raw_* functions are not meant for device drivers. Arnd