~ruther/qmk_firmware

11d49d00e74618500e5c51e4c7f858eb906ccea8 — Joel Challis 2 years ago 9991894
Remove matrix_init_quantum/matrix_scan_quantum (#19806)

76 files changed, 148 insertions(+), 319 deletions(-)

M docs/custom_matrix.md
M docs/ja/custom_matrix.md
M keyboards/bpiphany/hid_liber/matrix.c
M keyboards/bpiphany/kitten_paw/matrix.c
M keyboards/bpiphany/pegasushoof/2013/matrix.c
M keyboards/bpiphany/pegasushoof/2015/matrix.c
M keyboards/bpiphany/tiger_lily/matrix.c
M keyboards/bpiphany/unloved_bastard/matrix.c
M keyboards/converter/adb_usb/matrix.c
M keyboards/converter/hp_46010a/matrix.c
M keyboards/converter/m0110_usb/matrix.c
M keyboards/converter/palm_usb/matrix.c
M keyboards/converter/siemens_tastatur/matrix.c
M keyboards/converter/sun_usb/matrix.c
M keyboards/converter/usb_usb/custom_matrix.cpp
M keyboards/converter/xt_usb/matrix.c
M keyboards/dc01/arrow/matrix.c
M keyboards/dc01/left/matrix.c
M keyboards/dc01/numpad/matrix.c
M keyboards/dc01/right/matrix.c
M keyboards/dichotomy/matrix.c
M keyboards/dp60/matrix.c
M keyboards/duck/eagle_viper/v2/matrix.c
M keyboards/duck/lightsaver/matrix.c
M keyboards/duck/octagon/v1/matrix.c
M keyboards/duck/octagon/v2/matrix.c
M keyboards/duck/orion/v3/matrix.c
M keyboards/duck/tcv3/matrix.c
M keyboards/ergodox_stm32/matrix.c
M keyboards/fc660c/matrix.c
M keyboards/fc980c/matrix.c
M keyboards/gboards/ergotaco/matrix.c
M keyboards/gboards/georgi/matrix.c
M keyboards/gboards/gergo/matrix.c
M keyboards/gboards/gergoplex/matrix.c
M keyboards/halfcliff/matrix.c
M keyboards/handwired/dactyl/matrix.c
M keyboards/handwired/datahand/matrix.c
M keyboards/handwired/frenchdev/matrix.c
M keyboards/handwired/owlet60/matrix.c
M keyboards/handwired/promethium/matrix.c
M keyboards/handwired/pterodactyl/matrix.c
M keyboards/handwired/symmetric70_proto/matrix_debug/matrix.c
M keyboards/handwired/symmetric70_proto/matrix_fast/matrix.c
M keyboards/hhkb/ansi/matrix.c
M keyboards/hhkb/jp/matrix.c
M keyboards/hotdox/matrix.c
M keyboards/jones/v03/matrix.c
M keyboards/jones/v03_1/matrix.c
M keyboards/kakunpc/angel64/alpha/matrix.c
M keyboards/kakunpc/angel64/rev1/matrix.c
M keyboards/kakunpc/thedogkeyboard/matrix.c
M keyboards/keyboardio/model01/matrix.c
M keyboards/keyhive/honeycomb/matrix.c
M keyboards/kinesis/alvicstep/matrix.c
M keyboards/kmac/matrix.c
M keyboards/kmini/matrix.c
M keyboards/matrix/noah/matrix.c
M keyboards/moon/matrix.c
M keyboards/nek_type_a/matrix.c
M keyboards/planck/rev6_drop/matrix.c
M keyboards/preonic/rev3_drop/matrix.c
M keyboards/redscarf_iiplus/verb/matrix.c
M keyboards/redscarf_iiplus/verc/matrix.c
M keyboards/redscarf_iiplus/verd/matrix.c
M keyboards/sixkeyboard/matrix.c
M keyboards/sx60/matrix.c
M keyboards/touchpad/matrix.c
M keyboards/woodkeys/meira/matrix.c
M keyboards/ymdk/sp64/matrix.c
M quantum/matrix.c
M quantum/matrix.h
M quantum/matrix_common.c
M quantum/quantum.c
M tests/test_common/matrix.c
M users/drashna/callbacks.md
M docs/custom_matrix.md => docs/custom_matrix.md +2 -2
@@ 77,7 77,7 @@ void matrix_init(void) {
    debounce_init(MATRIX_ROWS);

    // This *must* be called for correct keyboard behavior
    matrix_init_quantum();
    matrix_init_kb();
}

uint8_t matrix_scan(void) {


@@ 89,7 89,7 @@ uint8_t matrix_scan(void) {
    changed = debounce(raw_matrix, matrix, MATRIX_ROWS, changed);

    // This *must* be called for correct keyboard behavior
    matrix_scan_quantum();
    matrix_scan_kb();

    return changed;
}

M docs/ja/custom_matrix.md => docs/ja/custom_matrix.md +2 -2
@@ 83,7 83,7 @@ void matrix_init(void) {
    debounce_init(MATRIX_ROWS);

    // 正しいキーボード動作のためにこれを呼び出す*必要があります*
    matrix_init_quantum();
    matrix_init_kb();
}

uint8_t matrix_scan(void) {


@@ 95,7 95,7 @@ uint8_t matrix_scan(void) {
    changed = debounce(raw_matrix, matrix, MATRIX_ROWS, changed);

    // 正しいキーボード動作のためにこれを呼び出す*必要があります*
    matrix_scan_quantum();
    matrix_scan_kb();

    return changed;
}

M keyboards/bpiphany/hid_liber/matrix.c => keyboards/bpiphany/hid_liber/matrix.c +2 -2
@@ 182,7 182,7 @@ void matrix_init(void)
        matrix_debouncing[i] = 0;
    }

    matrix_init_quantum();
    matrix_init_kb();
}

uint8_t matrix_scan(void)


@@ 214,7 214,7 @@ uint8_t matrix_scan(void)
        }
    }

    matrix_scan_quantum();
    matrix_scan_kb();
    return 1;
}


M keyboards/bpiphany/kitten_paw/matrix.c => keyboards/bpiphany/kitten_paw/matrix.c +2 -2
@@ 85,7 85,7 @@ void matrix_init(void) {
    matrix[i] = 0;
    matrix_debouncing[i] = 0;
  }
  matrix_init_quantum();
  matrix_init_kb();
}

uint8_t matrix_scan(void) {


@@ 113,7 113,7 @@ uint8_t matrix_scan(void) {
      }
    }
  }
  matrix_scan_quantum();
  matrix_scan_kb();
  return 1;
}


M keyboards/bpiphany/pegasushoof/2013/matrix.c => keyboards/bpiphany/pegasushoof/2013/matrix.c +2 -2
@@ 80,7 80,7 @@ void matrix_init(void)
		matrix_debouncing[i] = 0;
	}

	matrix_init_quantum();
	matrix_init_kb();
}

uint8_t matrix_scan(void)


