Le Sat, 08 May 2010 21:29:53 +0200 CEST, François Revol a écrit : > I just committed fixes to trunk/ on the audio drivers in the image > that > didn't call the pci reservation hooks yet. However, when trying to > test > it, OSS failed to call it. It seems the .bep points to build2002 of > OSS, which didn't have those calls yet. > It's only available in hg for now, AFAIK it's not been released. > > It'd be nice to have it in alpha2 though, as I tested it and it > worked > quite well. > > It should even be possible to make sure OSS is always loaded last to > give precedence to native drivers. > This requires removing a symlink in setup/BeOS/build.sh and scanning > / > dev/audio/hmulti in the OSS media node, which I'll be adding now. It seems some more fixing were needed... The attached patch fixes a KDL happening when forcing a reload of the oss driver (which shouldn't happen usually though), and removes the / dev/ symlink so it can be loaded after native drivers. François.
diff -r cac211efd60d kernel/OS/BeOS/os_beos.c --- a/kernel/OS/BeOS/os_beos.c Tue Apr 20 22:49:24 2010 +0300 +++ b/kernel/OS/BeOS/os_beos.c Sun May 09 00:15:54 2010 +0200 @@ -1076,6 +1076,8 @@ osdev->dip->pciinfo.function, "oss", osdev) != B_OK) { cmn_err (CE_WARN, "Could not reserve PCI device\n"); + /* make sure the card isn't uninitialized on driver unload */ + oss_num_cards--; /* XXX: CLEANUP! */ return NULL; } diff -r cac211efd60d setup/BeOS/build.sh --- a/setup/BeOS/build.sh Tue Apr 20 22:49:24 2010 +0300 +++ b/setup/BeOS/build.sh Sun May 09 00:15:54 2010 +0200 @@ -36,12 +36,12 @@ #hack for now #mkdir -p prototype/$BEOS_SYSTEM/add-ons/kernel/media/oss mkdir -p prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/bin -mkdir -p prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/audio/multi +#mkdir -p prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/audio/multi mkdir -p prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/audio/oss #hack for now mkdir -p prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/oss ln -s ../../bin/${DRVPREFIX}loader prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/oss/ -ln -s ../bin/${DRVPREFIX}loader prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/ +#ln -s ../bin/${DRVPREFIX}loader prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/ #hack: install bins for now mkdir -p prototype/home/config/bin mkdir -p prototype/home/config/settings/kernel/drivers