Lines Matching refs:STbuffer
515 struct osst_buffer * STbuffer; in osst_write_behind_check() local
517 STbuffer = STp->buffer; in osst_write_behind_check()
538 if (STbuffer->writing < STbuffer->buffer_bytes) in osst_write_behind_check()
541 STbuffer->last_SRpnt = NULL; in osst_write_behind_check()
542 STbuffer->buffer_bytes -= STbuffer->writing; in osst_write_behind_check()
543 STbuffer->writing = 0; in osst_write_behind_check()
5334 static int enlarge_buffer(struct osst_buffer *STbuffer, int need_dma) in enlarge_buffer() argument
5339 if (STbuffer->buffer_size >= OS_FRAME_SIZE) in enlarge_buffer()
5342 if (STbuffer->sg_segs) { in enlarge_buffer()
5344 normalize_buffer(STbuffer); in enlarge_buffer()
5347 nbr = max_segs = STbuffer->use_sg; in enlarge_buffer()
5360 STbuffer->sg[0].offset = 0; in enlarge_buffer()
5362 sg_set_page(&STbuffer->sg[0], page, b_size, 0); in enlarge_buffer()
5363 STbuffer->b_data = page_address(page); in enlarge_buffer()
5367 if (sg_page(&STbuffer->sg[0]) == NULL) { in enlarge_buffer()
5372 for (segs=STbuffer->sg_segs=1, got=b_size; in enlarge_buffer()
5375 STbuffer->sg[segs].offset = 0; in enlarge_buffer()
5380 STbuffer->buffer_size = got; in enlarge_buffer()
5382 normalize_buffer(STbuffer); in enlarge_buffer()
5385 …sg_set_page(&STbuffer->sg[segs], page, (OS_FRAME_SIZE - got <= PAGE_SIZE / 2) ? (OS_FRAME_SIZE - g… in enlarge_buffer()
5386 got += STbuffer->sg[segs].length; in enlarge_buffer()
5387 STbuffer->buffer_size = got; in enlarge_buffer()
5388 STbuffer->sg_segs = ++segs; in enlarge_buffer()
5394 got, STbuffer->orig_sg_segs, STbuffer->sg_segs, need_dma, STbuffer->b_data); in enlarge_buffer()
5397 STbuffer->sg[0].length, page_address(STbuffer->sg[0].page), in enlarge_buffer()
5398 STbuffer->sg[segs-1].length, page_address(STbuffer->sg[segs-1].page)); in enlarge_buffer()
5407 static void normalize_buffer(struct osst_buffer *STbuffer) in normalize_buffer() argument
5411 for (i=0; i < STbuffer->sg_segs; i++) { in normalize_buffer()
5414 b_size < STbuffer->sg[i].length; in normalize_buffer()
5417 __free_pages(sg_page(&STbuffer->sg[i]), order); in normalize_buffer()
5418 STbuffer->buffer_size -= STbuffer->sg[i].length; in normalize_buffer()
5421 if (debugging && STbuffer->orig_sg_segs < STbuffer->sg_segs) in normalize_buffer()
5423 STbuffer->b_data, STbuffer->buffer_size, STbuffer->sg_segs); in normalize_buffer()
5425 STbuffer->sg_segs = STbuffer->orig_sg_segs = 0; in normalize_buffer()