@@ 109,7 109,7 @@ uint8_t matrix_scan(void)
		}
	}

	matrix_scan_quantum();
	matrix_scan_kb();

	return 1;
}

M keyboards/bpiphany/pegasushoof/2015/matrix.c => keyboards/bpiphany/pegasushoof/2015/matrix.c +2 -2
@@ 70,7 70,7 @@ void matrix_init(void)
    matrix_debouncing[i] = 0;
  }

  matrix_init_quantum();
  matrix_init_kb();
}

uint8_t matrix_scan(void)


@@ 90,7 90,7 @@ uint8_t matrix_scan(void)
  }

  debounce(matrix_debouncing, matrix, matrix_rows(), changed);
  matrix_scan_quantum();
  matrix_scan_kb();

  return (uint8_t)changed;
}

M keyboards/bpiphany/tiger_lily/matrix.c => keyboards/bpiphany/tiger_lily/matrix.c +2 -2
@@ 98,7 98,7 @@ void matrix_init(void) {
    for (uint8_t i=0; i < MATRIX_ROWS; i++)
        matrix[i] = matrix_debouncing[i] = 0;

    matrix_init_quantum();
    matrix_init_kb();
}

uint8_t matrix_scan(void) {


@@ 124,7 124,7 @@ uint8_t matrix_scan(void) {
                matrix[i] = matrix_debouncing[i];
    }

    matrix_scan_quantum();
    matrix_scan_kb();
    return 1;
}


M keyboards/bpiphany/unloved_bastard/matrix.c => keyboards/bpiphany/unloved_bastard/matrix.c +2 -2
@@ 99,7 99,7 @@ void matrix_init(void) {
    for (uint8_t i=0; i < MATRIX_ROWS; i++)
        matrix[i] = matrix_debouncing[i] = 0;

    matrix_init_quantum();
    matrix_init_kb();
}

uint8_t matrix_scan(void) {


@@ 125,7 125,7 @@ uint8_t matrix_scan(void) {
                matrix[i] = matrix_debouncing[i];
    }

    matrix_scan_quantum();
    matrix_scan_kb();
    return 1;
}


M keyboards/converter/adb_usb/matrix.c => keyboards/converter/adb_usb/matrix.c +2 -2
@@ 76,7 76,7 @@ void matrix_init(void)
    // debug_mouse = true;
    // print("debug enabled.\n");

    matrix_init_quantum();
    matrix_init_kb();
}

#ifdef ADB_MOUSE_ENABLE


@@ 241,7 241,7 @@ uint8_t matrix_scan(void)
            extra_key = key1<<8 | 0xFF; // process in a separate call
    }

    matrix_scan_quantum();
    matrix_scan_kb();
    return 1;
}


M keyboards/converter/hp_46010a/matrix.c => keyboards/converter/hp_46010a/matrix.c +2 -12
@@ 51,16 51,6 @@ static uint8_t matrix_debounce_new [MATRIX_ROWS] = {0};
#endif 

__attribute__ ((weak))
void matrix_init_quantum(void) {
    matrix_init_kb();
}

__attribute__ ((weak))
void matrix_scan_quantum(void) {
    matrix_scan_kb();
}

__attribute__ ((weak))
void matrix_init_kb(void) {    
    matrix_init_user();
}


@@ 161,7 151,7 @@ void matrix_init (void) {
    DDRD  |= LED ;
    PORTD &= ~LED ;

    matrix_init_quantum();
    matrix_init_kb();

    //toggle reset, to put the keyboard logic into a known state
    Matrix_Reset() ;


@@ 206,7 196,7 @@ uint8_t matrix_scan(void)  {
#endif
    Matrix_Reset() ;
    
    matrix_scan_quantum() ;
    matrix_scan_kb() ;
    return 1;
}


M keyboards/converter/m0110_usb/matrix.c => keyboards/converter/m0110_usb/matrix.c +2 -2
@@ 72,7 72,7 @@ void matrix_init(void)
    for (uint8_t i=0; i < MATRIX_ROWS; i++) _matrix0[i] = 0x00;
    matrix = _matrix0;

	matrix_init_quantum();
	matrix_init_kb();
    return;
}



@@ 96,7 96,7 @@ uint8_t matrix_scan(void)
        print("["); print_hex8(key); print("]\n");
    }
    
    matrix_scan_quantum();
    matrix_scan_kb();
    return 1;
}


M keyboards/converter/palm_usb/matrix.c => keyboards/converter/palm_usb/matrix.c +2 -2
@@ 280,7 280,7 @@ void matrix_init(void)
    // initialize matrix state: all keys off
    for (uint8_t i=0; i < MATRIX_ROWS; i++) matrix[i] = 0x00;

    matrix_init_quantum();
    matrix_init_kb();
    return;
    
    


@@ 348,7 348,7 @@ uint8_t matrix_scan(void)
        }
    }

    matrix_scan_quantum();
    matrix_scan_kb();
    return code;
}


M keyboards/converter/siemens_tastatur/matrix.c => keyboards/converter/siemens_tastatur/matrix.c +2 -2
@@ 109,7 109,7 @@ void matrix_init(void) {
    memset(matrix, 0, MATRIX_ROWS * sizeof(matrix_row_t));
    memset(matrix_debouncing, 0, MATRIX_ROWS * sizeof(matrix_row_t));

    matrix_init_quantum();
    matrix_init_kb();

    osalSysLock();
    enable_input_events();


@@ 215,7 215,7 @@ uint8_t matrix_scan(void) {
    porta_buffer = 65535;
    portb_buffer = 65535;

    matrix_scan_quantum();
    matrix_scan_kb();
    return 1;
}


M keyboards/converter/sun_usb/matrix.c => keyboards/converter/sun_usb/matrix.c +2 -2
@@ 97,7 97,7 @@ void matrix_init(void)

    /* PORTD &= ~(1<<6); */

    matrix_init_quantum();
    matrix_init_kb();
    return;
}



@@ 148,7 148,7 @@ uint8_t matrix_scan(void)
        }
    }

    matrix_scan_quantum();
    matrix_scan_kb();
    return code;
}


M keyboards/converter/usb_usb/custom_matrix.cpp => keyboards/converter/usb_usb/custom_matrix.cpp +2 -2
@@ 93,7 93,7 @@ extern "C" {
        kbd2.SetReportParser(0, (HIDReportParser*)&kbd_parser2);
        kbd3.SetReportParser(0, (HIDReportParser*)&kbd_parser3);
        kbd4.SetReportParser(0, (HIDReportParser*)&kbd_parser4);
        matrix_init_quantum();
        matrix_init_kb();
    }

    static void or_report(report_keyboard_t report) {


@@ 182,7 182,7 @@ extern "C" {
                led_set(host_keyboard_leds());
            }
        }
        matrix_scan_quantum();
        matrix_scan_kb();
        return changed;
    }


