root/drivers/media/pci/cx23885/cx23885-av.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. cx23885_av_work_handler

   1 // SPDX-License-Identifier: GPL-2.0-or-later
   2 /*
   3  *  Driver for the Conexant CX23885/7/8 PCIe bridge
   4  *
   5  *  AV device support routines - non-input, non-vl42_subdev routines
   6  *
   7  *  Copyright (C) 2010  Andy Walls <awalls@md.metrocast.net>
   8  */
   9 
  10 #include "cx23885.h"
  11 #include "cx23885-av.h"
  12 #include "cx23885-video.h"
  13 
  14 void cx23885_av_work_handler(struct work_struct *work)
  15 {
  16         struct cx23885_dev *dev =
  17                            container_of(work, struct cx23885_dev, cx25840_work);
  18         bool handled = false;
  19 
  20         v4l2_subdev_call(dev->sd_cx25840, core, interrupt_service_routine,
  21                          PCI_MSK_AV_CORE, &handled);
  22 
  23         /* Getting here with the interrupt not handled
  24            then probbaly flatiron does have pending interrupts.
  25         */
  26         if (!handled) {
  27                 /* clear left and right adc channel interrupt request flag */
  28                 cx23885_flatiron_write(dev, 0x1f,
  29                         cx23885_flatiron_read(dev, 0x1f) | 0x80);
  30                 cx23885_flatiron_write(dev, 0x23,
  31                         cx23885_flatiron_read(dev, 0x23) | 0x80);
  32         }
  33 
  34         cx23885_irq_enable(dev, PCI_MSK_AV_CORE);
  35 }

/* [<][>][^][v][top][bottom][index][help] */