389static int __devinit via_init_one(struct pci_dev *dev, const struct pci_device_id *id)
390{
391 struct pci_dev *isa = NULL;
392 struct via_isa_bridge *via_config;
393 struct via82cxxx_dev *vdev;
394 int rc;
395 u8 idx = id->driver_data;
396 struct ide_port_info d;
397
398 d = via82cxxx_chipset;
399
400
401
402
403 via_config = via_config_find(&isa);
404 if (!via_config->id) {
405 printk(KERN_WARNING DRV_NAME " %s: unknown chipset, skipping\n",
406 pci_name(dev));
407 return -ENODEV;
408 }
409
410
411
412
413 printk(KERN_INFO DRV_NAME " %s: VIA %s (rev %02x) IDE %sDMA%s\n",
414 pci_name(dev), via_config->name, isa->revision,
415 via_config->udma_mask ? "U" : "MW",
416 via_dma[via_config->udma_mask ?
417 (fls(via_config->udma_mask) - 1) : 0]);
418
419 pci_dev_put(isa);
420
421
422
423
424 via_clock = (ide_pci_clk ? ide_pci_clk : 33) * 1000;
425
426 switch (via_clock) {
427 case 33000: via_clock = 33333; break;
428 case 37000: via_clock = 37500; break;
429 case 41000: via_clock = 41666; break;