]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge remote-tracking branch 'drm-panel/drm/panel/for-next'
authorStephen Rothwell <sfr@canb.auug.org.au>
Tue, 8 Mar 2016 01:08:15 +0000 (12:08 +1100)
committerStephen Rothwell <sfr@canb.auug.org.au>
Tue, 8 Mar 2016 01:08:15 +0000 (12:08 +1100)
1  2 
Documentation/devicetree/bindings/vendor-prefixes.txt
drivers/gpu/drm/panel/panel-simple.c
include/drm/drm_crtc.h

index 0b56b07adbe69c1e76a2aa47676b303ccd0b43bc,1bcef7300b37649392b068cc7e7d4dee1f813b03..fb962af46ea1db184d567e6088018fa24a7c374d
@@@ -10,7 -10,6 +10,7 @@@ ad    Avionic Design Gmb
  adapteva      Adapteva, Inc.
  adh   AD Holdings Plc.
  adi   Analog Devices, Inc.
 +advantech     Advantech Corporation
  aeroflexgaisler       Aeroflex Gaisler AB
  al    Annapurna Labs
  allwinner     Allwinner Technology Co., Ltd.
@@@ -88,7 -87,6 +88,7 @@@ fcs   Fairchild Semiconducto
  firefly       Firefly
  focaltech     FocalTech Systems Co.,Ltd
  fsl   Freescale Semiconductor
 +ge    General Electric Company
  GEFanuc       GE Fanuc Intelligent Platforms Embedded Systems, Inc.
  gef   GE Fanuc Intelligent Platforms Embedded Systems, Inc.
  geniatech     Geniatech, Inc.
@@@ -113,7 -111,6 +113,7 @@@ hp Hewlett Packar
  i2se  I2SE GmbH
  ibm   International Business Machines (IBM)
  idt   Integrated Device Technologies, Inc.
 +ifi   Ingenieurburo Fur Ic-Technologie (I/F/I)
  iom   Iomega Corporation
  img   Imagination Technologies Ltd.
  ingenic       Ingenic Semiconductor
@@@ -173,7 -170,6 +173,7 @@@ opencores  OpenCores.or
  option        Option NV
  ortustech     Ortus Technology Co., Ltd.
  ovti  OmniVision Technologies
 +ORCL  Oracle Corporation
  panasonic     Panasonic Corporation
  parade        Parade Technologies Inc.
  pericom       Pericom Technology Inc.
@@@ -231,7 -227,6 +231,7 @@@ startek    Starte
  ste   ST-Ericsson
  stericsson    ST-Ericsson
  synology      Synology, Inc.
 +SUNW  Sun Microsystems, Inc
  tbs   TBS Technologies
  tcl   Toby Churchill Ltd.
  technologic   Technologic Systems
@@@ -245,6 -240,7 +245,7 @@@ tplink     TP-LINK Technologies Co., Ltd
  tronfy        Tronfy
  truly Truly Semiconductors Limited
  upisemi       uPI Semiconductor Corp.
+ urt   United Radiant Technology Corporation
  usi   Universal Scientific Industrial Co., Ltd.
  v3    V3 Semiconductor
  variscite     Variscite Ltd.
index 2164c999052cd58f78c040c8aa79ca252c2d4083,1d194c8581dc72f7889e308684f00c1b2fc458af..ceb20486dacf4edb314f16adc241140dba8164c5
@@@ -847,6 -847,7 +847,7 @@@ static const struct drm_display_mode in
        .vsync_end = 768 + 38 + 1,
        .vtotal = 768 + 38 + 1 + 0,
        .vrefresh = 60,
+       .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
  };
  
  static const struct panel_desc innolux_g121x1_l03 = {
@@@ -982,6 -983,29 +983,29 @@@ static const struct panel_desc lg_lb070
        .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
  };
  
+ static const struct drm_display_mode lg_lp120up1_mode = {
+       .clock = 162300,
+       .hdisplay = 1920,
+       .hsync_start = 1920 + 40,
+       .hsync_end = 1920 + 40 + 40,
+       .htotal = 1920 + 40 + 40+ 80,
+       .vdisplay = 1280,
+       .vsync_start = 1280 + 4,
+       .vsync_end = 1280 + 4 + 4,
+       .vtotal = 1280 + 4 + 4 + 12,
+       .vrefresh = 60,
+ };
+ static const struct panel_desc lg_lp120up1 = {
+       .modes = &lg_lp120up1_mode,
+       .num_modes = 1,
+       .bpc = 8,
+       .size = {
+               .width = 267,
+               .height = 183,
+       },
+ };
  static const struct drm_display_mode lg_lp129qe_mode = {
        .clock = 285250,
        .hdisplay = 2560,
@@@ -1016,7 -1040,6 +1040,7 @@@ static const struct drm_display_mode ne
        .vsync_end = 272 + 2 + 4,
        .vtotal = 272 + 2 + 4 + 2,
        .vrefresh = 74,
 +      .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
  };
  
  static const struct panel_desc nec_nl4827hc19_05b = {
@@@ -1177,6 -1200,42 +1201,42 @@@ static const struct panel_desc shelly_s
        .bus_format = MEDIA_BUS_FMT_RGB666_1X18,
  };
  
+ static const struct display_timing urt_umsh_8596md_timing = {
+       .pixelclock = { 33260000, 33260000, 33260000 },
+       .hactive = { 800, 800, 800 },
+       .hfront_porch = { 41, 41, 41 },
+       .hback_porch = { 216 - 128, 216 - 128, 216 - 128 },
+       .hsync_len = { 71, 128, 128 },
+       .vactive = { 480, 480, 480 },
+       .vfront_porch = { 10, 10, 10 },
+       .vback_porch = { 35 - 2, 35 - 2, 35 - 2 },
+       .vsync_len = { 2, 2, 2 },
+       .flags = DISPLAY_FLAGS_DE_HIGH | DISPLAY_FLAGS_PIXDATA_NEGEDGE |
+               DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
+ };
+ static const struct panel_desc urt_umsh_8596md_lvds = {
+       .timings = &urt_umsh_8596md_timing,
+       .num_timings = 1,
+       .bpc = 6,
+       .size = {
+               .width = 152,
+               .height = 91,
+       },
+       .bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+ };
+ static const struct panel_desc urt_umsh_8596md_parallel = {
+       .timings = &urt_umsh_8596md_timing,
+       .num_timings = 1,
+       .bpc = 6,
+       .size = {
+               .width = 152,
+               .height = 91,
+       },
+       .bus_format = MEDIA_BUS_FMT_RGB666_1X18,
+ };
  static const struct of_device_id platform_of_match[] = {
        {
                .compatible = "ampire,am800480r3tmqwa1h",
        }, {
                .compatible = "lg,lb070wv8",
                .data = &lg_lb070wv8,
+       }, {
+               .compatible = "lg,lp120up1",
+               .data = &lg_lp120up1,
        }, {
                .compatible = "lg,lp129qe",
                .data = &lg_lp129qe,
        }, {
                .compatible = "shelly,sca07010-bfn-lnn",
                .data = &shelly_sca07010_bfn_lnn,
+       }, {
+               .compatible = "urt,umsh-8596md-t",
+               .data = &urt_umsh_8596md_parallel,
+       }, {
+               .compatible = "urt,umsh-8596md-1t",
+               .data = &urt_umsh_8596md_parallel,
+       }, {
+               .compatible = "urt,umsh-8596md-7t",
+               .data = &urt_umsh_8596md_parallel,
+       }, {
+               .compatible = "urt,umsh-8596md-11t",
+               .data = &urt_umsh_8596md_lvds,
+       }, {
+               .compatible = "urt,umsh-8596md-19t",
+               .data = &urt_umsh_8596md_lvds,
+       }, {
+               .compatible = "urt,umsh-8596md-20t",
+               .data = &urt_umsh_8596md_parallel,
        }, {
                /* sentinel */
        }
diff --combined include/drm/drm_crtc.h
index 7fad193dc6450fcece806ba020a79617ab916613,f336671ca9324c3e61758844b9a0038b06226346..fbc225414f010cc60a0600f6d60a3ff1b5b3016f
@@@ -307,7 -307,6 +307,7 @@@ struct drm_plane_helper_funcs
   * @connectors_changed: connectors to this crtc have been updated
   * @plane_mask: bitmask of (1 << drm_plane_index(plane)) of attached planes
   * @connector_mask: bitmask of (1 << drm_connector_index(connector)) of attached connectors
 + * @encoder_mask: bitmask of (1 << drm_encoder_index(encoder)) of attached encoders
   * @last_vblank_count: for helpers and drivers to capture the vblank of the
   *    update to ensure framebuffer cleanup isn't done too early
   * @adjusted_mode: for use by helpers and drivers to compute adjusted mode timings
@@@ -342,7 -341,6 +342,7 @@@ struct drm_crtc_state 
        u32 plane_mask;
  
        u32 connector_mask;
 +      u32 encoder_mask;
  
        /* last_vblank_count: for vblank waits before cleanup */
        u32 last_vblank_count;
@@@ -1168,7 -1166,6 +1168,7 @@@ struct drm_connector 
        struct drm_mode_object base;
  
        char *name;
 +      int connector_id;
        int connector_type;
        int connector_type_id;
        bool interlace_allowed;
@@@ -1584,6 -1581,8 +1584,8 @@@ struct drm_bridge_funcs 
         *
         * The bridge can assume that the display pipe (i.e. clocks and timing
         * signals) feeding it is still running when this callback is called.
+        *
+        * The disable callback is optional.
         */
        void (*disable)(struct drm_bridge *bridge);
  
         * The bridge must assume that the display pipe (i.e. clocks and timing
         * singals) feeding it is no longer running when this callback is
         * called.
+        *
+        * The post_disable callback is optional.
         */
        void (*post_disable)(struct drm_bridge *bridge);
  
         * will not yet be running when this callback is called. The bridge must
         * not enable the display link feeding the next bridge in the chain (if
         * there is one) when this callback is called.
+        *
+        * The pre_enable callback is optional.
         */
        void (*pre_enable)(struct drm_bridge *bridge);
  
         * signals) feeding it is running when this callback is called. This
         * callback must enable the display link feeding the next bridge in the
         * chain if there is one.
