1/* 2 * 3 * Copyright (C) 2006 Luming Yu <luming.yu@intel.com> 4 * 5 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation; either version 2 of the License, or (at 10 * your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, but 13 * WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License along 18 * with this program; if not, write to the Free Software Foundation, Inc., 19 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. 20 * 21 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 22 */ 23#ifndef _LINUX_VIDEO_OUTPUT_H 24#define _LINUX_VIDEO_OUTPUT_H 25#include <linux/device.h> 26#include <linux/err.h> 27struct output_device; 28struct output_properties { 29 int (*set_state)(struct output_device *); 30 int (*get_status)(struct output_device *); 31}; 32struct output_device { 33 int request_state; 34 struct output_properties *props; 35 struct device dev; 36}; 37#define to_output_device(obj) container_of(obj, struct output_device, dev) 38#if defined(CONFIG_VIDEO_OUTPUT_CONTROL) || defined(CONFIG_VIDEO_OUTPUT_CONTROL_MODULE) 39struct output_device *video_output_register(const char *name, 40 struct device *dev, 41 void *devdata, 42 struct output_properties *op); 43void video_output_unregister(struct output_device *dev); 44#else 45static struct output_device *video_output_register(const char *name, 46 struct device *dev, 47 void *devdata, 48 struct output_properties *op) 49{ 50 return ERR_PTR(-ENODEV); 51} 52static void video_output_unregister(struct output_device *dev) 53{ 54 return; 55} 56#endif 57#endif 58