diff options
| -rw-r--r-- | drivers/iio/imu/adis_buffer.c | 2 | ||||
| -rw-r--r-- | drivers/staging/panel/panel.c | 34 | ||||
| -rw-r--r-- | drivers/staging/speakup/main.c | 21 | ||||
| -rw-r--r-- | drivers/staging/speakup/serialio.c | 13 | ||||
| -rw-r--r-- | drivers/tty/vt/vt.c | 1 |
5 files changed, 42 insertions, 29 deletions
diff --git a/drivers/iio/imu/adis_buffer.c b/drivers/iio/imu/adis_buffer.c index cb32b593f1c5..36607d52fee0 100644 --- a/drivers/iio/imu/adis_buffer.c +++ b/drivers/iio/imu/adis_buffer.c | |||
| @@ -43,7 +43,7 @@ int adis_update_scan_mode(struct iio_dev *indio_dev, | |||
| 43 | return -ENOMEM; | 43 | return -ENOMEM; |
| 44 | 44 | ||
| 45 | rx = adis->buffer; | 45 | rx = adis->buffer; |
| 46 | tx = rx + indio_dev->scan_bytes; | 46 | tx = rx + scan_count; |
| 47 | 47 | ||
| 48 | spi_message_init(&adis->msg); | 48 | spi_message_init(&adis->msg); |
| 49 | 49 | ||
diff --git a/drivers/staging/panel/panel.c b/drivers/staging/panel/panel.c index 79ac19246548..70b8f4fabfad 100644 --- a/drivers/staging/panel/panel.c +++ b/drivers/staging/panel/panel.c | |||
| @@ -825,8 +825,7 @@ static void lcd_write_cmd_s(int cmd) | |||
| 825 | lcd_send_serial(0x1F); /* R/W=W, RS=0 */ | 825 | lcd_send_serial(0x1F); /* R/W=W, RS=0 */ |
| 826 | lcd_send_serial(cmd & 0x0F); | 826 | lcd_send_serial(cmd & 0x0F); |
| 827 | lcd_send_serial((cmd >> 4) & 0x0F); | 827 | lcd_send_serial((cmd >> 4) & 0x0F); |
| 828 | /* the shortest command takes at least 40 us */ | 828 | udelay(40); /* the shortest command takes at least 40 us */ |
| 829 | usleep_range(40, 100); | ||
| 830 | spin_unlock_irq(&pprt_lock); | 829 | spin_unlock_irq(&pprt_lock); |
| 831 | } | 830 | } |
| 832 | 831 | ||
| @@ -837,8 +836,7 @@ static void lcd_write_data_s(int data) | |||
| 837 | lcd_send_serial(0x5F); /* R/W=W, RS=1 */ | 836 | lcd_send_serial(0x5F); /* R/W=W, RS=1 */ |
| 838 | lcd_send_serial(data & 0x0F); | 837 | lcd_send_serial(data & 0x0F); |
| 839 | lcd_send_serial((data >> 4) & 0x0F); | 838 | lcd_send_serial((data >> 4) & 0x0F); |
| 840 | /* the shortest data takes at least 40 us */ | 839 | udelay(40); /* the shortest data takes at least 40 us */ |
| 841 | usleep_range(40, 100); | ||
| 842 | spin_unlock_irq(&pprt_lock); | 840 | spin_unlock_irq(&pprt_lock); |
| 843 | } | 841 | } |
| 844 | 842 | ||
| @@ -848,20 +846,19 @@ static void lcd_write_cmd_p8(int cmd) | |||
| 848 | spin_lock_irq(&pprt_lock); | 846 | spin_lock_irq(&pprt_lock); |
| 849 | /* present the data to the data port */ | 847 | /* present the data to the data port */ |
| 850 | w_dtr(pprt, cmd); | 848 | w_dtr(pprt, cmd); |
| 851 | /* maintain the data during 20 us before the strobe */ | 849 | udelay(20); /* maintain the data during 20 us before the strobe */ |
| 852 | usleep_range(20, 100); | ||
| 853 | 850 | ||
| 854 | bits.e = BIT_SET; | 851 | bits.e = BIT_SET; |
| 855 | bits.rs = BIT_CLR; | 852 | bits.rs = BIT_CLR; |
| 856 | bits.rw = BIT_CLR; | 853 | bits.rw = BIT_CLR; |
| 857 | set_ctrl_bits(); | 854 | set_ctrl_bits(); |
| 858 | 855 | ||
| 859 | usleep_range(40, 100); /* maintain the strobe during 40 us */ | 856 | udelay(40); /* maintain the strobe during 40 us */ |
| 860 | 857 | ||
| 861 | bits.e = BIT_CLR; | 858 | bits.e = BIT_CLR; |
| 862 | set_ctrl_bits(); | 859 | set_ctrl_bits(); |
| 863 | 860 | ||
| 864 | usleep_range(120, 500); /* the shortest command takes at least 120 us */ | 861 | udelay(120); /* the shortest command takes at least 120 us */ |
| 865 | spin_unlock_irq(&pprt_lock); | 862 | spin_unlock_irq(&pprt_lock); |
| 866 | } | 863 | } |
| 867 | 864 | ||
| @@ -871,20 +868,19 @@ static void lcd_write_data_p8(int data) | |||
| 871 | spin_lock_irq(&pprt_lock); | 868 | spin_lock_irq(&pprt_lock); |
| 872 | /* present the data to the data port */ | 869 | /* present the data to the data port */ |
| 873 | w_dtr(pprt, data); | 870 | w_dtr(pprt, data); |
| 874 | /* maintain the data during 20 us before the strobe */ | 871 | udelay(20); /* maintain the data during 20 us before the strobe */ |
| 875 | usleep_range(20, 100); | ||
| 876 | 872 | ||
| 877 | bits.e = BIT_SET; | 873 | bits.e = BIT_SET; |
| 878 | bits.rs = BIT_SET; | 874 | bits.rs = BIT_SET; |
| 879 | bits.rw = BIT_CLR; | 875 | bits.rw = BIT_CLR; |
| 880 | set_ctrl_bits(); | 876 | set_ctrl_bits(); |
| 881 | 877 | ||
| 882 | usleep_range(40, 100); /* maintain the strobe during 40 us */ | 878 | udelay(40); /* maintain the strobe during 40 us */ |
| 883 | 879 | ||
| 884 | bits.e = BIT_CLR; | 880 | bits.e = BIT_CLR; |
| 885 | set_ctrl_bits(); | 881 | set_ctrl_bits(); |
| 886 | 882 | ||
| 887 | usleep_range(45, 100); /* the shortest data takes at least 45 us */ | 883 | udelay(45); /* the shortest data takes at least 45 us */ |
| 888 | spin_unlock_irq(&pprt_lock); | 884 | spin_unlock_irq(&pprt_lock); |
| 889 | } | 885 | } |
| 890 | 886 | ||
| @@ -894,7 +890,7 @@ static void lcd_write_cmd_tilcd(int cmd) | |||
| 894 | spin_lock_irq(&pprt_lock); | 890 | spin_lock_irq(&pprt_lock); |
| 895 | /* present the data to the control port */ | 891 | /* present the data to the control port */ |
| 896 | w_ctr(pprt, cmd); | 892 | w_ctr(pprt, cmd); |
| 897 | usleep_range(60, 120); | 893 | udelay(60); |
| 898 | spin_unlock_irq(&pprt_lock); | 894 | spin_unlock_irq(&pprt_lock); |
| 899 | } | 895 | } |
| 900 | 896 | ||
| @@ -904,7 +900,7 @@ static void lcd_write_data_tilcd(int data) | |||
| 904 | spin_lock_irq(&pprt_lock); | 900 | spin_lock_irq(&pprt_lock); |
| 905 | /* present the data to the data port */ | 901 | /* present the data to the data port */ |
| 906 | w_dtr(pprt, data); | 902 | w_dtr(pprt, data); |
| 907 | usleep_range(60, 120); | 903 | udelay(60); |
| 908 | spin_unlock_irq(&pprt_lock); | 904 | spin_unlock_irq(&pprt_lock); |
| 909 | } | 905 | } |
| 910 | 906 | ||
| @@ -947,7 +943,7 @@ static void lcd_clear_fast_s(void) | |||
| 947 | lcd_send_serial(0x5F); /* R/W=W, RS=1 */ | 943 | lcd_send_serial(0x5F); /* R/W=W, RS=1 */ |
| 948 | lcd_send_serial(' ' & 0x0F); | 944 | lcd_send_serial(' ' & 0x0F); |
| 949 | lcd_send_serial((' ' >> 4) & 0x0F); | 945 | lcd_send_serial((' ' >> 4) & 0x0F); |
| 950 | usleep_range(40, 100); /* the shortest data takes at least 40 us */ | 946 | udelay(40); /* the shortest data takes at least 40 us */ |
| 951 | } | 947 | } |
| 952 | spin_unlock_irq(&pprt_lock); | 948 | spin_unlock_irq(&pprt_lock); |
| 953 | 949 | ||
| @@ -971,7 +967,7 @@ static void lcd_clear_fast_p8(void) | |||
| 971 | w_dtr(pprt, ' '); | 967 | w_dtr(pprt, ' '); |
| 972 | 968 | ||
| 973 | /* maintain the data during 20 us before the strobe */ | 969 | /* maintain the data during 20 us before the strobe */ |
| 974 | usleep_range(20, 100); | 970 | udelay(20); |
| 975 | 971 | ||
| 976 | bits.e = BIT_SET; | 972 | bits.e = BIT_SET; |
| 977 | bits.rs = BIT_SET; | 973 | bits.rs = BIT_SET; |
| @@ -979,13 +975,13 @@ static void lcd_clear_fast_p8(void) | |||
| 979 | set_ctrl_bits(); | 975 | set_ctrl_bits(); |
| 980 | 976 | ||
| 981 | /* maintain the strobe during 40 us */ | 977 | /* maintain the strobe during 40 us */ |
| 982 | usleep_range(40, 100); | 978 | udelay(40); |
| 983 | 979 | ||
| 984 | bits.e = BIT_CLR; | 980 | bits.e = BIT_CLR; |
| 985 | set_ctrl_bits(); | 981 | set_ctrl_bits(); |
| 986 | 982 | ||
| 987 | /* the shortest data takes at least 45 us */ | 983 | /* the shortest data takes at least 45 us */ |
| 988 | usleep_range(45, 100); | 984 | udelay(45); |
| 989 | } | 985 | } |
| 990 | spin_unlock_irq(&pprt_lock); | 986 | spin_unlock_irq(&pprt_lock); |
| 991 | 987 | ||
| @@ -1007,7 +1003,7 @@ static void lcd_clear_fast_tilcd(void) | |||
| 1007 | for (pos = 0; pos < lcd.height * lcd.hwidth; pos++) { | 1003 | for (pos = 0; pos < lcd.height * lcd.hwidth; pos++) { |
| 1008 | /* present the data to the data port */ | 1004 | /* present the data to the data port */ |
| 1009 | w_dtr(pprt, ' '); | 1005 | w_dtr(pprt, ' '); |
| 1010 | usleep_range(60, 120); | 1006 | udelay(60); |
| 1011 | } | 1007 | } |
| 1012 | 1008 | ||
| 1013 | spin_unlock_irq(&pprt_lock); | 1009 | spin_unlock_irq(&pprt_lock); |
diff --git a/drivers/staging/speakup/main.c b/drivers/staging/speakup/main.c index 63c59bc89b04..30cf973f326d 100644 --- a/drivers/staging/speakup/main.c +++ b/drivers/staging/speakup/main.c | |||
| @@ -264,8 +264,9 @@ static struct notifier_block vt_notifier_block = { | |||
| 264 | .notifier_call = vt_notifier_call, | 264 | .notifier_call = vt_notifier_call, |
| 265 | }; | 265 | }; |
| 266 | 266 | ||
| 267 | static unsigned char get_attributes(u16 *pos) | 267 | static unsigned char get_attributes(struct vc_data *vc, u16 *pos) |
| 268 | { | 268 | { |
| 269 | pos = screen_pos(vc, pos - (u16 *)vc->vc_origin, 1); | ||
| 269 | return (u_char) (scr_readw(pos) >> 8); | 270 | return (u_char) (scr_readw(pos) >> 8); |
| 270 | } | 271 | } |
| 271 | 272 | ||
| @@ -275,7 +276,7 @@ static void speakup_date(struct vc_data *vc) | |||
| 275 | spk_y = spk_cy = vc->vc_y; | 276 | spk_y = spk_cy = vc->vc_y; |
| 276 | spk_pos = spk_cp = vc->vc_pos; | 277 | spk_pos = spk_cp = vc->vc_pos; |
| 277 | spk_old_attr = spk_attr; | 278 | spk_old_attr = spk_attr; |
| 278 | spk_attr = get_attributes((u_short *) spk_pos); | 279 | spk_attr = get_attributes(vc, (u_short *)spk_pos); |
| 279 | } | 280 | } |
| 280 | 281 | ||
| 281 | static void bleep(u_short val) | 282 | static void bleep(u_short val) |
| @@ -469,8 +470,12 @@ static u16 get_char(struct vc_data *vc, u16 *pos, u_char *attribs) | |||
| 469 | u16 ch = ' '; | 470 | u16 ch = ' '; |
| 470 | 471 | ||
| 471 | if (vc && pos) { | 472 | if (vc && pos) { |
| 472 | u16 w = scr_readw(pos); | 473 | u16 w; |
| 473 | u16 c = w & 0xff; | 474 | u16 c; |
| 475 | |||
| 476 | pos = screen_pos(vc, pos - (u16 *)vc->vc_origin, 1); | ||
| 477 | w = scr_readw(pos); | ||
| 478 | c = w & 0xff; | ||
| 474 | 479 | ||
| 475 | if (w & vc->vc_hi_font_mask) | 480 | if (w & vc->vc_hi_font_mask) |
| 476 | c |= 0x100; | 481 | c |= 0x100; |
| @@ -746,7 +751,7 @@ static int get_line(struct vc_data *vc) | |||
| 746 | u_char tmp2; | 751 | u_char tmp2; |
| 747 | 752 | ||
| 748 | spk_old_attr = spk_attr; | 753 | spk_old_attr = spk_attr; |
| 749 | spk_attr = get_attributes((u_short *) spk_pos); | 754 | spk_attr = get_attributes(vc, (u_short *)spk_pos); |
| 750 | for (i = 0; i < vc->vc_cols; i++) { | 755 | for (i = 0; i < vc->vc_cols; i++) { |
| 751 | buf[i] = (u_char) get_char(vc, (u_short *) tmp, &tmp2); | 756 | buf[i] = (u_char) get_char(vc, (u_short *) tmp, &tmp2); |
| 752 | tmp += 2; | 757 | tmp += 2; |
| @@ -811,7 +816,7 @@ static int say_from_to(struct vc_data *vc, u_long from, u_long to, | |||
| 811 | u_short saved_punc_mask = spk_punc_mask; | 816 | u_short saved_punc_mask = spk_punc_mask; |
| 812 | 817 | ||
| 813 | spk_old_attr = spk_attr; | 818 | spk_old_attr = spk_attr; |
| 814 | spk_attr = get_attributes((u_short *) from); | 819 | spk_attr = get_attributes(vc, (u_short *)from); |
| 815 | while (from < to) { | 820 | while (from < to) { |
| 816 | buf[i++] = (char)get_char(vc, (u_short *) from, &tmp); | 821 | buf[i++] = (char)get_char(vc, (u_short *) from, &tmp); |
| 817 | from += 2; | 822 | from += 2; |
| @@ -886,7 +891,7 @@ static int get_sentence_buf(struct vc_data *vc, int read_punc) | |||
| 886 | sentmarks[bn][0] = &sentbuf[bn][0]; | 891 | sentmarks[bn][0] = &sentbuf[bn][0]; |
| 887 | i = 0; | 892 | i = 0; |
| 888 | spk_old_attr = spk_attr; | 893 | spk_old_attr = spk_attr; |
| 889 | spk_attr = get_attributes((u_short *) start); | 894 | spk_attr = get_attributes(vc, (u_short *)start); |
| 890 | 895 | ||
| 891 | while (start < end) { | 896 | while (start < end) { |
| 892 | sentbuf[bn][i] = (char)get_char(vc, (u_short *) start, &tmp); | 897 | sentbuf[bn][i] = (char)get_char(vc, (u_short *) start, &tmp); |
| @@ -1585,7 +1590,7 @@ static int count_highlight_color(struct vc_data *vc) | |||
| 1585 | u16 *ptr; | 1590 | u16 *ptr; |
| 1586 | 1591 | ||
| 1587 | for (ptr = start; ptr < end; ptr++) { | 1592 | for (ptr = start; ptr < end; ptr++) { |
| 1588 | ch = get_attributes(ptr); | 1593 | ch = get_attributes(vc, ptr); |
| 1589 | bg = (ch & 0x70) >> 4; | 1594 | bg = (ch & 0x70) >> 4; |
| 1590 | speakup_console[vc_num]->ht.bgcount[bg]++; | 1595 | speakup_console[vc_num]->ht.bgcount[bg]++; |
| 1591 | } | 1596 | } |
diff --git a/drivers/staging/speakup/serialio.c b/drivers/staging/speakup/serialio.c index 3b5835b28128..a5bbb338f275 100644 --- a/drivers/staging/speakup/serialio.c +++ b/drivers/staging/speakup/serialio.c | |||
| @@ -6,6 +6,11 @@ | |||
| 6 | #include "spk_priv.h" | 6 | #include "spk_priv.h" |
| 7 | #include "serialio.h" | 7 | #include "serialio.h" |
| 8 | 8 | ||
| 9 | #include <linux/serial_core.h> | ||
| 10 | /* WARNING: Do not change this to <linux/serial.h> without testing that | ||
| 11 | * SERIAL_PORT_DFNS does get defined to the appropriate value. */ | ||
| 12 | #include <asm/serial.h> | ||
| 13 | |||
| 9 | #ifndef SERIAL_PORT_DFNS | 14 | #ifndef SERIAL_PORT_DFNS |
| 10 | #define SERIAL_PORT_DFNS | 15 | #define SERIAL_PORT_DFNS |
| 11 | #endif | 16 | #endif |
| @@ -23,9 +28,15 @@ const struct old_serial_port *spk_serial_init(int index) | |||
| 23 | int baud = 9600, quot = 0; | 28 | int baud = 9600, quot = 0; |
| 24 | unsigned int cval = 0; | 29 | unsigned int cval = 0; |
| 25 | int cflag = CREAD | HUPCL | CLOCAL | B9600 | CS8; | 30 | int cflag = CREAD | HUPCL | CLOCAL | B9600 | CS8; |
| 26 | const struct old_serial_port *ser = rs_table + index; | 31 | const struct old_serial_port *ser; |
| 27 | int err; | 32 | int err; |
| 28 | 33 | ||
| 34 | if (index >= ARRAY_SIZE(rs_table)) { | ||
| 35 | pr_info("no port info for ttyS%d\n", index); | ||
| 36 | return NULL; | ||
| 37 | } | ||
| 38 | ser = rs_table + index; | ||
| 39 | |||
| 29 | /* Divisor, bytesize and parity */ | 40 | /* Divisor, bytesize and parity */ |
| 30 | quot = ser->baud_base / baud; | 41 | quot = ser->baud_base / baud; |
| 31 | cval = cflag & (CSIZE | CSTOPB); | 42 | cval = cflag & (CSIZE | CSTOPB); |
diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c index e7cbc44eef57..bd51bdd0a7bf 100644 --- a/drivers/tty/vt/vt.c +++ b/drivers/tty/vt/vt.c | |||
| @@ -4250,6 +4250,7 @@ unsigned short *screen_pos(struct vc_data *vc, int w_offset, int viewed) | |||
| 4250 | { | 4250 | { |
| 4251 | return screenpos(vc, 2 * w_offset, viewed); | 4251 | return screenpos(vc, 2 * w_offset, viewed); |
| 4252 | } | 4252 | } |
| 4253 | EXPORT_SYMBOL_GPL(screen_pos); | ||
| 4253 | 4254 | ||
| 4254 | void getconsxy(struct vc_data *vc, unsigned char *p) | 4255 | void getconsxy(struct vc_data *vc, unsigned char *p) |
| 4255 | { | 4256 | { |
