On Mon, 31 Jan 2011 21:22:23 -0600
Robert Hancock <[email protected]> wrote:
> > Some ideas to implement something that works for such device were
> > discussed. Seems that the conclusion is that it's doesn't worth making
> > the common code complicated for such minor and insane devices.
>
> I don't think this is the only device that has sub-32-bit DMA
> restrictions, this will just lead to a bunch of duplicated code.
Yeah, not only device but not many.
The block layer has the own bouncing mechanism. Some network drivers
have the similar bouncing code. I don't know if there are other kinds
of drivers that have the own bouncing code.
I thought that we can make mm/bounce.c (used for block drivers now)
work any drivers without complicating it. We could make swiotlb to do
but it's too complicated and it doesn't worth.
> In
> particular, how is LPC DMA supposed to work?
LPC DMA can't do 32bit dma?
> At the very least we should be allowing the driver to deal with the
> failure instead of panicing the system. Otherwise we are just leaving a
> land mine for people to trip over.
Agreed. swiotlb shouldn't panic in this case. I'll take care of it.
On 01/31/2011 11:22 PM, FUJITA Tomonori wrote:
> On Mon, 31 Jan 2011 21:22:23 -0600
> Robert Hancock<[email protected]> wrote:
>
>>> Some ideas to implement something that works for such device were
>>> discussed. Seems that the conclusion is that it's doesn't worth making
>>> the common code complicated for such minor and insane devices.
>>
>> I don't think this is the only device that has sub-32-bit DMA
>> restrictions, this will just lead to a bunch of duplicated code.
>
> Yeah, not only device but not many.
>
> The block layer has the own bouncing mechanism. Some network drivers
> have the similar bouncing code. I don't know if there are other kinds
> of drivers that have the own bouncing code.
>
> I thought that we can make mm/bounce.c (used for block drivers now)
> work any drivers without complicating it. We could make swiotlb to do
> but it's too complicated and it doesn't worth.
>
>
>> In
>> particular, how is LPC DMA supposed to work?
>
> LPC DMA can't do 32bit dma?
At least not if it's using ISA-style 3rd-party DMA. Some devices may do
bus-mastering and be able to do 32-bit DMA, but I've never seen one, at
least.
>
>
>> At the very least we should be allowing the driver to deal with the
>> failure instead of panicing the system. Otherwise we are just leaving a
>> land mine for people to trip over.
>
> Agreed. swiotlb shouldn't panic in this case. I'll take care of it.