Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757178AbZKSJCp (ORCPT ); Thu, 19 Nov 2009 04:02:45 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1755336AbZKSJCo (ORCPT ); Thu, 19 Nov 2009 04:02:44 -0500 Received: from caramon.arm.linux.org.uk ([78.32.30.218]:33507 "EHLO caramon.arm.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754958AbZKSJCm (ORCPT ); Thu, 19 Nov 2009 04:02:42 -0500 Date: Thu, 19 Nov 2009 09:02:04 +0000 From: Russell King - ARM Linux To: Wan ZongShun Cc: Andrew Morton , linux-spi , David Brownell-sourceforge , linux-kernel , linux-arm-kernel Subject: Re: [PATCH] ARM: Add spi controller driver support for NUC900 Message-ID: <20091119090204.GB13376@n2100.arm.linux.org.uk> References: <4B024748.9080001@gmail.com> <20091118142109.ff2c5ef6.akpm@linux-foundation.org> <20091118234928.8d86a9f9.akpm@linux-foundation.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1442 Lines: 32 On Thu, Nov 19, 2009 at 04:40:50PM +0800, Wan ZongShun wrote: > 2009/11/19 Andrew Morton : > > I don't know, because I don't know what operation the hardware needs to > > stop it from generating interrupts. ?Perhaps that's clk_disable()? > > The interrupt will be not occur as long as I run clk_disable(). > > > Once you've stopped the source of interrupts then the code should wait > > for the IRQ handler to complete if it's running on another CPU. ?Yes, > > free_irq() does that. > > So, regarding my system of single CPU, maybe I need put this > 'clk_disable()' in the front of function of w90p910_spi_remove(). > > right? Depending on the hardware, that's not the right answer. If turning off the clock also causes register accesses to the device to abort, it is a very dangerous thing to do. It can also be dangerous if the clock is used to synchronise the interrupt output - it can lead to the output being permanently asserted if the clock is turned off with it asserted. Normally devices have an "interrupt enable" register. You should disable all interrupts from the device using this register after unregistering the driver from the (SPI) subsystem. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/