Lines Matching defs:ldev

309 static inline u32 insert_desc_list(struct loongson_drm_device *ldev,
315 WARN_ON(!ldev || !vb_desc);
323 node->data = ((u8 *)ldev->vbios + vb_desc->offset);
324 list_add_tail(&node->head, &ldev->desc_list);
329 static inline void free_desc_list(struct loongson_drm_device *ldev)
333 list_for_each_entry_safe (node, tmp, &ldev->desc_list, head) {
341 static u32 parse_vbios_desc(struct loongson_drm_device *ldev)
346 u8 *vbios = (u8 *)ldev->vbios;
356 ret = insert_desc_list(ldev, desc);
367 static inline struct desc_node *get_desc_node(struct loongson_drm_device *ldev,
373 list_for_each_entry_safe (node, tmp, &ldev->desc_list, head) {
382 static bool vbios_get_data(struct loongson_drm_device *ldev, struct vbios_cmd *cmd)
388 node = get_desc_node(ldev, cmd->type, cmd->index);
397 u32 get_connector_type(struct loongson_drm_device *ldev, u32 index)
407 ret = vbios_get_data(ldev, &vbt_cmd);
414 u16 get_connector_i2cid(struct loongson_drm_device *ldev, u32 index)
424 ret = vbios_get_data(ldev, &vbt_cmd);
431 u32 get_connector_irq_gpio(struct loongson_drm_device *ldev, u32 index)
441 ret = vbios_get_data(ldev, &vbt_cmd);
448 enum gpio_placement get_connector_gpio_placement(struct loongson_drm_device *ldev,
459 ret = vbios_get_data(ldev, &vbt_cmd);
466 u16 get_hotplug_mode(struct loongson_drm_device *ldev, u32 index)
476 ret = vbios_get_data(ldev, &vbt_cmd);
483 u16 get_edid_method(struct loongson_drm_device *ldev, u32 index)
493 ret = vbios_get_data(ldev, &vbt_cmd);
500 u8 *get_vbios_edid(struct loongson_drm_device *ldev, u32 index)
514 ret = vbios_get_data(ldev, &vbt_cmd);
521 u32 get_vbios_pwm(struct loongson_drm_device *ldev, u32 index, u16 request)
531 ret = vbios_get_data(ldev, &vbt_cmd);
538 u32 get_crtc_id(struct loongson_drm_device *ldev, u32 index)
548 ret = vbios_get_data(ldev, &vbt_cmd);
555 u32 get_crtc_max_freq(struct loongson_drm_device *ldev, u32 index)
565 ret = vbios_get_data(ldev, &vbt_cmd);
572 u32 get_crtc_max_width(struct loongson_drm_device *ldev, u32 index)
582 ret = vbios_get_data(ldev, &vbt_cmd);
589 u32 get_crtc_max_height(struct loongson_drm_device *ldev, u32 index)
599 ret = vbios_get_data(ldev, &vbt_cmd);
606 u32 get_crtc_encoder_id(struct loongson_drm_device *ldev, u32 index)
616 ret = vbios_get_data(ldev, &vbt_cmd);
623 bool get_crtc_is_vb_timing(struct loongson_drm_device *ldev, u32 index)
633 ret = vbios_get_data(ldev, &vbt_cmd);
640 struct crtc_timing *get_crtc_timing(struct loongson_drm_device *ldev, u32 index)
645 u32 get_encoder_connector_id(struct loongson_drm_device *ldev, u32 index)
655 ret = vbios_get_data(ldev, &vbt_cmd);
662 u32 get_encoder_i2c_id(struct loongson_drm_device *ldev, u32 index)
672 ret = vbios_get_data(ldev, &vbt_cmd);
679 struct cfg_encoder *get_encoder_config(struct loongson_drm_device *ldev, u32 index)
688 ret = vbios_get_data(ldev, &vbt_cmd);
695 u32 get_encoder_cfg_num(struct loongson_drm_device *ldev, u32 index)
705 ret = vbios_get_data(ldev, &vbt_cmd);
712 enum encoder_config get_encoder_config_type(struct loongson_drm_device *ldev,
723 ret = vbios_get_data(ldev, &vbt_cmd);
730 enum encoder_object get_encoder_chip(struct loongson_drm_device *ldev, u32 index)
740 ret = vbios_get_data(ldev, &vbt_cmd);
747 u8 get_encoder_chip_addr(struct loongson_drm_device *ldev, u32 index)
757 ret = vbios_get_data(ldev, &vbt_cmd);
764 enum encoder_type get_encoder_type(struct loongson_drm_device *ldev, u32 index)
774 ret = vbios_get_data(ldev, &vbt_cmd);
781 bool get_loongson_i2c(struct loongson_drm_device *ldev)
788 vbt_cmd.res = (void *)&ldev->i2c_bus;
789 ret = vbios_get_data(ldev, &vbt_cmd);
792 ldev->i2c_bus[0].use = true;
793 ldev->i2c_bus[1].use = true;
799 static void *get_vbios_from_acpi(struct loongson_drm_device *ldev)
826 static void *get_vbios_from_vram(struct loongson_drm_device *ldev)
829 u64 vram_base = pci_resource_start(ldev->gpu_pdev, 2);
830 u64 vram_size = pci_resource_len(ldev->gpu_pdev, 2);
855 bool loongson_vbios_init(struct loongson_drm_device *ldev)
860 vbios = get_vbios_from_vram(ldev);
864 vbios = get_vbios_from_acpi(ldev);
876 header = ldev->vbios = vbios;
877 ldev->num_crtc = header->crtc_num;
882 INIT_LIST_HEAD(&ldev->desc_list);
883 parse_vbios_desc(ldev);
888 void loongson_vbios_exit(struct loongson_drm_device *ldev)
890 free_desc_list(ldev);
891 kfree(ldev->vbios);