From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: linux-ide@vger.kernel.org,
Linux Kernel Development <linux-kernel@vger.kernel.org>,
Linux/m68k <linux-m68k@vger.kernel.org>,
Michael Schmitz <schmitz@debian.org>
Subject: Re: [PATCH 5/5] falconide/q40ide: add ->atapi_*put_bytes and ->ata_*put_data methods
Date: Sun, 30 Mar 2008 21:34:42 +0200 [thread overview]
Message-ID: <200803302134.42569.bzolnier@gmail.com> (raw)
In-Reply-To: <Pine.LNX.4.64.0803302012560.16372@anakin>
Hi,
On Sunday 30 March 2008, Geert Uytterhoeven wrote:
> Hi Bart,
>
> On Sun, 30 Mar 2008, Bartlomiej Zolnierkiewicz wrote:
> > * Add ->atapi_{in,out}put_bytes and ->ata_{in,out}put_data methods to
> > falconide and q40ide host drivers (->ata_* methods are implemented on
> > top of ->atapi_* methods so they also do byte-swapping now).
> >
> > * Cleanup atapi_{in,out}put_bytes().
>
> Thanks!
>
> One remaining issue (for which the fix has never been submitted upstream so
> far) with Atari and Q40 is that due to the byteswapped interface, the driveid
> is also byteswapped, so it has to be unswapped again in ide_fix_driveid().
My patch causes unswapping for _all_ data coming from the device so I wonder
whether the ide_fix_driveid() fix is still needed?
[ I now recall some discussion that we shouldn't un-swap fs requests because
of how the things were done in the past fs itself is stored byte-swapped on
the disk - if this is the case I will recast the patch to pass rq to
->ata_*put_data in ide_pio_sector() and check rq->cmd_type == REQ_TYPE_FS
in falconide/q40ide_*put_data() to decide whether to unswap data or not ]
Thanks,
Bart
> Here's a very old and unclean but working patch:
>
> --- a/drivers/ide/ide-iops.c
> +++ b/drivers/ide/ide-iops.c
> @@ -284,6 +284,23 @@ void ide_fix_driveid (struct hd_driveid
> int i;
> u16 *stringcast;
>
> +#ifdef __mc68000__
> + if (!MACH_IS_AMIGA && !MACH_IS_MAC && !MACH_IS_Q40 && !MACH_IS_ATARI)
> + return;
> +
> +#ifdef M68K_IDE_SWAPW
> + if (M68K_IDE_SWAPW) { /* fix bus byteorder first */
> + u_char *p = (u_char *)id;
> + u_char t;
> + for (i = 0; i < 512; i += 2) {
> + t = p[i];
> + p[i] = p[i+1];
> + p[i+1] = t;
> + }
> + }
> +#endif
> +#endif /* __mc68000__ */
> +
> id->config = __le16_to_cpu(id->config);
> id->cyls = __le16_to_cpu(id->cyls);
> id->reserved2 = __le16_to_cpu(id->reserved2);
>
> Note that include/asm-m68k/ide.h has
>
> #define M68K_IDE_SWAPW (MACH_IS_Q40 || MACH_IS_ATARI)
>
> Gr{oetje,eeting}s,
>
> Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
>
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
> -- Linus Torvalds
next prev parent reply other threads:[~2008-03-30 19:22 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-30 15:14 [PATCH 5/5] falconide/q40ide: add ->atapi_*put_bytes and ->ata_*put_data methods Bartlomiej Zolnierkiewicz
2008-03-30 18:18 ` Geert Uytterhoeven
2008-03-30 19:34 ` Bartlomiej Zolnierkiewicz [this message]
2008-03-31 5:53 ` Geert Uytterhoeven
2008-03-31 6:04 ` Geert Uytterhoeven
2008-03-31 9:37 ` Alan Cox
2008-04-07 19:13 ` Bartlomiej Zolnierkiewicz
2008-04-08 9:40 ` Richard Zidlicky
2008-04-09 1:40 ` Michael Schmitz
2008-04-09 18:13 ` Richard Zidlicky
2008-04-09 18:49 ` Bartlomiej Zolnierkiewicz
-- strict thread matches above, loose matches on Subject: below --
2008-03-31 21:41 Roman Zippel
2008-03-31 21:43 ` Alan Cox
2008-03-31 22:02 ` Roman Zippel
2008-04-01 3:20 ` Michael Schmitz
2008-04-01 8:12 ` Alan Cox
2008-04-01 8:32 ` Mikael Pettersson
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=200803302134.42569.bzolnier@gmail.com \
--to=bzolnier@gmail.com \
--cc=geert@linux-m68k.org \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-m68k@vger.kernel.org \
--cc=schmitz@debian.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.