M keyboards/converter/xt_usb/matrix.c => keyboards/converter/xt_usb/matrix.c +2 -2
@@ 59,7 59,7 @@ void matrix_init(void) {
        matrix[i] = 0x00;
    }

    matrix_init_quantum();
    matrix_init_kb();
}

// convert E0-escaped codes into unused area


@@ 188,7 188,7 @@ uint8_t matrix_scan(void) {
            state = XT_STATE_INIT;
    }

    matrix_scan_quantum();
    matrix_scan_kb();

    return 1;
}

M keyboards/dc01/arrow/matrix.c => keyboards/dc01/arrow/matrix.c +2 -12
@@ 89,16 89,6 @@ static matrix_row_t matrix_debouncing[MATRIX_ROWS];
#endif

__attribute__ ((weak))
void matrix_init_quantum(void) {
    matrix_init_kb();
}

__attribute__ ((weak))
void matrix_scan_quantum(void) {
    matrix_scan_kb();
}

__attribute__ ((weak))
void matrix_init_kb(void) {
    matrix_init_user();
}


@@ 143,7 133,7 @@ void matrix_init(void) {
        matrix_debouncing[i] = 0;
    }

    matrix_init_quantum();
    matrix_init_kb();
}

uint8_t matrix_scan(void)


@@ 198,7 188,7 @@ uint8_t matrix_scan(void)
        i2c_slave_reg[i+2] = matrix[i]; //send matrix over i2c
    }

    matrix_scan_quantum();
    matrix_scan_kb();
    return 1;
}


M keyboards/dc01/left/matrix.c => keyboards/dc01/left/matrix.c +2 -12
@@ 93,16 93,6 @@ static matrix_row_t matrix_debouncing[MATRIX_ROWS];
#endif

__attribute__ ((weak))
void matrix_init_quantum(void) {
    matrix_init_kb();
}

__attribute__ ((weak))
void matrix_scan_quantum(void) {
    matrix_scan_kb();
}

__attribute__ ((weak))
void matrix_init_kb(void) {
    matrix_init_user();
}


@@ 154,7 144,7 @@ void matrix_init(void) {
        matrix_debouncing[i] = 0;
    }

    matrix_init_quantum();
    matrix_init_kb();
}

uint8_t matrix_scan(void)


@@ 223,7 213,7 @@ if (i2c_transaction(SLAVE_I2C_ADDRESS_NUMPAD, 0x1FFFF, 11)) {
    }
}

    matrix_scan_quantum();
    matrix_scan_kb();
    return 1;
}


M keyboards/dc01/numpad/matrix.c => keyboards/dc01/numpad/matrix.c +2 -12
@@ 89,16 89,6 @@ static matrix_row_t matrix_debouncing[MATRIX_ROWS];
#endif

__attribute__ ((weak))
void matrix_init_quantum(void) {
    matrix_init_kb();
}

__attribute__ ((weak))
void matrix_scan_quantum(void) {
    matrix_scan_kb();
}

__attribute__ ((weak))
void matrix_init_kb(void) {
    matrix_init_user();
}


@@ 143,7 133,7 @@ void matrix_init(void) {
        matrix_debouncing[i] = 0;
    }

    matrix_init_quantum();
    matrix_init_kb();
}

uint8_t matrix_scan(void)


@@ 198,7 188,7 @@ uint8_t matrix_scan(void)
        i2c_slave_reg[i+2] = matrix[i]; //send matrix over i2c
    }

    matrix_scan_quantum();
    matrix_scan_kb();
    return 1;
}


M keyboards/dc01/right/matrix.c => keyboards/dc01/right/matrix.c +2 -12
@@ 90,16 90,6 @@ static matrix_row_t matrix_debouncing[MATRIX_ROWS];
#endif

__attribute__ ((weak))
void matrix_init_quantum(void) {
    matrix_init_kb();
}

__attribute__ ((weak))
void matrix_scan_quantum(void) {
    matrix_scan_kb();
}

__attribute__ ((weak))
void matrix_init_kb(void) {
    matrix_init_user();
}


@@ 144,7 134,7 @@ void matrix_init(void) {
        matrix_debouncing[i] = 0;
    }

    matrix_init_quantum();
    matrix_init_kb();
}

uint8_t matrix_scan(void)


@@ 199,7 189,7 @@ uint8_t matrix_scan(void)
        i2c_slave_reg[i+2] = matrix[i]; //send matrix over i2c
    }

    matrix_scan_quantum();
    matrix_scan_kb();
    return 1;
}


M keyboards/dichotomy/matrix.c => keyboards/dichotomy/matrix.c +2 -12
@@ 54,16 54,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
static matrix_row_t matrix[MATRIX_ROWS];

__attribute__ ((weak))
void matrix_init_quantum(void) {
    matrix_init_kb();
}

__attribute__ ((weak))
void matrix_scan_quantum(void) {
    matrix_scan_kb();
}

__attribute__ ((weak))
void matrix_init_kb(void) {
    matrix_init_user();
}


@@ 92,7 82,7 @@ uint8_t matrix_cols(void) {
}

void matrix_init(void) {
    matrix_init_quantum();
    matrix_init_kb();
    uart_init(1000000);
}



@@ 190,7 180,7 @@ uint8_t matrix_scan(void)
    }
    //matrix_print();

    matrix_scan_quantum();
    matrix_scan_kb();
    return 1;
}


M keyboards/dp60/matrix.c => keyboards/dp60/matrix.c +2 -2
@@ 64,7 64,7 @@ void matrix_init(void)
    matrix_debouncing[i] = 0;
  }

  matrix_init_quantum();
  matrix_init_kb();
}

uint8_t matrix_scan(void)


@@ 96,7 96,7 @@ uint8_t matrix_scan(void)
    }
  }

  matrix_scan_quantum();
  matrix_scan_kb();
  return 1;
}


M keyboards/duck/eagle_viper/v2/matrix.c => keyboards/duck/eagle_viper/v2/matrix.c +2 -2
@@ 78,7 78,7 @@ void matrix_init(void) {
    matrix_debouncing[i] = 0;
  }

  matrix_init_quantum();
  matrix_init_kb();
}

uint8_t matrix_scan(void) {


@@ 112,7 112,7 @@ uint8_t matrix_scan(void) {
    }
  }

  matrix_scan_quantum();
  matrix_scan_kb();
  return 1;
}


M keyboards/duck/lightsaver/matrix.c => keyboards/duck/lightsaver/matrix.c +2 -2
@@ 74,7 74,7 @@ void matrix_init(void) {
    matrix_debouncing[i] = 0;
  }

  matrix_init_quantum();
  matrix_init_kb();
}

uint8_t matrix_scan(void) {


@@ 110,7 110,7 @@ uint8_t matrix_scan(void) {
    }
  }

  matrix_scan_quantum();
  matrix_scan_kb();
  return 1;
}


M keyboards/duck/octagon/v1/matrix.c => keyboards/duck/octagon/v1/matrix.c +2 -2
@@ 73,7 73,7 @@ void matrix_init(void) {
    matrix_debouncing[i] = 0;
  }

  matrix_init_quantum();
  matrix_init_kb();
}

