- if (sl->lin_master == true) {
- if (sl->rx_cnt >= sl->rx_expect) { /* Probably whole frame was received */
- set_bit(SLF_RXEVENT, &sl->flags);
- wake_up(&sl->kwt_wq);
- pr_debug("sllin: sllin_receive_buf count %d, wakeup\n", sl->rx_cnt);
- } else {
- pr_debug("sllin: sllin_receive_buf count %d, waiting\n", sl->rx_cnt);
- }
- } else { /* LIN slave */
- int lin_id;
- struct sllin_conf_entry *sce;
-
- pr_debug("sllin: rx_cnt = %u; header_received = %u\n",
- sl->rx_cnt, sl->header_received);
-
- /* Whole header was received */
- if ((sl->rx_cnt >= (SLLIN_BUFF_ID + 1)) &&
- (sl->header_received == false))
- {
- lin_id = sl->rx_buff[SLLIN_BUFF_ID] & LIN_ID_MASK;
- sce = &sl->linfr_cache[lin_id];
-
- /* Is the length of data set in frame cache? */
- if (sce->frame_fl & LIN_LOC_SLAVE_CACHE)
- sl->rx_expect += sce->dlc;
- else
- sl->rx_expect += 2; /* 1 data byte + checksum */
-
- sl->header_received = true;
- sll_send_rtr(sl);
- }
+ if (sl->lin_master == true) {
+ if (SLL_RESPONSE_RECEIVED) {
+ set_bit(SLF_RXEVENT, &sl->flags);
+ wake_up(&sl->kwt_wq);
+ pr_debug("sllin: sllin_receive_buf count %d, wakeup\n", sl->rx_cnt);
+ } else {
+ pr_debug("sllin: sllin_receive_buf count %d, waiting\n", sl->rx_cnt);
+ }
+ } else { /* LIN slave */
+ int lin_id;
+ struct sllin_conf_entry *sce;
+
+ pr_debug("sllin: rx_cnt = %u; header_received = %u\n",
+ sl->rx_cnt, sl->header_received);