• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/input/serio/

Lines Matching refs:drvdata

85  * @drvdata:	pointer to ps2 device private data structure
91 static int xps2_recv(struct xps2data *drvdata, u8 *byte)
97 sr = in_be32(drvdata->base_address + XPS2_STATUS_OFFSET);
99 *byte = in_be32(drvdata->base_address + XPS2_RX_DATA_OFFSET);
111 struct xps2data *drvdata = dev_id;
117 intr_sr = in_be32(drvdata->base_address + XPS2_IPISR_OFFSET);
118 out_be32(drvdata->base_address + XPS2_IPISR_OFFSET, intr_sr);
122 dev_warn(drvdata->serio.dev.parent, "receive overrun error\n");
125 drvdata->flags |= SERIO_PARITY;
128 drvdata->flags |= SERIO_TIMEOUT;
131 status = xps2_recv(drvdata, &c);
135 dev_err(drvdata->serio.dev.parent,
138 serio_interrupt(&drvdata->serio, c, drvdata->flags);
139 drvdata->flags = 0;
162 struct xps2data *drvdata = pserio->port_data;
167 spin_lock_irqsave(&drvdata->lock, flags);
170 sr = in_be32(drvdata->base_address + XPS2_STATUS_OFFSET);
172 out_be32(drvdata->base_address + XPS2_TX_DATA_OFFSET, c);
176 spin_unlock_irqrestore(&drvdata->lock, flags);
189 struct xps2data *drvdata = pserio->port_data;
193 error = request_irq(drvdata->irq, &xps2_interrupt, 0,
194 DRIVER_NAME, drvdata);
196 dev_err(drvdata->serio.dev.parent,
197 "Couldn't allocate interrupt %d\n", drvdata->irq);
202 out_be32(drvdata->base_address + XPS2_GIER_OFFSET, XPS2_GIER_GIE_MASK);
203 out_be32(drvdata->base_address + XPS2_IPIER_OFFSET, XPS2_IPIXR_RX_ALL);
204 (void)xps2_recv(drvdata, &c);
217 struct xps2data *drvdata = pserio->port_data;
220 out_be32(drvdata->base_address + XPS2_GIER_OFFSET, 0x00);
221 out_be32(drvdata->base_address + XPS2_IPIER_OFFSET, 0x00);
222 free_irq(drvdata->irq, drvdata);
240 struct xps2data *drvdata;
262 drvdata = kzalloc(sizeof(struct xps2data), GFP_KERNEL);
263 if (!drvdata) {
268 dev_set_drvdata(dev, drvdata);
270 spin_lock_init(&drvdata->lock);
271 drvdata->irq = r_irq.start;
283 drvdata->base_address = ioremap(phys_addr, remap_size);
284 if (drvdata->base_address == NULL) {
292 out_be32(drvdata->base_address + XPS2_IPIER_OFFSET, 0);
296 out_be32(drvdata->base_address + XPS2_SRST_OFFSET, XPS2_SRST_RESET);
299 (unsigned long long)phys_addr, drvdata->base_address,
300 drvdata->irq);
302 serio = &drvdata->serio;
307 serio->port_data = drvdata;
321 kfree(drvdata);
338 struct xps2data *drvdata = dev_get_drvdata(dev);
341 serio_unregister_port(&drvdata->serio);
342 iounmap(drvdata->base_address);
350 kfree(drvdata);