diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-31 14:31:02 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-31 14:31:02 -0500 |
commit | bb4bc81a234c66e8d8a4475110fa2d7988a34671 (patch) | |
tree | dd97395a565e8e6fc05f58bb0d3cba8f300d114d /drivers | |
parent | adac1665234dd966990af846eccd20b7f4923279 (diff) | |
parent | 14e54cc391e22bd564993583464577e4e34a2701 (diff) |
Merge master.kernel.org:/home/rmk/linux-2.6-arm
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/input/touchscreen/ads7846.c | 9 | ||||
-rw-r--r-- | drivers/serial/imx.c | 4 | ||||
-rw-r--r-- | drivers/serial/s3c2410.c | 2 | ||||
-rw-r--r-- | drivers/video/amba-clcd.c | 54 |
4 files changed, 35 insertions, 34 deletions
diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c index dd8c6a9ffc76..b45a45ca7cc9 100644 --- a/drivers/input/touchscreen/ads7846.c +++ b/drivers/input/touchscreen/ads7846.c | |||
@@ -29,9 +29,6 @@ | |||
29 | #ifdef CONFIG_ARCH_OMAP | 29 | #ifdef CONFIG_ARCH_OMAP |
30 | #include <asm/arch/gpio.h> | 30 | #include <asm/arch/gpio.h> |
31 | #endif | 31 | #endif |
32 | |||
33 | #else | ||
34 | #define set_irq_type(irq,type) do{}while(0) | ||
35 | #endif | 32 | #endif |
36 | 33 | ||
37 | 34 | ||
@@ -509,14 +506,14 @@ static int __devinit ads7846_probe(struct spi_device *spi) | |||
509 | ts->msg.complete = ads7846_rx; | 506 | ts->msg.complete = ads7846_rx; |
510 | ts->msg.context = ts; | 507 | ts->msg.context = ts; |
511 | 508 | ||
512 | if (request_irq(spi->irq, ads7846_irq, SA_SAMPLE_RANDOM, | 509 | if (request_irq(spi->irq, ads7846_irq, |
513 | spi->dev.bus_id, ts)) { | 510 | SA_SAMPLE_RANDOM | SA_TRIGGER_FALLING, |
511 | spi->dev.bus_id, ts)) { | ||
514 | dev_dbg(&spi->dev, "irq %d busy?\n", spi->irq); | 512 | dev_dbg(&spi->dev, "irq %d busy?\n", spi->irq); |
515 | input_unregister_device(&ts->input); | 513 | input_unregister_device(&ts->input); |
516 | kfree(ts); | 514 | kfree(ts); |
517 | return -EBUSY; | 515 | return -EBUSY; |
518 | } | 516 | } |
519 | set_irq_type(spi->irq, IRQT_FALLING); | ||
520 | 517 | ||
521 | dev_info(&spi->dev, "touchscreen, irq %d\n", spi->irq); | 518 | dev_info(&spi->dev, "touchscreen, irq %d\n", spi->irq); |
522 | 519 | ||
diff --git a/drivers/serial/imx.c b/drivers/serial/imx.c index 587cc6a95114..fa3bbd6c751f 100644 --- a/drivers/serial/imx.c +++ b/drivers/serial/imx.c | |||
@@ -402,10 +402,10 @@ static int imx_startup(struct uart_port *port) | |||
402 | DRIVER_NAME, sport); | 402 | DRIVER_NAME, sport); |
403 | if (retval) goto error_out2; | 403 | if (retval) goto error_out2; |
404 | 404 | ||
405 | retval = request_irq(sport->rtsirq, imx_rtsint, 0, | 405 | retval = request_irq(sport->rtsirq, imx_rtsint, |
406 | SA_TRIGGER_FALLING | SA_TRIGGER_RISING, | ||
406 | DRIVER_NAME, sport); | 407 | DRIVER_NAME, sport); |
407 | if (retval) goto error_out3; | 408 | if (retval) goto error_out3; |
408 | set_irq_type(sport->rtsirq, IRQT_BOTHEDGE); | ||
409 | 409 | ||
410 | /* | 410 | /* |
411 | * Finally, clear and enable interrupts | 411 | * Finally, clear and enable interrupts |
diff --git a/drivers/serial/s3c2410.c b/drivers/serial/s3c2410.c index eb4883efb7c6..0a2dd6c5b95f 100644 --- a/drivers/serial/s3c2410.c +++ b/drivers/serial/s3c2410.c | |||
@@ -1060,7 +1060,7 @@ static int s3c24xx_serial_init_port(struct s3c24xx_uart_port *ourport, | |||
1060 | dbg("resource %p (%lx..%lx)\n", res, res->start, res->end); | 1060 | dbg("resource %p (%lx..%lx)\n", res, res->start, res->end); |
1061 | 1061 | ||
1062 | port->mapbase = res->start; | 1062 | port->mapbase = res->start; |
1063 | port->membase = S3C24XX_VA_UART + (res->start - S3C2410_PA_UART); | 1063 | port->membase = S3C24XX_VA_UART + (res->start - S3C24XX_PA_UART); |
1064 | port->irq = platform_get_irq(platdev, 0); | 1064 | port->irq = platform_get_irq(platdev, 0); |
1065 | 1065 | ||
1066 | ourport->clk = clk_get(&platdev->dev, "uart"); | 1066 | ourport->clk = clk_get(&platdev->dev, "uart"); |
diff --git a/drivers/video/amba-clcd.c b/drivers/video/amba-clcd.c index b2187175d03f..6761b68c35e9 100644 --- a/drivers/video/amba-clcd.c +++ b/drivers/video/amba-clcd.c | |||
@@ -116,9 +116,10 @@ clcdfb_set_bitfields(struct clcd_fb *fb, struct fb_var_screeninfo *var) | |||
116 | int ret = 0; | 116 | int ret = 0; |
117 | 117 | ||
118 | memset(&var->transp, 0, sizeof(var->transp)); | 118 | memset(&var->transp, 0, sizeof(var->transp)); |
119 | memset(&var->red, 0, sizeof(var->red)); | 119 | |
120 | memset(&var->green, 0, sizeof(var->green)); | 120 | var->red.msb_right = 0; |
121 | memset(&var->blue, 0, sizeof(var->blue)); | 121 | var->green.msb_right = 0; |
122 | var->blue.msb_right = 0; | ||
122 | 123 | ||
123 | switch (var->bits_per_pixel) { | 124 | switch (var->bits_per_pixel) { |
124 | case 1: | 125 | case 1: |
@@ -133,34 +134,20 @@ clcdfb_set_bitfields(struct clcd_fb *fb, struct fb_var_screeninfo *var) | |||
133 | var->blue.offset = 0; | 134 | var->blue.offset = 0; |
134 | break; | 135 | break; |
135 | case 16: | 136 | case 16: |
136 | var->red.length = 5; | 137 | var->red.length = 5; |
137 | var->green.length = 6; | 138 | var->blue.length = 5; |
138 | var->blue.length = 5; | 139 | /* |
139 | if (fb->panel->cntl & CNTL_BGR) { | 140 | * Green length can be 5 or 6 depending whether |
140 | var->red.offset = 11; | 141 | * we're operating in RGB555 or RGB565 mode. |
141 | var->green.offset = 5; | 142 | */ |
142 | var->blue.offset = 0; | 143 | if (var->green.length != 5 && var->green.length != 6) |
143 | } else { | 144 | var->green.length = 6; |
144 | var->red.offset = 0; | ||
145 | var->green.offset = 5; | ||
146 | var->blue.offset = 11; | ||
147 | } | ||
148 | break; | 145 | break; |
149 | case 32: | 146 | case 32: |
150 | if (fb->panel->cntl & CNTL_LCDTFT) { | 147 | if (fb->panel->cntl & CNTL_LCDTFT) { |
151 | var->red.length = 8; | 148 | var->red.length = 8; |
152 | var->green.length = 8; | 149 | var->green.length = 8; |
153 | var->blue.length = 8; | 150 | var->blue.length = 8; |
154 | |||
155 | if (fb->panel->cntl & CNTL_BGR) { | ||
156 | var->red.offset = 16; | ||
157 | var->green.offset = 8; | ||
158 | var->blue.offset = 0; | ||
159 | } else { | ||
160 | var->red.offset = 0; | ||
161 | var->green.offset = 8; | ||
162 | var->blue.offset = 16; | ||
163 | } | ||
164 | break; | 151 | break; |
165 | } | 152 | } |
166 | default: | 153 | default: |
@@ -168,6 +155,23 @@ clcdfb_set_bitfields(struct clcd_fb *fb, struct fb_var_screeninfo *var) | |||
168 | break; | 155 | break; |
169 | } | 156 | } |
170 | 157 | ||
158 | /* | ||
159 | * >= 16bpp displays have separate colour component bitfields | ||
160 | * encoded in the pixel data. Calculate their position from | ||
161 | * the bitfield length defined above. | ||
162 | */ | ||
163 | if (ret == 0 && var->bits_per_pixel >= 16) { | ||
164 | if (fb->panel->cntl & CNTL_BGR) { | ||
165 | var->blue.offset = 0; | ||
166 | var->green.offset = var->blue.offset + var->blue.length; | ||
167 | var->red.offset = var->green.offset + var->green.length; | ||
168 | } else { | ||
169 | var->red.offset = 0; | ||
170 | var->green.offset = var->red.offset + var->red.length; | ||
171 | var->blue.offset = var->green.offset + var->green.length; | ||
172 | } | ||
173 | } | ||
174 | |||
171 | return ret; | 175 | return ret; |
172 | } | 176 | } |
173 | 177 | ||