[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