summaryrefslogtreecommitdiffstats
path: root/sys/dev/bktr/bktr_core.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/bktr/bktr_core.c')
-rw-r--r--sys/dev/bktr/bktr_core.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/sys/dev/bktr/bktr_core.c b/sys/dev/bktr/bktr_core.c
index 830207e..b95c534 100644
--- a/sys/dev/bktr/bktr_core.c
+++ b/sys/dev/bktr/bktr_core.c
@@ -471,6 +471,9 @@ common_bktr_attach( bktr_ptr_t bktr, int unit, u_long pci_id, u_int rev )
{
vm_offset_t buf = 0;
int need_to_allocate_memory = 1;
+#ifdef BKTR_NEW_MSP34XX_DRIVER
+ int err;
+#endif
/***************************************/
/* *** OS Specific memory routines *** */
@@ -612,11 +615,29 @@ bktr_store_address(unit, BKTR_MEM_BUF, buf);
bktr->msp_source_selected = -1;
bktr->audio_mux_present = 1;
+#if defined(__FreeBSD__)
+#ifdef BKTR_NEW_MSP34XX_DRIVER
+ /* get hint on short programming of the msp34xx, so we know */
+ /* if the decision what thread to start should be overwritten */
+ if ( (err = resource_int_value("bktr", unit, "mspsimple",
+ &(bktr->mspsimple)) ) != 0 )
+ bktr->mspsimple = -1; /* fall back to default */
+#endif
+#endif
+
probeCard( bktr, TRUE, unit );
/* Initialise any MSP34xx or TDA98xx audio chips */
init_audio_devices( bktr );
+#ifdef BKTR_NEW_MSP34XX_DRIVER
+ /* setup the kenrel thread */
+ err = msp_attach( bktr );
+ if ( err != 0 ) /* error doing kernel thread stuff, disable msp3400c */
+ bktr->card.msp3400c = 0;
+#endif
+
+
}
OpenPOWER on IntegriCloud