Lines Matching refs:rds
607 fmdbg("irq: rds threshold reached\n");
703 struct fm_rds *rds = &fmdev->rx.rds;
734 rds->last_blk_idx = -1;
745 rds->last_blk_idx = blk_idx;
776 /* Copy raw rds data to internal rds buffer */
795 memcpy(&rds->buff[rds->wr_idx], &tmpbuf, FM_RDS_BLK_SIZE);
796 rds->wr_idx = (rds->wr_idx + FM_RDS_BLK_SIZE) % rds->buf_size;
799 if (rds->wr_idx == rds->rd_idx) {
801 rds->wr_idx = 0;
802 rds->rd_idx = 0;
811 if (rds->wr_idx != rds->rd_idx)
812 wake_up_interruptible(&rds->read_queue);
1053 poll_wait(file, &fmdev->rx.rds.read_queue, pts);
1054 if (fmdev->rx.rds.rd_idx != fmdev->rx.rds.wr_idx)
1069 if (fmdev->rx.rds.wr_idx == fmdev->rx.rds.rd_idx) {
1073 ret = wait_event_interruptible(fmdev->rx.rds.read_queue,
1074 (fmdev->rx.rds.wr_idx != fmdev->rx.rds.rd_idx));
1087 if (fmdev->rx.rds.wr_idx == fmdev->rx.rds.rd_idx) {
1091 memcpy(tmpbuf, &fmdev->rx.rds.buff[fmdev->rx.rds.rd_idx],
1093 fmdev->rx.rds.rd_idx += FM_RDS_BLK_SIZE;
1094 if (fmdev->rx.rds.rd_idx >= fmdev->rx.rds.buf_size)
1095 fmdev->rx.rds.rd_idx = 0;
1561 fmdev->rx.rds.flag = FM_RDS_DISABLE;
1568 init_waitqueue_head(&fmdev->rx.rds.read_queue);
1590 wake_up_interruptible(&fmdev->rx.rds.read_queue);
1631 fmdev->rx.rds.buf_size = default_rds_buf * FM_RDS_BLK_SIZE;
1632 fmdev->rx.rds.buff = kzalloc(fmdev->rx.rds.buf_size, GFP_KERNEL);
1633 if (NULL == fmdev->rx.rds.buff) {
1634 fmerr("Can't allocate rds ring buffer\n");
1649 kfree(fmdev->rx.rds.buff);
1663 kfree(fmdev->rx.rds.buff);