Merge branch 'fbdev-next' of git://github.com/schandinat/linux-2.6
* 'fbdev-next' of git://github.com/schandinat/linux-2.6: (175 commits) module_param: make bool parameters really bool (drivers/video/i810) Revert "atmel_lcdfb: Adjust HFP calculation so it matches the manual." OMAPDSS: HDMI: Disable DDC internal pull up OMAPDSS: HDMI: Move duplicate code from boardfile OMAPDSS: add OrtusTech COM43H4M10XTC display support OMAP: DSS2: Support for UMSH-8173MD TFT panel ASoC: OMAP: HDMI: Move HDMI codec trigger function to generic HDMI driver OMAPDSS: HDMI: Create function to enable HDMI audio ASoC: OMAP: HDMI: Correct signature of ASoC functions ASoC: OMAP: HDMI: Introduce driver data for audio codec grvga: fix section mismatch warnings video: s3c-fb: Don't keep device runtime active when open video: s3c-fb: Hold runtime PM references when touching registers video: s3c-fb: Take a runtime PM reference when unblanked video: s3c-fb: Disable runtime PM in error paths from probe video: s3c-fb: Use s3c_fb_enable() to enable the framebuffer video: s3c-fb: Make runtime PM functional again drivers/video: fsl-diu-fb: merge fsl_diu_alloc() into map_video_memory() drivers/video: fsl-diu-fb: add default platform ops functions drivers/video: fsl-diu-fb: remove broken reference count enabling the display ...
This commit is contained in:
@@ -1,61 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2006 James Simmons <jsimmons@infradead.org>
|
||||
*
|
||||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||
*
|
||||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_DISPLAY_H
|
||||
#define _LINUX_DISPLAY_H
|
||||
|
||||
#include <linux/device.h>
|
||||
|
||||
struct display_device;
|
||||
|
||||
/* This structure defines all the properties of a Display. */
|
||||
struct display_driver {
|
||||
int (*set_contrast)(struct display_device *, unsigned int);
|
||||
int (*get_contrast)(struct display_device *);
|
||||
void (*suspend)(struct display_device *, pm_message_t state);
|
||||
void (*resume)(struct display_device *);
|
||||
int (*probe)(struct display_device *, void *);
|
||||
int (*remove)(struct display_device *);
|
||||
int max_contrast;
|
||||
};
|
||||
|
||||
struct display_device {
|
||||
struct module *owner; /* Owner module */
|
||||
struct display_driver *driver;
|
||||
struct device *parent; /* This is the parent */
|
||||
struct device *dev; /* This is this display device */
|
||||
struct mutex lock;
|
||||
void *priv_data;
|
||||
char type[16];
|
||||
char *name;
|
||||
int idx;
|
||||
};
|
||||
|
||||
extern struct display_device *display_device_register(struct display_driver *driver,
|
||||
struct device *dev, void *devdata);
|
||||
extern void display_device_unregister(struct display_device *dev);
|
||||
|
||||
extern int probe_edid(struct display_device *dev, void *devdata);
|
||||
|
||||
#define to_display_device(obj) container_of(obj, struct display_device, class_dev)
|
||||
|
||||
#endif
|
||||
+10
-4
@@ -45,6 +45,7 @@
|
||||
#define FB_TYPE_INTERLEAVED_PLANES 2 /* Interleaved planes */
|
||||
#define FB_TYPE_TEXT 3 /* Text/attributes */
|
||||
#define FB_TYPE_VGA_PLANES 4 /* EGA/VGA planes */
|
||||
#define FB_TYPE_FOURCC 5 /* Type identified by a V4L2 FOURCC */
|
||||
|
||||
#define FB_AUX_TEXT_MDA 0 /* Monochrome text */
|
||||
#define FB_AUX_TEXT_CGA 1 /* CGA/EGA/VGA Color text */
|
||||
@@ -69,6 +70,7 @@
|
||||
#define FB_VISUAL_PSEUDOCOLOR 3 /* Pseudo color (like atari) */
|
||||
#define FB_VISUAL_DIRECTCOLOR 4 /* Direct color */
|
||||
#define FB_VISUAL_STATIC_PSEUDOCOLOR 5 /* Pseudo color readonly */
|
||||
#define FB_VISUAL_FOURCC 6 /* Visual identified by a V4L2 FOURCC */
|
||||
|
||||
#define FB_ACCEL_NONE 0 /* no hardware accelerator */
|
||||
#define FB_ACCEL_ATARIBLITT 1 /* Atari Blitter */
|
||||
@@ -154,6 +156,8 @@
|
||||
|
||||
#define FB_ACCEL_PUV3_UNIGFX 0xa0 /* PKUnity-v3 Unigfx */
|
||||
|
||||
#define FB_CAP_FOURCC 1 /* Device supports FOURCC-based formats */
|
||||
|
||||
struct fb_fix_screeninfo {
|
||||
char id[16]; /* identification string eg "TT Builtin" */
|
||||
unsigned long smem_start; /* Start of frame buffer mem */
|
||||
@@ -171,7 +175,8 @@ struct fb_fix_screeninfo {
|
||||
__u32 mmio_len; /* Length of Memory Mapped I/O */
|
||||
__u32 accel; /* Indicate to driver which */
|
||||
/* specific chip/card we have */
|
||||
__u16 reserved[3]; /* Reserved for future compatibility */
|
||||
__u16 capabilities; /* see FB_CAP_* */
|
||||
__u16 reserved[2]; /* Reserved for future compatibility */
|
||||
};
|
||||
|
||||
/* Interpretation of offset for color fields: All offsets are from the right,
|
||||
@@ -246,8 +251,8 @@ struct fb_var_screeninfo {
|
||||
__u32 yoffset; /* resolution */
|
||||
|
||||
__u32 bits_per_pixel; /* guess what */
|
||||
__u32 grayscale; /* != 0 Graylevels instead of colors */
|
||||
|
||||
__u32 grayscale; /* 0 = color, 1 = grayscale, */
|
||||
/* >1 = FOURCC */
|
||||
struct fb_bitfield red; /* bitfield in fb mem if true color, */
|
||||
struct fb_bitfield green; /* else only length is significant */
|
||||
struct fb_bitfield blue;
|
||||
@@ -273,7 +278,8 @@ struct fb_var_screeninfo {
|
||||
__u32 sync; /* see FB_SYNC_* */
|
||||
__u32 vmode; /* see FB_VMODE_* */
|
||||
__u32 rotate; /* angle we rotate counter clockwise */
|
||||
__u32 reserved[5]; /* Reserved for future compatibility */
|
||||
__u32 colorspace; /* colorspace for FOURCC-based modes */
|
||||
__u32 reserved[4]; /* Reserved for future compatibility */
|
||||
};
|
||||
|
||||
struct fb_cmap {
|
||||
|
||||
@@ -343,6 +343,8 @@ struct v4l2_pix_format {
|
||||
#define V4L2_PIX_FMT_NV21 v4l2_fourcc('N', 'V', '2', '1') /* 12 Y/CrCb 4:2:0 */
|
||||
#define V4L2_PIX_FMT_NV16 v4l2_fourcc('N', 'V', '1', '6') /* 16 Y/CbCr 4:2:2 */
|
||||
#define V4L2_PIX_FMT_NV61 v4l2_fourcc('N', 'V', '6', '1') /* 16 Y/CrCb 4:2:2 */
|
||||
#define V4L2_PIX_FMT_NV24 v4l2_fourcc('N', 'V', '2', '4') /* 24 Y/CbCr 4:4:4 */
|
||||
#define V4L2_PIX_FMT_NV42 v4l2_fourcc('N', 'V', '4', '2') /* 24 Y/CrCb 4:4:4 */
|
||||
|
||||
/* two non contiguous planes - one Y, one Cr + Cb interleaved */
|
||||
#define V4L2_PIX_FMT_NV12M v4l2_fourcc('N', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 */
|
||||
|
||||
@@ -360,8 +360,8 @@
|
||||
#define ZORRO_PROD_VILLAGE_TRONIC_PICASSO_II_II_PLUS_RAM ZORRO_ID(VILLAGE_TRONIC, 0x0B, 0)
|
||||
#define ZORRO_PROD_VILLAGE_TRONIC_PICASSO_II_II_PLUS_REG ZORRO_ID(VILLAGE_TRONIC, 0x0C, 0)
|
||||
#define ZORRO_PROD_VILLAGE_TRONIC_PICASSO_II_II_PLUS_SEGMENTED_MODE ZORRO_ID(VILLAGE_TRONIC, 0x0D, 0)
|
||||
#define ZORRO_PROD_VILLAGE_TRONIC_PICASSO_IV_Z2_MEM1 ZORRO_ID(VILLAGE_TRONIC, 0x15, 0)
|
||||
#define ZORRO_PROD_VILLAGE_TRONIC_PICASSO_IV_Z2_MEM2 ZORRO_ID(VILLAGE_TRONIC, 0x16, 0)
|
||||
#define ZORRO_PROD_VILLAGE_TRONIC_PICASSO_IV_Z2_RAM1 ZORRO_ID(VILLAGE_TRONIC, 0x15, 0)
|
||||
#define ZORRO_PROD_VILLAGE_TRONIC_PICASSO_IV_Z2_RAM2 ZORRO_ID(VILLAGE_TRONIC, 0x16, 0)
|
||||
#define ZORRO_PROD_VILLAGE_TRONIC_PICASSO_IV_Z2_REG ZORRO_ID(VILLAGE_TRONIC, 0x17, 0)
|
||||
#define ZORRO_PROD_VILLAGE_TRONIC_PICASSO_IV_Z3 ZORRO_ID(VILLAGE_TRONIC, 0x18, 0)
|
||||
#define ZORRO_PROD_VILLAGE_TRONIC_ARIADNE ZORRO_ID(VILLAGE_TRONIC, 0xC9, 0)
|
||||
|
||||
+34
-24
@@ -200,6 +200,10 @@ enum omap_dss_clk_source {
|
||||
OMAP_DSS_CLK_SRC_DSI2_PLL_HSDIV_DSI, /* OMAP4: PLL2_CLK2 */
|
||||
};
|
||||
|
||||
enum omap_hdmi_flags {
|
||||
OMAP_HDMI_SDA_SCL_EXTERNAL_PULLUP = 1 << 0,
|
||||
};
|
||||
|
||||
/* RFBI */
|
||||
|
||||
struct rfbi_timings {
|
||||
@@ -294,8 +298,8 @@ int dsi_vc_set_max_rx_packet_size(struct omap_dss_device *dssdev, int channel,
|
||||
u16 len);
|
||||
int dsi_vc_send_null(struct omap_dss_device *dssdev, int channel);
|
||||
int dsi_vc_send_bta_sync(struct omap_dss_device *dssdev, int channel);
|
||||
int dsi_video_mode_enable(struct omap_dss_device *dssdev, int channel);
|
||||
void dsi_video_mode_disable(struct omap_dss_device *dssdev, int channel);
|
||||
int dsi_enable_video_output(struct omap_dss_device *dssdev, int channel);
|
||||
void dsi_disable_video_output(struct omap_dss_device *dssdev, int channel);
|
||||
|
||||
/* Board specific data */
|
||||
struct omap_dss_board_info {
|
||||
@@ -309,6 +313,8 @@ struct omap_dss_board_info {
|
||||
|
||||
/* Init with the board info */
|
||||
extern int omap_display_init(struct omap_dss_board_info *board_data);
|
||||
/* HDMI mux init*/
|
||||
extern int omap_hdmi_init(enum omap_hdmi_flags flags);
|
||||
|
||||
struct omap_display_platform_data {
|
||||
struct omap_dss_board_info *board_data;
|
||||
@@ -352,8 +358,6 @@ struct omap_dss_cpr_coefs {
|
||||
};
|
||||
|
||||
struct omap_overlay_info {
|
||||
bool enabled;
|
||||
|
||||
u32 paddr;
|
||||
u32 p_uv_addr; /* for NV12 format */
|
||||
u16 screen_width;
|
||||
@@ -385,11 +389,21 @@ struct omap_overlay {
|
||||
|
||||
/* dynamic fields */
|
||||
struct omap_overlay_manager *manager;
|
||||
struct omap_overlay_info info;
|
||||
|
||||
bool manager_changed;
|
||||
/* if true, info has been changed, but not applied() yet */
|
||||
bool info_dirty;
|
||||
/*
|
||||
* The following functions do not block:
|
||||
*
|
||||
* is_enabled
|
||||
* set_overlay_info
|
||||
* get_overlay_info
|
||||
*
|
||||
* The rest of the functions may block and cannot be called from
|
||||
* interrupt context
|
||||
*/
|
||||
|
||||
int (*enable)(struct omap_overlay *ovl);
|
||||
int (*disable)(struct omap_overlay *ovl);
|
||||
bool (*is_enabled)(struct omap_overlay *ovl);
|
||||
|
||||
int (*set_manager)(struct omap_overlay *ovl,
|
||||
struct omap_overlay_manager *mgr);
|
||||
@@ -418,23 +432,27 @@ struct omap_overlay_manager_info {
|
||||
|
||||
struct omap_overlay_manager {
|
||||
struct kobject kobj;
|
||||
struct list_head list;
|
||||
|
||||
/* static fields */
|
||||
const char *name;
|
||||
enum omap_channel id;
|
||||
enum omap_overlay_manager_caps caps;
|
||||
int num_overlays;
|
||||
struct omap_overlay **overlays;
|
||||
struct list_head overlays;
|
||||
enum omap_display_type supported_displays;
|
||||
|
||||
/* dynamic fields */
|
||||
struct omap_dss_device *device;
|
||||
struct omap_overlay_manager_info info;
|
||||
|
||||
bool device_changed;
|
||||
/* if true, info has been changed but not applied() yet */
|
||||
bool info_dirty;
|
||||
/*
|
||||
* The following functions do not block:
|
||||
*
|
||||
* set_manager_info
|
||||
* get_manager_info
|
||||
* apply
|
||||
*
|
||||
* The rest of the functions may block and cannot be called from
|
||||
* interrupt context
|
||||
*/
|
||||
|
||||
int (*set_device)(struct omap_overlay_manager *mgr,
|
||||
struct omap_dss_device *dssdev);
|
||||
@@ -448,9 +466,6 @@ struct omap_overlay_manager {
|
||||
int (*apply)(struct omap_overlay_manager *mgr);
|
||||
int (*wait_for_go)(struct omap_overlay_manager *mgr);
|
||||
int (*wait_for_vsync)(struct omap_overlay_manager *mgr);
|
||||
|
||||
int (*enable)(struct omap_overlay_manager *mgr);
|
||||
int (*disable)(struct omap_overlay_manager *mgr);
|
||||
};
|
||||
|
||||
struct omap_dss_device {
|
||||
@@ -662,12 +677,7 @@ void omapdss_dsi_vc_enable_hs(struct omap_dss_device *dssdev, int channel,
|
||||
bool enable);
|
||||
int omapdss_dsi_enable_te(struct omap_dss_device *dssdev, bool enable);
|
||||
|
||||
int omap_dsi_prepare_update(struct omap_dss_device *dssdev,
|
||||
u16 *x, u16 *y, u16 *w, u16 *h,
|
||||
bool enlarge_update_area);
|
||||
int omap_dsi_update(struct omap_dss_device *dssdev,
|
||||
int channel,
|
||||
u16 x, u16 y, u16 w, u16 h,
|
||||
int omap_dsi_update(struct omap_dss_device *dssdev, int channel,
|
||||
void (*callback)(int, void *), void *data);
|
||||
int omap_dsi_request_vc(struct omap_dss_device *dssdev, int *channel);
|
||||
int omap_dsi_set_vc_id(struct omap_dss_device *dssdev, int channel, int vc_id);
|
||||
|
||||
@@ -28,14 +28,33 @@ enum sh_mipi_dsi_data_fmt {
|
||||
struct sh_mobile_lcdc_chan_cfg;
|
||||
|
||||
#define SH_MIPI_DSI_HSABM (1 << 0)
|
||||
#define SH_MIPI_DSI_HSPBM (1 << 1)
|
||||
#define SH_MIPI_DSI_HBPBM (1 << 1)
|
||||
#define SH_MIPI_DSI_HFPBM (1 << 2)
|
||||
#define SH_MIPI_DSI_BL2E (1 << 3)
|
||||
#define SH_MIPI_DSI_VSEE (1 << 4)
|
||||
#define SH_MIPI_DSI_HSEE (1 << 5)
|
||||
#define SH_MIPI_DSI_HSAE (1 << 6)
|
||||
|
||||
#define SH_MIPI_DSI_HSbyteCLK (1 << 24)
|
||||
#define SH_MIPI_DSI_HS6divCLK (1 << 25)
|
||||
#define SH_MIPI_DSI_HS4divCLK (1 << 26)
|
||||
|
||||
#define SH_MIPI_DSI_SYNC_PULSES_MODE (SH_MIPI_DSI_VSEE | \
|
||||
SH_MIPI_DSI_HSEE | \
|
||||
SH_MIPI_DSI_HSAE)
|
||||
#define SH_MIPI_DSI_SYNC_EVENTS_MODE (0)
|
||||
#define SH_MIPI_DSI_SYNC_BURST_MODE (SH_MIPI_DSI_BL2E)
|
||||
|
||||
struct sh_mipi_dsi_info {
|
||||
enum sh_mipi_dsi_data_fmt data_format;
|
||||
struct sh_mobile_lcdc_chan_cfg *lcd_chan;
|
||||
int lane;
|
||||
unsigned long flags;
|
||||
u32 clksrc;
|
||||
unsigned int vsynw_offset;
|
||||
int (*set_dot_clock)(struct platform_device *pdev,
|
||||
void __iomem *base,
|
||||
int enable);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -174,7 +174,8 @@ struct sh_mobile_lcdc_bl_info {
|
||||
|
||||
struct sh_mobile_lcdc_chan_cfg {
|
||||
int chan;
|
||||
int bpp;
|
||||
int fourcc;
|
||||
int colorspace;
|
||||
int interface_type; /* selects RGBn or SYSn I/F, see above */
|
||||
int clock_divider;
|
||||
unsigned long flags; /* LCDC_FLAGS_... */
|
||||
@@ -184,7 +185,6 @@ struct sh_mobile_lcdc_chan_cfg {
|
||||
struct sh_mobile_lcdc_board_cfg board_cfg;
|
||||
struct sh_mobile_lcdc_bl_info bl_info;
|
||||
struct sh_mobile_lcdc_sys_bus_cfg sys_bus_cfg; /* only for SYSn I/F */
|
||||
int nonstd;
|
||||
struct sh_mobile_meram_cfg *meram_cfg;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user