mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 11:41:38 -04:00
Merge master.kernel.org:/home/rmk/linux-2.6-arm
* master.kernel.org:/home/rmk/linux-2.6-arm: (38 commits)
[ARM] 5191/1: ARM: remove CVS keywords
[ARM] pxafb: fix the warning of incorrect lccr when lcd_conn is specified
[ARM] pxafb: add flag to specify output format on LDD pins when base is RGBT16
[ARM] pxafb: fix the incorrect configuration of GPIO77 as ACBIAS for TFT LCD
[ARM] 5198/1: PalmTX: PCMCIA fixes
[ARM] Fix a pile of broken watchdog drivers
[ARM] update mach-types
[ARM] 5196/1: fix inline asm constraints for preload
[ARM] 5194/1: update .gitignore
[ARM] add proc-macros.S include to proc-arm940 and proc-arm946
[ARM] 5192/1: ARM TLB: add v7wbi_{possible,always}_flags to {possible,always}_tlb_flags
[ARM] 5193/1: Wire up missing syscalls
[ARM] traps: don't call undef hook functions with spinlock held
[ARM] 5183/2: Provide Poodle LoCoMo GPIO names
[ARM] dma-mapping: provide sync_range APIs
[ARM] dma-mapping: improve type-safeness of DMA translations
[ARM] Kirkwood: instantiate the orion_spi driver in the platform code
[ARM] prevent crashing when too much RAM installed
[ARM] Kirkwood: Instantiate mv_xor driver
[ARM] Orion: Instantiate mv_xor driver for 5182
...
This commit is contained in:
commit
9c0d2a20fe
88 changed files with 940 additions and 214 deletions
|
|
@ -1031,7 +1031,9 @@ static void pxafb_setup_gpio(struct pxafb_info *fbi)
|
|||
pxa_gpio_mode(GPIO74_LCD_FCLK_MD);
|
||||
pxa_gpio_mode(GPIO75_LCD_LCLK_MD);
|
||||
pxa_gpio_mode(GPIO76_LCD_PCLK_MD);
|
||||
pxa_gpio_mode(GPIO77_LCD_ACBIAS_MD);
|
||||
|
||||
if ((lccr0 & LCCR0_PAS) == 0)
|
||||
pxa_gpio_mode(GPIO77_LCD_ACBIAS_MD);
|
||||
}
|
||||
|
||||
static void pxafb_enable_controller(struct pxafb_info *fbi)
|
||||
|
|
@ -1400,6 +1402,8 @@ static void pxafb_decode_mach_info(struct pxafb_info *fbi,
|
|||
if (lcd_conn == LCD_MONO_STN_8BPP)
|
||||
fbi->lccr0 |= LCCR0_DPD;
|
||||
|
||||
fbi->lccr0 |= (lcd_conn & LCD_ALTERNATE_MAPPING) ? LCCR0_LDDALT : 0;
|
||||
|
||||
fbi->lccr3 = LCCR3_Acb((inf->lcd_conn >> 10) & 0xff);
|
||||
fbi->lccr3 |= (lcd_conn & LCD_BIAS_ACTIVE_LOW) ? LCCR3_OEP : 0;
|
||||
fbi->lccr3 |= (lcd_conn & LCD_PCLK_EDGE_FALL) ? LCCR3_PCP : 0;
|
||||
|
|
@ -1673,6 +1677,42 @@ MODULE_PARM_DESC(options, "LCD parameters (see Documentation/fb/pxafb.txt)");
|
|||
#define pxafb_setup_options() (0)
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG_VAR
|
||||
/* Check for various illegal bit-combinations. Currently only
|
||||
* a warning is given. */
|
||||
static void __devinit pxafb_check_options(struct device *dev,
|
||||
struct pxafb_mach_info *inf)
|
||||
{
|
||||
if (inf->lcd_conn)
|
||||
return;
|
||||
|
||||
if (inf->lccr0 & LCCR0_INVALID_CONFIG_MASK)
|
||||
dev_warn(dev, "machine LCCR0 setting contains "
|
||||
"illegal bits: %08x\n",
|
||||
inf->lccr0 & LCCR0_INVALID_CONFIG_MASK);
|
||||
if (inf->lccr3 & LCCR3_INVALID_CONFIG_MASK)
|
||||
dev_warn(dev, "machine LCCR3 setting contains "
|
||||
"illegal bits: %08x\n",
|
||||
inf->lccr3 & LCCR3_INVALID_CONFIG_MASK);
|
||||
if (inf->lccr0 & LCCR0_DPD &&
|
||||
((inf->lccr0 & LCCR0_PAS) != LCCR0_Pas ||
|
||||
(inf->lccr0 & LCCR0_SDS) != LCCR0_Sngl ||
|
||||
(inf->lccr0 & LCCR0_CMS) != LCCR0_Mono))
|
||||
dev_warn(dev, "Double Pixel Data (DPD) mode is "
|
||||
"only valid in passive mono"
|
||||
" single panel mode\n");
|
||||
if ((inf->lccr0 & LCCR0_PAS) == LCCR0_Act &&
|
||||
(inf->lccr0 & LCCR0_SDS) == LCCR0_Dual)
|
||||
dev_warn(dev, "Dual panel only valid in passive mode\n");
|
||||
if ((inf->lccr0 & LCCR0_PAS) == LCCR0_Pas &&
|
||||
(inf->modes->upper_margin || inf->modes->lower_margin))
|
||||
dev_warn(dev, "Upper and lower margins must be 0 in "
|
||||
"passive mode\n");
|
||||
}
|
||||
#else
|
||||
#define pxafb_check_options(...) do {} while (0)
|
||||
#endif
|
||||
|
||||
static int __devinit pxafb_probe(struct platform_device *dev)
|
||||
{
|
||||
struct pxafb_info *fbi;
|
||||
|
|
@ -1692,33 +1732,7 @@ static int __devinit pxafb_probe(struct platform_device *dev)
|
|||
if (ret < 0)
|
||||
goto failed;
|
||||
|
||||
#ifdef DEBUG_VAR
|
||||
/* Check for various illegal bit-combinations. Currently only
|
||||
* a warning is given. */
|
||||
|
||||
if (inf->lccr0 & LCCR0_INVALID_CONFIG_MASK)
|
||||
dev_warn(&dev->dev, "machine LCCR0 setting contains "
|
||||
"illegal bits: %08x\n",
|
||||
inf->lccr0 & LCCR0_INVALID_CONFIG_MASK);
|
||||
if (inf->lccr3 & LCCR3_INVALID_CONFIG_MASK)
|
||||
dev_warn(&dev->dev, "machine LCCR3 setting contains "
|
||||
"illegal bits: %08x\n",
|
||||
inf->lccr3 & LCCR3_INVALID_CONFIG_MASK);
|
||||
if (inf->lccr0 & LCCR0_DPD &&
|
||||
((inf->lccr0 & LCCR0_PAS) != LCCR0_Pas ||
|
||||
(inf->lccr0 & LCCR0_SDS) != LCCR0_Sngl ||
|
||||
(inf->lccr0 & LCCR0_CMS) != LCCR0_Mono))
|
||||
dev_warn(&dev->dev, "Double Pixel Data (DPD) mode is "
|
||||
"only valid in passive mono"
|
||||
" single panel mode\n");
|
||||
if ((inf->lccr0 & LCCR0_PAS) == LCCR0_Act &&
|
||||
(inf->lccr0 & LCCR0_SDS) == LCCR0_Dual)
|
||||
dev_warn(&dev->dev, "Dual panel only valid in passive mode\n");
|
||||
if ((inf->lccr0 & LCCR0_PAS) == LCCR0_Pas &&
|
||||
(inf->modes->upper_margin || inf->modes->lower_margin))
|
||||
dev_warn(&dev->dev, "Upper and lower margins must be 0 in "
|
||||
"passive mode\n");
|
||||
#endif
|
||||
pxafb_check_options(&dev->dev, inf);
|
||||
|
||||
dev_dbg(&dev->dev, "got a %dx%dx%d LCD\n",
|
||||
inf->modes->xres,
|
||||
|
|
|
|||
Loading…
Reference in a new issue