lasi->hpa = dev->hpa; 
lasi->hpa = dev->hpa.start; 
lasi_init_chip(struct parisc_device *dev){	struct gsc_asic *lasi;	struct gsc_irq gsc_irq;	int ret;	lasi = kmalloc(sizeof(*lasi), GFP_KERNEL);	if (!lasi)		return -ENOMEM;	lasi->name = "Lasi";	lasi->hpa = dev->hpa;	/* Check the 4-bit (yes, only 4) version register */	lasi->version = gsc_readl(lasi->hpa + LASI_VER) & 0xf;	printk(KERN_INFO "%s version %d at 0x%lx found.\n",		lasi->name, lasi->version, lasi->hpa);	/* initialize the chassis LEDs really early */ 	lasi_led_init(lasi->hpa);	/* Stop LASI barking for a bit */	lasi_init_irq(lasi);	/* the IRQ lasi should use */	dev->irq = gsc_alloc_irq(&gsc_irq);	if (dev->irq < 0) {		printk(KERN_ERR "%s(): cannot get GSC irq\n",				__FUNCTION__);		kfree(lasi);		return -EBUSY;	}	lasi->eim = ((u32) gsc_irq.txn_addr) | gsc_irq.txn_data;	ret = request_irq(gsc_irq.irq, gsc_asic_intr, 0, "lasi", lasi);	if (ret < 0) {		kfree(lasi);		return ret;	}	/* enable IRQ's for devices below LASI */	gsc_writel(lasi->eim, lasi->hpa + OFFSET_IAR);	/* Done init'ing, register this driver */	ret = gsc_common_setup(dev, lasi);	if (ret) {		kfree(lasi);		return ret;	}    	gsc_fixup_irqs(dev, lasi, lasi_choose_irq);	/* initialize the power off function */	/* FIXME: Record the LASI HPA for the power off function.  This should	 * ensure that only the first LASI (the one controlling the power off)	 * should set the HPA here */	lasi_power_off_hpa = lasi->hpa;	pm_power_off = lasi_power_off;		return ret;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/53f01bba49938f115237fe43a261c31ac13ae5c6/lasi.c/buggy/drivers/parisc/lasi.c