From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrei Martynov Subject: Re[2]: porting IDE patches to PATA driver Date: Mon, 29 Jun 2009 14:01:57 +0200 Message-ID: <596875090.20090629140157@web.de> References: <323951117.20090625100956@web.de> <20090625092324.2dd4de5a@lxorguk.ukuu.org.uk> <14164712.20090625103834@web.de> <20090625100542.525dba02@lxorguk.ukuu.org.uk> <951976828.20090625123021@web.de> <20090625122958.510c28ad@lxorguk.ukuu.org.uk> <96179821.20090626152440@web.de> <20090626144639.4bc822b8@lxorguk.ukuu.org.uk> <792909512.20090626164052@web.de> <20090626172143.3fe6a59c@lxorguk.ukuu.org.uk> Reply-To: Andrei Martynov Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----------C332243EEB397E" Return-path: Received: from fmmailgate02.web.de ([217.72.192.227]:41161 "EHLO fmmailgate02.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751226AbZF2MCA (ORCPT ); Mon, 29 Jun 2009 08:02:00 -0400 In-Reply-To: <20090626172143.3fe6a59c@lxorguk.ukuu.org.uk> Sender: linux-ide-owner@vger.kernel.org List-Id: linux-ide@vger.kernel.org To: Alan Cox Cc: linux-ide@vger.kernel.org ------------C332243EEB397E Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Friday, June 26, 2009, 6:21:43 PM, Alan wrote: > The source you posted has MWDMA undefined which makes me > wonder if it matches the binary your dmesg is from. > It's also possible some of the other fixes in that code are relevant to MWDMA - certainly > your driver looks sane. you are right. I'm working with multiple sources from different sites and missed the fact the original driver ide-jasper.c published at uclinux.org has BMDMA undefined. Dmegs output was produced using a slightly modified version of the file that has BMDMA defined, but there are no other changes in it that would explain unexpected DMA interrupt mystery, it should be one of the patches done to ide and cdrom subsystem. Here is an updated patch, could you please check it? I don't see anything unusual except the "never disable DMA" logic in ide_dma.c. -- Best regards, Andrei mailto:andrei.martynov@web.de ------------C332243EEB397E Content-Type: application/x-gzip; name="sigma.patch.gz" Content-transfer-encoding: base64 Content-Disposition: attachment; filename="sigma.patch.gz" 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 wQAA ------------C332243EEB397E--