diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/base/core.c | 4 | ||||
-rw-r--r-- | drivers/i2c/busses/i2c-keywest.c | 5 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa6752hs.c | 10 | ||||
-rw-r--r-- | drivers/mmc/mmc_block.c | 5 | ||||
-rw-r--r-- | drivers/net/tg3.c | 8 | ||||
-rw-r--r-- | drivers/scsi/aic7xxx/aic7xxx_osm.c | 7 | ||||
-rw-r--r-- | drivers/serial/8250.c | 17 |
7 files changed, 38 insertions, 18 deletions
diff --git a/drivers/base/core.c b/drivers/base/core.c index d21eb77444..fbc223486f 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c | |||
@@ -245,6 +245,7 @@ int device_add(struct device *dev) | |||
245 | 245 | ||
246 | if ((error = kobject_add(&dev->kobj))) | 246 | if ((error = kobject_add(&dev->kobj))) |
247 | goto Error; | 247 | goto Error; |
248 | kobject_hotplug(&dev->kobj, KOBJ_ADD); | ||
248 | if ((error = device_pm_add(dev))) | 249 | if ((error = device_pm_add(dev))) |
249 | goto PMError; | 250 | goto PMError; |
250 | if ((error = bus_add_device(dev))) | 251 | if ((error = bus_add_device(dev))) |
@@ -257,14 +258,13 @@ int device_add(struct device *dev) | |||
257 | /* notify platform of device entry */ | 258 | /* notify platform of device entry */ |
258 | if (platform_notify) | 259 | if (platform_notify) |
259 | platform_notify(dev); | 260 | platform_notify(dev); |
260 | |||
261 | kobject_hotplug(&dev->kobj, KOBJ_ADD); | ||
262 | Done: | 261 | Done: |
263 | put_device(dev); | 262 | put_device(dev); |
264 | return error; | 263 | return error; |
265 | BusError: | 264 | BusError: |
266 | device_pm_remove(dev); | 265 | device_pm_remove(dev); |
267 | PMError: | 266 | PMError: |
267 | kobject_hotplug(&dev->kobj, KOBJ_REMOVE); | ||
268 | kobject_del(&dev->kobj); | 268 | kobject_del(&dev->kobj); |
269 | Error: | 269 | Error: |
270 | if (parent) | 270 | if (parent) |
diff --git a/drivers/i2c/busses/i2c-keywest.c b/drivers/i2c/busses/i2c-keywest.c index dd0d4c4631..867d443e71 100644 --- a/drivers/i2c/busses/i2c-keywest.c +++ b/drivers/i2c/busses/i2c-keywest.c | |||
@@ -516,6 +516,11 @@ create_iface(struct device_node *np, struct device *dev) | |||
516 | u32 *psteps, *prate; | 516 | u32 *psteps, *prate; |
517 | int rc; | 517 | int rc; |
518 | 518 | ||
519 | if (np->n_intrs < 1 || np->n_addrs < 1) { | ||
520 | printk(KERN_ERR "%s: Missing interrupt or address !\n", | ||
521 | np->full_name); | ||
522 | return -ENODEV; | ||
523 | } | ||
519 | if (pmac_low_i2c_lock(np)) | 524 | if (pmac_low_i2c_lock(np)) |
520 | return -ENODEV; | 525 | return -ENODEV; |
521 | 526 | ||
diff --git a/drivers/media/video/saa7134/saa6752hs.c b/drivers/media/video/saa7134/saa6752hs.c index fe6abe3416..1db0226829 100644 --- a/drivers/media/video/saa7134/saa6752hs.c +++ b/drivers/media/video/saa7134/saa6752hs.c | |||
@@ -43,15 +43,15 @@ enum saa6752hs_videoformat { | |||
43 | static const struct v4l2_format v4l2_format_table[] = | 43 | static const struct v4l2_format v4l2_format_table[] = |
44 | { | 44 | { |
45 | [SAA6752HS_VF_D1] = { | 45 | [SAA6752HS_VF_D1] = { |
46 | .fmt.pix.width = 720, .fmt.pix.height = 576 }, | 46 | .fmt = { .pix = { .width = 720, .height = 576 }, }, }, |
47 | [SAA6752HS_VF_2_3_D1] = { | 47 | [SAA6752HS_VF_2_3_D1] = { |
48 | .fmt.pix.width = 480, .fmt.pix.height = 576 }, | 48 | .fmt = { .pix = { .width = 480, .height = 576 }, }, }, |
49 | [SAA6752HS_VF_1_2_D1] = { | 49 | [SAA6752HS_VF_1_2_D1] = { |
50 | .fmt.pix.width = 352, .fmt.pix.height = 576 }, | 50 | .fmt = { .pix = { .width = 352, .height = 576 }, }, }, |
51 | [SAA6752HS_VF_SIF] = { | 51 | [SAA6752HS_VF_SIF] = { |
52 | .fmt.pix.width = 352, .fmt.pix.height = 288 }, | 52 | .fmt = { .pix = { .width = 352, .height = 288 }, }, }, |
53 | [SAA6752HS_VF_UNKNOWN] = { | 53 | [SAA6752HS_VF_UNKNOWN] = { |
54 | .fmt.pix.width = 0, .fmt.pix.height = 0}, | 54 | .fmt = { .pix = { .width = 0, .height = 0 }, }, }, |
55 | }; | 55 | }; |
56 | 56 | ||
57 | struct saa6752hs_state { | 57 | struct saa6752hs_state { |
diff --git a/drivers/mmc/mmc_block.c b/drivers/mmc/mmc_block.c index b5b4a7b119..d4eee99c2b 100644 --- a/drivers/mmc/mmc_block.c +++ b/drivers/mmc/mmc_block.c | |||
@@ -383,7 +383,10 @@ static int mmc_blk_probe(struct mmc_card *card) | |||
383 | struct mmc_blk_data *md; | 383 | struct mmc_blk_data *md; |
384 | int err; | 384 | int err; |
385 | 385 | ||
386 | if (card->csd.cmdclass & ~0x1ff) | 386 | /* |
387 | * Check that the card supports the command class(es) we need. | ||
388 | */ | ||
389 | if (!(card->csd.cmdclass & CCC_BLOCK_READ)) | ||
387 | return -ENODEV; | 390 | return -ENODEV; |
388 | 391 | ||
389 | if (card->csd.read_blkbits < 9) { | 392 | if (card->csd.read_blkbits < 9) { |
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c index 4d2bdbdd34..f10dd74988 100644 --- a/drivers/net/tg3.c +++ b/drivers/net/tg3.c | |||
@@ -61,8 +61,8 @@ | |||
61 | 61 | ||
62 | #define DRV_MODULE_NAME "tg3" | 62 | #define DRV_MODULE_NAME "tg3" |
63 | #define PFX DRV_MODULE_NAME ": " | 63 | #define PFX DRV_MODULE_NAME ": " |
64 | #define DRV_MODULE_VERSION "3.27" | 64 | #define DRV_MODULE_VERSION "3.29" |
65 | #define DRV_MODULE_RELDATE "May 5, 2005" | 65 | #define DRV_MODULE_RELDATE "May 23, 2005" |
66 | 66 | ||
67 | #define TG3_DEF_MAC_MODE 0 | 67 | #define TG3_DEF_MAC_MODE 0 |
68 | #define TG3_DEF_RX_MODE 0 | 68 | #define TG3_DEF_RX_MODE 0 |
@@ -206,6 +206,8 @@ static struct pci_device_id tg3_pci_tbl[] = { | |||
206 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 206 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, |
207 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5752, | 207 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5752, |
208 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 208 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, |
209 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5752M, | ||
210 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | ||
209 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5753, | 211 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5753, |
210 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 212 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, |
211 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5753M, | 213 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5753M, |
@@ -8994,7 +8996,7 @@ static int __devinit tg3_do_test_dma(struct tg3 *tp, u32 *buf, dma_addr_t buf_dm | |||
8994 | return ret; | 8996 | return ret; |
8995 | } | 8997 | } |
8996 | 8998 | ||
8997 | #define TEST_BUFFER_SIZE 0x400 | 8999 | #define TEST_BUFFER_SIZE 0x2000 |
8998 | 9000 | ||
8999 | static int __devinit tg3_test_dma(struct tg3 *tp) | 9001 | static int __devinit tg3_test_dma(struct tg3 *tp) |
9000 | { | 9002 | { |
diff --git a/drivers/scsi/aic7xxx/aic7xxx_osm.c b/drivers/scsi/aic7xxx/aic7xxx_osm.c index f90efa265b..c13e563200 100644 --- a/drivers/scsi/aic7xxx/aic7xxx_osm.c +++ b/drivers/scsi/aic7xxx/aic7xxx_osm.c | |||
@@ -659,8 +659,11 @@ ahc_linux_slave_alloc(struct scsi_device *device) | |||
659 | ahc_lock(ahc, &flags); | 659 | ahc_lock(ahc, &flags); |
660 | targ = ahc->platform_data->targets[target_offset]; | 660 | targ = ahc->platform_data->targets[target_offset]; |
661 | if (targ == NULL) { | 661 | if (targ == NULL) { |
662 | targ = ahc_linux_alloc_target(ahc, starget->channel, starget->id); | 662 | struct seeprom_config *sc; |
663 | struct seeprom_config *sc = ahc->seep_config; | 663 | |
664 | targ = ahc_linux_alloc_target(ahc, starget->channel, | ||
665 | starget->id); | ||
666 | sc = ahc->seep_config; | ||
664 | if (targ == NULL) | 667 | if (targ == NULL) |
665 | goto out; | 668 | goto out; |
666 | 669 | ||
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c index 3bbf0cc6e5..30e8beb714 100644 --- a/drivers/serial/8250.c +++ b/drivers/serial/8250.c | |||
@@ -682,8 +682,6 @@ static void autoconfig_16550a(struct uart_8250_port *up) | |||
682 | * from EXCR1. Switch back to bank 0, change it in MCR. Then | 682 | * from EXCR1. Switch back to bank 0, change it in MCR. Then |
683 | * switch back to bank 2, read it from EXCR1 again and check | 683 | * switch back to bank 2, read it from EXCR1 again and check |
684 | * it's changed. If so, set baud_base in EXCR2 to 921600. -- dwmw2 | 684 | * it's changed. If so, set baud_base in EXCR2 to 921600. -- dwmw2 |
685 | * On PowerPC we don't want to change baud_base, as we have | ||
686 | * a number of different divisors. -- Tom Rini | ||
687 | */ | 685 | */ |
688 | serial_outp(up, UART_LCR, 0); | 686 | serial_outp(up, UART_LCR, 0); |
689 | status1 = serial_in(up, UART_MCR); | 687 | status1 = serial_in(up, UART_MCR); |
@@ -699,16 +697,25 @@ static void autoconfig_16550a(struct uart_8250_port *up) | |||
699 | serial_outp(up, UART_MCR, status1); | 697 | serial_outp(up, UART_MCR, status1); |
700 | 698 | ||
701 | if ((status2 ^ status1) & UART_MCR_LOOP) { | 699 | if ((status2 ^ status1) & UART_MCR_LOOP) { |
702 | #ifndef CONFIG_PPC | 700 | unsigned short quot; |
701 | |||
703 | serial_outp(up, UART_LCR, 0xE0); | 702 | serial_outp(up, UART_LCR, 0xE0); |
703 | |||
704 | quot = serial_inp(up, UART_DLM) << 8; | ||
705 | quot += serial_inp(up, UART_DLL); | ||
706 | quot <<= 3; | ||
707 | |||
704 | status1 = serial_in(up, 0x04); /* EXCR1 */ | 708 | status1 = serial_in(up, 0x04); /* EXCR1 */ |
705 | status1 &= ~0xB0; /* Disable LOCK, mask out PRESL[01] */ | 709 | status1 &= ~0xB0; /* Disable LOCK, mask out PRESL[01] */ |
706 | status1 |= 0x10; /* 1.625 divisor for baud_base --> 921600 */ | 710 | status1 |= 0x10; /* 1.625 divisor for baud_base --> 921600 */ |
707 | serial_outp(up, 0x04, status1); | 711 | serial_outp(up, 0x04, status1); |
712 | |||
713 | serial_outp(up, UART_DLL, quot & 0xff); | ||
714 | serial_outp(up, UART_DLM, quot >> 8); | ||
715 | |||
708 | serial_outp(up, UART_LCR, 0); | 716 | serial_outp(up, UART_LCR, 0); |
709 | up->port.uartclk = 921600*16; | ||
710 | #endif | ||
711 | 717 | ||
718 | up->port.uartclk = 921600*16; | ||
712 | up->port.type = PORT_NS16550A; | 719 | up->port.type = PORT_NS16550A; |
713 | up->capabilities |= UART_NATSEMI; | 720 | up->capabilities |= UART_NATSEMI; |
714 | return; | 721 | return; |