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
342 cam->mcam.i2c_adapter = adap; in cafe_smbus_setup()
343 cafe_smbus_enable_irq(cam); in cafe_smbus_setup()
347 adap->dev.parent = &cam->pdev->dev; in cafe_smbus_setup()
348 i2c_set_adapdata(adap, cam); in cafe_smbus_setup()
355 static void cafe_smbus_shutdown(struct cafe_camera *cam) in cafe_smbus_shutdown() argument
357 i2c_del_adapter(cam->mcam.i2c_adapter); in cafe_smbus_shutdown()
358 kfree(cam->mcam.i2c_adapter); in cafe_smbus_shutdown()
435 struct cafe_camera *cam = data; in cafe_irq() local
436 struct mcam_camera *mcam = &cam->mcam; in cafe_irq()
441 handled = cam->registered && mccic_irq(mcam, irqs); in cafe_irq()
444 wake_up(&cam->smbus_wait); in cafe_irq()
461 struct cafe_camera *cam; in cafe_pci_probe() local
468 cam = kzalloc(sizeof(struct cafe_camera), GFP_KERNEL); in cafe_pci_probe()
469 if (cam == NULL) in cafe_pci_probe()
471 cam->pdev = pdev; in cafe_pci_probe()
472 mcam = &cam->mcam; in cafe_pci_probe()
475 init_waitqueue_head(&cam->smbus_wait); in cafe_pci_probe()
506 ret = request_irq(pdev->irq, cafe_irq, IRQF_SHARED, "cafe-ccic", cam); in cafe_pci_probe()
521 ret = cafe_smbus_setup(cam); in cafe_pci_probe()
527 cam->registered = 1; in cafe_pci_probe()
531 cafe_smbus_shutdown(cam); in cafe_pci_probe()
534 free_irq(pdev->irq, cam); in cafe_pci_probe()
540 kfree(cam); in cafe_pci_probe()
549 static void cafe_shutdown(struct cafe_camera *cam) in cafe_shutdown() argument
551 mccic_shutdown(&cam->mcam); in cafe_shutdown()
552 cafe_smbus_shutdown(cam); in cafe_shutdown()
553 free_irq(cam->pdev->irq, cam); in cafe_shutdown()
554 pci_iounmap(cam->pdev, cam->mcam.regs); in cafe_shutdown()
561 struct cafe_camera *cam = to_cam(v4l2_dev); in cafe_pci_remove() local
563 if (cam == NULL) { in cafe_pci_remove()
567 cafe_shutdown(cam); in cafe_pci_remove()
568 kfree(cam); in cafe_pci_remove()
579 struct cafe_camera *cam = to_cam(v4l2_dev); in cafe_pci_suspend() local
585 mccic_suspend(&cam->mcam); in cafe_pci_suspend()
594 struct cafe_camera *cam = to_cam(v4l2_dev); in cafe_pci_resume() local
601 cam_warn(cam, "Unable to re-enable device on resume!\n"); in cafe_pci_resume()
604 cafe_ctlr_init(&cam->mcam); in cafe_pci_resume()
605 return mccic_resume(&cam->mcam); in cafe_pci_resume()