/* * Copyright (C) 2009 Francisco Jerez. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial * portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * */ #include "ch7006_priv.h" const char * const ch7006_tv_norm_names[] = …; #define NTSC_LIKE_TIMINGS … #define PAL_LIKE_TIMINGS … const struct ch7006_tv_norm_info ch7006_tv_norms[] = …; #define __MODE(f, hd, vd, ht, vt, hsynp, vsynp, \ subc, scale, scale_mask, norm_mask, e_hd, e_vd) … #define MODE(f, hd, vd, ht, vt, hsynp, vsynp, \ subc, scale, scale_mask, norm_mask) … #define NTSC_LIKE … #define PAL_LIKE … const struct ch7006_mode ch7006_modes[] = …; const struct ch7006_mode *ch7006_lookup_mode(struct drm_encoder *encoder, const struct drm_display_mode *drm_mode) { … } /* Some common HW state calculation code */ void ch7006_setup_levels(struct drm_encoder *encoder) { … } void ch7006_setup_subcarrier(struct drm_encoder *encoder) { … } void ch7006_setup_pll(struct drm_encoder *encoder) { … } void ch7006_setup_power_state(struct drm_encoder *encoder) { … } void ch7006_setup_properties(struct drm_encoder *encoder) { … } /* HW access functions */ void ch7006_write(struct i2c_client *client, uint8_t addr, uint8_t val) { … } uint8_t ch7006_read(struct i2c_client *client, uint8_t addr) { … } void ch7006_state_load(struct i2c_client *client, struct ch7006_state *state) { … } void ch7006_state_save(struct i2c_client *client, struct ch7006_state *state) { … }