Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

pata_cmd64x: add cmd64x_fixup()

Factor out common code from cmd64x_[re]init_one() to cmd64x_fixup().

Remove stale comment and fix a minor CodingStyle issue while at it.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>

authored by

Bartlomiej Zolnierkiewicz and committed by
Jeff Garzik
f4c6ae50 dc5e44ec

+20 -22
+20 -22
drivers/ata/pata_cmd64x.c
··· 288 288 .cable_detect = cmd648_cable_detect, 289 289 }; 290 290 291 + static void cmd64x_fixup(struct pci_dev *pdev) 292 + { 293 + u8 mrdmode; 294 + 295 + pci_write_config_byte(pdev, PCI_LATENCY_TIMER, 64); 296 + pci_read_config_byte(pdev, MRDMODE, &mrdmode); 297 + mrdmode &= ~0x30; /* IRQ set up */ 298 + mrdmode |= 0x02; /* Memory read line enable */ 299 + pci_write_config_byte(pdev, MRDMODE, mrdmode); 300 + 301 + /* PPC specific fixup copied from old driver */ 302 + #ifdef CONFIG_PPC 303 + pci_write_config_byte(pdev, UDIDETCR0, 0xF0); 304 + #endif 305 + } 306 + 291 307 static int cmd64x_init_one(struct pci_dev *pdev, const struct pci_device_id *id) 292 308 { 293 309 static const struct ata_port_info cmd_info[6] = { ··· 352 336 &cmd_info[id->driver_data], 353 337 NULL 354 338 }; 355 - u8 mrdmode, reg; 339 + u8 reg; 356 340 int rc; 357 341 struct pci_dev *bridge = pdev->bus->self; 358 342 /* mobility split bridges don't report enabled ports correctly */ ··· 384 368 cntrl_ch0_ok = 0; 385 369 } 386 370 387 - pci_write_config_byte(pdev, PCI_LATENCY_TIMER, 64); 388 - pci_read_config_byte(pdev, MRDMODE, &mrdmode); 389 - mrdmode &= ~ 0x30; /* IRQ set up */ 390 - mrdmode |= 0x02; /* Memory read line enable */ 391 - pci_write_config_byte(pdev, MRDMODE, mrdmode); 371 + cmd64x_fixup(pdev); 392 372 393 373 /* check for enabled ports */ 394 374 pci_read_config_byte(pdev, CNTRL, &reg); ··· 400 388 ppi[1] = &ata_dummy_port_info; 401 389 } 402 390 403 - /* Force PIO 0 here.. */ 404 - 405 - /* PPC specific fixup copied from old driver */ 406 - #ifdef CONFIG_PPC 407 - pci_write_config_byte(pdev, UDIDETCR0, 0xF0); 408 - #endif 409 - 410 391 return ata_pci_bmdma_init_one(pdev, ppi, &cmd64x_sht, NULL, 0); 411 392 } 412 393 ··· 407 402 static int cmd64x_reinit_one(struct pci_dev *pdev) 408 403 { 409 404 struct ata_host *host = dev_get_drvdata(&pdev->dev); 410 - u8 mrdmode; 411 405 int rc; 412 406 413 407 rc = ata_pci_device_do_resume(pdev); 414 408 if (rc) 415 409 return rc; 416 410 417 - pci_write_config_byte(pdev, PCI_LATENCY_TIMER, 64); 418 - pci_read_config_byte(pdev, MRDMODE, &mrdmode); 419 - mrdmode &= ~ 0x30; /* IRQ set up */ 420 - mrdmode |= 0x02; /* Memory read line enable */ 421 - pci_write_config_byte(pdev, MRDMODE, mrdmode); 422 - #ifdef CONFIG_PPC 423 - pci_write_config_byte(pdev, UDIDETCR0, 0xF0); 424 - #endif 411 + cmd64x_fixup(pdev); 412 + 425 413 ata_host_resume(host); 426 414 return 0; 427 415 }