h->iobase = ioremap_nocache(padev->hpa, HARMONY_SIZE); 
h->iobase = ioremap_nocache(padev->hpa.start, HARMONY_SIZE); 
snd_harmony_create(snd_card_t *card, 		   struct parisc_device *padev, 		   harmony_t **rchip){	int err;	harmony_t *h;	static snd_device_ops_t ops = {		.dev_free = snd_harmony_dev_free,	};	*rchip = NULL;	h = kmalloc(sizeof(*h), GFP_KERNEL);	if (h == NULL)		return -ENOMEM;	memset(&h->st, 0, sizeof(h->st));	memset(&h->stats, 0, sizeof(h->stats));	memset(&h->pbuf, 0, sizeof(h->pbuf));	memset(&h->cbuf, 0, sizeof(h->cbuf));	h->hpa = padev->hpa;	h->card = card;	h->dev = padev;	h->irq = padev->irq;	h->iobase = ioremap_nocache(padev->hpa, HARMONY_SIZE);	if (h->iobase == NULL) {		printk(KERN_ERR PFX "unable to remap hpa 0x%lx\n",		       padev->hpa);		err = -EBUSY;		goto free_and_ret;	}			err = request_irq(h->irq, snd_harmony_interrupt, 0,			  "harmony", h);	if (err) {		printk(KERN_ERR PFX "could not obtain interrupt %d",		       h->irq);		goto free_and_ret;	}	spin_lock_init(&h->mixer_lock);	spin_lock_init(&h->lock);        if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL,                                  h, &ops)) < 0) {                goto free_and_ret;        }	snd_card_set_dev(card, &padev->dev);	*rchip = h;	return 0;free_and_ret:	snd_harmony_free(h);	return err;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/53f01bba49938f115237fe43a261c31ac13ae5c6/harmony.c/buggy/sound/parisc/harmony.c