uint8_t matrix_scan(void) {


@@ 107,7 107,7 @@ uint8_t matrix_scan(void) {
    }
  }

  matrix_scan_quantum();
  matrix_scan_kb();
  return 1;
}


M keyboards/duck/octagon/v2/matrix.c => keyboards/duck/octagon/v2/matrix.c +2 -2
@@ 78,7 78,7 @@ void matrix_init(void) {
    matrix_debouncing[i] = 0;
  }

  matrix_init_quantum();
  matrix_init_kb();
}

uint8_t matrix_scan(void) {


@@ 112,7 112,7 @@ uint8_t matrix_scan(void) {
    }
  }

  matrix_scan_quantum();
  matrix_scan_kb();
  return 1;
}


M keyboards/duck/orion/v3/matrix.c => keyboards/duck/orion/v3/matrix.c +2 -2
@@ 72,7 72,7 @@ void matrix_init(void) {
    matrix_debouncing[i] = 0;
  }

  matrix_init_quantum();
  matrix_init_kb();
}

uint8_t matrix_scan(void) {


@@ 106,7 106,7 @@ uint8_t matrix_scan(void) {
    }
  }

  matrix_scan_quantum();
  matrix_scan_kb();
  return 1;
}


M keyboards/duck/tcv3/matrix.c => keyboards/duck/tcv3/matrix.c +2 -2
@@ 78,7 78,7 @@ void matrix_init(void) {
    matrix_debouncing[i] = 0;
  }

  matrix_init_quantum();
  matrix_init_kb();
}

uint8_t matrix_scan(void) {


@@ 112,7 112,7 @@ uint8_t matrix_scan(void) {
    }
  }

  matrix_scan_quantum();
  matrix_scan_kb();
  return 1;
}


M keyboards/ergodox_stm32/matrix.c => keyboards/ergodox_stm32/matrix.c +2 -2
@@ 56,7 56,7 @@ void matrix_init(void) {
      debounce_matrix[i * MATRIX_COLS + j] = 0;
    }
  }
  matrix_init_quantum();
  matrix_init_kb();
}

void matrix_power_up(void) {


@@ 115,7 115,7 @@ uint8_t matrix_scan(void) {

    unselect_rows();
  }
  matrix_scan_quantum();
  matrix_scan_kb();
  return 0;
}


M keyboards/fc660c/matrix.c => keyboards/fc660c/matrix.c +2 -2
@@ 120,7 120,7 @@ void matrix_init(void)
    for (uint8_t i=0; i < MATRIX_ROWS; i++) _matrix1[i] = 0x00;
    matrix = _matrix0;
    matrix_prev = _matrix1;
    matrix_init_quantum();
    matrix_init_kb();
}

uint8_t matrix_scan(void)


@@ 180,7 180,7 @@ uint8_t matrix_scan(void)
            matrix_last_modified = timer_read32();
        }
    }
    matrix_scan_quantum();
    matrix_scan_kb();
    return 1;
}


M keyboards/fc980c/matrix.c => keyboards/fc980c/matrix.c +2 -2
@@ 122,7 122,7 @@ void matrix_init(void)
    for (uint8_t i=0; i < MATRIX_ROWS; i++) _matrix1[i] = 0x00;
    matrix = _matrix0;
    matrix_prev = _matrix1;
    matrix_init_quantum();
    matrix_init_kb();
}

uint8_t matrix_scan(void)


@@ 182,7 182,7 @@ uint8_t matrix_scan(void)
            matrix_last_modified = timer_read32();
        }
    }
    matrix_scan_quantum();
    matrix_scan_kb();
    return 1;
}


M keyboards/gboards/ergotaco/matrix.c => keyboards/gboards/ergotaco/matrix.c +2 -2
@@ 112,7 112,7 @@ void matrix_init(void)
        }
    }

    matrix_init_quantum();
    matrix_init_kb();
}

void matrix_power_up(void) {


@@ 188,7 188,7 @@ uint8_t matrix_scan(void)
        unselect_rows();
    }

    matrix_scan_quantum();
    matrix_scan_kb();

#ifdef DEBUG_MATRIX
    for (uint8_t c = 0; c < MATRIX_COLS; c++)

M keyboards/gboards/georgi/matrix.c => keyboards/gboards/georgi/matrix.c +2 -2
@@ 133,7 133,7 @@ void matrix_init(void)
        }
    }

    matrix_init_quantum();
    matrix_init_kb();
}

void matrix_power_up(void) {


@@ 209,7 209,7 @@ uint8_t matrix_scan(void)
        unselect_rows();
    }

    matrix_scan_quantum();
    matrix_scan_kb();

#ifdef DEBUG_MATRIX
    for (uint8_t c = 0; c < MATRIX_COLS; c++)

M keyboards/gboards/gergo/matrix.c => keyboards/gboards/gergo/matrix.c +2 -2
@@ 153,7 153,7 @@ void matrix_init(void) {
  }

    debounce_init(MATRIX_ROWS);
    matrix_init_quantum();
    matrix_init_kb();
}

void matrix_power_up(void) {


@@ 260,7 260,7 @@ uint8_t matrix_scan(void) {
    }

    debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
    matrix_scan_quantum();
    matrix_scan_kb();

    enableInterrupts();


M keyboards/gboards/gergoplex/matrix.c => keyboards/gboards/gergoplex/matrix.c +2 -2
@@ 83,7 83,7 @@ void matrix_init(void) {
    }

    debounce_init(MATRIX_ROWS);
    matrix_init_quantum();
    matrix_init_kb();
}
void matrix_power_up(void) {
    mcp23018_status = init_mcp23018();


@@ 141,7 141,7 @@ uint8_t matrix_scan(void) {
    }

    debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
    matrix_scan_quantum();
    matrix_scan_kb();

#ifdef DEBUG_MATRIX
    for (uint8_t c = 0; c < MATRIX_COLS; c++)

M keyboards/halfcliff/matrix.c => keyboards/halfcliff/matrix.c +2 -2
@@ 206,7 206,7 @@ void matrix_init(void) {

    debounce_init(ROWS_PER_HAND);

    matrix_init_quantum();
    matrix_init_kb();

    split_post_init();
}


@@ 240,7 240,7 @@ bool matrix_post_scan(void) {
            }
        }

        matrix_scan_quantum();
        matrix_scan_kb();
    } else {
        transport_slave(matrix + thatHand, matrix + thisHand);


M keyboards/handwired/dactyl/matrix.c => keyboards/handwired/dactyl/matrix.c +2 -2
@@ 124,7 124,7 @@ void matrix_init(void)
        matrix_debouncing[i] = 0;
    }

    matrix_init_quantum();
    matrix_init_kb();
}

void init_expander(void) {


@@ 277,7 277,7 @@ uint8_t matrix_scan(void)
        }
