ps2port 133 drivers/input/serio/gscps2.c static void gscps2_flush(struct gscps2port *ps2port) ps2port 135 drivers/input/serio/gscps2.c while (gscps2_readb_status(ps2port->addr) & GSC_STAT_RBNE) ps2port 136 drivers/input/serio/gscps2.c gscps2_readb_input(ps2port->addr); ps2port 137 drivers/input/serio/gscps2.c ps2port->act = ps2port->append = 0; ps2port 146 drivers/input/serio/gscps2.c static inline int gscps2_writeb_output(struct gscps2port *ps2port, u8 data) ps2port 149 drivers/input/serio/gscps2.c char __iomem *addr = ps2port->addr; ps2port 159 drivers/input/serio/gscps2.c spin_lock_irqsave(&ps2port->lock, flags); ps2port 161 drivers/input/serio/gscps2.c spin_unlock_irqrestore(&ps2port->lock, flags); ps2port 178 drivers/input/serio/gscps2.c static void gscps2_enable(struct gscps2port *ps2port, int enable) ps2port 184 drivers/input/serio/gscps2.c spin_lock_irqsave(&ps2port->lock, flags); ps2port 185 drivers/input/serio/gscps2.c gscps2_flush(ps2port); ps2port 186 drivers/input/serio/gscps2.c data = gscps2_readb_control(ps2port->addr); ps2port 191 drivers/input/serio/gscps2.c gscps2_writeb_control(data, ps2port->addr); ps2port 192 drivers/input/serio/gscps2.c spin_unlock_irqrestore(&ps2port->lock, flags); ps2port 193 drivers/input/serio/gscps2.c wait_TBE(ps2port->addr); ps2port 194 drivers/input/serio/gscps2.c gscps2_flush(ps2port); ps2port 201 drivers/input/serio/gscps2.c static void gscps2_reset(struct gscps2port *ps2port) ps2port 206 drivers/input/serio/gscps2.c spin_lock_irqsave(&ps2port->lock, flags); ps2port 207 drivers/input/serio/gscps2.c gscps2_flush(ps2port); ps2port 208 drivers/input/serio/gscps2.c writeb(0xff, ps2port->addr + GSC_RESET); ps2port 209 drivers/input/serio/gscps2.c gscps2_flush(ps2port); ps2port 210 drivers/input/serio/gscps2.c spin_unlock_irqrestore(&ps2port->lock, flags); ps2port 229 drivers/input/serio/gscps2.c struct gscps2port *ps2port; ps2port 231 drivers/input/serio/gscps2.c list_for_each_entry(ps2port, &ps2port_list, node) { ps2port 234 drivers/input/serio/gscps2.c spin_lock_irqsave(&ps2port->lock, flags); ps2port 236 drivers/input/serio/gscps2.c while ( (ps2port->buffer[ps2port->append].str = ps2port 237 drivers/input/serio/gscps2.c gscps2_readb_status(ps2port->addr)) & GSC_STAT_RBNE ) { ps2port 238 drivers/input/serio/gscps2.c ps2port->buffer[ps2port->append].data = ps2port 239 drivers/input/serio/gscps2.c gscps2_readb_input(ps2port->addr); ps2port 240 drivers/input/serio/gscps2.c ps2port->append = ((ps2port->append+1) & BUFFER_SIZE); ps2port 243 drivers/input/serio/gscps2.c spin_unlock_irqrestore(&ps2port->lock, flags); ps2port 249 drivers/input/serio/gscps2.c list_for_each_entry(ps2port, &ps2port_list, node) { ps2port 251 drivers/input/serio/gscps2.c while (ps2port->act != ps2port->append) { ps2port 258 drivers/input/serio/gscps2.c if (gscps2_readb_status(ps2port->addr) & GSC_STAT_CMPINTR) ps2port 261 drivers/input/serio/gscps2.c status = ps2port->buffer[ps2port->act].str; ps2port 262 drivers/input/serio/gscps2.c data = ps2port->buffer[ps2port->act].data; ps2port 264 drivers/input/serio/gscps2.c ps2port->act = ((ps2port->act+1) & BUFFER_SIZE); ps2port 268 drivers/input/serio/gscps2.c serio_interrupt(ps2port->port, data, rxflags); ps2port 284 drivers/input/serio/gscps2.c struct gscps2port *ps2port = port->port_data; ps2port 286 drivers/input/serio/gscps2.c if (!gscps2_writeb_output(ps2port, data)) { ps2port 300 drivers/input/serio/gscps2.c struct gscps2port *ps2port = port->port_data; ps2port 302 drivers/input/serio/gscps2.c gscps2_reset(ps2port); ps2port 305 drivers/input/serio/gscps2.c gscps2_enable(ps2port, ENABLE); ps2port 318 drivers/input/serio/gscps2.c struct gscps2port *ps2port = port->port_data; ps2port 319 drivers/input/serio/gscps2.c gscps2_enable(ps2port, DISABLE); ps2port 329 drivers/input/serio/gscps2.c struct gscps2port *ps2port; ps2port 341 drivers/input/serio/gscps2.c ps2port = kzalloc(sizeof(struct gscps2port), GFP_KERNEL); ps2port 343 drivers/input/serio/gscps2.c if (!ps2port || !serio) { ps2port 348 drivers/input/serio/gscps2.c dev_set_drvdata(&dev->dev, ps2port); ps2port 350 drivers/input/serio/gscps2.c ps2port->port = serio; ps2port 351 drivers/input/serio/gscps2.c ps2port->padev = dev; ps2port 352 drivers/input/serio/gscps2.c ps2port->addr = ioremap_nocache(hpa, GSC_STATUS + 4); ps2port 353 drivers/input/serio/gscps2.c spin_lock_init(&ps2port->lock); ps2port 355 drivers/input/serio/gscps2.c gscps2_reset(ps2port); ps2port 356 drivers/input/serio/gscps2.c ps2port->id = readb(ps2port->addr + GSC_ID) & 0x0f; ps2port 359 drivers/input/serio/gscps2.c (ps2port->id == GSC_ID_KEYBOARD) ? "keyboard" : "mouse"); ps2port 365 drivers/input/serio/gscps2.c serio->port_data = ps2port; ps2port 369 drivers/input/serio/gscps2.c if (request_irq(dev->irq, gscps2_interrupt, IRQF_SHARED, ps2port->port->name, ps2port)) ps2port 372 drivers/input/serio/gscps2.c if (ps2port->id != GSC_ID_KEYBOARD && ps2port->id != GSC_ID_MOUSE) { ps2port 374 drivers/input/serio/gscps2.c hpa, ps2port->id); ps2port 380 drivers/input/serio/gscps2.c if (!request_mem_region(hpa, GSC_STATUS + 4, ps2port->port.name)) ps2port 385 drivers/input/serio/gscps2.c ps2port->port->name, ps2port 387 drivers/input/serio/gscps2.c ps2port->padev->irq, ps2port 388 drivers/input/serio/gscps2.c ps2port->port->phys); ps2port 390 drivers/input/serio/gscps2.c serio_register_port(ps2port->port); ps2port 392 drivers/input/serio/gscps2.c list_add_tail(&ps2port->node, &ps2port_list); ps2port 397 drivers/input/serio/gscps2.c free_irq(dev->irq, ps2port); ps2port 400 drivers/input/serio/gscps2.c iounmap(ps2port->addr); ps2port 404 drivers/input/serio/gscps2.c kfree(ps2port); ps2port 416 drivers/input/serio/gscps2.c struct gscps2port *ps2port = dev_get_drvdata(&dev->dev); ps2port 418 drivers/input/serio/gscps2.c serio_unregister_port(ps2port->port); ps2port 419 drivers/input/serio/gscps2.c free_irq(dev->irq, ps2port); ps2port 420 drivers/input/serio/gscps2.c gscps2_flush(ps2port); ps2port 421 drivers/input/serio/gscps2.c list_del(&ps2port->node); ps2port 422 drivers/input/serio/gscps2.c iounmap(ps2port->addr); ps2port 427 drivers/input/serio/gscps2.c kfree(ps2port);