+        *
+        * The enable callback is optional.
         */
        void (*enable)(struct drm_bridge *bridge);
  };
@@@ -2050,7 -2055,6 +2058,7 @@@ struct drm_mode_config 
        struct list_head fb_list;
  
        int num_connector;
 +      struct ida connector_ida;
        struct list_head connector_list;
        int num_encoder;
        struct list_head encoder_list;
        list_for_each_entry((plane), &(dev)->mode_config.plane_list, head) \
                for_each_if ((plane_mask) & (1 << drm_plane_index(plane)))
  
 +/**
 + * drm_for_each_encoder_mask - iterate over encoders specified by bitmask
 + * @encoder: the loop cursor
 + * @dev: the DRM device
 + * @encoder_mask: bitmask of encoder indices
 + *
 + * Iterate over all encoders specified by bitmask.
 + */
 +#define drm_for_each_encoder_mask(encoder, dev, encoder_mask) \
 +      list_for_each_entry((encoder), &(dev)->mode_config.encoder_list, head) \
 +              for_each_if ((encoder_mask) & (1 << drm_encoder_index(encoder)))
  
  #define obj_to_crtc(x) container_of(x, struct drm_crtc, base)
  #define obj_to_connector(x) container_of(x, struct drm_connector, base)
@@@ -2215,11 -2208,7 +2223,11 @@@ int drm_connector_register(struct drm_c
  void drm_connector_unregister(struct drm_connector *connector);
  
  extern void drm_connector_cleanup(struct drm_connector *connector);
 -extern unsigned int drm_connector_index(struct drm_connector *connector);
 +static inline unsigned drm_connector_index(struct drm_connector *connector)
 +{
 +      return connector->connector_id;
 +}
 +
  /* helper to unplug all connectors from sysfs for device */
  extern void drm_connector_unplug_all(struct drm_device *dev);
  
@@@ -2244,7 -2233,6 +2252,7 @@@ int drm_encoder_init(struct drm_device 
                     struct drm_encoder *encoder,
                     const struct drm_encoder_funcs *funcs,
                     int encoder_type, const char *name, ...);
 +extern unsigned int drm_encoder_index(struct drm_encoder *encoder);
  
  /**
   * drm_encoder_crtc_ok - can a given crtc drive a given encoder?
@@@ -2302,8 -2290,6 +2310,8 @@@ extern void drm_property_destroy_user_b
  extern bool drm_probe_ddc(struct i2c_adapter *adapter);
  extern struct edid *drm_get_edid(struct drm_connector *connector,
                                 struct i2c_adapter *adapter);
 +extern struct edid *drm_get_edid_switcheroo(struct drm_connector *connector,
 +                                          struct i2c_adapter *adapter);
  extern struct edid *drm_edid_duplicate(const struct edid *edid);
  extern int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid);
  extern void drm_mode_config_init(struct drm_device *dev);
@@@ -2504,8 -2490,6 +2512,8 @@@ extern int drm_format_num_planes(uint32
  extern int drm_format_plane_cpp(uint32_t format, int plane);
  extern int drm_format_horz_chroma_subsampling(uint32_t format);
  extern int drm_format_vert_chroma_subsampling(uint32_t format);
 +extern int drm_format_plane_width(int width, uint32_t format, int plane);
 +extern int drm_format_plane_height(int height, uint32_t format, int plane);
  extern const char *drm_get_format_name(uint32_t format);
  extern struct drm_property *drm_mode_create_rotation_property(struct drm_device *dev,
                                                              unsigned int supported_rotations);