public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Marc Singer <elf@buici.com>
To: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl>
Cc: rmk@arm.linux.org.uk, linux-ide@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: arm-lh7a40x IDE support in 2.6.6
Date: Fri, 14 May 2004 10:26:56 -0700	[thread overview]
Message-ID: <20040514172656.GA18884@buici.com> (raw)
In-Reply-To: <200405141840.04401.bzolnier@elka.pw.edu.pl>

On Fri, May 14, 2004 at 06:40:04PM +0200, Bartlomiej Zolnierkiewicz wrote:
> 
> I was just porting my patches killing <asm/arch/ide.h> for
> ARM to 2.6.6 when noticed that more work is needed now. :-(
> 
> arch/arm/mach-lh7a40x/ide-lpd7a40x.c
> include/asm-arm/arch-lh7a40x/ide.h
> 
> Why it couldn't be done in drivers/ide/arm
> (as discussed on linux-ide)?

Your response took look enough for me to switch to another job.  I
haven't yet returned to dealing with this.

> Code from <asm/ide.h> is inlined into IDE core code in far too
> many interesting places which greatly increasing complexity/insanity
> to anybody trying to understand or change it.
> 
> The rule is simple:
> 	code outside drivers/ide SHOULDN'T need to know about <linux/ide.h>.

I am emulating what has come before.  All of my examples look like
what I did.

> WTF everybody wants to be "smart" and abuses it?
> [ and then people complain why IDE is so ugly ]

Where's the model?

> BTW does it even work as IDE polling code is not merged yet?

Huh?

aThe solution isn't really that complex.  I need two things.  First, I
must override the register-level access routines in order to do a
little hardware workaround cha-cha-cha.  There's nothing I can do to
fix the hardware.  Second, I need to be able to poll the interface
after initiating a command.  IIRC, you said that I missed at least one
place where this needed to be done.

There are also some very important code (hacks) in

  arch/arm/mach-lh7a40x/ide-lpd7a40x.c

to deal with the fact that I didn't want to touch the SELECT_DRIVE
call from the IDE driver.  The problem was that the SELECT_DRIVE call
in ide-iops.c does this:

  void SELECT_DRIVE (ide_drive_t *drive)
  {
	  if (HWIF(drive)->selectproc)
		  HWIF(drive)->selectproc(drive);
	  HWIF(drive)->OUTB(drive->select.all, IDE_SELECT_REG);
  }


instead of this:

  void SELECT_DRIVE (ide_drive_t *drive)
  {
	  if (HWIF(drive)->selectproc)
		  HWIF(drive)->selectproc(drive);
	  else
		  HWIF(drive)->OUTB(drive->select.all, IDE_SELECT_REG);
  }

The OUTB breaks my interface because I don't really have byte-level
access to the resgisters.  So, is selectproc a pre-select procedure or
should it be a substitute?

Anyway, that is what I did in a nutshell.  I plan to get back to this
in a week or so.  Since Russell King already integrated the lh7a40x
code into the kernel, this stuff should be easy to test.

Cheers.


  parent reply	other threads:[~2004-05-14 17:27 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-05-14 16:40 arm-lh7a40x IDE support in 2.6.6 Bartlomiej Zolnierkiewicz
2004-05-14 16:52 ` Bartlomiej Zolnierkiewicz
2004-05-14 17:28   ` Marc Singer
2004-05-14 17:26 ` Marc Singer [this message]
2004-05-14 18:45   ` Bartlomiej Zolnierkiewicz
2004-05-14 19:47     ` Marc Singer
2004-05-14 21:23       ` Bartlomiej Zolnierkiewicz
2004-05-14 21:33         ` Marc Singer
2004-05-14 22:19           ` Bartlomiej Zolnierkiewicz
2004-05-14 22:49             ` Marc Singer
2004-05-14 23:26               ` Bartlomiej Zolnierkiewicz
2004-05-15  0:10                 ` Marc Singer
2004-05-15  0:25                   ` Bartlomiej Zolnierkiewicz
2004-05-15  0:33                     ` Marc Singer
2004-05-14 19:52     ` Russell King
2004-05-14 20:25       ` Bartlomiej Zolnierkiewicz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20040514172656.GA18884@buici.com \
    --to=elf@buici.com \
    --cc=B.Zolnierkiewicz@elka.pw.edu.pl \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rmk@arm.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox