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