mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-12-29 09:16:33 +00:00
fbdev fixes and cleanups for 6.11-rc1:
- Detect VGA compatibility from VESA attributes [Thomas Zimmermann] - Make I2C terminology more inclusive in smscufx and viafb [Easwar Hariharan] - Add lots of missing MODULE_DESCRIPTION() macros [Jeff Johnson] - Logo code cleanups [Geert Uytterhoeven] - Minor fixes by Chen Ni, Kuninori Morimoto, Uwe Kleine-König and Christophe Jaillett -----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQS86RI+GtKfB8BJu973ErUQojoPXwUCZpkiYAAKCRD3ErUQojoP Xy4ZAQCKZ8G0TrqWiYA6Yt2N60SWSLnBJfNh+ryxmi2fwBPnMwEAhBvOLsAf271X h148CiCXJBfD/IzWJH0s0ogrBbM0Cgo= =Plcw -----END PGP SIGNATURE----- Merge tag 'fbdev-for-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev Pull fbdev updates from Helge Deller: - Detect VGA compatibility from VESA attributes (Thomas Zimmermann) - Make I2C terminology more inclusive in smscufx and viafb (Easwar Hariharan) - Add lots of missing MODULE_DESCRIPTION() macros (Jeff Johnson) - Logo code cleanups (Geert Uytterhoeven) - Minor fixes by Chen Ni, Kuninori Morimoto, Uwe Kleine-König and Christophe Jaillett * tag 'fbdev-for-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev: (21 commits) fbdev: viafb: Make I2C terminology more inclusive fbdev: smscufx: Make I2C terminology more inclusive fbdev: omap2: Return clk_prepare_enable to transfer the error fbdev: mmp: Constify struct mmp_overlay_ops fbdev: Drop explicit initialization of struct i2c_device_id::driver_data to 0 video: agp: add remaining missing MODULE_DESCRIPTION() macros video: console: add missing MODULE_DESCRIPTION() macros fbdev: amifb: add missing MODULE_DESCRIPTION() macro fbdev: c2p_planar: add missing MODULE_DESCRIPTION() macro fbdev: vesafb: Detect VGA compatibility from screen info's VESA attributes fbdev: omapfb: use of_graph_get_remote_port() fbdev: omapdss: use for_each_endpoint_of_node() fbdev: offb: add missing MODULE_DESCRIPTION() macro fbdev: vfb: add missing MODULE_DESCRIPTION() macro fbdev: macmodes: add missing MODULE_DESCRIPTION() macro fbdev: goldfishfb: add missing MODULE_DESCRIPTION() macro fbdev: kyro: add missing MODULE_DESCRIPTION() macro fbdev: viafb: add missing MODULE_DESCRIPTION() macro fbdev: matroxfb: add missing MODULE_DESCRIPTION() macros video/logo: Remove linux_serial_image comments ...
This commit is contained in:
commit
cb273eb7c8
@ -418,5 +418,6 @@ module_init(agp_ali_init);
|
||||
module_exit(agp_ali_cleanup);
|
||||
|
||||
MODULE_AUTHOR("Dave Jones");
|
||||
MODULE_DESCRIPTION("ALi AGPGART routines");
|
||||
MODULE_LICENSE("GPL and additional rights");
|
||||
|
||||
|
@ -217,4 +217,5 @@ module_init(agp_alpha_core_init);
|
||||
module_exit(agp_alpha_core_cleanup);
|
||||
|
||||
MODULE_AUTHOR("Jeff Wiedemeier <Jeff.Wiedemeier@hp.com>");
|
||||
MODULE_DESCRIPTION("Alpha AGP support");
|
||||
MODULE_LICENSE("GPL and additional rights");
|
||||
|
@ -549,4 +549,5 @@ static void __exit agp_amdk7_cleanup(void)
|
||||
module_init(agp_amdk7_init);
|
||||
module_exit(agp_amdk7_cleanup);
|
||||
|
||||
MODULE_DESCRIPTION("AMD K7 AGPGART routines");
|
||||
MODULE_LICENSE("GPL and additional rights");
|
||||
|
@ -572,5 +572,6 @@ module_init(agp_ati_init);
|
||||
module_exit(agp_ati_cleanup);
|
||||
|
||||
MODULE_AUTHOR("Dave Jones");
|
||||
MODULE_DESCRIPTION("ATi AGPGART routines");
|
||||
MODULE_LICENSE("GPL and additional rights");
|
||||
|
||||
|
@ -465,4 +465,5 @@ module_init(agp_efficeon_init);
|
||||
module_exit(agp_efficeon_cleanup);
|
||||
|
||||
MODULE_AUTHOR("Carlos Puchol <cpglinux@puchol.com>");
|
||||
MODULE_DESCRIPTION("Transmeta's Efficeon AGPGART driver");
|
||||
MODULE_LICENSE("GPL and additional rights");
|
||||
|
@ -462,6 +462,7 @@ static void __exit agp_nvidia_cleanup(void)
|
||||
module_init(agp_nvidia_init);
|
||||
module_exit(agp_nvidia_cleanup);
|
||||
|
||||
MODULE_DESCRIPTION("Nvidia AGPGART routines");
|
||||
MODULE_LICENSE("GPL and additional rights");
|
||||
MODULE_AUTHOR("NVIDIA Corporation");
|
||||
|
||||
|
@ -432,4 +432,5 @@ parisc_agp_init(void)
|
||||
module_init(parisc_agp_init);
|
||||
|
||||
MODULE_AUTHOR("Kyle McMartin <kyle@parisc-linux.org>");
|
||||
MODULE_DESCRIPTION("HP Quicksilver AGP GART routines");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
@ -564,5 +564,6 @@ static void __exit agp_serverworks_cleanup(void)
|
||||
module_init(agp_serverworks_init);
|
||||
module_exit(agp_serverworks_cleanup);
|
||||
|
||||
MODULE_DESCRIPTION("Serverworks AGPGART routines");
|
||||
MODULE_LICENSE("GPL and additional rights");
|
||||
|
||||
|
@ -561,5 +561,6 @@ static void __exit mda_console_exit(void)
|
||||
module_init(mda_console_init);
|
||||
module_exit(mda_console_exit);
|
||||
|
||||
MODULE_DESCRIPTION("MDA based console driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
|
@ -744,4 +744,5 @@ static struct gio_driver newport_driver = {
|
||||
};
|
||||
module_driver(newport_driver, gio_register_driver, gio_unregister_driver);
|
||||
|
||||
MODULE_DESCRIPTION("SGI Newport console driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
@ -391,4 +391,5 @@ static int __init sticonsole_init(void)
|
||||
}
|
||||
|
||||
module_init(sticonsole_init);
|
||||
MODULE_DESCRIPTION("HP STI console driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
@ -1222,4 +1222,5 @@ void vgacon_register_screen(struct screen_info *si)
|
||||
vga_si = si;
|
||||
}
|
||||
|
||||
MODULE_DESCRIPTION("VGA based console driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
@ -3782,5 +3782,6 @@ static struct platform_driver amifb_driver __refdata = {
|
||||
|
||||
module_platform_driver_probe(amifb_driver, amifb_probe);
|
||||
|
||||
MODULE_DESCRIPTION("Amiga builtin chipset frame buffer driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_ALIAS("platform:amiga-video");
|
||||
|
@ -153,4 +153,5 @@ void c2p_planar(void *dst, const void *src, u32 dx, u32 dy, u32 width,
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(c2p_planar);
|
||||
|
||||
MODULE_DESCRIPTION("Fast C2P (Chunky-to-Planar) Conversion");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
@ -321,4 +321,5 @@ static struct platform_driver goldfish_fb_driver = {
|
||||
|
||||
module_platform_driver(goldfish_fb_driver);
|
||||
|
||||
MODULE_DESCRIPTION("Goldfish Virtual Platform Framebuffer driver");
|
||||
MODULE_LICENSE("GPL v2");
|
||||
|
@ -811,4 +811,5 @@ module_exit(kyrofb_exit);
|
||||
#endif
|
||||
|
||||
MODULE_AUTHOR("STMicroelectronics; Paul Mundt <lethal@linux-sh.org>");
|
||||
MODULE_DESCRIPTION("STG4000/Kyro/PowerVR 3 driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
@ -411,4 +411,5 @@ int mac_find_mode(struct fb_var_screeninfo *var, struct fb_info *info,
|
||||
}
|
||||
EXPORT_SYMBOL(mac_find_mode);
|
||||
|
||||
MODULE_DESCRIPTION("MacOS video mode library");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
@ -1111,4 +1111,5 @@ EXPORT_SYMBOL(matrox_G100);
|
||||
EXPORT_SYMBOL(DAC1064_global_init);
|
||||
EXPORT_SYMBOL(DAC1064_global_restore);
|
||||
#endif
|
||||
MODULE_DESCRIPTION("Matrox Mystique/G100 output driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
@ -746,4 +746,5 @@ struct matrox_switch matrox_millennium = {
|
||||
};
|
||||
EXPORT_SYMBOL(matrox_millennium);
|
||||
#endif
|
||||
MODULE_DESCRIPTION("Matrox Millennium output driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
@ -517,4 +517,5 @@ static void matroxfb_imageblit(struct fb_info* info, const struct fb_image* imag
|
||||
}
|
||||
}
|
||||
|
||||
MODULE_DESCRIPTION("Accelerated fbops for Matrox Millennium/Mystique/G100/G200/G400/G450/G550");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
@ -1282,7 +1282,7 @@ static void maven_remove(struct i2c_client *client)
|
||||
}
|
||||
|
||||
static const struct i2c_device_id maven_id[] = {
|
||||
{ "maven", 0 },
|
||||
{ "maven" },
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(i2c, maven_id);
|
||||
|
@ -313,7 +313,7 @@ static void path_set_mode(struct mmp_path *path, struct mmp_mode *mode)
|
||||
mutex_unlock(&path->access_ok);
|
||||
}
|
||||
|
||||
static struct mmp_overlay_ops mmphw_overlay_ops = {
|
||||
static const struct mmp_overlay_ops mmphw_overlay_ops = {
|
||||
.set_fetch = overlay_set_fetch,
|
||||
.set_onoff = overlay_set_onoff,
|
||||
.set_win = overlay_set_win,
|
||||
|
@ -717,4 +717,5 @@ static void __exit offb_exit(void)
|
||||
}
|
||||
module_exit(offb_exit);
|
||||
|
||||
MODULE_DESCRIPTION("Open Firmware frame buffer device driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
@ -117,19 +117,6 @@ u32 dss_of_port_get_port_number(struct device_node *port)
|
||||
return reg;
|
||||
}
|
||||
|
||||
static struct device_node *omapdss_of_get_remote_port(const struct device_node *node)
|
||||
{
|
||||
struct device_node *np;
|
||||
|
||||
np = of_graph_get_remote_endpoint(node);
|
||||
if (!np)
|
||||
return NULL;
|
||||
|
||||
np = of_get_next_parent(np);
|
||||
|
||||
return np;
|
||||
}
|
||||
|
||||
struct omap_dss_device *
|
||||
omapdss_of_find_source_for_first_ep(struct device_node *node)
|
||||
{
|
||||
@ -141,7 +128,7 @@ omapdss_of_find_source_for_first_ep(struct device_node *node)
|
||||
if (!ep)
|
||||
return ERR_PTR(-EINVAL);
|
||||
|
||||
src_port = omapdss_of_get_remote_port(ep);
|
||||
src_port = of_graph_get_remote_port(ep);
|
||||
if (!src_port) {
|
||||
of_node_put(ep);
|
||||
return ERR_PTR(-EINVAL);
|
||||
|
@ -149,8 +149,7 @@ static void __init omapdss_walk_device(struct device_node *node, bool root)
|
||||
|
||||
of_node_put(n);
|
||||
|
||||
n = NULL;
|
||||
while ((n = of_graph_get_next_endpoint(node, n)) != NULL) {
|
||||
for_each_endpoint_of_node(node, n) {
|
||||
struct device_node *pn;
|
||||
|
||||
pn = of_graph_get_remote_port_parent(n);
|
||||
|
@ -903,9 +903,7 @@ static int venc_runtime_resume(struct device *dev)
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
clk_prepare_enable(venc.tv_dac_clk);
|
||||
|
||||
return 0;
|
||||
return clk_prepare_enable(venc.tv_dac_clk);
|
||||
}
|
||||
|
||||
static const struct dev_pm_ops venc_pm_ops = {
|
||||
|
@ -1292,7 +1292,7 @@ static int ufx_realloc_framebuffer(struct ufx_data *dev, struct fb_info *info)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* sets up I2C Controller for 100 Kbps, std. speed, 7-bit addr, master,
|
||||
/* sets up DDC channel for 100 Kbps, std. speed, 7-bit addr, controller mode,
|
||||
* restart enabled, but no start byte, enable controller */
|
||||
static int ufx_i2c_init(struct ufx_data *dev)
|
||||
{
|
||||
@ -1321,7 +1321,7 @@ static int ufx_i2c_init(struct ufx_data *dev)
|
||||
/* 7-bit (not 10-bit) addressing */
|
||||
tmp &= ~(0x10);
|
||||
|
||||
/* enable restart conditions and master mode */
|
||||
/* enable restart conditions and controller mode */
|
||||
tmp |= 0x21;
|
||||
|
||||
status = ufx_reg_write(dev, 0x1000, tmp);
|
||||
|
@ -782,10 +782,10 @@ static void ssd1307fb_remove(struct i2c_client *client)
|
||||
}
|
||||
|
||||
static const struct i2c_device_id ssd1307fb_i2c_id[] = {
|
||||
{ "ssd1305fb", 0 },
|
||||
{ "ssd1306fb", 0 },
|
||||
{ "ssd1307fb", 0 },
|
||||
{ "ssd1309fb", 0 },
|
||||
{ "ssd1305fb" },
|
||||
{ "ssd1306fb" },
|
||||
{ "ssd1307fb" },
|
||||
{ "ssd1309fb" },
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(i2c, ssd1307fb_i2c_id);
|
||||
|
@ -271,7 +271,7 @@ static int vesafb_probe(struct platform_device *dev)
|
||||
if (si->orig_video_isVGA != VIDEO_TYPE_VLFB)
|
||||
return -ENODEV;
|
||||
|
||||
vga_compat = (si->capabilities & 2) ? 0 : 1;
|
||||
vga_compat = !__screen_info_vbe_mode_nonvga(si);
|
||||
vesafb_fix.smem_start = si->lfb_base;
|
||||
vesafb_defined.bits_per_pixel = si->lfb_depth;
|
||||
if (15 == vesafb_defined.bits_per_pixel)
|
||||
|
@ -546,5 +546,6 @@ static void __exit vfb_exit(void)
|
||||
|
||||
module_exit(vfb_exit);
|
||||
|
||||
MODULE_DESCRIPTION("Virtual Frame Buffer driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
#endif /* MODULE */
|
||||
|
@ -69,7 +69,7 @@
|
||||
#define VT1632_TMDS 0x01
|
||||
#define INTEGRATED_TMDS 0x42
|
||||
|
||||
/* Definition TMDS Trasmitter I2C Slave Address */
|
||||
/* Definition TMDS Trasmitter I2C Target Address */
|
||||
#define VT1632_TMDS_I2C_ADDR 0x10
|
||||
|
||||
/**************************************************/
|
||||
@ -88,21 +88,21 @@
|
||||
#define TX_DATA_DDR_MODE 0x04
|
||||
#define TX_DATA_SDR_MODE 0x08
|
||||
|
||||
/* Definition LVDS Trasmitter I2C Slave Address */
|
||||
/* Definition LVDS Trasmitter I2C Target Address */
|
||||
#define VT1631_LVDS_I2C_ADDR 0x70
|
||||
#define VT3271_LVDS_I2C_ADDR 0x80
|
||||
#define VT1636_LVDS_I2C_ADDR 0x80
|
||||
|
||||
struct tmds_chip_information {
|
||||
int tmds_chip_name;
|
||||
int tmds_chip_slave_addr;
|
||||
int tmds_chip_target_addr;
|
||||
int output_interface;
|
||||
int i2c_port;
|
||||
};
|
||||
|
||||
struct lvds_chip_information {
|
||||
int lvds_chip_name;
|
||||
int lvds_chip_slave_addr;
|
||||
int lvds_chip_target_addr;
|
||||
int output_interface;
|
||||
int i2c_port;
|
||||
};
|
||||
|
@ -70,7 +70,7 @@ bool viafb_tmds_trasmitter_identify(void)
|
||||
/* Check for VT1632: */
|
||||
viaparinfo->chip_info->tmds_chip_info.tmds_chip_name = VT1632_TMDS;
|
||||
viaparinfo->chip_info->
|
||||
tmds_chip_info.tmds_chip_slave_addr = VT1632_TMDS_I2C_ADDR;
|
||||
tmds_chip_info.tmds_chip_target_addr = VT1632_TMDS_I2C_ADDR;
|
||||
viaparinfo->chip_info->tmds_chip_info.i2c_port = VIA_PORT_31;
|
||||
if (check_tmds_chip(VT1632_DEVICE_ID_REG, VT1632_DEVICE_ID)) {
|
||||
/*
|
||||
@ -128,14 +128,14 @@ bool viafb_tmds_trasmitter_identify(void)
|
||||
viaparinfo->chip_info->
|
||||
tmds_chip_info.tmds_chip_name = NON_TMDS_TRANSMITTER;
|
||||
viaparinfo->chip_info->tmds_chip_info.
|
||||
tmds_chip_slave_addr = VT1632_TMDS_I2C_ADDR;
|
||||
tmds_chip_target_addr = VT1632_TMDS_I2C_ADDR;
|
||||
return false;
|
||||
}
|
||||
|
||||
static void tmds_register_write(int index, u8 data)
|
||||
{
|
||||
viafb_i2c_writebyte(viaparinfo->chip_info->tmds_chip_info.i2c_port,
|
||||
viaparinfo->chip_info->tmds_chip_info.tmds_chip_slave_addr,
|
||||
viaparinfo->chip_info->tmds_chip_info.tmds_chip_target_addr,
|
||||
index, data);
|
||||
}
|
||||
|
||||
@ -144,7 +144,7 @@ static int tmds_register_read(int index)
|
||||
u8 data;
|
||||
|
||||
viafb_i2c_readbyte(viaparinfo->chip_info->tmds_chip_info.i2c_port,
|
||||
(u8) viaparinfo->chip_info->tmds_chip_info.tmds_chip_slave_addr,
|
||||
(u8) viaparinfo->chip_info->tmds_chip_info.tmds_chip_target_addr,
|
||||
(u8) index, &data);
|
||||
return data;
|
||||
}
|
||||
@ -152,7 +152,7 @@ static int tmds_register_read(int index)
|
||||
static int tmds_register_read_bytes(int index, u8 *buff, int buff_len)
|
||||
{
|
||||
viafb_i2c_readbytes(viaparinfo->chip_info->tmds_chip_info.i2c_port,
|
||||
(u8) viaparinfo->chip_info->tmds_chip_info.tmds_chip_slave_addr,
|
||||
(u8) viaparinfo->chip_info->tmds_chip_info.tmds_chip_target_addr,
|
||||
(u8) index, buff, buff_len);
|
||||
return 0;
|
||||
}
|
||||
@ -256,14 +256,14 @@ static int viafb_dvi_query_EDID(void)
|
||||
|
||||
DEBUG_MSG(KERN_INFO "viafb_dvi_query_EDID!!\n");
|
||||
|
||||
restore = viaparinfo->chip_info->tmds_chip_info.tmds_chip_slave_addr;
|
||||
viaparinfo->chip_info->tmds_chip_info.tmds_chip_slave_addr = 0xA0;
|
||||
restore = viaparinfo->chip_info->tmds_chip_info.tmds_chip_target_addr;
|
||||
viaparinfo->chip_info->tmds_chip_info.tmds_chip_target_addr = 0xA0;
|
||||
|
||||
data0 = (u8) tmds_register_read(0x00);
|
||||
data1 = (u8) tmds_register_read(0x01);
|
||||
if ((data0 == 0) && (data1 == 0xFF)) {
|
||||
viaparinfo->chip_info->
|
||||
tmds_chip_info.tmds_chip_slave_addr = restore;
|
||||
tmds_chip_info.tmds_chip_target_addr = restore;
|
||||
return EDID_VERSION_1; /* Found EDID1 Table */
|
||||
}
|
||||
|
||||
@ -280,8 +280,8 @@ static void dvi_get_panel_size_from_DDCv1(
|
||||
|
||||
DEBUG_MSG(KERN_INFO "\n dvi_get_panel_size_from_DDCv1 \n");
|
||||
|
||||
restore = tmds_chip->tmds_chip_slave_addr;
|
||||
tmds_chip->tmds_chip_slave_addr = 0xA0;
|
||||
restore = tmds_chip->tmds_chip_target_addr;
|
||||
tmds_chip->tmds_chip_target_addr = 0xA0;
|
||||
for (i = 0x25; i < 0x6D; i++) {
|
||||
switch (i) {
|
||||
case 0x36:
|
||||
@ -306,7 +306,7 @@ static void dvi_get_panel_size_from_DDCv1(
|
||||
|
||||
DEBUG_MSG(KERN_INFO "DVI max pixelclock = %d\n",
|
||||
tmds_setting->max_pixel_clock);
|
||||
tmds_chip->tmds_chip_slave_addr = restore;
|
||||
tmds_chip->tmds_chip_target_addr = restore;
|
||||
}
|
||||
|
||||
/* If Disable DVI, turn off pad */
|
||||
@ -427,7 +427,7 @@ void viafb_dvi_enable(void)
|
||||
viafb_i2c_writebyte(viaparinfo->chip_info->
|
||||
tmds_chip_info.i2c_port,
|
||||
viaparinfo->chip_info->
|
||||
tmds_chip_info.tmds_chip_slave_addr,
|
||||
tmds_chip_info.tmds_chip_target_addr,
|
||||
0x08, data);
|
||||
}
|
||||
}
|
||||
|
@ -147,7 +147,7 @@ bool viafb_lvds_trasmitter_identify(void)
|
||||
return true;
|
||||
/* Check for VT1631: */
|
||||
viaparinfo->chip_info->lvds_chip_info.lvds_chip_name = VT1631_LVDS;
|
||||
viaparinfo->chip_info->lvds_chip_info.lvds_chip_slave_addr =
|
||||
viaparinfo->chip_info->lvds_chip_info.lvds_chip_target_addr =
|
||||
VT1631_LVDS_I2C_ADDR;
|
||||
|
||||
if (check_lvds_chip(VT1631_DEVICE_ID_REG, VT1631_DEVICE_ID)) {
|
||||
@ -161,7 +161,7 @@ bool viafb_lvds_trasmitter_identify(void)
|
||||
|
||||
viaparinfo->chip_info->lvds_chip_info.lvds_chip_name =
|
||||
NON_LVDS_TRANSMITTER;
|
||||
viaparinfo->chip_info->lvds_chip_info.lvds_chip_slave_addr =
|
||||
viaparinfo->chip_info->lvds_chip_info.lvds_chip_target_addr =
|
||||
VT1631_LVDS_I2C_ADDR;
|
||||
return false;
|
||||
}
|
||||
@ -327,7 +327,7 @@ static int lvds_register_read(int index)
|
||||
u8 data;
|
||||
|
||||
viafb_i2c_readbyte(VIA_PORT_2C,
|
||||
(u8) viaparinfo->chip_info->lvds_chip_info.lvds_chip_slave_addr,
|
||||
(u8) viaparinfo->chip_info->lvds_chip_info.lvds_chip_target_addr,
|
||||
(u8) index, &data);
|
||||
return data;
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ struct via_aux_drv {
|
||||
struct list_head chain; /* chain to support multiple drivers */
|
||||
|
||||
struct via_aux_bus *bus; /* the I2C bus used */
|
||||
u8 addr; /* the I2C slave address */
|
||||
u8 addr; /* the I2C target address */
|
||||
|
||||
const char *name; /* human readable name of the driver */
|
||||
void *data; /* private data of this driver */
|
||||
|
@ -104,7 +104,7 @@ static void via_i2c_setsda(void *data, int state)
|
||||
spin_unlock_irqrestore(&i2c_vdev->reg_lock, flags);
|
||||
}
|
||||
|
||||
int viafb_i2c_readbyte(u8 adap, u8 slave_addr, u8 index, u8 *pdata)
|
||||
int viafb_i2c_readbyte(u8 adap, u8 target_addr, u8 index, u8 *pdata)
|
||||
{
|
||||
int ret;
|
||||
u8 mm1[] = {0x00};
|
||||
@ -115,7 +115,7 @@ int viafb_i2c_readbyte(u8 adap, u8 slave_addr, u8 index, u8 *pdata)
|
||||
*pdata = 0;
|
||||
msgs[0].flags = 0;
|
||||
msgs[1].flags = I2C_M_RD;
|
||||
msgs[0].addr = msgs[1].addr = slave_addr / 2;
|
||||
msgs[0].addr = msgs[1].addr = target_addr / 2;
|
||||
mm1[0] = index;
|
||||
msgs[0].len = 1; msgs[1].len = 1;
|
||||
msgs[0].buf = mm1; msgs[1].buf = pdata;
|
||||
@ -128,7 +128,7 @@ int viafb_i2c_readbyte(u8 adap, u8 slave_addr, u8 index, u8 *pdata)
|
||||
return ret;
|
||||
}
|
||||
|
||||
int viafb_i2c_writebyte(u8 adap, u8 slave_addr, u8 index, u8 data)
|
||||
int viafb_i2c_writebyte(u8 adap, u8 target_addr, u8 index, u8 data)
|
||||
{
|
||||
int ret;
|
||||
u8 msg[2] = { index, data };
|
||||
@ -137,7 +137,7 @@ int viafb_i2c_writebyte(u8 adap, u8 slave_addr, u8 index, u8 data)
|
||||
if (!via_i2c_par[adap].is_active)
|
||||
return -ENODEV;
|
||||
msgs.flags = 0;
|
||||
msgs.addr = slave_addr / 2;
|
||||
msgs.addr = target_addr / 2;
|
||||
msgs.len = 2;
|
||||
msgs.buf = msg;
|
||||
ret = i2c_transfer(&via_i2c_par[adap].adapter, &msgs, 1);
|
||||
@ -149,7 +149,7 @@ int viafb_i2c_writebyte(u8 adap, u8 slave_addr, u8 index, u8 data)
|
||||
return ret;
|
||||
}
|
||||
|
||||
int viafb_i2c_readbytes(u8 adap, u8 slave_addr, u8 index, u8 *buff, int buff_len)
|
||||
int viafb_i2c_readbytes(u8 adap, u8 target_addr, u8 index, u8 *buff, int buff_len)
|
||||
{
|
||||
int ret;
|
||||
u8 mm1[] = {0x00};
|
||||
@ -159,7 +159,7 @@ int viafb_i2c_readbytes(u8 adap, u8 slave_addr, u8 index, u8 *buff, int buff_len
|
||||
return -ENODEV;
|
||||
msgs[0].flags = 0;
|
||||
msgs[1].flags = I2C_M_RD;
|
||||
msgs[0].addr = msgs[1].addr = slave_addr / 2;
|
||||
msgs[0].addr = msgs[1].addr = target_addr / 2;
|
||||
mm1[0] = index;
|
||||
msgs[0].len = 1; msgs[1].len = buff_len;
|
||||
msgs[0].buf = mm1; msgs[1].buf = buff;
|
||||
|
@ -2144,5 +2144,6 @@ MODULE_PARM_DESC(viafb_lcd_port, "Specify LCD output port.");
|
||||
module_param(viafb_dvi_port, charp, S_IRUSR);
|
||||
MODULE_PARM_DESC(viafb_dvi_port, "Specify DVI output port.");
|
||||
|
||||
MODULE_DESCRIPTION("VIA UniChrome (Pro) and Chrome9 display driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
#endif
|
||||
|
@ -44,7 +44,7 @@ u8 viafb_gpio_i2c_read_lvds(struct lvds_setting_information
|
||||
u8 data;
|
||||
|
||||
viafb_i2c_readbyte(plvds_chip_info->i2c_port,
|
||||
plvds_chip_info->lvds_chip_slave_addr, index, &data);
|
||||
plvds_chip_info->lvds_chip_target_addr, index, &data);
|
||||
return data;
|
||||
}
|
||||
|
||||
@ -60,7 +60,7 @@ void viafb_gpio_i2c_write_mask_lvds(struct lvds_setting_information
|
||||
data = (data & (~io_data.Mask)) | io_data.Data;
|
||||
|
||||
viafb_i2c_writebyte(plvds_chip_info->i2c_port,
|
||||
plvds_chip_info->lvds_chip_slave_addr, index, data);
|
||||
plvds_chip_info->lvds_chip_target_addr, index, data);
|
||||
}
|
||||
|
||||
void viafb_init_lvds_vt1636(struct lvds_setting_information
|
||||
@ -113,7 +113,7 @@ bool viafb_lvds_identify_vt1636(u8 i2c_adapter)
|
||||
DEBUG_MSG(KERN_INFO "viafb_lvds_identify_vt1636.\n");
|
||||
|
||||
/* Sense VT1636 LVDS Transmiter */
|
||||
viaparinfo->chip_info->lvds_chip_info.lvds_chip_slave_addr =
|
||||
viaparinfo->chip_info->lvds_chip_info.lvds_chip_target_addr =
|
||||
VT1636_LVDS_I2C_ADDR;
|
||||
|
||||
/* Check vendor ID first: */
|
||||
|
@ -238,7 +238,7 @@ static void write_header(void)
|
||||
fprintf(out, " * Linux logo %s\n", logoname);
|
||||
fputs(" */\n\n", out);
|
||||
fputs("#include <linux/linux_logo.h>\n\n", out);
|
||||
fprintf(out, "static unsigned char %s_data[] __initdata = {\n",
|
||||
fprintf(out, "static const unsigned char %s_data[] __initconst = {\n",
|
||||
logoname);
|
||||
}
|
||||
|
||||
@ -375,7 +375,7 @@ static void write_logo_clut224(void)
|
||||
fputs("\n};\n\n", out);
|
||||
|
||||
/* write logo clut */
|
||||
fprintf(out, "static unsigned char %s_clut[] __initdata = {\n",
|
||||
fprintf(out, "static const unsigned char %s_clut[] __initconst = {\n",
|
||||
logoname);
|
||||
write_hex_cnt = 0;
|
||||
for (i = 0; i < logo_clutsize; i++) {
|
||||
|
@ -10,9 +10,6 @@
|
||||
* Copyright (C) 2001 Greg Banks <gnb@alphalink.com.au>
|
||||
* Copyright (C) 2001 Jan-Benedict Glaw <jbglaw@lug-owl.de>
|
||||
* Copyright (C) 2003 Geert Uytterhoeven <geert@linux-m68k.org>
|
||||
*
|
||||
* Serial_console ascii image can be any size,
|
||||
* but should contain %s to display the version
|
||||
*/
|
||||
|
||||
#include <linux/init.h>
|
||||
|
@ -49,6 +49,16 @@ static inline u64 __screen_info_lfb_size(const struct screen_info *si, unsigned
|
||||
return lfb_size;
|
||||
}
|
||||
|
||||
static inline bool __screen_info_vbe_mode_nonvga(const struct screen_info *si)
|
||||
{
|
||||
/*
|
||||
* VESA modes typically run on VGA hardware. Set bit 5 signals that this
|
||||
* is not the case. Drivers can then not make use of VGA resources. See
|
||||
* Sec 4.4 of the VBE 2.0 spec.
|
||||
*/
|
||||
return si->vesa_attributes & BIT(5);
|
||||
}
|
||||
|
||||
static inline unsigned int __screen_info_video_type(unsigned int type)
|
||||
{
|
||||
switch (type) {
|
||||
|
@ -156,7 +156,7 @@ struct mmp_overlay {
|
||||
int status;
|
||||
struct mutex access_ok;
|
||||
|
||||
struct mmp_overlay_ops *ops;
|
||||
const struct mmp_overlay_ops *ops;
|
||||
};
|
||||
|
||||
/* panel type */
|
||||
@ -299,7 +299,7 @@ struct mmp_path_info {
|
||||
int overlay_num;
|
||||
void (*set_mode)(struct mmp_path *path, struct mmp_mode *mode);
|
||||
void (*set_onoff)(struct mmp_path *path, int status);
|
||||
struct mmp_overlay_ops *overlay_ops;
|
||||
const struct mmp_overlay_ops *overlay_ops;
|
||||
void *plat_data;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user