#   endif

    matrix_scan_quantum();
    matrix_scan_kb();
    return 1;
}


M keyboards/handwired/datahand/matrix.c => keyboards/handwired/datahand/matrix.c +2 -2
@@ 59,7 59,7 @@ void matrix_init(void) {
  /* Turn off the lock LEDs. */
  PORTF |= LED_CAPS_LOCK | LED_NUM_LOCK | LED_SCROLL_LOCK | LED_MOUSE_LOCK;

  matrix_init_quantum();
  matrix_init_kb();
}

uint8_t matrix_scan(void) {


@@ 73,7 73,7 @@ uint8_t matrix_scan(void) {
    matrix[row] = read_cols();
  }

  matrix_scan_quantum();
  matrix_scan_kb();

  return 1;
}

M keyboards/handwired/frenchdev/matrix.c => keyboards/handwired/frenchdev/matrix.c +2 -2
@@ 111,7 111,7 @@ void matrix_init(void)
        matrix_debouncing[i] = 0;
    }

    matrix_init_quantum();
    matrix_init_kb();
}

void matrix_power_up(void) {


@@ 169,7 169,7 @@ uint8_t matrix_scan(void)
        }
    }

    matrix_scan_quantum();
    matrix_scan_kb();

    return 1;
}

M keyboards/handwired/owlet60/matrix.c => keyboards/handwired/owlet60/matrix.c +3 -3
@@ 200,7 200,7 @@ void matrix_init(void) {

    debounce_init(MATRIX_ROWS);

    matrix_init_quantum();
    matrix_init_kb();

    setPinInput(D5);
    setPinInput(B0);


@@ 217,7 217,7 @@ uint8_t matrix_scan(void)

    debounce(raw_matrix, matrix, MATRIX_ROWS, changed);

    matrix_scan_quantum();
    matrix_scan_kb();
    return (uint8_t)changed;
}



@@ 235,7 235,7 @@ uint8_t matrix_scan(void)

  debounce(raw_matrix, matrix, MATRIX_ROWS, changed);

  matrix_scan_quantum();
  matrix_scan_kb();
  return (uint8_t)changed;
}
*/

M keyboards/handwired/promethium/matrix.c => keyboards/handwired/promethium/matrix.c +2 -2
@@ 111,7 111,7 @@ void matrix_init(void) {
        matrix_debouncing[i] = 0;
    }

    matrix_init_quantum();
    matrix_init_kb();
}

uint8_t matrix_scan(void)


@@ 141,7 141,7 @@ uint8_t matrix_scan(void)
        }
#   endif

    matrix_scan_quantum();
    matrix_scan_kb();
    return 1;
}


M keyboards/handwired/pterodactyl/matrix.c => keyboards/handwired/pterodactyl/matrix.c +2 -2
@@ 137,7 137,7 @@ void matrix_init(void)
        matrix_debouncing[i] = 0;
    }

    matrix_init_quantum();
    matrix_init_kb();
}

void init_expander(void) {


@@ 278,7 278,7 @@ uint8_t matrix_scan(void)
        }
#   endif

    matrix_scan_quantum();
    matrix_scan_kb();
    return 1;
}


M keyboards/handwired/symmetric70_proto/matrix_debug/matrix.c => keyboards/handwired/symmetric70_proto/matrix_debug/matrix.c +2 -2
@@ 295,7 295,7 @@ void matrix_init(void) {

    debounce_init(MATRIX_ROWS);

    matrix_init_quantum();
    matrix_init_kb();
}

uint8_t matrix_scan(void) {


@@ 323,7 323,7 @@ uint8_t matrix_scan(void) {
    MATRIX_DEBUG_GAP();

    MATRIX_DEBUG_SCAN_START();
    matrix_scan_quantum();
    matrix_scan_kb();
    MATRIX_DEBUG_SCAN_END();
    return (uint8_t)changed;
}

M keyboards/handwired/symmetric70_proto/matrix_fast/matrix.c => keyboards/handwired/symmetric70_proto/matrix_fast/matrix.c +2 -2
@@ 171,7 171,7 @@ void matrix_init(void) {

    debounce_init(MATRIX_ROWS);

    matrix_init_quantum();
    matrix_init_kb();
}

uint8_t matrix_scan(void) {


@@ 228,7 228,7 @@ uint8_t matrix_scan(void) {
    MATRIX_DEBUG_SCAN_END(); MATRIX_DEBUG_GAP();

    MATRIX_DEBUG_SCAN_START();
    matrix_scan_quantum();
    matrix_scan_kb();
    MATRIX_DEBUG_SCAN_END();
    return (uint8_t)changed;
}

M keyboards/hhkb/ansi/matrix.c => keyboards/hhkb/ansi/matrix.c +2 -2
@@ 71,7 71,7 @@ void matrix_init(void)
    matrix = _matrix0;
    matrix_prev = _matrix1;

    matrix_init_quantum();
    matrix_init_kb();
}

__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); }


@@ 158,7 158,7 @@ uint8_t matrix_scan(void)
        suspend_power_down();
    }

    matrix_scan_quantum();
    matrix_scan_kb();

    return 1;
}

M keyboards/hhkb/jp/matrix.c => keyboards/hhkb/jp/matrix.c +2 -2
@@ 71,7 71,7 @@ void matrix_init(void)
    matrix = _matrix0;
    matrix_prev = _matrix1;

    matrix_init_quantum();
    matrix_init_kb();
}

__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); }


@@ 159,7 159,7 @@ uint8_t matrix_scan(void)
        suspend_power_down();
    }

    matrix_scan_quantum();
    matrix_scan_kb();

    return 1;
}

M keyboards/hotdox/matrix.c => keyboards/hotdox/matrix.c +2 -2
@@ 81,7 81,7 @@ void matrix_init(void)
    }
  }

  matrix_init_quantum();
  matrix_init_kb();
}

void matrix_power_up(void) {


@@ 133,7 133,7 @@ uint8_t matrix_scan(void)
    unselect_rows();
  }

  matrix_scan_quantum();
  matrix_scan_kb();

  return 1;
}

M keyboards/jones/v03/matrix.c => keyboards/jones/v03/matrix.c +2 -2
@@ 83,7 83,7 @@ void matrix_init_custom(void) {
    // initialize key pins
    init_pins();

    matrix_init_quantum();
    matrix_init_kb();
}

bool matrix_scan_custom(matrix_row_t current_matrix[]) {


@@ 94,6 94,6 @@ bool matrix_scan_custom(matrix_row_t current_matrix[]) {
        changed |= read_cols_on_row(current_matrix, current_row);
    }

    matrix_scan_quantum();
    matrix_scan_kb();
    return changed;
}

M keyboards/jones/v03_1/matrix.c => keyboards/jones/v03_1/matrix.c +2 -2
@@ 83,7 83,7 @@ void matrix_init_custom(void) {
    // initialize key pins
    init_pins();

    matrix_init_quantum();
    matrix_init_kb();
}

