Lines Matching refs:sonypi_device

464 static struct sonypi_device {
486 } sonypi_device;
557 pci_read_config_dword(sonypi_device.dev, SONYPI_G10A, &v);
558 v = (v & 0xFFFF0000) | ((u32) sonypi_device.ioport1);
559 pci_write_config_dword(sonypi_device.dev, SONYPI_G10A, v);
561 pci_read_config_dword(sonypi_device.dev, SONYPI_G10A, &v);
563 (((u32) sonypi_device.ioport1 ^ sonypi_device.ioport2) << 16);
564 pci_write_config_dword(sonypi_device.dev, SONYPI_G10A, v);
568 v |= (((u32) sonypi_device.bits) << SONYPI_IRQ_SHIFT);
571 pci_read_config_dword(sonypi_device.dev, SONYPI_G10A, &v);
573 pci_write_config_dword(sonypi_device.dev, SONYPI_G10A, v);
578 if (sonypi_ec_write(SONYPI_SHIB, (sonypi_device.ioport1 & 0xFF00) >> 8))
580 if (sonypi_ec_write(SONYPI_SLOB, sonypi_device.ioport1 & 0x00FF))
582 if (sonypi_ec_write(SONYPI_SIRQ, sonypi_device.bits))
597 v16 = (sonypi_device.ioport1 & 0xFFF0) | 0x01;
598 pci_write_config_word(sonypi_device.dev, SONYPI_TYPE3_GID2, v16);
599 pci_read_config_byte(sonypi_device.dev, SONYPI_TYPE3_MISC, &v8);
601 pci_write_config_byte(sonypi_device.dev, SONYPI_TYPE3_MISC, v8);
609 pci_read_config_dword(sonypi_device.dev, SONYPI_G10A, &v);
611 pci_write_config_dword(sonypi_device.dev, SONYPI_G10A, v);
632 pci_write_config_word(sonypi_device.dev, SONYPI_TYPE3_GID2, 0);
639 wait_on_command(0, inb_p(sonypi_device.ioport2) & 2, ITERATIONS_LONG);
640 outb(dev, sonypi_device.ioport2);
641 v1 = inb_p(sonypi_device.ioport2);
642 v2 = inb_p(sonypi_device.ioport1);
650 wait_on_command(0, inb_p(sonypi_device.ioport2) & 2, ITERATIONS_LONG);
651 outb(dev, sonypi_device.ioport2);
652 wait_on_command(0, inb_p(sonypi_device.ioport2) & 2, ITERATIONS_LONG);
653 outb(fn, sonypi_device.ioport1);
654 v1 = inb_p(sonypi_device.ioport1);
662 wait_on_command(0, inb_p(sonypi_device.ioport2) & 2, ITERATIONS_LONG);
663 outb(dev, sonypi_device.ioport2);
664 wait_on_command(0, inb_p(sonypi_device.ioport2) & 2, ITERATIONS_LONG);
665 outb(fn, sonypi_device.ioport1);
666 wait_on_command(0, inb_p(sonypi_device.ioport2) & 2, ITERATIONS_LONG);
667 outb(v, sonypi_device.ioport1);
668 v1 = inb_p(sonypi_device.ioport1);
709 if (!sonypi_device.camera_power)
713 sonypi_device.camera_power = 0;
721 if (sonypi_device.camera_power)
745 sonypi_device.camera_power = 1;
753 if (sonypi_device.bluetooth_power == state)
758 sonypi_device.bluetooth_power = state;
765 while (kfifo_out_locked(&sonypi_device.input_fifo, (unsigned char *)&kp,
766 sizeof(kp), &sonypi_device.input_fifo_lock)
776 struct input_dev *jog_dev = sonypi_device.input_jog_dev;
777 struct input_dev *key_dev = sonypi_device.input_key_dev;
816 kfifo_in_locked(&sonypi_device.input_fifo,
818 &sonypi_device.input_fifo_lock);
819 schedule_work(&sonypi_device.input_work);
829 v1 = inb_p(sonypi_device.ioport1);
830 v2 = inb_p(sonypi_device.ioport1 + sonypi_device.evtype_offset);
833 if (sonypi_device.model != sonypi_eventtypes[i].model)
865 kfifo_in_locked(&sonypi_device.fifo, (unsigned char *)&event,
866 sizeof(event), &sonypi_device.fifo_lock);
867 kill_fasync(&sonypi_device.fifo_async, SIGIO, POLL_IN);
868 wake_up_interruptible(&sonypi_device.fifo_proc_list);
875 return fasync_helper(fd, filp, on, &sonypi_device.fifo_async);
880 mutex_lock(&sonypi_device.lock);
881 sonypi_device.open_count--;
882 mutex_unlock(&sonypi_device.lock);
888 mutex_lock(&sonypi_device.lock);
890 if (!sonypi_device.open_count)
891 kfifo_reset(&sonypi_device.fifo);
892 sonypi_device.open_count++;
893 mutex_unlock(&sonypi_device.lock);
904 if ((kfifo_len(&sonypi_device.fifo) == 0) &&
908 ret = wait_event_interruptible(sonypi_device.fifo_proc_list,
909 kfifo_len(&sonypi_device.fifo) != 0);
914 (kfifo_out_locked(&sonypi_device.fifo, &c, sizeof(c),
915 &sonypi_device.fifo_lock) == sizeof(c))) {
931 poll_wait(file, &sonypi_device.fifo_proc_list, wait);
932 if (kfifo_len(&sonypi_device.fifo))
945 mutex_lock(&sonypi_device.lock);
1005 val8 = sonypi_device.bluetooth_power;
1045 mutex_unlock(&sonypi_device.lock);
1068 switch (sonypi_device.model) {
1102 switch (sonypi_device.model) {
1155 sonypi_device.input_jog_dev = jog_dev = input_allocate_device();
1168 sonypi_device.input_key_dev = key_dev = input_allocate_device();
1201 sonypi_device.input_key_dev = NULL;
1204 sonypi_device.input_jog_dev = NULL;
1209 static int sonypi_setup_ioports(struct sonypi_device *dev,
1223 sonypi_device.region_size,
1230 release_region(check->port1, sonypi_device.region_size);
1237 sonypi_device.region_size,
1249 static int sonypi_setup_irq(struct sonypi_device *dev,
1271 sonypi_device.model,
1280 sonypi_device.irq,
1281 sonypi_device.ioport1, sonypi_device.ioport2);
1299 spin_lock_init(&sonypi_device.fifo_lock);
1300 error = kfifo_alloc(&sonypi_device.fifo, SONYPI_BUF_SIZE, GFP_KERNEL);
1306 init_waitqueue_head(&sonypi_device.fifo_proc_list);
1307 mutex_init(&sonypi_device.lock);
1308 sonypi_device.bluetooth_power = -1;
1312 sonypi_device.model = SONYPI_DEVICE_MODEL_TYPE1;
1315 sonypi_device.model = SONYPI_DEVICE_MODEL_TYPE3;
1318 sonypi_device.model = SONYPI_DEVICE_MODEL_TYPE3;
1320 sonypi_device.model = SONYPI_DEVICE_MODEL_TYPE2;
1328 sonypi_device.dev = pcidev;
1330 if (sonypi_device.model == SONYPI_DEVICE_MODEL_TYPE1) {
1332 sonypi_device.region_size = SONYPI_TYPE1_REGION_SIZE;
1333 sonypi_device.evtype_offset = SONYPI_TYPE1_EVTYPE_OFFSET;
1335 } else if (sonypi_device.model == SONYPI_DEVICE_MODEL_TYPE2) {
1337 sonypi_device.region_size = SONYPI_TYPE2_REGION_SIZE;
1338 sonypi_device.evtype_offset = SONYPI_TYPE2_EVTYPE_OFFSET;
1342 sonypi_device.region_size = SONYPI_TYPE3_REGION_SIZE;
1343 sonypi_device.evtype_offset = SONYPI_TYPE3_EVTYPE_OFFSET;
1347 error = sonypi_setup_ioports(&sonypi_device, ioport_list);
1353 error = sonypi_setup_irq(&sonypi_device, irq_list);
1378 spin_lock_init(&sonypi_device.input_fifo_lock);
1379 error = kfifo_alloc(&sonypi_device.input_fifo, SONYPI_BUF_SIZE,
1386 INIT_WORK(&sonypi_device.input_work, input_keyrelease);
1394 input_unregister_device(sonypi_device.input_key_dev);
1395 input_unregister_device(sonypi_device.input_jog_dev);
1399 free_irq(sonypi_device.irq, sonypi_irq);
1401 release_region(sonypi_device.ioport1, sonypi_device.region_size);
1407 kfifo_free(&sonypi_device.fifo);
1416 synchronize_irq(sonypi_device.irq);
1417 flush_work(&sonypi_device.input_work);
1420 input_unregister_device(sonypi_device.input_key_dev);
1421 input_unregister_device(sonypi_device.input_jog_dev);
1422 kfifo_free(&sonypi_device.input_fifo);
1427 free_irq(sonypi_device.irq, sonypi_irq);
1428 release_region(sonypi_device.ioport1, sonypi_device.region_size);
1430 if (sonypi_device.dev) {
1431 pci_disable_device(sonypi_device.dev);
1432 pci_dev_put(sonypi_device.dev);
1435 kfifo_free(&sonypi_device.fifo);
1445 old_camera_power = sonypi_device.camera_power;