linux/include/linux/sysfb.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-or-later */
   2#ifndef _LINUX_SYSFB_H
   3#define _LINUX_SYSFB_H
   4
   5/*
   6 * Generic System Framebuffers on x86
   7 * Copyright (c) 2012-2013 David Herrmann <dh.herrmann@gmail.com>
   8 */
   9
  10#include <linux/kernel.h>
  11#include <linux/platform_data/simplefb.h>
  12#include <linux/screen_info.h>
  13
  14enum {
  15        M_I17,          /* 17-Inch iMac */
  16        M_I20,          /* 20-Inch iMac */
  17        M_I20_SR,       /* 20-Inch iMac (Santa Rosa) */
  18        M_I24,          /* 24-Inch iMac */
  19        M_I24_8_1,      /* 24-Inch iMac, 8,1th gen */
  20        M_I24_10_1,     /* 24-Inch iMac, 10,1th gen */
  21        M_I27_11_1,     /* 27-Inch iMac, 11,1th gen */
  22        M_MINI,         /* Mac Mini */
  23        M_MINI_3_1,     /* Mac Mini, 3,1th gen */
  24        M_MINI_4_1,     /* Mac Mini, 4,1th gen */
  25        M_MB,           /* MacBook */
  26        M_MB_2,         /* MacBook, 2nd rev. */
  27        M_MB_3,         /* MacBook, 3rd rev. */
  28        M_MB_5_1,       /* MacBook, 5th rev. */
  29        M_MB_6_1,       /* MacBook, 6th rev. */
  30        M_MB_7_1,       /* MacBook, 7th rev. */
  31        M_MB_SR,        /* MacBook, 2nd gen, (Santa Rosa) */
  32        M_MBA,          /* MacBook Air */
  33        M_MBA_3,        /* Macbook Air, 3rd rev */
  34        M_MBP,          /* MacBook Pro */
  35        M_MBP_2,        /* MacBook Pro 2nd gen */
  36        M_MBP_2_2,      /* MacBook Pro 2,2nd gen */
  37        M_MBP_SR,       /* MacBook Pro (Santa Rosa) */
  38        M_MBP_4,        /* MacBook Pro, 4th gen */
  39        M_MBP_5_1,      /* MacBook Pro, 5,1th gen */
  40        M_MBP_5_2,      /* MacBook Pro, 5,2th gen */
  41        M_MBP_5_3,      /* MacBook Pro, 5,3rd gen */
  42        M_MBP_6_1,      /* MacBook Pro, 6,1th gen */
  43        M_MBP_6_2,      /* MacBook Pro, 6,2th gen */
  44        M_MBP_7_1,      /* MacBook Pro, 7,1th gen */
  45        M_MBP_8_2,      /* MacBook Pro, 8,2nd gen */
  46        M_UNKNOWN       /* placeholder */
  47};
  48
  49struct efifb_dmi_info {
  50        char *optname;
  51        unsigned long base;
  52        int stride;
  53        int width;
  54        int height;
  55        int flags;
  56};
  57
  58#ifdef CONFIG_EFI
  59
  60extern struct efifb_dmi_info efifb_dmi_list[];
  61void sysfb_apply_efi_quirks(struct platform_device *pd);
  62
  63#else /* CONFIG_EFI */
  64
  65static inline void sysfb_apply_efi_quirks(struct platform_device *pd)
  66{
  67}
  68
  69#endif /* CONFIG_EFI */
  70
  71#ifdef CONFIG_SYSFB_SIMPLEFB
  72
  73bool sysfb_parse_mode(const struct screen_info *si,
  74                      struct simplefb_platform_data *mode);
  75int sysfb_create_simplefb(const struct screen_info *si,
  76                          const struct simplefb_platform_data *mode);
  77
  78#else /* CONFIG_SYSFB_SIMPLE */
  79
  80static inline bool sysfb_parse_mode(const struct screen_info *si,
  81                                    struct simplefb_platform_data *mode)
  82{
  83        return false;
  84}
  85
  86static inline int sysfb_create_simplefb(const struct screen_info *si,
  87                                         const struct simplefb_platform_data *mode)
  88{
  89        return -EINVAL;
  90}
  91
  92#endif /* CONFIG_SYSFB_SIMPLE */
  93
  94#endif /* _LINUX_SYSFB_H */
  95