bool matrix_scan_custom(matrix_row_t current_matrix[]) {


@@ 94,6 94,6 @@ bool matrix_scan_custom(matrix_row_t current_matrix[]) {
        changed |= read_cols_on_row(current_matrix, current_row);
    }

    matrix_scan_quantum();
    matrix_scan_kb();
    return changed;
}

M keyboards/kakunpc/angel64/alpha/matrix.c => keyboards/kakunpc/angel64/alpha/matrix.c +2 -12
@@ 50,16 50,6 @@ static matrix_row_t raw_matrix[MATRIX_ROWS]; //raw values
static matrix_row_t matrix[MATRIX_ROWS]; //debounced values

__attribute__ ((weak))
void matrix_init_quantum(void) {
    matrix_init_kb();
}

__attribute__ ((weak))
void matrix_scan_quantum(void) {
    matrix_scan_kb();
}

__attribute__ ((weak))
void matrix_init_kb(void) {
    matrix_init_user();
}


@@ 244,7 234,7 @@ void matrix_init(void) {

    debounce_init(MATRIX_ROWS);

    matrix_init_quantum();
    matrix_init_kb();
}

uint8_t matrix_scan(void)


@@ 263,6 253,6 @@ uint8_t matrix_scan(void)

  debounce(raw_matrix, matrix, MATRIX_ROWS, changed);

  matrix_scan_quantum();
  matrix_scan_kb();
  return (uint8_t)changed;
}

M keyboards/kakunpc/angel64/rev1/matrix.c => keyboards/kakunpc/angel64/rev1/matrix.c +2 -12
@@ 50,16 50,6 @@ static matrix_row_t raw_matrix[MATRIX_ROWS]; //raw values
static matrix_row_t matrix[MATRIX_ROWS]; //debounced values

__attribute__ ((weak))
void matrix_init_quantum(void) {
    matrix_init_kb();
}

__attribute__ ((weak))
void matrix_scan_quantum(void) {
    matrix_scan_kb();
}

__attribute__ ((weak))
void matrix_init_kb(void) {
    matrix_init_user();
}


@@ 244,7 234,7 @@ void matrix_init(void) {

    debounce_init(MATRIX_ROWS);

    matrix_init_quantum();
    matrix_init_kb();
}

uint8_t matrix_scan(void)


@@ 263,6 253,6 @@ uint8_t matrix_scan(void)

  debounce(raw_matrix, matrix, MATRIX_ROWS, changed);

  matrix_scan_quantum();
  matrix_scan_kb();
  return (uint8_t)changed;
}

M keyboards/kakunpc/thedogkeyboard/matrix.c => keyboards/kakunpc/thedogkeyboard/matrix.c +2 -12
@@ 50,16 50,6 @@ static matrix_row_t raw_matrix[MATRIX_ROWS]; //raw values
static matrix_row_t matrix[MATRIX_ROWS]; //debounced values

__attribute__ ((weak))
void matrix_init_quantum(void) {
    matrix_init_kb();
}

__attribute__ ((weak))
void matrix_scan_quantum(void) {
    matrix_scan_kb();
}

__attribute__ ((weak))
void matrix_init_kb(void) {
    matrix_init_user();
}


@@ 244,7 234,7 @@ void matrix_init(void) {

    debounce_init(MATRIX_ROWS);

    matrix_init_quantum();
    matrix_init_kb();
}

uint8_t matrix_scan(void)


@@ 263,6 253,6 @@ uint8_t matrix_scan(void)

  debounce(raw_matrix, matrix, MATRIX_ROWS, changed);

  matrix_scan_quantum();
  matrix_scan_kb();
  return (uint8_t)changed;
}

M keyboards/keyboardio/model01/matrix.c => keyboards/keyboardio/model01/matrix.c +2 -2
@@ 77,14 77,14 @@ void matrix_init(void) {
  i2c_set_keyscan_interval(RIGHT, 2);
  memset(rows, 0, sizeof(rows));

  matrix_init_quantum();
  matrix_init_kb();
}

uint8_t matrix_scan(void) {
  uint8_t ret = 0;
  ret |= i2c_read_hand(LEFT);
  ret |= i2c_read_hand(RIGHT);
  matrix_scan_quantum();
  matrix_scan_kb();
  return ret;
}


M keyboards/keyhive/honeycomb/matrix.c => keyboards/keyhive/honeycomb/matrix.c +2 -12
@@ 54,16 54,6 @@ static matrix_row_t matrix[MATRIX_ROWS];
int8_t encoderValue = 0;

__attribute__ ((weak))
void matrix_init_quantum(void) {
    matrix_init_kb();
}

__attribute__ ((weak))
void matrix_scan_quantum(void) {
    matrix_scan_kb();
}

__attribute__ ((weak))
void matrix_init_kb(void) {
    matrix_init_user();
}


@@ 93,7 83,7 @@ uint8_t matrix_cols(void) {

void matrix_init(void) {

    matrix_init_quantum();
    matrix_init_kb();
    uart_init(1000000);
}



@@ 168,7 158,7 @@ uint8_t matrix_scan(void)
        xprintf("\r\nRequested packet, data 3 was %d",uart_data[3]);
    }

    matrix_scan_quantum();
    matrix_scan_kb();
    return 1;
}


M keyboards/kinesis/alvicstep/matrix.c => keyboards/kinesis/alvicstep/matrix.c +1 -1
@@ 132,7 132,7 @@ uint8_t matrix_scan(void)
            }
        }
    }
    matrix_scan_quantum();
    matrix_scan_kb();
    return 1;
}


M keyboards/kmac/matrix.c => keyboards/kmac/matrix.c +2 -6
@@ 45,10 45,6 @@ static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
static matrix_row_t raw_matrix[MATRIX_ROWS];  // raw values
static matrix_row_t matrix[MATRIX_ROWS];      // debounced values

__attribute__((weak)) void matrix_init_quantum(void) { matrix_init_kb(); }

__attribute__((weak)) void matrix_scan_quantum(void) { matrix_scan_kb(); }

__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); }

__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); }


@@ 191,7 187,7 @@ void matrix_init(void) {

    debounce_init(MATRIX_ROWS);

    matrix_init_quantum();
    matrix_init_kb();
}

uint8_t matrix_scan(void) {


@@ 203,7 199,7 @@ uint8_t matrix_scan(void) {

    debounce(raw_matrix, matrix, MATRIX_ROWS, changed);

    matrix_scan_quantum();
    matrix_scan_kb();

    return (uint8_t)changed;
}

M keyboards/kmini/matrix.c => keyboards/kmini/matrix.c +2 -2
@@ 84,7 84,7 @@ void matrix_init(void) {
        matrix_debouncing[i] = 0;
    }

    matrix_init_quantum();
    matrix_init_kb();
}

uint8_t matrix_scan(void)


@@ 105,7 105,7 @@ uint8_t matrix_scan(void)
        debouncing = false;
    }

    matrix_scan_quantum();
    matrix_scan_kb();
    return 1;
}


M keyboards/matrix/noah/matrix.c => keyboards/matrix/noah/matrix.c +2 -2
@@ 85,7 85,7 @@ void matrix_init(void)
    memset(matrix, 0, MATRIX_ROWS * sizeof(matrix_row_t));
    memset(matrix_debouncing, 0, MATRIX_COLS * sizeof(matrix_row_t));

    matrix_init_quantum();
    matrix_init_kb();
}

uint8_t matrix_scan(void)


@@ 156,7 156,7 @@ uint8_t matrix_scan(void)
        debouncing = false;
    }

    matrix_scan_quantum();
    matrix_scan_kb();

    return 1;
}

M keyboards/moon/matrix.c => keyboards/moon/matrix.c +2 -6
@@ 91,10 91,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
static matrix_row_t raw_matrix[MATRIX_ROWS];  // raw values
static matrix_row_t matrix[MATRIX_ROWS];      // debounced values

__attribute__((weak)) void matrix_init_quantum(void) { matrix_init_kb(); }

__attribute__((weak)) void matrix_scan_quantum(void) { matrix_scan_kb(); }

__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); }

__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); }


@@ 191,7 187,7 @@ void matrix_init(void) {

  debounce_init(MATRIX_ROWS);

  matrix_init_quantum();
  matrix_init_kb();
}

uint8_t matrix_scan(void) {


@@ 203,7 199,7 @@ uint8_t matrix_scan(void) {

  debounce(raw_matrix, matrix, MATRIX_ROWS, changed);

  matrix_scan_quantum();
  matrix_scan_kb();

  return (uint8_t)changed;
}

M keyboards/nek_type_a/matrix.c => keyboards/nek_type_a/matrix.c +2 -13
@@ 92,17 92,6 @@ static matrix_row_t matrix_debouncing[MATRIX_ROWS];
#endif

__attribute__ ((weak))
void matrix_init_quantum(void) {
    expander_init();
    matrix_init_kb();
}

__attribute__ ((weak))
void matrix_scan_quantum(void) {
    matrix_scan_kb();
}

__attribute__ ((weak))
void matrix_init_kb(void) {
    matrix_init_user();
}


@@ 146,7 135,7 @@ void matrix_init(void) {
        matrix_debouncing[i] = 0;
    }

    matrix_init_quantum();
    matrix_init_kb();
    set_output(OUTPUT_AUTO);
}



@@ 198,7 187,7 @@ uint8_t matrix_scan(void)
        }
#   endif

    matrix_scan_quantum();
    matrix_scan_kb();
    return 1;
}


M keyboards/planck/rev6_drop/matrix.c => keyboards/planck/rev6_drop/matrix.c +2 -2
@@ 67,7 67,7 @@ void matrix_init(void) {
    memset(matrix, 0, MATRIX_ROWS * sizeof(matrix_row_t));
    memset(matrix_debouncing, 0, MATRIX_COLS * sizeof(matrix_row_t));

    matrix_init_quantum();
    matrix_init_kb();
}

uint8_t matrix_scan(void) {


@@ 142,7 142,7 @@ uint8_t matrix_scan(void) {
        debouncing = false;
    }

    matrix_scan_quantum();
    matrix_scan_kb();

    return 1;
}

M keyboards/preonic/rev3_drop/matrix.c => keyboards/preonic/rev3_drop/matrix.c +2 -2
@@ 71,7 71,7 @@ void matrix_init(void) {
    memset(matrix, 0, MATRIX_ROWS * sizeof(matrix_row_t));
    memset(matrix_debouncing, 0, MATRIX_COLS * sizeof(matrix_col_t));

    matrix_init_quantum();
    matrix_init_kb();
}

uint8_t matrix_scan(void) {


@@ 146,7 146,7 @@ uint8_t matrix_scan(void) {
        debouncing = false;
    }

    matrix_scan_quantum();
    matrix_scan_kb();

    return 1;
}

M keyboards/redscarf_iiplus/verb/matrix.c => keyboards/redscarf_iiplus/verb/matrix.c +2 -12
@@ 54,16 54,6 @@ static matrix_row_t raw_matrix[MATRIX_ROWS]; //raw values
static matrix_row_t matrix[MATRIX_ROWS]; //debounced values

__attribute__ ((weak))
void matrix_init_quantum(void) {
    matrix_init_kb();
}

__attribute__ ((weak))
void matrix_scan_quantum(void) {
    matrix_scan_kb();
}

__attribute__ ((weak))
void matrix_init_kb(void) {
    matrix_init_user();
}


@@ 345,7 335,7 @@ void matrix_init(void) {

    debounce_init(MATRIX_ROWS);

    matrix_init_quantum();
    matrix_init_kb();
}

uint8_t matrix_scan(void)


@@ 366,6 356,6 @@ uint8_t matrix_scan(void)

  debounce(raw_matrix, matrix, MATRIX_ROWS, changed);

  matrix_scan_quantum();
  matrix_scan_kb();
  return 1;
}

M keyboards/redscarf_iiplus/verc/matrix.c => keyboards/redscarf_iiplus/verc/matrix.c +2 -12
@@ 54,16 54,6 @@ static matrix_row_t raw_matrix[MATRIX_ROWS]; //raw values
static matrix_row_t matrix[MATRIX_ROWS]; //debounced values

__attribute__ ((weak))
void matrix_init_quantum(void) {
    matrix_init_kb();
}

__attribute__ ((weak))
void matrix_scan_quantum(void) {
    matrix_scan_kb();
}

__attribute__ ((weak))
void matrix_init_kb(void) {
    matrix_init_user();
}


@@ 345,7 335,7 @@ void matrix_init(void) {

    debounce_init(MATRIX_ROWS);

    matrix_init_quantum();
    matrix_init_kb();
}

uint8_t matrix_scan(void)


@@ 366,6 356,6 @@ uint8_t matrix_scan(void)

  debounce(raw_matrix, matrix, MATRIX_ROWS, changed);

  matrix_scan_quantum();
  matrix_scan_kb();
  return 1;
}

M keyboards/redscarf_iiplus/verd/matrix.c => keyboards/redscarf_iiplus/verd/matrix.c +2 -12
@@ 54,16 54,6 @@ static matrix_row_t raw_matrix[MATRIX_ROWS]; //raw values
static matrix_row_t matrix[MATRIX_ROWS]; //debounced values

__attribute__ ((weak))
void matrix_init_quantum(void) {
    matrix_init_kb();
}

__attribute__ ((weak))
void matrix_scan_quantum(void) {
    matrix_scan_kb();
}

__attribute__ ((weak))
void matrix_init_kb(void) {
    matrix_init_user();
}


@@ 345,7 335,7 @@ void matrix_init(void) {

    debounce_init(MATRIX_ROWS);

    matrix_init_quantum();
    matrix_init_kb();
}

uint8_t matrix_scan(void)


