[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: _bus_dmamem_alloc_range()



濱嶋です。

>> どのように追加するのが正しいのでしょうか? 単純にbus_dma_opsとか
>> __bd_opsとかbus_dma_protosに追加しても良いものなのでしょうか?
> 
> _bus_dmamem... のように _ で始まるものは man bus_dma に記述がない、
> 内部使用のみの関数なので、この場合は bus_dmamem_alloc を使えば
> よいのではないでしょうか。
> DMA の制限で 64MB 以下のメモリを確保する必要があるとのことですが、
> その場合は bus_dmamem_allooc が 64MB 以下のメモリを確保するという
> のが正しいと思います。

はなしはふたつありまして、aiuから見た場合はdcu(vr用bus_dma)の
bus_dmamem_allocを使うようにしています。dcuでは、64MB以下のメモリを確
保するのにhpcmips用のbus_dmamem_alloc_rangeを使いたい、ということです。

dcuにhpcmips_bd_mem_allocのコードをコピーして使うとメンテナンス性が悪
くなるので、hpcmipsのbus_dmaにdmamem_alloc_rangeがあればvrもhpcmipsも
dmamem_allocはこれを利用すればすっきり収まると考えました。

> bus_dma_alloc を実装するための手段として _bus_dmamem_alloc_rangeを
> 追加するには、bus_dma_hpcmips.h に追加するのがよいと思います。
> 関数ポインタにしなくても、_hpcmips_bd_mem_alloc_range などという名前に
> すればよいのではないでしょうか。

他はすべてマクロでhpcmips_bd_xxxに展開されているので、そのまま書いてよ
いものか悩んだのですが、_hpcmips_bd_mem_alloc_rangeの名前にして以前と
同じように_HPCMIPS_BUS_DMA_PRIVATEで囲っておきます。

ところでこのコードをこのままにしておくとまた取り残されてしまいそうなの
で、この部分(hpcmipsのbus_dma)だけでもマージをお願いしたいのですが、こ
こに流せばよろしいでしょうか?