From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934204AbXGYRQg (ORCPT ); Wed, 25 Jul 2007 13:16:36 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1760373AbXGYRQ2 (ORCPT ); Wed, 25 Jul 2007 13:16:28 -0400 Received: from mail1.asahi-net.or.jp ([202.224.39.197]:64990 "EHLO mail.asahi-net.or.jp" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1757111AbXGYRQ1 (ORCPT ); Wed, 25 Jul 2007 13:16:27 -0400 X-Greylist: delayed 1127 seconds by postgrey-1.27 at vger.kernel.org; Wed, 25 Jul 2007 13:16:27 EDT Date: Thu, 26 Jul 2007 01:58:44 +0900 Message-ID: From: Hirokazu Takata To: Andrew Morton Cc: linux-kernel@vger.kernel.org, takata@linux-m32r.org, hitoshiy@linux-m32r.org Subject: [PATCH] m32r: Fix ei_tx_timeout() in drivers/net/lib8390.c User-Agent: Wanderlust/2.14.0 (Africa) Emacs/21.4 Mule/5.0 (SAKAKI) Renesas-ECN: H07-0010RT MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Change INT0 trigger mode from edge-sense mode to level-sense mode, in order to fix the following timeout error: 'NETDEV WATCHDOG: eth0: transmit timed out'. This patch is required only for the Mappi platform. Signed-off-by: Hirokazu Takata Cc: Hitoshi Yamamoto --- arch/m32r/kernel/setup_mappi.c | 5 +++-- drivers/net/lib8390.c | 9 --------- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/arch/m32r/kernel/setup_mappi.c b/arch/m32r/kernel/setup_mappi.c index 6b2d77d..fe73c9e 100644 --- a/arch/m32r/kernel/setup_mappi.c +++ b/arch/m32r/kernel/setup_mappi.c @@ -45,7 +45,8 @@ static void mask_and_ack_mappi(unsigned int irq) static void end_mappi_irq(unsigned int irq) { - enable_mappi_irq(irq); + if (!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS))) + enable_mappi_irq(irq); } static unsigned int startup_mappi_irq(unsigned int irq) @@ -88,7 +89,7 @@ void __init init_IRQ(void) irq_desc[M32R_IRQ_INT0].chip = &mappi_irq_type; irq_desc[M32R_IRQ_INT0].action = NULL; irq_desc[M32R_IRQ_INT0].depth = 1; - icu_data[M32R_IRQ_INT0].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; + icu_data[M32R_IRQ_INT0].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD11; disable_mappi_irq(M32R_IRQ_INT0); #endif /* CONFIG_M32R_NE2000 */ diff --git a/drivers/net/lib8390.c b/drivers/net/lib8390.c index 5c86e73..721ee38 100644 --- a/drivers/net/lib8390.c +++ b/drivers/net/lib8390.c @@ -219,15 +219,6 @@ static void ei_tx_timeout(struct net_device *dev) int txsr, isr, tickssofar = jiffies - dev->trans_start; unsigned long flags; -#if defined(CONFIG_M32R) && defined(CONFIG_SMP) - unsigned long icucr; - - local_irq_save(flags); - icucr = inl(M32R_ICU_CR1_PORTL); - icucr |= M32R_ICUCR_ISMOD11; - outl(icucr, M32R_ICU_CR1_PORTL); - local_irq_restore(flags); -#endif ei_local->stat.tx_errors++; spin_lock_irqsave(&ei_local->page_lock, flags); -- 1.5.2.3 -- Hirokazu Takata Linux/M32R Project: http://www.linux-m32r.org/