xref: /dflybsd-src/sys/dev/drm/include/drm/i915_component.h (revision a05eeebfe8ec06e5625c15c535aed68dbf568bd6)
12c9916cdSFrançois Tigeot /*
22c9916cdSFrançois Tigeot  * Copyright © 2014 Intel Corporation
32c9916cdSFrançois Tigeot  *
42c9916cdSFrançois Tigeot  * Permission is hereby granted, free of charge, to any person obtaining a
52c9916cdSFrançois Tigeot  * copy of this software and associated documentation files (the "Software"),
62c9916cdSFrançois Tigeot  * to deal in the Software without restriction, including without limitation
72c9916cdSFrançois Tigeot  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
82c9916cdSFrançois Tigeot  * and/or sell copies of the Software, and to permit persons to whom the
92c9916cdSFrançois Tigeot  * Software is furnished to do so, subject to the following conditions:
102c9916cdSFrançois Tigeot  *
112c9916cdSFrançois Tigeot  * The above copyright notice and this permission notice (including the next
122c9916cdSFrançois Tigeot  * paragraph) shall be included in all copies or substantial portions of the
132c9916cdSFrançois Tigeot  * Software.
142c9916cdSFrançois Tigeot  *
152c9916cdSFrançois Tigeot  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
162c9916cdSFrançois Tigeot  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
172c9916cdSFrançois Tigeot  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
182c9916cdSFrançois Tigeot  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
192c9916cdSFrançois Tigeot  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
202c9916cdSFrançois Tigeot  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
212c9916cdSFrançois Tigeot  * IN THE SOFTWARE.
222c9916cdSFrançois Tigeot  */
232c9916cdSFrançois Tigeot 
242c9916cdSFrançois Tigeot #ifndef _I915_COMPONENT_H_
252c9916cdSFrançois Tigeot #define _I915_COMPONENT_H_
262c9916cdSFrançois Tigeot 
272c9916cdSFrançois Tigeot struct i915_audio_component {
282c9916cdSFrançois Tigeot 	struct device *dev;
292c9916cdSFrançois Tigeot 
302c9916cdSFrançois Tigeot 	const struct i915_audio_component_ops {
312c9916cdSFrançois Tigeot 		struct module *owner;
322c9916cdSFrançois Tigeot 		void (*get_power)(struct device *);
332c9916cdSFrançois Tigeot 		void (*put_power)(struct device *);
3419c468b4SFrançois Tigeot 		void (*codec_wake_override)(struct device *, bool enable);
352c9916cdSFrançois Tigeot 		int (*get_cdclk_freq)(struct device *);
362c9916cdSFrançois Tigeot 	} *ops;
37*a05eeebfSFrançois Tigeot 
38*a05eeebfSFrançois Tigeot 	const struct i915_audio_component_audio_ops {
39*a05eeebfSFrançois Tigeot 		void *audio_ptr;
40*a05eeebfSFrançois Tigeot 		/**
41*a05eeebfSFrançois Tigeot 		 * Call from i915 driver, notifying the HDA driver that
42*a05eeebfSFrançois Tigeot 		 * pin sense and/or ELD information has changed.
43*a05eeebfSFrançois Tigeot 		 * @audio_ptr:		HDA driver object
44*a05eeebfSFrançois Tigeot 		 * @port:		Which port has changed (PORTA / PORTB / PORTC etc)
45*a05eeebfSFrançois Tigeot 		 */
46*a05eeebfSFrançois Tigeot 		void (*pin_eld_notify)(void *audio_ptr, int port);
47*a05eeebfSFrançois Tigeot 	} *audio_ops;
482c9916cdSFrançois Tigeot };
492c9916cdSFrançois Tigeot 
502c9916cdSFrançois Tigeot #endif /* _I915_COMPONENT_H_ */
51