acpibacklight.kext前面能不能加the

Backlight Bleeding: A LCD Problem
Backlight Bleeding: A LCD Problem
The entire surface of a LCD panel is backlit from behind by a light source (CCFL or LED) and the LCD blocks out the light that is not needed when displaying a particular image. Backlight bleeding most commonly occurs when this light is not 100% blocked, allowing excess light to "bleed" around the edges of the LCD panel. This backlight bleeding issue leaves spots of lighter areas on a dark or black background.
Unfortunately, many LCD monitors suffer from at least a small amount of backlight bleed because the opacity of LCD panels and construction materials used in the monitor manufacturing process are not high enough to completely block all light. This will usually only cause problems if the backlight bleeding can be easily detected by the human eye. The graphic to the right shows an example of what an LCD display with excessive backlight bleeding looks like with a dark, static background. As you can see, the top left and bottom right corner are lighter in color than the center of the display.
Fixing Backlight Bleed
In general, there is no definite fix for backlight bleeding other than completely dismantling the monitor and adding extra light blocking materials (such as black electrical tape) around the LCD panel. Some users in
have had success improving the level of bleed on the model 2005FPW Dell LCD using the method listed. Note: Dismantling of a LCD monitor in an attempt to reduce backlight bleed should be done at your own risk and only as a last resort if the monitor is no longer under warranty and can't be returned or exchanged.
The best way to "fix" backlight bleed is to have the monitor exchanged if the retailer will allow it and take your chances with a new LCD panel, hopefully one with less bleed. The ideal solution is to do your homework and in the future avoid monitors with a history of backlight bleeding and other quality control issues.
How To Avoid Backlight Bleed When Buying A New Monitor
Read reviews on the model of LCD display you plan on purchasing beforehand and look for any complaints about backlight bleeding. Buy from a retailer that will allow you to exchange the display if there are any major problems and, if possible, try to view a display model or two before making a purchase. You should also avoid LCD monitors from brands which are known to have quality control problems, as they will be much more prone to display inconsistencies such as backlight bleeding.
Even this does not guarantee you will receive an LCD completely free from bleeding, but it can limit the chances and give you a higher success rate.
LCD Monitor Recommendations
Small Budget23.8" IPS Under $130
Medium Budget27" WQHD PLS Panel
Large Budget165Hz AHVA with G-sync & ULMB
More Backlight Bleeding Information and Resources
Related Articles光源布置对汽车背景光系统亮度一致性的影响研究_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
光源布置对汽车背景光系统亮度一致性的影响研究
上传于||暂无简介
阅读已结束,如果下载本文需要使用5下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩2页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢backlight introduction_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
backlight introduction
上传于||文档简介
&&背​光​介​绍​资​料
大小:5.63MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢博客访问: 469041
博文数量: 186
博客积分: 7001
博客等级: 少将
技术积分: 1465
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: LINUX
Backlight framework in linux-2.6.29
The framework adds support for low-level
control of the LCD backlight, which include support for brightness and power.
To make your backlight driver registered
into the kernel, the framework provides the only backlight_device_register()
API function, which will create “bl_power”, “brightness”, “actual_brightnes”
and “max_brightness” files under /sys/class/backlight/your_backlight_driver/.
These files represent the properties of your backlight driver, for example, “bl_power”
denotes which power state, your backli writing values to “brightness”
will reduce or increase the “brightness”, and read to “actual_brightness”, “max_brightness”
returns the current value of brightness and maximum brightness, respectively.
backlight_device_register - create and register a new object of
&*&& backlight_device class.
&* @name: the
name of the new object(must be the same as the name of the
&*&& respective framebuffer device).
&* @parent: a
pointer to the parent device
&* @devdata: an
optional pointer to be stored for private driver use. The
&*&& methods may retrieve it by using
bl_get_data(bd).
&* @ops: the
backlight operations structure.
&* Creates and
registers new backlight device. Returns either an
&* ERR_PTR() or
a pointer to the newly allocated device.
struct backlight_device
*backlight_device_register(const char *name,
&&&&&&&&&&&&&&&&&& struct
device *parent, void *devdata, struct backlight_ops *ops)
&&&&&&&& struct
backlight_device *new_
&&&&&&&& pr_debug("backlight_device_register:
name=%s\n", name);
&&&&&&&& new_bd
= kzalloc(sizeof(struct backlight_device), GFP_KERNEL);
<-- allocate space for new backlight device.
&&&&&&&& if (!new_bd)
&&&&&&&&&&&&&&&&&& return
ERR_PTR(-ENOMEM);
&&&&&&&& mutex_init(&new_bd->update_lock);
&&&&&&&& mutex_init(&new_bd->ops_lock);
&&&&&&&& new_bd->dev.class
= backlight_class; <――the class of your backlight driver will resides in.
&&&&&&&& new_bd->dev.parent
= < —— designates the
parent of your backlight device.
&&&&&&&& new_bd->dev.release
= bl_device_
&&&&&&&& dev_set_name(&new_bd->dev,
name); <—— assign the
device name.
&&&&&&&& dev_set_drvdata(&new_bd->dev,
devdata); < —— stored for private driver use
&&&&&&&& rc =
device_register(&new_bd->dev); < ——
register the new created backlight device.
&&&&&&&& if (rc)
&&&&&&&&&&&&&&&&&& kfree(new_bd);
&&&&&&&&&&&&&&&&&& return
ERR_PTR(rc);
&&&&&&&& }
&&&&&&&& rc =
backlight_register_fb(new_bd);
&&&&&&&& if (rc)
&&&&&&&&&&&&&&&&&& device_unregister(&new_bd->dev);
&&&&&&&&&&&&&&&&&& return
ERR_PTR(rc);
&&&&&&&& }
&&&&&&&& new_bd->ops
= <—— assign the
operating functions, the hardware-related part needs to be implemented by you.
#ifdef CONFIG_PMAC_BACKLIGHT
&&&&&&&& mutex_lock(&pmac_backlight_mutex);
&&&&&&&& if
(!pmac_backlight)
&&&&&&&&&&&&&&&&&& pmac_backlight
&&&&&&&& mutex_unlock(&pmac_backlight_mutex);
&&&&&&&& return
The initialization of backlight_class should be prior to the registration of
backlight device for any Lcd device, so, make use of postcore_initcall(backlight_class_init);
static int __init backlight_class_init(void)
&&&&&&&& backlight_class
= class_create(THIS_MODULE, "backlight"); <——
create backlight class
&&&&&&&& if
(IS_ERR(backlight_class)) {
&&&&&&&&&&&&&&&&&& printk(KERN_WARNING
"Unable to cr errno = %ld\n",
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& PTR_ERR(backlight_class));
&&&&&&&&&&&&&&&&&& return
PTR_ERR(backlight_class);
&&&&&&&& }
&&&&&&&& backlight_class->dev_attrs
= bl_device_<—— assign the properties of the classs
&&&&&&&& backlight_class->suspend
= backlight_
&&&&&&&& backlight_class->resume
= backlight_
&&&&&&&& return
Let’s see the properties then.
static struct device_attribute bl_device_attributes[]
&&&&&&&& __ATTR(bl_power,
0644, backlight_show_power, backlight_store_power),
&&&&&&&& __ATTR(brightness,
0644, backlight_show_brightness,
&&&&&&&&&&&&&&&&&& &&&& backlight_store_brightness),
&&&&&&&& __ATTR(actual_brightness,
0444, backlight_show_actual_brightness,
&&&&&&&&&&&&&&&&&& &&&& NULL),
&&&&&&&& __ATTR(max_brightness,
0444, backlight_show_max_brightness, NULL),
&&&&&&&& __ATTR_NULL,
static ssize_t backlight_show_power(struct
device *dev,
&&&&&&&&&&&&&&&&&& struct
device_attribute *attr,char *buf)
&&&&&&&& struct
backlight_device *bd = to_backlight_device(dev);
&&&&&&&& return
sprintf(buf, "%d\n", bd->props.power); <
—— return the current
power state
static ssize_t backlight_store_power(struct
device *dev,
&&&&&&&&&&&&&&&&&& struct
device_attribute *attr, const char *buf, size_t count)
&&&&&&&& int
&&&&&&&& struct
backlight_device *bd = to_backlight_device(dev);
&&&&&&&& unsigned
&&&&&&&& rc
= strict_strtoul(buf, 0, &power);
&&&&&&&& if
&&&&&&&&&&&&&&&&&& return
&&&&&&&& rc
&&&&&&&& mutex_lock(&bd->ops_lock);
&&&&&&&& if
(bd->ops) {
&&&&&&&&&&&&&&&&&& pr_debug("backlight:
set power to %lu\n", power);
&&&&&&&&&&&&&&&&&& if
(bd->props.power != power) {
&&&&&&&&&&&&&&&&&&&&&&&&&&& bd->props.power
=&& <—— change the power state to the assigned state
&&&&&&&&&&&&&&&&&&&&&&&&&&& backlight_update_status(bd);
< —— update to the assigned power state
&&&&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&&&&& rc
&&&&&&&& }
&&&&&&&& mutex_unlock(&bd->ops_lock);
&&&&&&&& return
static ssize_t
backlight_show_brightness(struct device *dev,
&&&&&&&&&&&&&&&&&& struct
device_attribute *attr, char *buf)
&&&&&&&& struct
backlight_device *bd = to_backlight_device(dev);
&&&&&&&& return
sprintf(buf, "%d\n", bd->props.brightness); <—— return the current
brightness
static ssize_t
backlight_store_brightness(struct device *dev,
&&&&&&&&&&&&&&&&&& struct
device_attribute *attr, const char *buf, size_t count)
&&&&&&&& int
&&&&&&&& struct
backlight_device *bd = to_backlight_device(dev);
&&&&&&&& unsigned
&&&&&&&& rc
= strict_strtoul(buf, 0, &brightness);
&&&&&&&& if
&&&&&&&&&&&&&&&&&& return
&&&&&&&& rc
&&&&&&&& mutex_lock(&bd->ops_lock);
&&&&&&&& if
(bd->ops) {
&&&&&&&&&&&&&&&&&& if
(brightness > bd->props.max_brightness)
&&&&&&&&&&&&&&&&&&&&&&&&&&& rc
= -EINVAL;
&&&&&&&&&&&&&&&&&& else
&&&&&&&&&&&&&&&&&&&&&&&&&&& pr_debug("backlight:
set brightness to %lu\n",
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &brightness);
&&&&&&&&&&&&&&&&&&&&&&&&&&& bd->props.brightness
<—— change the brightness to
the assigned state
&&&&&&&&&&&&&&&&&&&&&&&&&&& backlight_update_status(bd);
<—— update to the assigned brightness value
&&&&&&&&&&&&&&&&&&&&&&&&&&& rc
&&&&&&&&&&&&&&&&&& }
&&&&&&&& }
&&&&&&&& mutex_unlock(&bd->ops_lock);
&&&&&&&& return
static ssize_t
backlight_show_max_brightness(struct device *dev,
&&&&&&&&&&&&&&&&&& struct
device_attribute *attr, char *buf)
&&&&&&&& struct
backlight_device *bd = to_backlight_device(dev);
&&&&&&&& return
sprintf(buf, "%d\n", bd->props.max_brightness);
<—— return the
maximum brightness
static ssize_t
backlight_show_actual_brightness(struct device *dev,
&&&&&&&&&&&&&&&&&& struct
device_attribute *attr, char *buf)
&&&&&&&& int
rc = -ENXIO;
&&&&&&&& struct
backlight_device *bd = to_backlight_device(dev);
&&&&&&&& mutex_lock(&bd->ops_lock);
&&&&&&&& if
(bd->ops && bd->ops->get_brightness)
&&&&&&&&&&&&&&&&&& rc
= sprintf(buf, "%d\n", bd->ops->get_brightness(bd));
<—— return the current
brightness
&&&&&&&& mutex_unlock(&bd->ops_lock);
&&&&&&&& return
Drivers/vedio/backlight/omap_bl.c is a good example for
your reference to implement your own backlight driver.
&My implementation for xxx platform:
文件:xxx_backlight.rar
阅读(1575) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。解决Ubuntu调整及保存屏幕亮度失败的麻烦! - 评校网
您现在的位置是: >
分享到微信朋友圈
解决Ubuntu调整及保存屏幕亮度失败的麻烦!
来源:互联网
责任编辑:独孤飘雪
有朋友会碰到Ubuntu不能调节屏幕的亮度的问题,那么现在我来告诉大家怎么调节吧!(点小图查看大图)测试环境:Acer Aspire 5750GNVIDIA GeForce GT630MUbuntu 12.04 x86_64其他情况解决方法类似。调节屏幕亮度Fn不能调节屏幕的亮度。因为fn调节的是/sys/class/backlight/acpi_video0/brightness文件,而I卡的文件是/sys/class/backlight/intel_backlight/brightness。一、测试代码启动系统,出现grub菜单时,按“e”编辑,在有linux内核路径那一行,添加“acpi_backlight=vendor”,如:linux /boot/vmlinuz-3.2.0-30-generic root=UUID=75c414be-2e17-407a-b699-94f6a398dff7 ro acpi_backlight=vendor quiet splash如果能正常启动,且用fn能调节屏幕亮度,说明成功,接着下一步。二、修改grubsudo vi /etc/default/grub找到:GRUB_CMDLINE_LINUX=“”改为:GRUB_CMDLINE_LINUX=“acpi_backlight=vendor“我的grub文件如下:# If you change this file, run ‘update-grub’ afterwards to update# /boot/grub/grub.cfg.# For full documentation of the options in this file, see:# info -f grub -n ‘Simple configuration’GRUB_DEFAULT=0#GRUB_HIDDEN_TIMEOUT=0GRUB_HIDDEN_TIMEOUT_QUIET=trueGRUB_TIMEOUT=3GRUB_DISTRIBUTOR=`lsb_release -i -s 2》 /dev/null || echo Debian`GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash“GRUB_CMDLINE_LINUX=”acpi_backlight=vendor“# Uncomment to enable BadRAM filtering, modify to suit your needs# This works with Linux (no patch required) and with any kernel that obtains# the memory map information from GRUB (GNU Mach, kernel of FreeBSD 。。。)#GRUB_BADRAM=”0xxfefefefe,0x89abcdef,0xefefefef“# Uncomment to disable graphical terminal (grub-pc only)#GRUB_TERMINAL=console# The resolution used on graphical terminal# note that you can use only modes which your graphic card supports via VBE# you can see them in real GRUB with the command `vbeinfo‘#GRUB_GFXMODE=640x480# Uncomment if you don’t want GRUB to pass ”root=UUID=xxx“ parameter to Linux#GRUB_DISABLE_LINUX_UUID=true# Uncomment to disable generation of recovery mode menu entries#GRUB_DISABLE_RECOVERY=”true“# Uncomment to get a beep at grub start#GRUB_INIT_TUNE=”480 440 1“更新grub.cfg? ~ sudo update-grub查看grub.cfg 发现其中每个启动项都加入了“acpi_backlight=vendor”? ~ vi /boot/grub/grub.cfg设定屏幕初始亮度重启后发现,屏幕亮度又恢复为最大亮度。查看影响屏幕亮度的文件? ~ vi /sys/class/backlight/intel_backlight/brightness调节几次屏幕亮度发现其中数值会改变,我的笔记本数值范围为0~976。手动修改该数值,会发现屏幕亮度随之改变(需要root用户执行):? ~ suPassword:root@
:/home/congbo# echo 500 》 /sys/class/backlight/intel_backlight/brightness因此,将该语句添加到 /etc/rc.local 就能开机自动设定屏幕初始亮度了。修改/etc/rc.local如下(需要root用户执行):#!/bin/sh -e## rc.local## This script is executed at the end of each multiuser runlevel.# Make sure that the script will “exit 0″ on success or any other# value on error.## In order to enable or disable this script just change the execution# bits.## By default this script does nothing.echo 500 》 /sys/class/backlight/intel_backlight/brightnessexit 0调节gamma值? ~ xgamma -gamma .7-》 Red 1.000, Green 1.000, Blue 1.000《- Red 0.700, Green 0.700, Blue 0.700上面就是Ubuntu调节及保存屏幕亮度失败的解决方法了,出现这种问题的时候,先测试代码,再修改grub即可。请返回评校网阅读 /gundong/4256.html
&&相关新闻
猜你感兴趣
网友关注排行

我要回帖

更多关于 android backlight 的文章

 

随机推荐