+
+ if (msgctl1 & NEWD_SET)
+ continue;
+
+ if (msgctl1 & MLST_SET) {
+ canobj_write_reg(chip,obj,(RMPD_UNC|TXRQ_UNC|MLST_RES|NEWD_UNC),iMSGCTL1);
+ CANMSG("i82527_irq_read_handler: object %d message lost\n",objnum);
+ }
+
+ return;
+
+ } while(1);
+}
+
+/*
+ if (msgcfg&MCFG_XTD) {
+ message_id =canobj_read_reg(chip,obj,iMSGID3);
+ message_id|=canobj_read_reg(chip,obj,iMSGID2)<<8;
+ message_id|=canobj_read_reg(chip,obj,iMSGID1)<<16;
+ message_id|=canobj_read_reg(chip,obj,iMSGID0)<<24;
+ message_id>>=3;
+ }
+ else {
+ message_id =canobj_read_reg(chip,obj,iMSGID1);
+ message_id|=canobj_read_reg(chip,obj,iMSGID0)<<8;
+ message_id>>=5;
+ }
+
+ can_spin_lock(&hardware_p->rtr_lock);
+ rtr_search=hardware_p->rtr_queue;
+ while (rtr_search != NULL) {
+ if (rtr_search->id == message_id)
+ break;
+ rtr_search=rtr_search->next;
+ }
+ can_spin_unlock(&hardware_p->rtr_lock);
+ if ((rtr_search!=NULL) && (rtr_search->id==message_id))
+ i82527_irq_rtr_handler(chip, obj, rtr_search, message_id);
+ else
+ i82527_irq_read_handler(chip, obj, message_id);
+*/
+
+
+static inline
+void i82527_irq_update_filter(struct canchip_t *chip, struct msgobj_t *obj)
+{
+ struct canfilt_t filt;