Example #1
0
int ngene_start_feed(struct dvb_demux_feed *dvbdmxfeed)
{
	struct dvb_demux *dvbdmx = dvbdmxfeed->demux;
	struct ngene_channel *chan = dvbdmx->priv;

	if (chan->users == 0) {
		if (!chan->dev->cmd_timeout_workaround || !chan->running)
			set_transfer(chan, 1);
	}

	return ++chan->users;
}
Example #2
0
int ngene_stop_feed(struct dvb_demux_feed *dvbdmxfeed)
{
	struct dvb_demux *dvbdmx = dvbdmxfeed->demux;
	struct ngene_channel *chan = dvbdmx->priv;

	if (--chan->users)
		return chan->users;

	if (!chan->dev->cmd_timeout_workaround)
		set_transfer(chan, 0);

	return 0;
}
Example #3
0
File: spu.c Project: kode54/Cog
void EMU_CALL spu_dma(void *state, uint32 core, void *mem, uint32 mem_ofs, uint32 mem_mask, uint32 bytes, int iswrite) {
  uint32 words = (bytes + 3) / 4;
  mem_ofs &= (~3);
  if(iswrite) {
    while(words--) {
      uint32 d;
      mem_ofs &= mem_mask;
      d = *((uint32*)(((uint8*)mem)+mem_ofs));
      set_transfer(state, core, d      );
      set_transfer(state, core, d >> 16);
      mem_ofs += 4;
    }
  } else {
    while(words--) {