2.6.16.17への道(6)

  • 投稿日:
  • by
  • カテゴリ:

DMA(やAAU, CCNT)のソースは、iop1パッチから取り込むのが早道です。ということで、2.6.15.4用のパッチ思い切って適用してやります。当然、うまく当たらないパッチがあります。*.rejファイルを探してみましょう。

$ bzcat ../patch-2.6.15.4-iop1.bz2 | patch -Np1
...
$ find . -name '*.rej'
./arch/arm/mach-iop3xx/iop331-setup.c.rej
./drivers/mtd/maps/Makefile.rej
./drivers/scsi/sata_vsc.c.rej
./include/asm-arm/arch-iop3xx/dma.h.rej
./include/linux/i2c-id.h.rej
./Makefile.rej
$
と、6つほどのパッチ当てそこないが発生します。この中で、iop331-setup.c.rejとsata_vsc.c.rejは該当するパッチが本体に取り込まれているために、パッチを当てることが出来ません。(それ以外に、こまごまと変わってもいますが。) そもそもiop331-setup.cはグラタンには無関係ですので忘れて大丈夫です。./drivers/mtd/maps/Makefile.rejは
obj-$(CONFIG_MTD_IQ80310) += iq80310.o
という一行を追加できないでいます。適当に手で足してもよし、IQ80310はIOP310用の設定ですから、グラタンとは無関係と、捨ててもいいでしょう。i2c-id.hはI2C_DRIVERID_M41ST85Wを76で追加できないと文句をいっています。デバイス数が増えたんだから仕方ありません。とりあえず81で追加しておきます。(I2C_DRIVERID_SAA717X = 80が最後尾なようですから。M41ST85Wは使わないのだからと無視するのも一つの手である。)./Makefile.rejは、例によって EXTRAVERSION の問題です。適当に手で変更してやりましょう。

さて、重要なのは、dma.hのみになります。これは、IOP3XXのdma.cが利用するシンボルを定義しているのですが、パッチを当てる対象の、arch-iop3xx/dma.hはいつの間にか、空っぽになってしまっています。(なので、とっかかりが見つからずパッチを当てられない。) とりあえず、.rejの内容を転記します。慎重な人は、追記した部分の前後に、

#ifndef _IOP3XX_DMA_H_P
#define _IOP3XX_DMA_H_P
...
#endif /* _ASM_ARCH_DMA_H_P */
を追記しておくと、なお、いいでしょう。

これで、最低限のiop1パッチの取り込みは完了です。(M41ST85WやGD31244などのドライバはビルドできないはずではあるけれど、グラタンは使わないので忘れておく。)