[CVS] km km.h,1.30,1.31 km_api.h,1.16,1.17 km_api_data.c,1.13,1.14 km_api_data.h,1.10,1.11
Status: Beta
Brought to you by:
volodya
From: <gat...@li...> - 2003-01-25 08:44:21
|
Update of /cvsroot/gatos/km In directory sc8-pr-cvs1:/tmp/cvs-serv10455 Modified Files: km.h km_api.h km_api_data.c km_api_data.h Log Message: With some tweaks it now works.. Index: km.h =================================================================== RCS file: /cvsroot/gatos/km/km.h,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** km.h 25 Jan 2003 07:48:10 -0000 1.30 --- km.h 25 Jan 2003 08:44:18 -0000 1.31 *************** *** 31,40 **** long timestamp_start; long timestamp_end; - #if 0 - int age; - int next; - int prev; - int flag; - #endif } FIELD_INFO; --- 31,34 ---- *************** *** 43,49 **** struct video_window vwin; spinlock_t kms_lock; - #if 0 - wait_queue_head_t frameq; - #endif long irq; struct pci_dev *dev; --- 37,40 ---- *************** *** 57,68 **** long next_cap_buf; - #if 0 - int v4l_buf_read_from; - #endif int v4l_buf_parity; - #if 0 - long buf_ptr; - long buf_age; - #endif #define FRAME_ODD 0 --- 48,52 ---- *************** *** 70,84 **** #define MAX_FRAME_BUFF_NUM 10 - #if 0 - SINGLE_FRAME frame_info[MAX_FRAME_BUFF_NUM]; - #endif KM_DATA_VIRTUAL_BLOCK dvb_info; FIELD_INFO *fi; KM_STREAM_BUFFER_INFO *kmsbi; long info_free; - int info_du; - int capture_du; KM_DATA_VIRTUAL_BLOCK dvb; void *buffer[MAX_FRAME_BUFF_NUM]; long v4l_free[MAX_FRAME_BUFF_NUM]; --- 54,65 ---- #define MAX_FRAME_BUFF_NUM 10 KM_DATA_VIRTUAL_BLOCK dvb_info; + int info_du; FIELD_INFO *fi; KM_STREAM_BUFFER_INFO *kmsbi; long info_free; KM_DATA_VIRTUAL_BLOCK dvb; + int capture_du; void *buffer[MAX_FRAME_BUFF_NUM]; long v4l_free[MAX_FRAME_BUFF_NUM]; Index: km_api.h =================================================================== RCS file: /cvsroot/gatos/km/km_api.h,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** km_api.h 23 Oct 2002 17:23:17 -0000 1.16 --- km_api.h 25 Jan 2003 08:44:18 -0000 1.17 *************** *** 125,130 **** --- 125,132 ---- #if 1 #define KM_CHECKPOINT printk("**CKPT %s %s %d\n", __FILE__, __FUNCTION__, __LINE__); + #define KM_API_DEBUG if(0)printk #else #define KM_CHECKPOINT + #define KM_API_DEBUG if(0)printk #endif Index: km_api_data.c =================================================================== RCS file: /cvsroot/gatos/km/km_api_data.c,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** km_api_data.c 25 Jan 2003 07:48:10 -0000 1.13 --- km_api_data.c 25 Jan 2003 08:44:18 -0000 1.14 *************** *** 65,68 **** --- 65,69 ---- kdufpd->buffer=0; kdufpd->bytes_read=0; + kdufpd->age=0; spin_unlock(&(kdu->lock)); *************** *** 103,111 **** if((kmsbi[q].user_flag & user_flag_mask)!=user_flag){ kdufpd->bytes_read=dvb->free[q]; ! KM_DEBUG("Skipping buf %d flag=%d age=%d\n", q, kmsbi[q].flag, kdufpd->age); continue; } else { kdufpd->bytes_read=0; ! KM_DEBUG("Reading buf %d flag=%d age=%d\n", q, kmsbi[q].flag, kdufpd->age); break; } --- 104,112 ---- if((kmsbi[q].user_flag & user_flag_mask)!=user_flag){ kdufpd->bytes_read=dvb->free[q]; ! KM_API_DEBUG("Skipping buf %d flag=%d age=%d\n", q, kmsbi[q].user_flag, kdufpd->age); continue; } else { kdufpd->bytes_read=0; ! KM_API_DEBUG("Reading buf %d flag=%d age=%d\n", q, kmsbi[q].user_flag, kdufpd->age); break; } *************** *** 130,133 **** --- 131,138 ---- current->state=TASK_RUNNING; } + /* We can unlock earlier than before as we are not modifying any of kdu fields. + dvb should not change under us as we have been passwed kdufpd - and this + implies that kdufpd->kdu is still in use */ + spin_unlock(&(kdu->lock)); todo=count; while(todo>0){ *************** *** 148,152 **** #endif } - spin_unlock(&(kdu->lock)); return (count-todo); } --- 153,156 ---- Index: km_api_data.h =================================================================== RCS file: /cvsroot/gatos/km/km_api_data.h,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** km_api_data.h 25 Jan 2003 07:48:10 -0000 1.10 --- km_api_data.h 25 Jan 2003 08:44:18 -0000 1.11 *************** *** 42,47 **** since any number is capable of rollover it is best to use these only as an indicator that ! the data in the buffer has been updated */ ! typedef unsigned KM_BUFFER_AGE; /* the following struct provides meta information needed --- 42,52 ---- since any number is capable of rollover it is best to use these only as an indicator that ! the data in the buffer has been updated ! ! Q: should it be unsigned ? It is so convinient to use age=-1 ! to mark unused buffers. ! ! */ ! typedef int KM_BUFFER_AGE; /* the following struct provides meta information needed |