Mercurial > ecos
diff packages/devs/eth/cl/cs8900a/current/src/if_cs8900a.c @ 2838:6960dfdbb4ff
* src/if_cs8900a.c: Fixed interrupt hooking block in cs8900a_init() to
prevent assertion fail on cyg_interrupt_attach() when interrupt is not
used.
| author | asl |
|---|---|
| date | Mon, 02 Mar 2009 21:16:52 +0000 |
| parents | 74dbf4c3f2e1 |
| children |
line wrap: on
line diff
--- a/packages/devs/eth/cl/cs8900a/current/src/if_cs8900a.c +++ b/packages/devs/eth/cl/cs8900a/current/src/if_cs8900a.c @@ -168,6 +168,19 @@ cs8900a_init(struct cyg_netdevtab_entry CYGHWR_CL_CS8900A_PLF_INIT(cpd); #ifdef CYGINT_IO_ETH_INT_SUPPORT_REQUIRED +# ifdef CYGSEM_DEVS_ETH_CL_CS8900A_NOINTS + // The olpce2994 target uses 8-bit, non-interrupt driven mode for CS8900A. + cyg_thread_create(1, // Priority + cs8900a_fake_int, // entry + (cyg_addrword_t)sc,// entry parameter + "CS8900 int", // Name + &cs8900a_fake_int_stack[0], // Stack + STACK_SIZE, // Size + &cs8900a_fake_int_thread_handle, // Handle + &cs8900a_fake_int_thread_data // Thread data structure + ); + cyg_thread_resume(cs8900a_fake_int_thread_handle); // Start it +# else // Initialize environment, setup interrupt handler cyg_drv_interrupt_create(cpd->interrupt, cpd->priority, @@ -179,20 +192,8 @@ cs8900a_init(struct cyg_netdevtab_entry cyg_drv_interrupt_attach(cpd->interrupt_handle); cyg_drv_interrupt_acknowledge(cpd->interrupt); cyg_drv_interrupt_unmask(cpd->interrupt); - -#ifdef CYGSEM_DEVS_ETH_CL_CS8900A_NOINTS - cyg_thread_create(1, // Priority - cs8900a_fake_int, // entry - (cyg_addrword_t)sc, // entry parameter - "CS8900 int", // Name - &cs8900a_fake_int_stack[0], // Stack - STACK_SIZE, // Size - &cs8900a_fake_int_thread_handle, // Handle - &cs8900a_fake_int_thread_data // Thread data structure - ); - cyg_thread_resume(cs8900a_fake_int_thread_handle); // Start it -#endif -#endif +# endif // CYGSEM_DEVS_ETH_CL_CS8900A_NOINTS +#endif // CYGINT_IO_ETH_INT_SUPPORT_REQUIRED // Read controller ID - the first is a dummy read, since (on some // platforms) the first access to the controller seems to skip the