@@ 366,6 356,6 @@ uint8_t matrix_scan(void)

  debounce(raw_matrix, matrix, MATRIX_ROWS, changed);

  matrix_scan_quantum();
  matrix_scan_kb();
  return 1;
}

M keyboards/sixkeyboard/matrix.c => keyboards/sixkeyboard/matrix.c +2 -2
@@ 85,7 85,7 @@ void matrix_init(void)
        matrix_stage[i] = 0;
    }

    matrix_init_quantum();
    matrix_init_kb();

}



@@ 109,7 109,7 @@ uint8_t matrix_scan(void)
        debouncing = false;
    }

    matrix_scan_quantum();
    matrix_scan_kb();

    return 1;
}

M keyboards/sx60/matrix.c => keyboards/sx60/matrix.c +2 -12
@@ 72,16 72,6 @@ static void unselect_rows(void);
static void select_row(uint8_t row);

__attribute__ ((weak))
void matrix_init_quantum(void) {
    matrix_init_kb();
}

__attribute__ ((weak))
void matrix_scan_quantum(void) {
    matrix_scan_kb();
}

__attribute__ ((weak))
void matrix_init_kb(void) {
    matrix_init_user();
}


@@ 122,7 112,7 @@ void matrix_init(void) {
        matrix_debouncing[i] = 0;
    }

    matrix_init_quantum();
    matrix_init_kb();
}

uint8_t matrix_scan(void)


@@ 165,7 155,7 @@ uint8_t matrix_scan(void)
        }
#   endif

    matrix_scan_quantum();
    matrix_scan_kb();
    return 1;
}


M keyboards/touchpad/matrix.c => keyboards/touchpad/matrix.c +2 -2
@@ 158,7 158,7 @@ void matrix_init(void) {

  memset(matrix, 0, MATRIX_ROWS * sizeof(matrix_row_t));

  matrix_init_quantum();
  matrix_init_kb();
}




@@ 261,7 261,7 @@ uint8_t matrix_scan(void) {
    writePinLow(E6);
  }

  matrix_scan_quantum();
  matrix_scan_kb();

  return 1;


M keyboards/woodkeys/meira/matrix.c => keyboards/woodkeys/meira/matrix.c +2 -2
@@ 119,7 119,7 @@ void matrix_init(void)
        matrix_debouncing[i] = 0;
    }

    matrix_init_quantum();
    matrix_init_kb();

}



@@ 154,7 154,7 @@ uint8_t _matrix_scan(void)
uint8_t matrix_scan(void)
{
	uint8_t ret = _matrix_scan();
	matrix_scan_quantum();
	matrix_scan_kb();
	return ret;
}


M keyboards/ymdk/sp64/matrix.c => keyboards/ymdk/sp64/matrix.c +2 -2
@@ 74,7 74,7 @@ void matrix_init(void)
    matrix_debouncing[row] = 0;
  }
  debounce_init(MATRIX_ROWS);
  matrix_init_quantum();
  matrix_init_kb();
}

uint8_t matrix_scan(void)


@@ 127,7 127,7 @@ uint8_t matrix_scan(void)

  debounce(matrix_debouncing, matrix, MATRIX_ROWS, changed);

  matrix_scan_quantum();
  matrix_scan_kb();

#ifdef DEBUG_MATRIX
  for (uint8_t c = 0; c < MATRIX_COLS; c++)

M quantum/matrix.c => quantum/matrix.c +2 -2
@@ 308,7 308,7 @@ void matrix_init(void) {

    debounce_init(ROWS_PER_HAND);

    matrix_init_quantum();
    matrix_init_kb();
}

#ifdef SPLIT_KEYBOARD


@@ 342,7 342,7 @@ uint8_t matrix_scan(void) {
    changed = debounce(raw_matrix, matrix + thisHand, ROWS_PER_HAND, changed) | matrix_post_scan();
#else
    changed = debounce(raw_matrix, matrix, ROWS_PER_HAND, changed);
    matrix_scan_quantum();
    matrix_scan_kb();
#endif
    return (uint8_t)changed;
}

M quantum/matrix.h => quantum/matrix.h +0 -4
@@ 67,10 67,6 @@ void matrix_io_delay(void);
void matrix_power_up(void);
void matrix_power_down(void);

/* executes code for Quantum */
void matrix_init_quantum(void);
void matrix_scan_quantum(void);

void matrix_init_kb(void);
void matrix_scan_kb(void);


M quantum/matrix_common.c => quantum/matrix_common.c +3 -3
@@ 111,7 111,7 @@ bool matrix_post_scan(void) {

        if (changed) memcpy(matrix + thatHand, slave_matrix, sizeof(slave_matrix));

        matrix_scan_quantum();
        matrix_scan_kb();
    } else {
        transport_slave(matrix + thatHand, matrix + thisHand);



@@ 162,7 162,7 @@ __attribute__((weak)) void matrix_init(void) {

    debounce_init(ROWS_PER_HAND);

    matrix_init_quantum();
    matrix_init_kb();
}

__attribute__((weak)) uint8_t matrix_scan(void) {


@@ 172,7 172,7 @@ __attribute__((weak)) uint8_t matrix_scan(void) {
    changed = debounce(raw_matrix, matrix + thisHand, ROWS_PER_HAND, changed) | matrix_post_scan();
#else
    changed = debounce(raw_matrix, matrix, ROWS_PER_HAND, changed);
    matrix_scan_quantum();
    matrix_scan_kb();
#endif

    return changed;

M quantum/quantum.c => quantum/quantum.c +0 -8
@@ 453,14 453,6 @@ void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
    layer_state_set(update_tri_layer_state(layer_state, layer1, layer2, layer3));
}

// TODO: remove legacy api
void matrix_init_quantum(void) {
    matrix_init_kb();
}
void matrix_scan_quantum(void) {
    matrix_scan_kb();
}

//------------------------------------------------------------------------------
// Override these functions in your keymap file to play different tunes on
// different events such as startup and bootloader jump

M tests/test_common/matrix.c => tests/test_common/matrix.c +2 -2
@@ 22,11 22,11 @@ static matrix_row_t matrix[MATRIX_ROWS] = {};

void matrix_init(void) {
    clear_all_keys();
    matrix_init_quantum();
    matrix_init_kb();
}

uint8_t matrix_scan(void) {
    matrix_scan_quantum();
    matrix_scan_kb();
    return 1;
}


M users/drashna/callbacks.md => users/drashna/callbacks.md +1 -1
@@ 2,7 2,7 @@

Specifically QMK works by using customized callback functions for everything. This allows for multiple levels of customization. 

`matrix_scan` calls `matrix_scan_quantum`, which calls `matrix_scan_kb`, which calls `matrix_scan_user`. 
`matrix_scan` calls `matrix_scan_kb`, which calls `matrix_scan_user`. 
`process_record` calls a bunch of stuff, but eventually calls `process_record_kb` which calls `process_record_user`
The same goes for `matrix_init`, `layer_state_set`, `led_set`, and a few other functions.