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

Re: YMF driver



筒井です。

<20010309095701H.kawamoto@es.osaka-u.ac.jp>の記事において
kawamoto@es.osaka-u.ac.jpさんは書きました。

> 私のVAIO C1XFではbus_dmamem_allocに失敗するのですが、
> カーネルのconfigとかでなんとかなるものなのでしょうか。

とりあえず define AUDIO_DEBUG してどれくらいのバッファを
確保しようとしてるのか確認してみるのはどうでしょう。

ちょっとコード見てみたんですが、 ymf_download_mcode() で
せっかく bus_dmamem_alloc() と bus_dmamem_map() してるのに
そのあとで vtophys() していては bus_dma(9) function を
使ってる意味がないです。

物理アドレスは bus_dmamap_create() した後 bus_dmamap_load()
して dmamap の中の dm_segs[0].ds_addr を見るべきです。
あと bus_dmamem_map() の flag には BUS_DMA_COHERENT
も指定した方がいいです。 bus_dmamap_sync() も適切な場所に
入れるべきですがちゃんと見てません。
(i386 ではあまり関係ないですけど)

それから struct play_slot_ctrl_bank とかのアクセスは
このままだと多分 endian 問題が出ますねえ。
member はすべて u_int32_t なので alignment 問題は
出ないと思いますが。
---
Izumi Tsutsui
tsutsui@ceres.dti.ne.jp