Lines Matching refs:pdev
157 static bool renesas_check_rom(struct pci_dev *pdev) in renesas_check_rom() argument
163 retval = pci_read_config_word(pdev, RENESAS_ROM_STATUS, &rom_status); in renesas_check_rom()
169 dev_dbg(&pdev->dev, "External ROM exists\n"); in renesas_check_rom()
176 static int renesas_check_rom_state(struct pci_dev *pdev) in renesas_check_rom_state() argument
183 err = pci_read_config_dword(pdev, RENESAS_FW_VERSION, &version); in renesas_check_rom_state()
189 dev_dbg(&pdev->dev, "Found ROM version: %x\n", version); in renesas_check_rom_state()
194 err = pci_read_config_word(pdev, RENESAS_ROM_STATUS, &rom_state); in renesas_check_rom_state()
200 dev_dbg(&pdev->dev, "ROM exists\n"); in renesas_check_rom_state()
208 dev_dbg(&pdev->dev, "Unknown ROM status ...\n"); in renesas_check_rom_state()
213 dev_err(&pdev->dev, "Invalid ROM.."); in renesas_check_rom_state()
221 static int renesas_fw_check_running(struct pci_dev *pdev) in renesas_fw_check_running() argument
231 err = pci_read_config_byte(pdev, RENESAS_FW_STATUS, &fw_state); in renesas_fw_check_running()
241 dev_dbg(&pdev->dev, "FW Download Lock is engaged."); in renesas_fw_check_running()
246 dev_err(&pdev->dev, in renesas_fw_check_running()
257 dev_err(&pdev->dev, in renesas_fw_check_running()
265 dev_dbg(&pdev->dev, "FW is not ready/loaded yet."); in renesas_fw_check_running()
271 dev_dbg(&pdev->dev, "FW is ready."); in renesas_fw_check_running()
275 dev_err(&pdev->dev, in renesas_fw_check_running()
280 dev_err(&pdev->dev, in renesas_fw_check_running()
287 static int renesas_fw_download(struct pci_dev *pdev, in renesas_fw_download() argument
305 err = pci_write_config_byte(pdev, RENESAS_FW_STATUS, in renesas_fw_download()
312 err = renesas_fw_download_image(pdev, fw_data, i, false); in renesas_fw_download()
314 dev_err(&pdev->dev, in renesas_fw_download()
327 err = pci_read_config_byte(pdev, RENESAS_FW_STATUS_MSB, in renesas_fw_download()
337 dev_warn(&pdev->dev, "Final Firmware Download step timed out."); in renesas_fw_download()
343 err = pci_write_config_byte(pdev, RENESAS_FW_STATUS, 0); in renesas_fw_download()
349 err = pci_read_config_byte(pdev, RENESAS_FW_STATUS, &fw_status); in renesas_fw_download()
359 err = renesas_fw_check_running(pdev); in renesas_fw_download()
369 dev_err(&pdev->dev, "FW Load timedout"); in renesas_fw_download()
380 static void renesas_rom_erase(struct pci_dev *pdev) in renesas_rom_erase() argument
385 dev_dbg(&pdev->dev, "Performing ROM Erase...\n"); in renesas_rom_erase()
386 retval = pci_write_config_dword(pdev, RENESAS_DATA0, in renesas_rom_erase()
389 dev_err(&pdev->dev, "ROM erase, magic word write failed: %d\n", in renesas_rom_erase()
394 retval = pci_read_config_byte(pdev, RENESAS_ROM_STATUS, &status); in renesas_rom_erase()
396 dev_err(&pdev->dev, "ROM status read failed: %d\n", in renesas_rom_erase()
401 retval = pci_write_config_byte(pdev, RENESAS_ROM_STATUS, status); in renesas_rom_erase()
403 dev_err(&pdev->dev, "ROM erase set word write failed\n"); in renesas_rom_erase()
411 retval = pci_read_config_byte(pdev, RENESAS_ROM_STATUS, in renesas_rom_erase()
421 dev_dbg(&pdev->dev, "Chip erase timedout: %x\n", status); in renesas_rom_erase()
423 dev_dbg(&pdev->dev, "ROM Erase... Done success\n"); in renesas_rom_erase()
426 static bool renesas_setup_rom(struct pci_dev *pdev, const struct firmware *fw) in renesas_setup_rom() argument
433 err = pci_write_config_dword(pdev, RENESAS_DATA0, in renesas_setup_rom()
439 err = pci_write_config_byte(pdev, RENESAS_ROM_STATUS, in renesas_setup_rom()
445 err = pci_read_config_byte(pdev, RENESAS_ROM_STATUS, &status); in renesas_setup_rom()
450 dev_err(&pdev->dev, in renesas_setup_rom()
457 err = renesas_fw_download_image(pdev, fw_data, i, true); in renesas_setup_rom()
459 dev_err(&pdev->dev, in renesas_setup_rom()
470 err = pci_read_config_byte(pdev, RENESAS_ROM_STATUS_MSB, in renesas_setup_rom()
480 dev_err(&pdev->dev, "Final Firmware ROM Download step timed out\n"); in renesas_setup_rom()
485 err = pci_write_config_byte(pdev, RENESAS_ROM_STATUS, 0); in renesas_setup_rom()
493 err = pci_read_config_byte(pdev, RENESAS_ROM_STATUS, &status); in renesas_setup_rom()
495 dev_err(&pdev->dev, "Read ROM status failed:%d\n", in renesas_setup_rom()
501 dev_dbg(&pdev->dev, "Download ROM success\n"); in renesas_setup_rom()
507 dev_err(&pdev->dev, in renesas_setup_rom()
512 dev_dbg(&pdev->dev, "Download to external ROM succeeded\n"); in renesas_setup_rom()
515 err = pci_write_config_byte(pdev, RENESAS_ROM_STATUS, in renesas_setup_rom()
518 dev_err(&pdev->dev, "Set ROM execute failed: %d\n", in renesas_setup_rom()
527 err = pci_read_config_byte(pdev, RENESAS_ROM_STATUS, &status); in renesas_setup_rom()
536 dev_err(&pdev->dev, "ROM Exec timed out: %x\n", status); in renesas_setup_rom()
543 pci_write_config_byte(pdev, RENESAS_ROM_STATUS, 0); in renesas_setup_rom()
547 static int renesas_load_fw(struct pci_dev *pdev, const struct firmware *fw) in renesas_load_fw() argument
553 rom = renesas_check_rom(pdev); in renesas_load_fw()
556 renesas_rom_erase(pdev); in renesas_load_fw()
559 rom = renesas_setup_rom(pdev, fw); in renesas_load_fw()
561 dev_dbg(&pdev->dev, in renesas_load_fw()
564 dev_dbg(&pdev->dev, in renesas_load_fw()
570 err = renesas_fw_download(pdev, fw); in renesas_load_fw()
574 dev_err(&pdev->dev, "firmware failed to download (%d).", err); in renesas_load_fw()
578 static int renesas_xhci_check_request_fw(struct pci_dev *pdev, in renesas_xhci_check_request_fw() argument
587 has_rom = renesas_check_rom(pdev); in renesas_xhci_check_request_fw()
589 err = renesas_check_rom_state(pdev); in renesas_xhci_check_request_fw()
596 err = renesas_fw_check_running(pdev); in renesas_xhci_check_request_fw()
605 pci_dev_get(pdev); in renesas_xhci_check_request_fw()
606 err = firmware_request_nowarn(&fw, fw_name, &pdev->dev); in renesas_xhci_check_request_fw()
607 pci_dev_put(pdev); in renesas_xhci_check_request_fw()
610 dev_info(&pdev->dev, "failed to load firmware %s, fallback to ROM\n", in renesas_xhci_check_request_fw()
614 dev_err(&pdev->dev, "failed to load firmware %s: %d\n", in renesas_xhci_check_request_fw()
623 err = renesas_load_fw(pdev, fw); in renesas_xhci_check_request_fw()