skystar2/mt312 driver does not timeout under kernel 2.6.6

skystar2/mt312 driver does not timeout under kernel 2.6.6

am 20.05.2004 07:35:47 von Adam Luchjenbroers

Under kernel 2.6.6 (modules dvbcore, mt312, skystar2 loaded) dvbtune enters
an infinite polling loop, as shown below.

polling....
Getting frontend event
FE_STATUS:
polling....
Getting frontend event
FE_STATUS: FE_HAS_CARRIER
polling....
Getting frontend event
FE_STATUS:
polling....
Getting frontend event
FE_STATUS: FE_HAS_CARRIER
polling....
Getting frontend event
....

Under 2.4.20 it simply pauses a few seconds then
receives an FE_TIMEDOUT and stops.

The following code has been identified in dvbtune, and it looks simply like
the driver is not responding with an FE_TIMEDOUT where perhaps it should be.

while (((event.status & FE_TIMEDOUT)==0) && ((event.status &
FE_HAS_LOCK)==0)) {
fprintf(stderr,"polling....\n");
if (poll(pfd,1,10000)){
if (pfd[0].revents & POLLIN){
fprintf(stderr,"Getting frontend event\n");
if ((status = ioctl(fd_frontend, FE_GET_EVENT, &event)) < 0){
if (errno != EOVERFLOW) {
perror("FE_GET_EVENT");
fprintf(stderr,"status = %d\n", status);
fprintf(stderr,"errno = %d\n", errno);
return -1;
}
else fprintf(stderr,"Overflow error, trying again (status = %d, errno =
%d)", status, errno);
}
}
print_status(stderr,event.status);
}
-
To unsubscribe from this list: send the line "unsubscribe linux-newbie" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.linux-learn.org/faqs