Exemple #1
0
int init_zion_audio_proc(void)
{
  zion_params_t *zion_params;
  int ret;

  /* get ZION parameters */
  zion_params = find_zion(0);
  if(zion_params == NULL)
    {
      return -ENODEV;
    }

  /* Check Fireball */
  if((zion_params->revision & 0xF000) == 0xF000)
    {
      PINFO("This is fireball! ZION AudioProc cannot be used!!\n");
      return 0;
    }

  /* register fuctions for operation */
  zion_params->zion_operations[ZION_AUDIO_PROC]=&zion_audio_proc_fops; 

  /* enable interruption */
  ret = zion_enable_mbus_interrupt(zion_params, AudioProc_Int, zion_audio_proc_event);
  if(ret)
    {
      PERROR("registering interruption failed.\n");
      return -EINVAL;
    }

  PINFO("ZION Audio Proc module Installed.\n");

  return 0;
}
Exemple #2
0
/***************************************************************************
 * init_zion_dmaif
 **************************************************************************/
int
init_zion_dmaif(void)
{
	zion_params_t *zion_params;
	int ret, i;
	
	/* get ZION parameters */
	zion_params = find_zion(0);
	if (zion_params == NULL)
	{
		return -ENODEV;
    }

  /* Check Fireball */
  if((zion_params->revision & 0xF000) == 0xF000)
    {
      PINFO("This is fireball! ZION DMA IF cannot be used!!\n");
      return 0;
    }
	
	/* register fuctions for operation */
	for (i = 0; i < ZION_EDMA_PORT; i++)
    {
		zion_params->zion_operations[ZION_DMAIF + i] = &zion_dmaif_port_fops;
    }
	
	/* Set Private Data Area */
	zion_params->zion_private[ZION_DMAIF] = kmalloc(sizeof(zion_dmaif_params_t), GFP_KERNEL);
	if (ZION_DMAIF_PARAM(zion_params) == NULL)
    {
		PERROR ("Can't get enough space for private data.\n");
		return -ENOMEM;
    }
	
	initialize_zion_dmaif_private_space(ZION_DMAIF_PARAM (zion_params));

#ifndef NEO_DEBUG
	PINFO("ZION DMAIF(EDMA) module ver. %d.%d Installed.\n",
		   DMAIF_MAJORVER, DMAIF_MINORVER);
#else /* NEO_DEBUG */
	PINFO("ZION DMAIF(EDMA) module ver. %d.%d-DEBUG Installed.\n",
		   DMAIF_MAJORVER, DMAIF_MINORVER);
#endif /* !NEO_DEBUG */

	/* enable interruption */
	mbus_writew(ZION_MBUS_DMASEL_ENB, MBUS_ADDR(zion_params, ZION_MBUS_IOSEL));	/* DMA select */
	ret = zion_enable_mbus_interrupt(zion_params, Dmaif_Int, zion_dmaif_event);
	if (ret)
    {
		PERROR ("registering interruption failed.\n");
		return -EINVAL;
    }
	mbus_writew(ZION_MBUS_INTGB_MPU1ENB, MBUS_ADDR(zion_params, ZION_MBUS_INTGEN_B));	/* INT Gen B Enable */

	return 0;
}