Lines Matching refs:opregion

255 	struct opregion_swsci *swsci = i915->display.opregion.swsci;  in check_swsci_function()
268 if ((i915->display.opregion.swsci_sbcb_sub_functions & in check_swsci_function()
272 if ((i915->display.opregion.swsci_gbda_sub_functions & in check_swsci_function()
283 struct opregion_swsci *swsci = dev_priv->display.opregion.swsci; in swsci()
465 struct opregion_asle *asle = dev_priv->display.opregion.asle; in asle_set_backlight()
585 struct intel_opregion *opregion = in asle_work() local
588 container_of(opregion, struct drm_i915_private, display.opregion); in asle_work()
589 struct opregion_asle *asle = dev_priv->display.opregion.asle; in asle_work()
637 if (dev_priv->display.opregion.asle) in intel_opregion_asle_intr()
638 schedule_work(&dev_priv->display.opregion.asle_work); in intel_opregion_asle_intr()
653 struct intel_opregion *opregion = container_of(nb, struct intel_opregion, in intel_opregion_video_event() local
662 acpi = opregion->acpi; in intel_opregion_video_event()
678 static void set_did(struct intel_opregion *opregion, int i, u32 val) in set_did() argument
680 if (i < ARRAY_SIZE(opregion->acpi->didl)) { in set_did()
681 opregion->acpi->didl[i] = val; in set_did()
683 i -= ARRAY_SIZE(opregion->acpi->didl); in set_did()
685 if (WARN_ON(i >= ARRAY_SIZE(opregion->acpi->did2))) in set_did()
688 opregion->acpi->did2[i] = val; in set_did()
694 struct intel_opregion *opregion = &dev_priv->display.opregion; in intel_didl_outputs() local
706 max_outputs = ARRAY_SIZE(opregion->acpi->didl) + in intel_didl_outputs()
707 ARRAY_SIZE(opregion->acpi->did2); in intel_didl_outputs()
714 set_did(opregion, i, connector->acpi_device_id); in intel_didl_outputs()
728 set_did(opregion, i, 0); in intel_didl_outputs()
733 struct intel_opregion *opregion = &dev_priv->display.opregion; in intel_setup_cadls() local
750 if (i >= ARRAY_SIZE(opregion->acpi->cadl)) in intel_setup_cadls()
752 opregion->acpi->cadl[i++] = connector->acpi_device_id; in intel_setup_cadls()
757 if (i < ARRAY_SIZE(opregion->acpi->cadl)) in intel_setup_cadls()
758 opregion->acpi->cadl[i] = 0; in intel_setup_cadls()
763 struct intel_opregion *opregion = &dev_priv->display.opregion; in swsci_setup() local
768 opregion->swsci_gbda_sub_functions = 1; in swsci_setup()
769 opregion->swsci_sbcb_sub_functions = 1; in swsci_setup()
775 opregion->swsci_gbda_sub_functions |= tmp; in swsci_setup()
785 opregion->swsci_sbcb_sub_functions |= tmp; in swsci_setup()
802 u32 req = opregion->swsci_sbcb_sub_functions; in swsci_setup()
810 opregion->swsci_sbcb_sub_functions |= tmp; in swsci_setup()
816 opregion->swsci_gbda_sub_functions, in swsci_setup()
817 opregion->swsci_sbcb_sub_functions); in swsci_setup()
841 struct intel_opregion *opregion = &dev_priv->display.opregion; in intel_load_vbt_firmware() local
858 opregion->vbt_firmware = kmemdup(fw->data, fw->size, GFP_KERNEL); in intel_load_vbt_firmware()
859 if (opregion->vbt_firmware) { in intel_load_vbt_firmware()
862 opregion->vbt = opregion->vbt_firmware; in intel_load_vbt_firmware()
863 opregion->vbt_size = fw->size; in intel_load_vbt_firmware()
881 struct intel_opregion *opregion = &dev_priv->display.opregion; in intel_opregion_setup() local
904 INIT_WORK(&opregion->asle_work, asle_work); in intel_opregion_setup()
917 opregion->header = base; in intel_opregion_setup()
918 opregion->lid_state = base + ACPI_CLID; in intel_opregion_setup()
921 opregion->header->over.major, in intel_opregion_setup()
922 opregion->header->over.minor, in intel_opregion_setup()
923 opregion->header->over.revision); in intel_opregion_setup()
925 mboxes = opregion->header->mboxes; in intel_opregion_setup()
928 opregion->acpi = base + OPREGION_ACPI_OFFSET; in intel_opregion_setup()
935 opregion->acpi->chpd = 1; in intel_opregion_setup()
939 u8 major = opregion->header->over.major; in intel_opregion_setup()
947 opregion->swsci = base + OPREGION_SWSCI_OFFSET; in intel_opregion_setup()
954 opregion->asle = base + OPREGION_ASLE_OFFSET; in intel_opregion_setup()
956 opregion->asle->ardy = ASLE_ARDY_NOT_READY; in intel_opregion_setup()
961 opregion->asle_ext = base + OPREGION_ASLE_EXT_OFFSET; in intel_opregion_setup()
974 if (opregion->header->over.major >= 2 && opregion->asle && in intel_opregion_setup()
975 opregion->asle->rvda && opregion->asle->rvds) { in intel_opregion_setup()
976 resource_size_t rvda = opregion->asle->rvda; in intel_opregion_setup()
984 if (opregion->header->over.major > 2 || in intel_opregion_setup()
985 opregion->header->over.minor >= 1) { in intel_opregion_setup()
991 opregion->rvda = memremap(rvda, opregion->asle->rvds, in intel_opregion_setup()
994 vbt = opregion->rvda; in intel_opregion_setup()
995 vbt_size = opregion->asle->rvds; in intel_opregion_setup()
999 opregion->vbt = vbt; in intel_opregion_setup()
1000 opregion->vbt_size = vbt_size; in intel_opregion_setup()
1005 memunmap(opregion->rvda); in intel_opregion_setup()
1006 opregion->rvda = NULL; in intel_opregion_setup()
1024 opregion->vbt = vbt; in intel_opregion_setup()
1025 opregion->vbt_size = vbt_size; in intel_opregion_setup()
1108 struct intel_opregion *opregion = &i915->display.opregion; in intel_opregion_get_edid() local
1113 if (!opregion->asle_ext) in intel_opregion_get_edid()
1116 edid = opregion->asle_ext->bddc; in intel_opregion_get_edid()
1119 len = (opregion->asle_ext->phed & ASLE_PHED_EDID_VALID_MASK) * 128; in intel_opregion_get_edid()
1136 struct intel_opregion *opregion = &i915->display.opregion; in intel_opregion_headless_sku() local
1137 struct opregion_header *header = opregion->header; in intel_opregion_headless_sku()
1143 return opregion->header->pcon & PCON_HEADLESS_SKU; in intel_opregion_headless_sku()
1148 struct intel_opregion *opregion = &i915->display.opregion; in intel_opregion_register() local
1150 if (!opregion->header) in intel_opregion_register()
1153 if (opregion->acpi) { in intel_opregion_register()
1154 opregion->acpi_notifier.notifier_call = in intel_opregion_register()
1156 register_acpi_notifier(&opregion->acpi_notifier); in intel_opregion_register()
1164 struct intel_opregion *opregion = &i915->display.opregion; in intel_opregion_resume() local
1166 if (!opregion->header) in intel_opregion_resume()
1169 if (opregion->acpi) { in intel_opregion_resume()
1178 opregion->acpi->csts = 0; in intel_opregion_resume()
1179 opregion->acpi->drdy = 1; in intel_opregion_resume()
1182 if (opregion->asle) { in intel_opregion_resume()
1183 opregion->asle->tche = ASLE_TCHE_BLC_EN; in intel_opregion_resume()
1184 opregion->asle->ardy = ASLE_ARDY_READY; in intel_opregion_resume()
1195 struct intel_opregion *opregion = &i915->display.opregion; in intel_opregion_suspend() local
1197 if (!opregion->header) in intel_opregion_suspend()
1202 if (opregion->asle) in intel_opregion_suspend()
1203 opregion->asle->ardy = ASLE_ARDY_NOT_READY; in intel_opregion_suspend()
1205 cancel_work_sync(&i915->display.opregion.asle_work); in intel_opregion_suspend()
1207 if (opregion->acpi) in intel_opregion_suspend()
1208 opregion->acpi->drdy = 0; in intel_opregion_suspend()
1213 struct intel_opregion *opregion = &i915->display.opregion; in intel_opregion_unregister() local
1217 if (!opregion->header) in intel_opregion_unregister()
1220 if (opregion->acpi_notifier.notifier_call) { in intel_opregion_unregister()
1221 unregister_acpi_notifier(&opregion->acpi_notifier); in intel_opregion_unregister()
1222 opregion->acpi_notifier.notifier_call = NULL; in intel_opregion_unregister()
1226 memunmap(opregion->header); in intel_opregion_unregister()
1227 if (opregion->rvda) { in intel_opregion_unregister()
1228 memunmap(opregion->rvda); in intel_opregion_unregister()
1229 opregion->rvda = NULL; in intel_opregion_unregister()
1231 if (opregion->vbt_firmware) { in intel_opregion_unregister()
1232 kfree(opregion->vbt_firmware); in intel_opregion_unregister()
1233 opregion->vbt_firmware = NULL; in intel_opregion_unregister()
1235 opregion->header = NULL; in intel_opregion_unregister()
1236 opregion->acpi = NULL; in intel_opregion_unregister()
1237 opregion->swsci = NULL; in intel_opregion_unregister()
1238 opregion->asle = NULL; in intel_opregion_unregister()
1239 opregion->asle_ext = NULL; in intel_opregion_unregister()
1240 opregion->vbt = NULL; in intel_opregion_unregister()
1241 opregion->lid_state = NULL; in intel_opregion_unregister()