12dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming/* 22dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming * 32dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming * Copyright (C) 2006 Luming Yu <luming.yu@intel.com> 42dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming * 52dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 62dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming * 72dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming * This program is free software; you can redistribute it and/or modify 82dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming * it under the terms of the GNU General Public License as published by 92dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming * the Free Software Foundation; either version 2 of the License, or (at 102dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming * your option) any later version. 112dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming * 122dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming * This program is distributed in the hope that it will be useful, but 132dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming * WITHOUT ANY WARRANTY; without even the implied warranty of 142dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 152dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming * General Public License for more details. 162dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming * 172dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming * You should have received a copy of the GNU General Public License along 182dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming * with this program; if not, write to the Free Software Foundation, Inc., 192dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. 202dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming * 212dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming */ 232dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming#ifndef _LINUX_VIDEO_OUTPUT_H 242dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming#define _LINUX_VIDEO_OUTPUT_H 252dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming#include <linux/device.h> 263353bebe7c89725ab2f476b9d8d618259402d52eLen Brown#include <linux/err.h> 272dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Lumingstruct output_device; 282dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Lumingstruct output_properties { 292dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming int (*set_state)(struct output_device *); 302dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming int (*get_status)(struct output_device *); 312dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming}; 322dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Lumingstruct output_device { 332dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming int request_state; 342dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming struct output_properties *props; 3560043428a561a5d431ad479b7ecb79805ed04efctonyj@suse.de struct device dev; 362dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming}; 3760043428a561a5d431ad479b7ecb79805ed04efctonyj@suse.de#define to_output_device(obj) container_of(obj, struct output_device, dev) 383353bebe7c89725ab2f476b9d8d618259402d52eLen Brown#if defined(CONFIG_VIDEO_OUTPUT_CONTROL) || defined(CONFIG_VIDEO_OUTPUT_CONTROL_MODULE) 392dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Lumingstruct output_device *video_output_register(const char *name, 402dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming struct device *dev, 412dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming void *devdata, 422dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming struct output_properties *op); 432dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Lumingvoid video_output_unregister(struct output_device *dev); 443353bebe7c89725ab2f476b9d8d618259402d52eLen Brown#else 453353bebe7c89725ab2f476b9d8d618259402d52eLen Brownstatic struct output_device *video_output_register(const char *name, 463353bebe7c89725ab2f476b9d8d618259402d52eLen Brown struct device *dev, 473353bebe7c89725ab2f476b9d8d618259402d52eLen Brown void *devdata, 483353bebe7c89725ab2f476b9d8d618259402d52eLen Brown struct output_properties *op) 493353bebe7c89725ab2f476b9d8d618259402d52eLen Brown{ 503353bebe7c89725ab2f476b9d8d618259402d52eLen Brown return ERR_PTR(-ENODEV); 513353bebe7c89725ab2f476b9d8d618259402d52eLen Brown} 523353bebe7c89725ab2f476b9d8d618259402d52eLen Brownstatic void video_output_unregister(struct output_device *dev) 533353bebe7c89725ab2f476b9d8d618259402d52eLen Brown{ 543353bebe7c89725ab2f476b9d8d618259402d52eLen Brown return; 553353bebe7c89725ab2f476b9d8d618259402d52eLen Brown} 563353bebe7c89725ab2f476b9d8d618259402d52eLen Brown#endif 572dec3ba8d872aa3ffbcdb8f6f8a2c0bcd44e9910Yu Luming#endif 58