mirror of https://github.com/ipxe/ipxe.git
[sis900] Enable interrupts to allow UNDI to work
Enable interrupts in sis900_irq(). Doing so allows some programs using gPXE's UNDI interface to work properly, including Symantec Ghost. Tested-by: Hubert Mercier <hubert.mercier@unilim.fr> Signed-off-by: Marty Connor <mdc@etherboot.org>pull/1/head
parent
0ea6e5c221
commit
d07f79de35
|
@ -1183,8 +1183,12 @@ static int
|
||||||
sis900_poll(struct nic *nic, int retrieve)
|
sis900_poll(struct nic *nic, int retrieve)
|
||||||
{
|
{
|
||||||
u32 rx_status = rxd[cur_rx].cmdsts;
|
u32 rx_status = rxd[cur_rx].cmdsts;
|
||||||
|
u32 intr_status;
|
||||||
int retstat = 0;
|
int retstat = 0;
|
||||||
|
|
||||||
|
/* acknowledge interrupts by reading interrupt status register */
|
||||||
|
intr_status = inl(ioaddr + isr);
|
||||||
|
|
||||||
if (sis900_debug > 2)
|
if (sis900_debug > 2)
|
||||||
printf("sis900_poll: cur_rx:%d, status:%X\n", cur_rx,
|
printf("sis900_poll: cur_rx:%d, status:%X\n", cur_rx,
|
||||||
(unsigned int) rx_status);
|
(unsigned int) rx_status);
|
||||||
|
@ -1264,8 +1268,10 @@ sis900_irq(struct nic *nic __unused, irq_action_t action __unused)
|
||||||
{
|
{
|
||||||
switch ( action ) {
|
switch ( action ) {
|
||||||
case DISABLE :
|
case DISABLE :
|
||||||
|
outl(0, ioaddr + imr);
|
||||||
break;
|
break;
|
||||||
case ENABLE :
|
case ENABLE :
|
||||||
|
outl((RxSOVR|RxORN|RxERR|RxOK|TxURN|TxERR|TxIDLE), ioaddr + imr);
|
||||||
break;
|
break;
|
||||||
case FORCE :
|
case FORCE :
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue