hid-sony.c (e19a267b9987135c00155a51e683e434b9abb56b) hid-sony.c (80ecc48c0ade5e99cc9d84febd17c44a4f011c13)
1/*
2 * HID driver for Sony / PS2 / PS3 / PS4 BD devices.
3 *
4 * Copyright (c) 1999 Andreas Gal
5 * Copyright (c) 2000-2005 Vojtech Pavlik <vojtech@suse.cz>
6 * Copyright (c) 2005 Michael Haboustak <mike-@cinci.rr.com> for Concept2, Inc
7 * Copyright (c) 2008 Jiri Slaby
8 * Copyright (c) 2012 David Dillow <dave@thedillows.org>

--- 2454 unchanged lines hidden (view full) ---

2463 * until the PS logo button is pressed and as such won't retain
2464 * any state set by an output report, so the initial
2465 * configuration report is deferred until the first input
2466 * report arrives.
2467 */
2468 hdev->quirks |= HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP;
2469 hdev->quirks |= HID_QUIRK_SKIP_OUTPUT_REPORT_ID;
2470 sc->defer_initialization = 1;
1/*
2 * HID driver for Sony / PS2 / PS3 / PS4 BD devices.
3 *
4 * Copyright (c) 1999 Andreas Gal
5 * Copyright (c) 2000-2005 Vojtech Pavlik <vojtech@suse.cz>
6 * Copyright (c) 2005 Michael Haboustak <mike-@cinci.rr.com> for Concept2, Inc
7 * Copyright (c) 2008 Jiri Slaby
8 * Copyright (c) 2012 David Dillow <dave@thedillows.org>

--- 2454 unchanged lines hidden (view full) ---

2463 * until the PS logo button is pressed and as such won't retain
2464 * any state set by an output report, so the initial
2465 * configuration report is deferred until the first input
2466 * report arrives.
2467 */
2468 hdev->quirks |= HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP;
2469 hdev->quirks |= HID_QUIRK_SKIP_OUTPUT_REPORT_ID;
2470 sc->defer_initialization = 1;
2471
2471 ret = sixaxis_set_operational_usb(hdev);
2472 ret = sixaxis_set_operational_usb(hdev);
2473 if (ret < 0) {
2474 hid_err(hdev, "Failed to set controller into operational mode\n");
2475 goto err_stop;
2476 }
2477
2472 sony_init_output_report(sc, sixaxis_send_output_report);
2473 } else if ((sc->quirks & SIXAXIS_CONTROLLER_BT) ||
2474 (sc->quirks & NAVIGATION_CONTROLLER_BT)) {
2475 /*
2476 * The Sixaxis wants output reports sent on the ctrl endpoint
2477 * when connected via Bluetooth.
2478 */
2479 hdev->quirks |= HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP;
2478 sony_init_output_report(sc, sixaxis_send_output_report);
2479 } else if ((sc->quirks & SIXAXIS_CONTROLLER_BT) ||
2480 (sc->quirks & NAVIGATION_CONTROLLER_BT)) {
2481 /*
2482 * The Sixaxis wants output reports sent on the ctrl endpoint
2483 * when connected via Bluetooth.
2484 */
2485 hdev->quirks |= HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP;
2486
2480 ret = sixaxis_set_operational_bt(hdev);
2487 ret = sixaxis_set_operational_bt(hdev);
2488 if (ret < 0) {
2489 hid_err(hdev, "Failed to set controller into operational mode\n");
2490 goto err_stop;
2491 }
2492
2481 sony_init_output_report(sc, sixaxis_send_output_report);
2482 } else if (sc->quirks & DUALSHOCK4_CONTROLLER) {
2483 ret = dualshock4_get_calibration_data(sc);
2484 if (ret < 0) {
2485 hid_err(hdev, "Failed to get calibration data from Dualshock 4\n");
2486 goto err_stop;
2487 }
2488

--- 300 unchanged lines hidden ---
2493 sony_init_output_report(sc, sixaxis_send_output_report);
2494 } else if (sc->quirks & DUALSHOCK4_CONTROLLER) {
2495 ret = dualshock4_get_calibration_data(sc);
2496 if (ret < 0) {
2497 hid_err(hdev, "Failed to get calibration data from Dualshock 4\n");
2498 goto err_stop;
2499 }
2500

--- 300 unchanged lines hidden ---