Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Sat, 24 Aug 2002 09:48:51 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Sat, 24 Aug 2002 09:48:51 -0400 Received: from AMarseille-201-1-2-125.abo.wanadoo.fr ([193.253.217.125]:64880 "EHLO zion.wanadoo.fr") by vger.kernel.org with ESMTP id ; Sat, 24 Aug 2002 09:48:50 -0400 From: Benjamin Herrenschmidt To: Andre Hedrick , Alan Cox Cc: Subject: IDE janitoring comments Date: Sat, 24 Aug 2002 17:09:16 +0200 Message-Id: <20020824150917.20045@192.168.4.1> X-Mailer: CTM PowerMail 3.1.2 carbon MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2180 Lines: 51 A few notes taken while adapting the ide-pmac (MMIO) code to the new layer in -ac: - Do we really want to keep all those _P versions around ? A quick grep showed _only_ by the non-portable x86 specific recovery timer stuff that taps ISA timers (well, I think ports 0x40 and 0x43 and an ISA timer). I would strongly suggest to get rid of those functions from the hwif, and use directly the appropriate PIO functon i that timer routine. Also make sure that timer stuff don't get compiled on anything but legacy harware where we know those ports mean something. - In ide-iops, the insw, insl, outsw, outsl functions are broken for big endian. They should not do byteswap on these, however, implemeting them with a loop of IN/OUT_BYTE/WORD will cause byteswapped access on archs like PPC. The problem is that the macros IN/OUT_BYTE/WORD don't define non-swapping equivalents that would allow us to correctly implement the "s" versions. After much thinking about the above, I came to the conslusion we probably want to just kill all the IN_BYTE, OUT_BYTE, etc... macros and use directly inb/outb/etc... in the default PIO ops defined in ide-iops.c. We would then use the normal arch provided insw/insl/outsw/outsl functions here as well. I already added a set of ops for MMIO in there using the normal readb/writeb/... and for the "multiple" versions, I did loops using the __raw versions (no byteswap) and a manual io_barrier(). I grep'ed in 2.4, the only archs that use custom IN/OUT_BYTE macros for IDE are m68k and cris. I'm pretty sure m68k is wrong and should do like PPC :) In anyway, both should be fixed the new 'clean' way which is to define a set of access functions to be stuffed in the HWIF structure. The goal of ide-iops is to provide defaults for PIO (and MMIO soon as those can be made fairly generic too). Also, getting rid of the _P version would make things a lot easier as well here too. Any comments ? Ben. - 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/