Lines Matching refs:cam
131 #define cam_err(cam, fmt, arg...) \ argument
132 dev_err(&(cam)->pdev->dev, fmt, ##arg);
133 #define cam_warn(cam, fmt, arg...) \ argument
134 dev_warn(&(cam)->pdev->dev, fmt, ##arg);
168 static int cafe_smbus_write_data(struct cafe_camera *cam, in cafe_smbus_write_data() argument
173 struct mcam_camera *mcam = &cam->mcam; in cafe_smbus_write_data()
206 wait_event_timeout(cam->smbus_wait, cafe_smbus_write_done(mcam), in cafe_smbus_write_data()
214 cam_err(cam, "SMBUS write (%02x/%02x/%02x) timed out\n", addr, in cafe_smbus_write_data()
219 cam_err(cam, "SMBUS write (%02x/%02x/%02x) error\n", addr, in cafe_smbus_write_data()
247 static int cafe_smbus_read_data(struct cafe_camera *cam, in cafe_smbus_read_data() argument
252 struct mcam_camera *mcam = &cam->mcam; in cafe_smbus_read_data()
267 wait_event_timeout(cam->smbus_wait, in cafe_smbus_read_data()
274 cam_err(cam, "SMBUS read (%02x/%02x) error\n", addr, command); in cafe_smbus_read_data()
278 cam_err(cam, "SMBUS read (%02x/%02x) timed out\n", addr, in cafe_smbus_read_data()
294 struct cafe_camera *cam = i2c_get_adapdata(adapter); in cafe_smbus_xfer() local
302 cam_err(cam, "funky xfer size %d\n", size); in cafe_smbus_xfer()
307 ret = cafe_smbus_write_data(cam, addr, command, data->byte); in cafe_smbus_xfer()
309 ret = cafe_smbus_read_data(cam, addr, command, &data->byte); in cafe_smbus_xfer()
314 static void cafe_smbus_enable_irq(struct cafe_camera *cam) in cafe_smbus_enable_irq() argument
318 spin_lock_irqsave(&cam->mcam.dev_lock, flags); in cafe_smbus_enable_irq()
319 mcam_reg_set_bit(&cam->mcam, REG_IRQMASK, TWSIIRQS); in cafe_smbus_enable_irq()
320 spin_unlock_irqrestore(&cam->mcam.dev_lock, flags); in cafe_smbus_enable_irq()
334 static int cafe_smbus_setup(struct cafe_camera *cam) in cafe_smbus_setup() argument
345 adap->dev.parent = &cam->pdev->dev; in cafe_smbus_setup()
346 i2c_set_adapdata(adap, cam); in cafe_smbus_setup()
354 cam->mcam.i2c_adapter = adap; in cafe_smbus_setup()
355 cafe_smbus_enable_irq(cam); in cafe_smbus_setup()
359 static void cafe_smbus_shutdown(struct cafe_camera *cam) in cafe_smbus_shutdown() argument
361 i2c_del_adapter(cam->mcam.i2c_adapter); in cafe_smbus_shutdown()
362 kfree(cam->mcam.i2c_adapter); in cafe_smbus_shutdown()
439 struct cafe_camera *cam = data; in cafe_irq() local
440 struct mcam_camera *mcam = &cam->mcam; in cafe_irq()
445 handled = cam->registered && mccic_irq(mcam, irqs); in cafe_irq()
448 wake_up(&cam->smbus_wait); in cafe_irq()
465 struct cafe_camera *cam; in cafe_pci_probe() local
472 cam = kzalloc(sizeof(struct cafe_camera), GFP_KERNEL); in cafe_pci_probe()
473 if (cam == NULL) in cafe_pci_probe()
475 cam->pdev = pdev; in cafe_pci_probe()
476 mcam = &cam->mcam; in cafe_pci_probe()
479 init_waitqueue_head(&cam->smbus_wait); in cafe_pci_probe()
511 ret = request_irq(pdev->irq, cafe_irq, IRQF_SHARED, "cafe-ccic", cam); in cafe_pci_probe()
526 ret = cafe_smbus_setup(cam); in cafe_pci_probe()
532 cam->registered = 1; in cafe_pci_probe()
536 cafe_smbus_shutdown(cam); in cafe_pci_probe()
539 free_irq(pdev->irq, cam); in cafe_pci_probe()
545 kfree(cam); in cafe_pci_probe()
554 static void cafe_shutdown(struct cafe_camera *cam) in cafe_shutdown() argument
556 mccic_shutdown(&cam->mcam); in cafe_shutdown()
557 cafe_smbus_shutdown(cam); in cafe_shutdown()
558 free_irq(cam->pdev->irq, cam); in cafe_shutdown()
559 pci_iounmap(cam->pdev, cam->mcam.regs); in cafe_shutdown()
566 struct cafe_camera *cam = to_cam(v4l2_dev); in cafe_pci_remove() local
568 if (cam == NULL) { in cafe_pci_remove()
572 cafe_shutdown(cam); in cafe_pci_remove()
573 kfree(cam); in cafe_pci_remove()
584 struct cafe_camera *cam = to_cam(v4l2_dev); in cafe_pci_suspend() local
590 mccic_suspend(&cam->mcam); in cafe_pci_suspend()
599 struct cafe_camera *cam = to_cam(v4l2_dev); in cafe_pci_resume() local
606 cam_warn(cam, "Unable to re-enable device on resume!\n"); in cafe_pci_resume()
609 cafe_ctlr_init(&cam->mcam); in cafe_pci_resume()
610 return mccic_resume(&cam->mcam); in cafe_pci_resume()