Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1423423AbWBBJtv (ORCPT ); Thu, 2 Feb 2006 04:49:51 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1423428AbWBBJtv (ORCPT ); Thu, 2 Feb 2006 04:49:51 -0500 Received: from [85.8.13.51] ([85.8.13.51]:35306 "EHLO smtp.drzeus.cx") by vger.kernel.org with ESMTP id S1423423AbWBBJtu (ORCPT ); Thu, 2 Feb 2006 04:49:50 -0500 Message-ID: <43E1D5BF.5000807@drzeus.cx> Date: Thu, 02 Feb 2006 10:49:51 +0100 From: Pierre Ossman User-Agent: Thunderbird 1.5 (X11/20060128) MIME-Version: 1.0 To: Pierre Ossman , LKML Subject: Re: Purpose of MMC_DATA_MULTI? References: <43E057DA.7000909@drzeus.cx> <20060201092934.GB27735@flint.arm.linux.org.uk> <43E08148.3060003@drzeus.cx> <20060202093656.GA5034@flint.arm.linux.org.uk> In-Reply-To: <20060202093656.GA5034@flint.arm.linux.org.uk> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2405 Lines: 61 Russell King wrote: > On Wed, Feb 01, 2006 at 10:37:12AM +0100, Pierre Ossman wrote: > >> Russell King wrote: >> >>> On Wed, Feb 01, 2006 at 07:40:26AM +0100, Pierre Ossman wrote: >>> >>>> I noticed that a new transfer flag was recently added to the MMC layer >>>> without any immediate users, the MMC_DATA_MULTI flag. I'm guessing the >>>> purpose of the flag is to indicate the difference between >>>> MMC_READ_SINGLE_BLOCK and MMC_READ_MULTIPLE_BLOCKS with just one block. >>>> If so, then that should probably be mentioned in a comment somewhere. >>>> >>>> >>> There are hosts out there (Atmel AT91-based) which need to know if the >>> transfer is going to be multiple block. Rather than have them test >>> the op-code (which is what they're already doing), we provide a flag >>> instead. >>> >> As far as the hardware is concerned there are two "multi-block" transfers: >> >> * Multiple, back-to-back blocks. >> * One or more blocks that need to be terminated by some form of stop >> command. >> >> The first can be identified by checking the number of blocks in the >> request, the latter is harder to identify since it's a protocol semantic >> (it could be just one block, but still need a stop). Does MMC_DATA_MULTI >> indicate the latter, former or both? >> > > In short, it's defined to be whatever AT91_MCI_TRTYP_MULTIPLE means in > the AT91RM9200 MMC host driver, which appears to be set for any of the > multiple block commands. They currently are doing: > > That's a bit fuzzy and bound to give problems. Why not settle for the first case and change their code to check the block count in the request? Less flags should be a good thing. And if that proves to be insufficient we should do a more thorough investigation once we have an actual failure case. > and using that as a lookup table by command for the value to put into > the command register. I want to eliminate that, and not passing the > MULTI flag prevents elimination of this table. > > Seems to be a common theme in the more recent drivers. Don't they teach people proper layering in the schools anymore? :) Rgds Pierre - 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/