40 return cdclk_sel ? 333333333 : 222222222;
42 return cdclk_sel ? 320000000 : 228571429;
45 "Unknown VCO frequency, using default cdclk.\n");
51 u16 pwm_freq,
u8 duty_perc)
55 blc_mod =
get_cdclk(dev) / (128 * pwm_freq);
58 return (blc_mod << 16) | (blc_mod * duty_perc / 100);
60 return (blc_mod << 16) | blc_mod;
65 static u16 blc_pwm_freq;
75 for (i = 0; i < blc_array_len; i++) {
84 if (i == blc_array_len)
86 "lookup table.\n You may have issues with your panels"
87 "backlight.\n If you want to help improving coreboot"
88 "please report: this EDID string\n and the result"
89 "of `intel_read read BLC_PWM_CTL`"
90 "(from intel-gpu-tools)\n while running vendor BIOS\n",
97 const char *edid_ascii_string)
148 u8 edid_data_lvds[128];
149 struct edid edid_lvds;
162 if (!
CONFIG(MAINBOARD_USE_LIBGFXINIT)) {
170 edid_data_lvds,
sizeof(edid_data_lvds));
172 decode_edid(edid_data_lvds,
sizeof(edid_data_lvds), &edid_lvds);
181 "IGD is not decoding legacy VGA MEM and IO: skipping NATIVE graphic init\n");
static int acpi_is_wakeup_s3(void)
static void write32(void *addr, uint32_t val)
static uint32_t read32(const void *addr)
#define printk(level,...)
struct resource * probe_resource(const struct device *dev, unsigned int index)
See if a resource structure already exists for a given index.
void drivers_intel_gma_displays_ssdt_generate(const struct i915_gpu_controller_info *conf)
void intel_gmbus_read_edid(u8 *mmio, u8 bus, u8 slave, u8 *edid, u32 edid_size)
void intel_gmbus_stop(u8 *mmio)
static __always_inline uint8_t mchbar_read8(const uintptr_t offset)
static struct tpm_chip chip
void generate_fake_intel_oprom(const struct i915_gpu_controller_info *conf, struct device *dev, const char *idstr)
#define PP_REFERENCE_DIVIDER_SHIFT
static __always_inline void pci_or_config16(const struct device *dev, u16 reg, u16 ormask)
static __always_inline u16 pci_read_config16(const struct device *dev, u16 reg)
int decode_edid(unsigned char *edid, int size, struct edid *out)
int get_blc_values(const struct blc_pwm_t **entries)
void gma_gfxinit(int *lightup_ok)
#define BIOS_INFO
BIOS_INFO - Expected events.
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
#define BIOS_NOTICE
BIOS_NOTICE - Unexpected but relatively insignificant.
#define BIOS_WARNING
BIOS_WARNING - Bad configuration.
static u32 get_cdclk(struct device *const dev)
static const char * gma_acpi_name(const struct device *dev)
static struct resource * gtt_res
static void gma_func0_init(struct device *dev)
static void gma_pm_init_post_vbios(struct device *const dev, const char *edid_ascii_string)
static const struct pci_driver gma __pci_driver
static u32 freq_to_blc_pwm_ctl(struct device *const dev, u16 pwm_freq, u8 duty_perc)
static const unsigned short pci_device_ids[]
void gtt_write(u32 reg, u32 data)
u16 get_blc_pwm_freq_value(const char *edid_ascii_string)
static struct device_operations gma_func0_ops
static void gma_generate_ssdt(const struct device *device)
enum cb_err intel_gma_init_igd_opregion(void)
#define PCI_COMMAND_MASTER
#define PCI_BASE_ADDRESS_0
void pci_dev_init(struct device *dev)
Default handler: only runs the relevant PCI BIOS.
void pci_dev_enable_resources(struct device *dev)
void pci_dev_read_resources(struct device *dev)
struct pci_operations pci_dev_ops_pci
Default device operation for PCI devices.
void pci_dev_set_resources(struct device *dev)
static void * res2mmio(const struct resource *res, unsigned long offset, unsigned long mask)
int strcmp(const char *s1, const char *s2)
void(* read_resources)(struct device *dev)
DEVTREE_CONST void * chip_info
char ascii_string[EDID_ASCII_STRING_LENGTH+1]
u16 gpu_panel_power_down_delay
u8 gpu_panel_power_cycle_delay
u16 gpu_panel_power_up_delay
u16 gpu_panel_power_backlight_on_delay
struct i915_gpu_controller_info gfx
u16 gpu_panel_power_backlight_off_delay