mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-07-06 22:05:22 +02: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_exit(agp_ali_cleanup);
|
||||||
|
|
||||||
MODULE_AUTHOR("Dave Jones");
|
MODULE_AUTHOR("Dave Jones");
|
||||||
|
MODULE_DESCRIPTION("ALi AGPGART routines");
|
||||||
MODULE_LICENSE("GPL and additional rights");
|
MODULE_LICENSE("GPL and additional rights");
|
||||||
|
|
||||||
|
|
|
@ -217,4 +217,5 @@ module_init(agp_alpha_core_init);
|
||||||
module_exit(agp_alpha_core_cleanup);
|
module_exit(agp_alpha_core_cleanup);
|
||||||
|
|
||||||
MODULE_AUTHOR("Jeff Wiedemeier <Jeff.Wiedemeier@hp.com>");
|
MODULE_AUTHOR("Jeff Wiedemeier <Jeff.Wiedemeier@hp.com>");
|
||||||
|
MODULE_DESCRIPTION("Alpha AGP support");
|
||||||
MODULE_LICENSE("GPL and additional rights");
|
MODULE_LICENSE("GPL and additional rights");
|
||||||
|
|
|
@ -549,4 +549,5 @@ static void __exit agp_amdk7_cleanup(void)
|
||||||
module_init(agp_amdk7_init);
|
module_init(agp_amdk7_init);
|
||||||
module_exit(agp_amdk7_cleanup);
|
module_exit(agp_amdk7_cleanup);
|
||||||
|
|
||||||
|
MODULE_DESCRIPTION("AMD K7 AGPGART routines");
|
||||||
MODULE_LICENSE("GPL and additional rights");
|
MODULE_LICENSE("GPL and additional rights");
|
||||||
|
|
|
@ -572,5 +572,6 @@ module_init(agp_ati_init);
|
||||||
module_exit(agp_ati_cleanup);
|
module_exit(agp_ati_cleanup);
|
||||||
|
|
||||||
MODULE_AUTHOR("Dave Jones");
|
MODULE_AUTHOR("Dave Jones");
|
||||||
|
MODULE_DESCRIPTION("ATi AGPGART routines");
|
||||||
MODULE_LICENSE("GPL and additional rights");
|
MODULE_LICENSE("GPL and additional rights");
|
||||||
|
|
||||||
|
|
|
@ -465,4 +465,5 @@ module_init(agp_efficeon_init);
|
||||||
module_exit(agp_efficeon_cleanup);
|
module_exit(agp_efficeon_cleanup);
|
||||||
|
|
||||||
MODULE_AUTHOR("Carlos Puchol <cpglinux@puchol.com>");
|
MODULE_AUTHOR("Carlos Puchol <cpglinux@puchol.com>");
|
||||||
|
MODULE_DESCRIPTION("Transmeta's Efficeon AGPGART driver");
|
||||||
MODULE_LICENSE("GPL and additional rights");
|
MODULE_LICENSE("GPL and additional rights");
|
||||||
|
|
|
@ -462,6 +462,7 @@ static void __exit agp_nvidia_cleanup(void)
|
||||||
module_init(agp_nvidia_init);
|
module_init(agp_nvidia_init);
|
||||||
module_exit(agp_nvidia_cleanup);
|
module_exit(agp_nvidia_cleanup);
|
||||||
|
|
||||||
|
MODULE_DESCRIPTION("Nvidia AGPGART routines");
|
||||||
MODULE_LICENSE("GPL and additional rights");
|
MODULE_LICENSE("GPL and additional rights");
|
||||||
MODULE_AUTHOR("NVIDIA Corporation");
|
MODULE_AUTHOR("NVIDIA Corporation");
|
||||||
|
|
||||||
|
|
|
@ -432,4 +432,5 @@ out:
|
||||||
module_init(parisc_agp_init);
|
module_init(parisc_agp_init);
|
||||||
|
|
||||||
MODULE_AUTHOR("Kyle McMartin <kyle@parisc-linux.org>");
|
MODULE_AUTHOR("Kyle McMartin <kyle@parisc-linux.org>");
|
||||||
|
MODULE_DESCRIPTION("HP Quicksilver AGP GART routines");
|
||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
||||||
|
|
|
@ -564,5 +564,6 @@ static void __exit agp_serverworks_cleanup(void)
|
||||||
module_init(agp_serverworks_init);
|
module_init(agp_serverworks_init);
|
||||||
module_exit(agp_serverworks_cleanup);
|
module_exit(agp_serverworks_cleanup);
|
||||||
|
|
||||||
|
MODULE_DESCRIPTION("Serverworks AGPGART routines");
|
||||||
MODULE_LICENSE("GPL and additional rights");
|
MODULE_LICENSE("GPL and additional rights");
|
||||||
|
|
||||||
|
|
|
@ -561,5 +561,6 @@ static void __exit mda_console_exit(void)
|
||||||
module_init(mda_console_init);
|
module_init(mda_console_init);
|
||||||
module_exit(mda_console_exit);
|
module_exit(mda_console_exit);
|
||||||
|
|
||||||
|
MODULE_DESCRIPTION("MDA based console driver");
|
||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
||||||
|
|
||||||
|
|
|
@ -744,4 +744,5 @@ static struct gio_driver newport_driver = {
|
||||||
};
|
};
|
||||||
module_driver(newport_driver, gio_register_driver, gio_unregister_driver);
|
module_driver(newport_driver, gio_register_driver, gio_unregister_driver);
|
||||||
|
|
||||||
|
MODULE_DESCRIPTION("SGI Newport console driver");
|
||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
||||||
|
|
|
@ -391,4 +391,5 @@ static int __init sticonsole_init(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
module_init(sticonsole_init);
|
module_init(sticonsole_init);
|
||||||
|
MODULE_DESCRIPTION("HP STI console driver");
|
||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
||||||
|
|
|
@ -1222,4 +1222,5 @@ void vgacon_register_screen(struct screen_info *si)
|
||||||
vga_si = si;
|
vga_si = si;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MODULE_DESCRIPTION("VGA based console driver");
|
||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
||||||
|
|
|
@ -3782,5 +3782,6 @@ static struct platform_driver amifb_driver __refdata = {
|
||||||
|
|
||||||
module_platform_driver_probe(amifb_driver, amifb_probe);
|
module_platform_driver_probe(amifb_driver, amifb_probe);
|
||||||
|
|
||||||
|
MODULE_DESCRIPTION("Amiga builtin chipset frame buffer driver");
|
||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
||||||
MODULE_ALIAS("platform:amiga-video");
|
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);
|
EXPORT_SYMBOL_GPL(c2p_planar);
|
||||||
|
|
||||||
|
MODULE_DESCRIPTION("Fast C2P (Chunky-to-Planar) Conversion");
|
||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
||||||
|
|
|
@ -321,4 +321,5 @@ static struct platform_driver goldfish_fb_driver = {
|
||||||
|
|
||||||
module_platform_driver(goldfish_fb_driver);
|
module_platform_driver(goldfish_fb_driver);
|
||||||
|
|
||||||
|
MODULE_DESCRIPTION("Goldfish Virtual Platform Framebuffer driver");
|
||||||
MODULE_LICENSE("GPL v2");
|
MODULE_LICENSE("GPL v2");
|
||||||
|
|
|
@ -811,4 +811,5 @@ module_exit(kyrofb_exit);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
MODULE_AUTHOR("STMicroelectronics; Paul Mundt <lethal@linux-sh.org>");
|
MODULE_AUTHOR("STMicroelectronics; Paul Mundt <lethal@linux-sh.org>");
|
||||||
|
MODULE_DESCRIPTION("STG4000/Kyro/PowerVR 3 driver");
|
||||||
MODULE_LICENSE("GPL");
|
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);
|
EXPORT_SYMBOL(mac_find_mode);
|
||||||
|
|
||||||
|
MODULE_DESCRIPTION("MacOS video mode library");
|
||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
||||||
|
|
|
@ -1111,4 +1111,5 @@ EXPORT_SYMBOL(matrox_G100);
|
||||||
EXPORT_SYMBOL(DAC1064_global_init);
|
EXPORT_SYMBOL(DAC1064_global_init);
|
||||||
EXPORT_SYMBOL(DAC1064_global_restore);
|
EXPORT_SYMBOL(DAC1064_global_restore);
|
||||||
#endif
|
#endif
|
||||||
|
MODULE_DESCRIPTION("Matrox Mystique/G100 output driver");
|
||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
||||||
|
|
|
@ -746,4 +746,5 @@ struct matrox_switch matrox_millennium = {
|
||||||
};
|
};
|
||||||
EXPORT_SYMBOL(matrox_millennium);
|
EXPORT_SYMBOL(matrox_millennium);
|
||||||
#endif
|
#endif
|
||||||
|
MODULE_DESCRIPTION("Matrox Millennium output driver");
|
||||||
MODULE_LICENSE("GPL");
|
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");
|
MODULE_LICENSE("GPL");
|
||||||
|
|
|
@ -1282,7 +1282,7 @@ static void maven_remove(struct i2c_client *client)
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct i2c_device_id maven_id[] = {
|
static const struct i2c_device_id maven_id[] = {
|
||||||
{ "maven", 0 },
|
{ "maven" },
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
MODULE_DEVICE_TABLE(i2c, maven_id);
|
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);
|
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_fetch = overlay_set_fetch,
|
||||||
.set_onoff = overlay_set_onoff,
|
.set_onoff = overlay_set_onoff,
|
||||||
.set_win = overlay_set_win,
|
.set_win = overlay_set_win,
|
||||||
|
|
|
@ -717,4 +717,5 @@ static void __exit offb_exit(void)
|
||||||
}
|
}
|
||||||
module_exit(offb_exit);
|
module_exit(offb_exit);
|
||||||
|
|
||||||
|
MODULE_DESCRIPTION("Open Firmware frame buffer device driver");
|
||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
||||||
|
|
|
@ -117,19 +117,6 @@ u32 dss_of_port_get_port_number(struct device_node *port)
|
||||||
return reg;
|
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 *
|
struct omap_dss_device *
|
||||||
omapdss_of_find_source_for_first_ep(struct device_node *node)
|
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)
|
if (!ep)
|
||||||
return ERR_PTR(-EINVAL);
|
return ERR_PTR(-EINVAL);
|
||||||
|
|
||||||
src_port = omapdss_of_get_remote_port(ep);
|
src_port = of_graph_get_remote_port(ep);
|
||||||
if (!src_port) {
|
if (!src_port) {
|
||||||
of_node_put(ep);
|
of_node_put(ep);
|
||||||
return ERR_PTR(-EINVAL);
|
return ERR_PTR(-EINVAL);
|
||||||
|
|
|
@ -149,8 +149,7 @@ static void __init omapdss_walk_device(struct device_node *node, bool root)
|
||||||
|
|
||||||
of_node_put(n);
|
of_node_put(n);
|
||||||
|
|
||||||
n = NULL;
|
for_each_endpoint_of_node(node, n) {
|
||||||
while ((n = of_graph_get_next_endpoint(node, n)) != NULL) {
|
|
||||||
struct device_node *pn;
|
struct device_node *pn;
|
||||||
|
|
||||||
pn = of_graph_get_remote_port_parent(n);
|
pn = of_graph_get_remote_port_parent(n);
|
||||||
|
|
|
@ -903,9 +903,7 @@ static int venc_runtime_resume(struct device *dev)
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
clk_prepare_enable(venc.tv_dac_clk);
|
return clk_prepare_enable(venc.tv_dac_clk);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct dev_pm_ops venc_pm_ops = {
|
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;
|
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 */
|
* restart enabled, but no start byte, enable controller */
|
||||||
static int ufx_i2c_init(struct ufx_data *dev)
|
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 */
|
/* 7-bit (not 10-bit) addressing */
|
||||||
tmp &= ~(0x10);
|
tmp &= ~(0x10);
|
||||||
|
|
||||||
/* enable restart conditions and master mode */
|
/* enable restart conditions and controller mode */
|
||||||
tmp |= 0x21;
|
tmp |= 0x21;
|
||||||
|
|
||||||
status = ufx_reg_write(dev, 0x1000, tmp);
|
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[] = {
|
static const struct i2c_device_id ssd1307fb_i2c_id[] = {
|
||||||
{ "ssd1305fb", 0 },
|
{ "ssd1305fb" },
|
||||||
{ "ssd1306fb", 0 },
|
{ "ssd1306fb" },
|
||||||
{ "ssd1307fb", 0 },
|
{ "ssd1307fb" },
|
||||||
{ "ssd1309fb", 0 },
|
{ "ssd1309fb" },
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
MODULE_DEVICE_TABLE(i2c, ssd1307fb_i2c_id);
|
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)
|
if (si->orig_video_isVGA != VIDEO_TYPE_VLFB)
|
||||||
return -ENODEV;
|
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_fix.smem_start = si->lfb_base;
|
||||||
vesafb_defined.bits_per_pixel = si->lfb_depth;
|
vesafb_defined.bits_per_pixel = si->lfb_depth;
|
||||||
if (15 == vesafb_defined.bits_per_pixel)
|
if (15 == vesafb_defined.bits_per_pixel)
|
||||||
|
|
|
@ -546,5 +546,6 @@ static void __exit vfb_exit(void)
|
||||||
|
|
||||||
module_exit(vfb_exit);
|
module_exit(vfb_exit);
|
||||||
|
|
||||||
|
MODULE_DESCRIPTION("Virtual Frame Buffer driver");
|
||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
||||||
#endif /* MODULE */
|
#endif /* MODULE */
|
||||||
|
|
|
@ -69,7 +69,7 @@
|
||||||
#define VT1632_TMDS 0x01
|
#define VT1632_TMDS 0x01
|
||||||
#define INTEGRATED_TMDS 0x42
|
#define INTEGRATED_TMDS 0x42
|
||||||
|
|
||||||
/* Definition TMDS Trasmitter I2C Slave Address */
|
/* Definition TMDS Trasmitter I2C Target Address */
|
||||||
#define VT1632_TMDS_I2C_ADDR 0x10
|
#define VT1632_TMDS_I2C_ADDR 0x10
|
||||||
|
|
||||||
/**************************************************/
|
/**************************************************/
|
||||||
|
@ -88,21 +88,21 @@
|
||||||
#define TX_DATA_DDR_MODE 0x04
|
#define TX_DATA_DDR_MODE 0x04
|
||||||
#define TX_DATA_SDR_MODE 0x08
|
#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 VT1631_LVDS_I2C_ADDR 0x70
|
||||||
#define VT3271_LVDS_I2C_ADDR 0x80
|
#define VT3271_LVDS_I2C_ADDR 0x80
|
||||||
#define VT1636_LVDS_I2C_ADDR 0x80
|
#define VT1636_LVDS_I2C_ADDR 0x80
|
||||||
|
|
||||||
struct tmds_chip_information {
|
struct tmds_chip_information {
|
||||||
int tmds_chip_name;
|
int tmds_chip_name;
|
||||||
int tmds_chip_slave_addr;
|
int tmds_chip_target_addr;
|
||||||
int output_interface;
|
int output_interface;
|
||||||
int i2c_port;
|
int i2c_port;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct lvds_chip_information {
|
struct lvds_chip_information {
|
||||||
int lvds_chip_name;
|
int lvds_chip_name;
|
||||||
int lvds_chip_slave_addr;
|
int lvds_chip_target_addr;
|
||||||
int output_interface;
|
int output_interface;
|
||||||
int i2c_port;
|
int i2c_port;
|
||||||
};
|
};
|
||||||
|
|
|
@ -70,7 +70,7 @@ bool viafb_tmds_trasmitter_identify(void)
|
||||||
/* Check for VT1632: */
|
/* Check for VT1632: */
|
||||||
viaparinfo->chip_info->tmds_chip_info.tmds_chip_name = VT1632_TMDS;
|
viaparinfo->chip_info->tmds_chip_info.tmds_chip_name = VT1632_TMDS;
|
||||||
viaparinfo->chip_info->
|
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;
|
viaparinfo->chip_info->tmds_chip_info.i2c_port = VIA_PORT_31;
|
||||||
if (check_tmds_chip(VT1632_DEVICE_ID_REG, VT1632_DEVICE_ID)) {
|
if (check_tmds_chip(VT1632_DEVICE_ID_REG, VT1632_DEVICE_ID)) {
|
||||||
/*
|
/*
|
||||||
|
@ -128,14 +128,14 @@ bool viafb_tmds_trasmitter_identify(void)
|
||||||
viaparinfo->chip_info->
|
viaparinfo->chip_info->
|
||||||
tmds_chip_info.tmds_chip_name = NON_TMDS_TRANSMITTER;
|
tmds_chip_info.tmds_chip_name = NON_TMDS_TRANSMITTER;
|
||||||
viaparinfo->chip_info->tmds_chip_info.
|
viaparinfo->chip_info->tmds_chip_info.
|
||||||
tmds_chip_slave_addr = VT1632_TMDS_I2C_ADDR;
|
tmds_chip_target_addr = VT1632_TMDS_I2C_ADDR;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void tmds_register_write(int index, u8 data)
|
static void tmds_register_write(int index, u8 data)
|
||||||
{
|
{
|
||||||
viafb_i2c_writebyte(viaparinfo->chip_info->tmds_chip_info.i2c_port,
|
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);
|
index, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -144,7 +144,7 @@ static int tmds_register_read(int index)
|
||||||
u8 data;
|
u8 data;
|
||||||
|
|
||||||
viafb_i2c_readbyte(viaparinfo->chip_info->tmds_chip_info.i2c_port,
|
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);
|
(u8) index, &data);
|
||||||
return 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)
|
static int tmds_register_read_bytes(int index, u8 *buff, int buff_len)
|
||||||
{
|
{
|
||||||
viafb_i2c_readbytes(viaparinfo->chip_info->tmds_chip_info.i2c_port,
|
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);
|
(u8) index, buff, buff_len);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -256,14 +256,14 @@ static int viafb_dvi_query_EDID(void)
|
||||||
|
|
||||||
DEBUG_MSG(KERN_INFO "viafb_dvi_query_EDID!!\n");
|
DEBUG_MSG(KERN_INFO "viafb_dvi_query_EDID!!\n");
|
||||||
|
|
||||||
restore = viaparinfo->chip_info->tmds_chip_info.tmds_chip_slave_addr;
|
restore = viaparinfo->chip_info->tmds_chip_info.tmds_chip_target_addr;
|
||||||
viaparinfo->chip_info->tmds_chip_info.tmds_chip_slave_addr = 0xA0;
|
viaparinfo->chip_info->tmds_chip_info.tmds_chip_target_addr = 0xA0;
|
||||||
|
|
||||||
data0 = (u8) tmds_register_read(0x00);
|
data0 = (u8) tmds_register_read(0x00);
|
||||||
data1 = (u8) tmds_register_read(0x01);
|
data1 = (u8) tmds_register_read(0x01);
|
||||||
if ((data0 == 0) && (data1 == 0xFF)) {
|
if ((data0 == 0) && (data1 == 0xFF)) {
|
||||||
viaparinfo->chip_info->
|
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 */
|
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");
|
DEBUG_MSG(KERN_INFO "\n dvi_get_panel_size_from_DDCv1 \n");
|
||||||
|
|
||||||
restore = tmds_chip->tmds_chip_slave_addr;
|
restore = tmds_chip->tmds_chip_target_addr;
|
||||||
tmds_chip->tmds_chip_slave_addr = 0xA0;
|
tmds_chip->tmds_chip_target_addr = 0xA0;
|
||||||
for (i = 0x25; i < 0x6D; i++) {
|
for (i = 0x25; i < 0x6D; i++) {
|
||||||
switch (i) {
|
switch (i) {
|
||||||
case 0x36:
|
case 0x36:
|
||||||
|
@ -306,7 +306,7 @@ static void dvi_get_panel_size_from_DDCv1(
|
||||||
|
|
||||||
DEBUG_MSG(KERN_INFO "DVI max pixelclock = %d\n",
|
DEBUG_MSG(KERN_INFO "DVI max pixelclock = %d\n",
|
||||||
tmds_setting->max_pixel_clock);
|
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 */
|
/* If Disable DVI, turn off pad */
|
||||||
|
@ -427,7 +427,7 @@ void viafb_dvi_enable(void)
|
||||||
viafb_i2c_writebyte(viaparinfo->chip_info->
|
viafb_i2c_writebyte(viaparinfo->chip_info->
|
||||||
tmds_chip_info.i2c_port,
|
tmds_chip_info.i2c_port,
|
||||||
viaparinfo->chip_info->
|
viaparinfo->chip_info->
|
||||||
tmds_chip_info.tmds_chip_slave_addr,
|
tmds_chip_info.tmds_chip_target_addr,
|
||||||
0x08, data);
|
0x08, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -147,7 +147,7 @@ bool viafb_lvds_trasmitter_identify(void)
|
||||||
return true;
|
return true;
|
||||||
/* Check for VT1631: */
|
/* Check for VT1631: */
|
||||||
viaparinfo->chip_info->lvds_chip_info.lvds_chip_name = VT1631_LVDS;
|
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;
|
VT1631_LVDS_I2C_ADDR;
|
||||||
|
|
||||||
if (check_lvds_chip(VT1631_DEVICE_ID_REG, VT1631_DEVICE_ID)) {
|
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 =
|
viaparinfo->chip_info->lvds_chip_info.lvds_chip_name =
|
||||||
NON_LVDS_TRANSMITTER;
|
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;
|
VT1631_LVDS_I2C_ADDR;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -327,7 +327,7 @@ static int lvds_register_read(int index)
|
||||||
u8 data;
|
u8 data;
|
||||||
|
|
||||||
viafb_i2c_readbyte(VIA_PORT_2C,
|
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);
|
(u8) index, &data);
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,7 @@ struct via_aux_drv {
|
||||||
struct list_head chain; /* chain to support multiple drivers */
|
struct list_head chain; /* chain to support multiple drivers */
|
||||||
|
|
||||||
struct via_aux_bus *bus; /* the I2C bus used */
|
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 */
|
const char *name; /* human readable name of the driver */
|
||||||
void *data; /* private data of this 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);
|
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;
|
int ret;
|
||||||
u8 mm1[] = {0x00};
|
u8 mm1[] = {0x00};
|
||||||
|
@ -115,7 +115,7 @@ int viafb_i2c_readbyte(u8 adap, u8 slave_addr, u8 index, u8 *pdata)
|
||||||
*pdata = 0;
|
*pdata = 0;
|
||||||
msgs[0].flags = 0;
|
msgs[0].flags = 0;
|
||||||
msgs[1].flags = I2C_M_RD;
|
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;
|
mm1[0] = index;
|
||||||
msgs[0].len = 1; msgs[1].len = 1;
|
msgs[0].len = 1; msgs[1].len = 1;
|
||||||
msgs[0].buf = mm1; msgs[1].buf = pdata;
|
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;
|
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;
|
int ret;
|
||||||
u8 msg[2] = { index, data };
|
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)
|
if (!via_i2c_par[adap].is_active)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
msgs.flags = 0;
|
msgs.flags = 0;
|
||||||
msgs.addr = slave_addr / 2;
|
msgs.addr = target_addr / 2;
|
||||||
msgs.len = 2;
|
msgs.len = 2;
|
||||||
msgs.buf = msg;
|
msgs.buf = msg;
|
||||||
ret = i2c_transfer(&via_i2c_par[adap].adapter, &msgs, 1);
|
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;
|
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;
|
int ret;
|
||||||
u8 mm1[] = {0x00};
|
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;
|
return -ENODEV;
|
||||||
msgs[0].flags = 0;
|
msgs[0].flags = 0;
|
||||||
msgs[1].flags = I2C_M_RD;
|
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;
|
mm1[0] = index;
|
||||||
msgs[0].len = 1; msgs[1].len = buff_len;
|
msgs[0].len = 1; msgs[1].len = buff_len;
|
||||||
msgs[0].buf = mm1; msgs[1].buf = buff;
|
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_param(viafb_dvi_port, charp, S_IRUSR);
|
||||||
MODULE_PARM_DESC(viafb_dvi_port, "Specify DVI output port.");
|
MODULE_PARM_DESC(viafb_dvi_port, "Specify DVI output port.");
|
||||||
|
|
||||||
|
MODULE_DESCRIPTION("VIA UniChrome (Pro) and Chrome9 display driver");
|
||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -44,7 +44,7 @@ u8 viafb_gpio_i2c_read_lvds(struct lvds_setting_information
|
||||||
u8 data;
|
u8 data;
|
||||||
|
|
||||||
viafb_i2c_readbyte(plvds_chip_info->i2c_port,
|
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;
|
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;
|
data = (data & (~io_data.Mask)) | io_data.Data;
|
||||||
|
|
||||||
viafb_i2c_writebyte(plvds_chip_info->i2c_port,
|
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
|
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");
|
DEBUG_MSG(KERN_INFO "viafb_lvds_identify_vt1636.\n");
|
||||||
|
|
||||||
/* Sense VT1636 LVDS Transmiter */
|
/* 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;
|
VT1636_LVDS_I2C_ADDR;
|
||||||
|
|
||||||
/* Check vendor ID first: */
|
/* Check vendor ID first: */
|
||||||
|
|
|
@ -238,7 +238,7 @@ static void write_header(void)
|
||||||
fprintf(out, " * Linux logo %s\n", logoname);
|
fprintf(out, " * Linux logo %s\n", logoname);
|
||||||
fputs(" */\n\n", out);
|
fputs(" */\n\n", out);
|
||||||
fputs("#include <linux/linux_logo.h>\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);
|
logoname);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -375,7 +375,7 @@ static void write_logo_clut224(void)
|
||||||
fputs("\n};\n\n", out);
|
fputs("\n};\n\n", out);
|
||||||
|
|
||||||
/* write logo clut */
|
/* write logo clut */
|
||||||
fprintf(out, "static unsigned char %s_clut[] __initdata = {\n",
|
fprintf(out, "static const unsigned char %s_clut[] __initconst = {\n",
|
||||||
logoname);
|
logoname);
|
||||||
write_hex_cnt = 0;
|
write_hex_cnt = 0;
|
||||||
for (i = 0; i < logo_clutsize; i++) {
|
for (i = 0; i < logo_clutsize; i++) {
|
||||||
|
|
|
@ -10,9 +10,6 @@
|
||||||
* Copyright (C) 2001 Greg Banks <gnb@alphalink.com.au>
|
* Copyright (C) 2001 Greg Banks <gnb@alphalink.com.au>
|
||||||
* Copyright (C) 2001 Jan-Benedict Glaw <jbglaw@lug-owl.de>
|
* Copyright (C) 2001 Jan-Benedict Glaw <jbglaw@lug-owl.de>
|
||||||
* Copyright (C) 2003 Geert Uytterhoeven <geert@linux-m68k.org>
|
* 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>
|
#include <linux/init.h>
|
||||||
|
|
|
@ -49,6 +49,16 @@ static inline u64 __screen_info_lfb_size(const struct screen_info *si, unsigned
|
||||||
return lfb_size;
|
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)
|
static inline unsigned int __screen_info_video_type(unsigned int type)
|
||||||
{
|
{
|
||||||
switch (type) {
|
switch (type) {
|
||||||
|
|
|
@ -156,7 +156,7 @@ struct mmp_overlay {
|
||||||
int status;
|
int status;
|
||||||
struct mutex access_ok;
|
struct mutex access_ok;
|
||||||
|
|
||||||
struct mmp_overlay_ops *ops;
|
const struct mmp_overlay_ops *ops;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* panel type */
|
/* panel type */
|
||||||
|
@ -299,7 +299,7 @@ struct mmp_path_info {
|
||||||
int overlay_num;
|
int overlay_num;
|
||||||
void (*set_mode)(struct mmp_path *path, struct mmp_mode *mode);
|
void (*set_mode)(struct mmp_path *path, struct mmp_mode *mode);
|
||||||
void (*set_onoff)(struct mmp_path *path, int status);
|
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;
|
void *plat_data;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user