diff options
-rw-r--r-- | arch/arm/mach-at91/board-ek.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-pxa/pxa25x.c | 13 | ||||
-rw-r--r-- | drivers/media/video/bt8xx/bttv-driver.c | 4 | ||||
-rw-r--r-- | drivers/media/video/ivtv/ivtv-driver.c | 4 | ||||
-rw-r--r-- | drivers/media/video/ivtv/ivtv-i2c.c | 5 |
5 files changed, 27 insertions, 8 deletions
diff --git a/arch/arm/mach-at91/board-ek.c b/arch/arm/mach-at91/board-ek.c index d05b1b2be9fb..53a5ef9e72ee 100644 --- a/arch/arm/mach-at91/board-ek.c +++ b/arch/arm/mach-at91/board-ek.c | |||
@@ -109,6 +109,15 @@ static struct spi_board_info ek_spi_devices[] = { | |||
109 | #endif | 109 | #endif |
110 | }; | 110 | }; |
111 | 111 | ||
112 | static struct i2c_board_info __initdata ek_i2c_devices[] = { | ||
113 | { | ||
114 | I2C_BOARD_INFO("ics1523", 0x26), | ||
115 | }, | ||
116 | { | ||
117 | I2C_BOARD_INFO("dac3550", 0x4d), | ||
118 | } | ||
119 | }; | ||
120 | |||
112 | #define EK_FLASH_BASE AT91_CHIPSELECT_0 | 121 | #define EK_FLASH_BASE AT91_CHIPSELECT_0 |
113 | #define EK_FLASH_SIZE 0x200000 | 122 | #define EK_FLASH_SIZE 0x200000 |
114 | 123 | ||
diff --git a/arch/arm/mach-pxa/pxa25x.c b/arch/arm/mach-pxa/pxa25x.c index dcd81f8d0833..9732d5d9466b 100644 --- a/arch/arm/mach-pxa/pxa25x.c +++ b/arch/arm/mach-pxa/pxa25x.c | |||
@@ -178,13 +178,19 @@ static void pxa25x_cpu_pm_save(unsigned long *sleep_save) | |||
178 | SAVE(GAFR1_L); SAVE(GAFR1_U); | 178 | SAVE(GAFR1_L); SAVE(GAFR1_U); |
179 | SAVE(GAFR2_L); SAVE(GAFR2_U); | 179 | SAVE(GAFR2_L); SAVE(GAFR2_U); |
180 | 180 | ||
181 | SAVE(ICMR); | 181 | SAVE(ICMR); ICMR = 0; |
182 | SAVE(CKEN); | 182 | SAVE(CKEN); |
183 | SAVE(PSTR); | 183 | SAVE(PSTR); |
184 | |||
185 | /* Clear GPIO transition detect bits */ | ||
186 | GEDR0 = GEDR0; GEDR1 = GEDR1; GEDR2 = GEDR2; | ||
184 | } | 187 | } |
185 | 188 | ||
186 | static void pxa25x_cpu_pm_restore(unsigned long *sleep_save) | 189 | static void pxa25x_cpu_pm_restore(unsigned long *sleep_save) |
187 | { | 190 | { |
191 | /* ensure not to come back here if it wasn't intended */ | ||
192 | PSPR = 0; | ||
193 | |||
188 | /* restore registers */ | 194 | /* restore registers */ |
189 | RESTORE_GPLEVEL(0); RESTORE_GPLEVEL(1); RESTORE_GPLEVEL(2); | 195 | RESTORE_GPLEVEL(0); RESTORE_GPLEVEL(1); RESTORE_GPLEVEL(2); |
190 | RESTORE(GPDR0); RESTORE(GPDR1); RESTORE(GPDR2); | 196 | RESTORE(GPDR0); RESTORE(GPDR1); RESTORE(GPDR2); |
@@ -195,7 +201,12 @@ static void pxa25x_cpu_pm_restore(unsigned long *sleep_save) | |||
195 | RESTORE(GFER0); RESTORE(GFER1); RESTORE(GFER2); | 201 | RESTORE(GFER0); RESTORE(GFER1); RESTORE(GFER2); |
196 | RESTORE(PGSR0); RESTORE(PGSR1); RESTORE(PGSR2); | 202 | RESTORE(PGSR0); RESTORE(PGSR1); RESTORE(PGSR2); |
197 | 203 | ||
204 | PSSR = PSSR_RDH | PSSR_PH; | ||
205 | |||
198 | RESTORE(CKEN); | 206 | RESTORE(CKEN); |
207 | |||
208 | ICLR = 0; | ||
209 | ICCR = 1; | ||
199 | RESTORE(ICMR); | 210 | RESTORE(ICMR); |
200 | RESTORE(PSTR); | 211 | RESTORE(PSTR); |
201 | } | 212 | } |
diff --git a/drivers/media/video/bt8xx/bttv-driver.c b/drivers/media/video/bt8xx/bttv-driver.c index c02d92deacd2..581a3c955739 100644 --- a/drivers/media/video/bt8xx/bttv-driver.c +++ b/drivers/media/video/bt8xx/bttv-driver.c | |||
@@ -3063,11 +3063,10 @@ static int bttv_do_ioctl(struct inode *inode, struct file *file, | |||
3063 | struct video_mbuf *mbuf = arg; | 3063 | struct video_mbuf *mbuf = arg; |
3064 | unsigned int i; | 3064 | unsigned int i; |
3065 | 3065 | ||
3066 | mutex_lock(&fh->cap.lock); | ||
3067 | retval = videobuf_mmap_setup(&fh->cap,gbuffers,gbufsize, | 3066 | retval = videobuf_mmap_setup(&fh->cap,gbuffers,gbufsize, |
3068 | V4L2_MEMORY_MMAP); | 3067 | V4L2_MEMORY_MMAP); |
3069 | if (retval < 0) | 3068 | if (retval < 0) |
3070 | goto fh_unlock_and_return; | 3069 | return retval; |
3071 | 3070 | ||
3072 | gbuffers = retval; | 3071 | gbuffers = retval; |
3073 | memset(mbuf,0,sizeof(*mbuf)); | 3072 | memset(mbuf,0,sizeof(*mbuf)); |
@@ -3075,7 +3074,6 @@ static int bttv_do_ioctl(struct inode *inode, struct file *file, | |||
3075 | mbuf->size = gbuffers * gbufsize; | 3074 | mbuf->size = gbuffers * gbufsize; |
3076 | for (i = 0; i < gbuffers; i++) | 3075 | for (i = 0; i < gbuffers; i++) |
3077 | mbuf->offsets[i] = i * gbufsize; | 3076 | mbuf->offsets[i] = i * gbufsize; |
3078 | mutex_unlock(&fh->cap.lock); | ||
3079 | return 0; | 3077 | return 0; |
3080 | } | 3078 | } |
3081 | case VIDIOCMCAPTURE: | 3079 | case VIDIOCMCAPTURE: |
diff --git a/drivers/media/video/ivtv/ivtv-driver.c b/drivers/media/video/ivtv/ivtv-driver.c index 6d2dd8764f81..10d6faf8ccda 100644 --- a/drivers/media/video/ivtv/ivtv-driver.c +++ b/drivers/media/video/ivtv/ivtv-driver.c | |||
@@ -1076,6 +1076,10 @@ static int __devinit ivtv_probe(struct pci_dev *dev, | |||
1076 | ivtv_process_eeprom(itv); | 1076 | ivtv_process_eeprom(itv); |
1077 | } | 1077 | } |
1078 | 1078 | ||
1079 | /* The mspx4xx chips need a longer delay for some reason */ | ||
1080 | if (!(itv->hw_flags & IVTV_HW_MSP34XX)) | ||
1081 | itv->i2c_algo.udelay = 5; | ||
1082 | |||
1079 | if (itv->std == 0) { | 1083 | if (itv->std == 0) { |
1080 | itv->std = V4L2_STD_NTSC_M; | 1084 | itv->std = V4L2_STD_NTSC_M; |
1081 | } | 1085 | } |
diff --git a/drivers/media/video/ivtv/ivtv-i2c.c b/drivers/media/video/ivtv/ivtv-i2c.c index 44678fe27a04..36e54f78aa2a 100644 --- a/drivers/media/video/ivtv/ivtv-i2c.c +++ b/drivers/media/video/ivtv/ivtv-i2c.c | |||
@@ -541,7 +541,7 @@ static const struct i2c_algo_bit_data ivtv_i2c_algo_template = { | |||
541 | .setscl = ivtv_setscl_old, | 541 | .setscl = ivtv_setscl_old, |
542 | .getsda = ivtv_getsda_old, | 542 | .getsda = ivtv_getsda_old, |
543 | .getscl = ivtv_getscl_old, | 543 | .getscl = ivtv_getscl_old, |
544 | .udelay = 5, | 544 | .udelay = 10, |
545 | .timeout = 200, | 545 | .timeout = 200, |
546 | }; | 546 | }; |
547 | 547 | ||
@@ -718,9 +718,6 @@ int init_ivtv_i2c(struct ivtv *itv) | |||
718 | sizeof(struct i2c_adapter)); | 718 | sizeof(struct i2c_adapter)); |
719 | memcpy(&itv->i2c_algo, &ivtv_i2c_algo_template, | 719 | memcpy(&itv->i2c_algo, &ivtv_i2c_algo_template, |
720 | sizeof(struct i2c_algo_bit_data)); | 720 | sizeof(struct i2c_algo_bit_data)); |
721 | /* The mspx4xx chips need a longer delay for some reason */ | ||
722 | if (itv->hw_flags & IVTV_HW_MSP34XX) | ||
723 | itv->i2c_algo.udelay = 10; | ||
724 | itv->i2c_algo.data = itv; | 721 | itv->i2c_algo.data = itv; |
725 | itv->i2c_adap.algo_data = &itv->i2c_algo; | 722 | itv->i2c_adap.algo_data = &itv->i2c_algo; |
726 | } | 723 | } |