From: "David S. Miller" <davem@redhat.com>
To: gibbs@scsiguy.com
Cc: axboe@suse.de, skraw@ithnet.com, phillips@bonn-fries.net,
linux-kernel@vger.kernel.org
Subject: Re: With Daniel Phillips Patch
Date: Wed, 22 Aug 2001 11:46:20 -0700 (PDT) [thread overview]
Message-ID: <20010822.114620.77339267.davem@redhat.com> (raw)
In-Reply-To: <200108221832.f7MIWHY13542@aslan.scsiguy.com>
In-Reply-To: <20010822.080540.35030343.davem@redhat.com> <200108221832.f7MIWHY13542@aslan.scsiguy.com>
From: "Justin T. Gibbs" <gibbs@scsiguy.com>
Date: Wed, 22 Aug 2001 12:32:17 -0600
I would like the change much better if the size of dma_addr_t
simply changed to be 64bits wide if high mem support is enabled
in your kernel config.
Drivers for SAC only PCI devices shall not be bloated by 64-bit type,
not in any case whatsoever.
Sure, you need the other API changes to more finely set dma characteristics,
but having two APIs just complicates life for the device driver.
Either your device is 64-bit capable or not, what is so complicated?
Each driver I converted was like 15 minutes or work, at best!
From the device driver's point of view, this wasn't the case.
The driver asks to have the data mapped into an address that
its dma engine can understand and the system is supposed to do that
mapping.
What is the virtual address of physical address 0x100000000
on a 32-bit cpu system if the page is not currently kmap()'d?
Answer: it doesn't exist.
The only portable way is to use pages. That is what Jens's and
my work aims to do. The ia64 API is nonportable and works only
on 64-bit systems.
>It also assumed that using SAC or DAC addressing was simply a matter of
>"does the device support it", and the world is far from being that simple :-)
Can you enumerate the devices that actually issue a DAC when loaded with
a 64bit address with 0's in the most significant 32bits?
Sym53c8xx does this. You have to configure it to do SAC or DAC
for data, descriptors use SAC always.
There will certainly be devices in the future which will only
support DAC cycles.
Now that I'm supposed to use two differnt apis depending on what
capabilities I enable in my driver,
I think you are far overcomplicating things. I mean, look at how
simple the conversion of some of the networking drivers was. The
sym53c8xx driver conversion was very simple too, even with it's odd
current behavior due to addressing limitations.
It was nothing more than:
1) Adding probe time code to configure DMA attributes correctly.
Failing the probe is no suitable mode could be determined.
You know, it allows you to do something like this:
pci_set_dma_mask(pdev, 0x1fffffffff);
if (pci_dac_cycles_ok(pdev)) {
dac_addressing_method = 1;
goto dma_configured;
}
pci_set_dma_mask(pdev, 0x7ffffffffff);
if (pci_dac_cycles_ok(pdev)) {
dac_addressing_method = 2;
goto dma_configured;
}
pci_set_dma_mask(pdev, 0xffffffffffffffff);
if (pci_dac_cycles_ok(pdev)) {
dac_addressing_method = 3;
goto dma_configured;
}
if (!pci_dma_supported(pdev, 0xffffffff)) {
probe_fail_msg();
return -ENODEV;
}
dac_addressing_method = 0; /* Use SAC */
2) sed 's/dma_addr_t/dma64_addr_t/'
sed 's/pci_{map,unmap,dma_sync}*/pci64_{map,unmap,dma_sync}*/'
And doing a cursory glance over the DMA address references
to make sure they weren't being put into u32's or something
similar.
Justin, have you even _TRIED_ to use the new API?
I did, on like 6 drivers, and it works just fine.
Later,
David S. Miller
davem@redhat.com
next prev parent reply other threads:[~2001-08-22 18:46 UTC|newest]
Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-08-20 8:36 aic7xxx errors with 2.4.8-ac7 on 440gx mobo Yusuf Goolamabbas
2001-08-20 8:55 ` Cliff Albert
2001-08-20 10:37 ` Alan Cox
2001-08-20 10:56 ` Yusuf Goolamabbas
2001-08-20 10:56 ` Alan Cox
2001-08-20 11:13 ` Yusuf Goolamabbas
2001-08-20 11:09 ` Alan Cox
2001-08-20 16:43 ` Doug Ledford
2001-08-20 12:46 ` Stefan Fleiter
2001-08-20 15:19 ` Ville Herva
2001-08-20 20:33 ` Justin T. Gibbs
2001-08-20 16:45 ` Doug Ledford
2001-08-20 17:23 ` Stefan Fleiter
2001-08-20 20:28 ` Justin T. Gibbs
2001-08-21 20:24 ` Stefan Fleiter
2001-08-20 16:21 ` Cliff Albert
2001-08-20 17:23 ` Peter T. Breuer
2001-08-20 17:28 ` Cliff Albert
2001-08-20 20:27 ` Justin T. Gibbs
2001-08-20 20:45 ` Cliff Albert
2001-08-20 21:04 ` Cliff Albert
2001-08-20 21:09 ` Cliff Albert
2001-08-20 21:45 ` Justin T. Gibbs
2001-08-20 22:36 ` aic7xxx with 2.4.9 on 7899P Sven Heinicke
2001-08-21 14:42 ` With Daniel Phillips Patch (was: aic7xxx with 2.4.9 on 7899P) Sven Heinicke
2001-08-21 15:08 ` Daniel Phillips
2001-08-21 16:48 ` Sven Heinicke
2001-08-21 17:18 ` Justin T. Gibbs
2001-08-21 22:49 ` Sven Heinicke
2001-08-22 13:06 ` Gérard Roudier
2001-08-21 17:26 ` Daniel Phillips
2001-08-21 17:55 ` Stephan von Krawczynski
2001-08-21 18:33 ` Justin T. Gibbs
2001-08-22 6:46 ` Jens Axboe
2001-08-22 13:24 ` Justin T. Gibbs
2001-08-22 15:05 ` With Daniel Phillips Patch David S. Miller
2001-08-22 18:21 ` Gérard Roudier
2001-08-22 18:32 ` David S. Miller
2001-08-22 18:32 ` Justin T. Gibbs
2001-08-22 18:46 ` David S. Miller [this message]
2001-08-22 19:41 ` Justin T. Gibbs
2001-08-22 20:19 ` David S. Miller
2001-08-22 21:07 ` Gérard Roudier
2001-08-22 21:14 ` David S. Miller
2001-08-22 21:14 ` David S. Miller
2001-08-22 21:40 ` Justin T. Gibbs
2001-08-22 23:09 ` David S. Miller
2001-08-23 0:01 ` Justin T. Gibbs
2001-08-23 0:40 ` David S. Miller
2001-08-23 0:55 ` Justin T. Gibbs
2001-08-23 1:03 ` Matthew Jacob
2001-08-23 1:08 ` David S. Miller
2001-08-23 1:32 ` Justin T. Gibbs
2001-08-23 1:39 ` David S. Miller
2001-08-23 1:49 ` Justin T. Gibbs
2001-08-21 22:44 ` With Daniel Phillips Patch (was: aic7xxx with 2.4.9 on 7899P) Sven Heinicke
2001-08-22 0:58 ` Daniel Phillips
2001-08-22 10:25 ` Marcelo Tosatti
2001-08-22 16:09 ` Sven Heinicke
2001-08-22 15:42 ` Marcelo Tosatti
2001-08-22 20:25 ` Sven Heinicke
2001-08-29 7:30 ` Andrey Nekrasov
2001-09-03 14:58 ` Marcelo Tosatti
2001-08-20 22:55 ` aic7xxx errors with 2.4.8-ac7 on 440gx mobo Cliff Albert
2001-08-21 0:36 ` Justin T. Gibbs
2001-08-21 15:34 ` Gérard Roudier
2001-08-20 21:44 ` Justin T. Gibbs
2001-08-20 21:48 ` Cliff Albert
2001-08-25 7:15 ` Cliff Albert
-- strict thread matches above, loose matches on Subject: below --
2001-08-23 1:06 With Daniel Phillips Patch Van Maren, Kevin
2001-08-23 1:31 ` David S. Miller
2001-08-23 1:40 ` Justin T. Gibbs
2001-08-23 1:45 ` David S. Miller
2001-08-23 2:22 Van Maren, Kevin
2001-08-23 2:26 ` David S. Miller
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=20010822.114620.77339267.davem@redhat.com \
--to=davem@redhat.com \
--cc=axboe@suse.de \
--cc=gibbs@scsiguy.com \
--cc=linux-kernel@vger.kernel.org \
--cc=phillips@bonn-fries.net \
--cc=skraw@ithnet.com \
/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