- if(chip->chipspecops->irq_handler){
- if (rtl_request_irq(chip->chip_irq,can_rtl_isr))
+
+ if(can_rtl_priority>=0){
+ pthread_attr_init(&attrib);
+ sched_param.sched_priority = can_rtl_priority;
+ pthread_attr_setschedparam(&attrib, &sched_param);
+ /* pthread_attr_setschedpolicy(&attrib, SCHED_FIFO); */
+ attrib_p=&attrib;
+ }
+
+ if(chip->chipspecops->irq_handler && !(chip->flags & CHIP_IRQ_CUSTOM)){
+ int (*my_request_irq)(unsigned int vector, unsigned int (*rtl_handler)(unsigned int irq, struct pt_regs *regs));
+#ifdef CAN_ENABLE_VME_SUPPORT
+ if ((chip->flags & CHIP_IRQ_VME) != 0)
+ my_request_irq = rtl_request_vmeirq;
+ else
+#endif
+ my_request_irq = rtl_request_irq;
+
+ if (my_request_irq(chip->chip_irq,can_rtl_isr))