[INFO] fetching crate bcm2835-sdhci 0.1.1... [INFO] linting bcm2835-sdhci-0.1.1 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate bcm2835-sdhci 0.1.1 into /workspace/builds/worker-7-tc1/source [INFO] started tweaking crates.io crate bcm2835-sdhci 0.1.1 [INFO] finished tweaking crates.io crate bcm2835-sdhci 0.1.1 [INFO] tweaked toml for crates.io crate bcm2835-sdhci 0.1.1 written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate bcm2835-sdhci 0.1.1 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate bcm2835-sdhci 0.1.1 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded volatile v0.3.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 9305baf7440ce5d2f330d94a38a2df1932fb2f51868a35477d116e5e35be7ad8 [INFO] running `Command { std: "docker" "start" "-a" "9305baf7440ce5d2f330d94a38a2df1932fb2f51868a35477d116e5e35be7ad8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "9305baf7440ce5d2f330d94a38a2df1932fb2f51868a35477d116e5e35be7ad8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9305baf7440ce5d2f330d94a38a2df1932fb2f51868a35477d116e5e35be7ad8", kill_on_drop: false }` [INFO] [stdout] 9305baf7440ce5d2f330d94a38a2df1932fb2f51868a35477d116e5e35be7ad8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] c1cb2d15715ef5a87def82dde71fd9e2c321ad4c95920c06c0a078a354130642 [INFO] running `Command { std: "docker" "start" "-a" "c1cb2d15715ef5a87def82dde71fd9e2c321ad4c95920c06c0a078a354130642", kill_on_drop: false }` [INFO] [stderr] Checking tock-registers v0.10.1 [INFO] [stderr] Checking volatile v0.3.0 [INFO] [stderr] Checking aarch64-cpu v11.2.0 [INFO] [stderr] Checking bcm2835-sdhci v0.1.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: operator precedence might not be obvious [INFO] [stdout] --> src/Bcm2835SDhci.rs:449:53 [INFO] [stdout] | [INFO] [stdout] 449 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_TIMEOUT)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (SD_ERR_BASE + SD_ERR_CMD_TIMEOUT)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stdout] = note: `#[warn(clippy::precedence)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: operator precedence might not be obvious [INFO] [stdout] --> src/Bcm2835SDhci.rs:452:53 [INFO] [stdout] | [INFO] [stdout] 452 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_CRC)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (SD_ERR_BASE + SD_ERR_CMD_CRC)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: operator precedence might not be obvious [INFO] [stdout] --> src/Bcm2835SDhci.rs:455:53 [INFO] [stdout] | [INFO] [stdout] 455 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_END_BIT)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (SD_ERR_BASE + SD_ERR_CMD_END_BIT)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: operator precedence might not be obvious [INFO] [stdout] --> src/Bcm2835SDhci.rs:458:53 [INFO] [stdout] | [INFO] [stdout] 458 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_INDEX)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (SD_ERR_BASE + SD_ERR_CMD_INDEX)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: operator precedence might not be obvious [INFO] [stdout] --> src/Bcm2835SDhci.rs:461:53 [INFO] [stdout] | [INFO] [stdout] 461 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_DATA_TIMEOUT)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (SD_ERR_BASE + SD_ERR_DATA_TIMEOUT)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: operator precedence might not be obvious [INFO] [stdout] --> src/Bcm2835SDhci.rs:464:53 [INFO] [stdout] | [INFO] [stdout] 464 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_DATA_CRC)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (SD_ERR_BASE + SD_ERR_DATA_CRC)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: operator precedence might not be obvious [INFO] [stdout] --> src/Bcm2835SDhci.rs:467:53 [INFO] [stdout] | [INFO] [stdout] 467 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_DATA_END_BIT)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (SD_ERR_BASE + SD_ERR_DATA_END_BIT)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: operator precedence might not be obvious [INFO] [stdout] --> src/Bcm2835SDhci.rs:470:53 [INFO] [stdout] | [INFO] [stdout] 470 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CURRENT_LIMIT)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (SD_ERR_BASE + SD_ERR_CURRENT_LIMIT)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: operator precedence might not be obvious [INFO] [stdout] --> src/Bcm2835SDhci.rs:473:53 [INFO] [stdout] | [INFO] [stdout] 473 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_AUTO_CMD12)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (SD_ERR_BASE + SD_ERR_AUTO_CMD12)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: operator precedence might not be obvious [INFO] [stdout] --> src/Bcm2835SDhci.rs:476:53 [INFO] [stdout] | [INFO] [stdout] 476 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_ADMA)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (SD_ERR_BASE + SD_ERR_ADMA)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: operator precedence might not be obvious [INFO] [stdout] --> src/Bcm2835SDhci.rs:479:53 [INFO] [stdout] | [INFO] [stdout] 479 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_TUNING)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (SD_ERR_BASE + SD_ERR_TUNING)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: operator precedence might not be obvious [INFO] [stdout] --> src/Bcm2835SDhci.rs:449:53 [INFO] [stdout] | [INFO] [stdout] 449 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_TIMEOUT)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (SD_ERR_BASE + SD_ERR_CMD_TIMEOUT)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stdout] = note: `#[warn(clippy::precedence)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: operator precedence might not be obvious [INFO] [stdout] --> src/Bcm2835SDhci.rs:452:53 [INFO] [stdout] | [INFO] [stdout] 452 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_CRC)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (SD_ERR_BASE + SD_ERR_CMD_CRC)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: operator precedence might not be obvious [INFO] [stdout] --> src/Bcm2835SDhci.rs:455:53 [INFO] [stdout] | [INFO] [stdout] 455 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_END_BIT)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (SD_ERR_BASE + SD_ERR_CMD_END_BIT)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: operator precedence might not be obvious [INFO] [stdout] --> src/Bcm2835SDhci.rs:458:53 [INFO] [stdout] | [INFO] [stdout] 458 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_INDEX)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (SD_ERR_BASE + SD_ERR_CMD_INDEX)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: operator precedence might not be obvious [INFO] [stdout] --> src/Bcm2835SDhci.rs:461:53 [INFO] [stdout] | [INFO] [stdout] 461 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_DATA_TIMEOUT)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (SD_ERR_BASE + SD_ERR_DATA_TIMEOUT)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: operator precedence might not be obvious [INFO] [stdout] --> src/Bcm2835SDhci.rs:464:53 [INFO] [stdout] | [INFO] [stdout] 464 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_DATA_CRC)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (SD_ERR_BASE + SD_ERR_DATA_CRC)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: operator precedence might not be obvious [INFO] [stdout] --> src/Bcm2835SDhci.rs:467:53 [INFO] [stdout] | [INFO] [stdout] 467 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_DATA_END_BIT)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (SD_ERR_BASE + SD_ERR_DATA_END_BIT)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: operator precedence might not be obvious [INFO] [stdout] --> src/Bcm2835SDhci.rs:470:53 [INFO] [stdout] | [INFO] [stdout] 470 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CURRENT_LIMIT)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (SD_ERR_BASE + SD_ERR_CURRENT_LIMIT)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: operator precedence might not be obvious [INFO] [stdout] --> src/Bcm2835SDhci.rs:473:53 [INFO] [stdout] | [INFO] [stdout] 473 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_AUTO_CMD12)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (SD_ERR_BASE + SD_ERR_AUTO_CMD12)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: operator precedence might not be obvious [INFO] [stdout] --> src/Bcm2835SDhci.rs:476:53 [INFO] [stdout] | [INFO] [stdout] 476 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_ADMA)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (SD_ERR_BASE + SD_ERR_ADMA)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: operator precedence might not be obvious [INFO] [stdout] --> src/Bcm2835SDhci.rs:479:53 [INFO] [stdout] | [INFO] [stdout] 479 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_TUNING)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (SD_ERR_BASE + SD_ERR_TUNING)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/Bcm2835SDhci.rs:625:13 [INFO] [stdout] | [INFO] [stdout] 625 | let mut control1 = self.emmc.registers.CONTROL1.read(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/Bcm2835SDhci.rs:638:13 [INFO] [stdout] | [INFO] [stdout] 638 | let mut control1 = self.emmc.registers.CONTROL1.read(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `complete` [INFO] [stdout] --> src/Bcm2835SDhci.rs:747:13 [INFO] [stdout] | [INFO] [stdout] 747 | let complete = timeout_wait!(self.emmc.registers.INTERRUPT.read() & 0x8001 != 0, timeout); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_complete` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/Bcm2835SDhci.rs:784:21 [INFO] [stdout] | [INFO] [stdout] 784 | let mut irpts = self.emmc.registers.INTERRUPT.read(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `argument` [INFO] [stdout] --> src/Bcm2835SDhci.rs:772:63 [INFO] [stdout] | [INFO] [stdout] 772 | pub fn sd_issue_command_int_post(&mut self, command: u32, argument: u32, timeout: u32) -> bool { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_argument` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/Bcm2835SDhci.rs:867:21 [INFO] [stdout] | [INFO] [stdout] 867 | let mut buf = &mut self.sd_scr.scr; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/Bcm2835SDhci.rs:868:21 [INFO] [stdout] | [INFO] [stdout] 868 | let mut wr_irpt = 1 << 5; [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `vendor` [INFO] [stdout] --> src/Bcm2835SDhci.rs:976:13 [INFO] [stdout] | [INFO] [stdout] 976 | let vendor = ver >> 24; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_vendor` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sdversion` [INFO] [stdout] --> src/Bcm2835SDhci.rs:977:13 [INFO] [stdout] | [INFO] [stdout] 977 | let sdversion = (ver >> 16) & 0xff; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sdversion` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `slot_status` [INFO] [stdout] --> src/Bcm2835SDhci.rs:978:13 [INFO] [stdout] | [INFO] [stdout] 978 | let slot_status = ver & 0xff; [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_slot_status` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `irpt_mask` [INFO] [stdout] --> src/Bcm2835SDhci.rs:1045:13 [INFO] [stdout] | [INFO] [stdout] 1045 | let irpt_mask = 0xffffffff & (!SD_CARD_INTERRUPT); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_irpt_mask` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `clk` is assigned to, but never used [INFO] [stdout] --> src/Bcm2835SDhci.rs:1072:17 [INFO] [stdout] | [INFO] [stdout] 1072 | let mut clk: u32 = self.emmc.registers.CONTROL1.read(); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_clk` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v2_later` [INFO] [stdout] --> src/Bcm2835SDhci.rs:1096:13 [INFO] [stdout] | [INFO] [stdout] 1096 | let v2_later = true; [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_v2_later` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `card_cid` [INFO] [stdout] --> src/Bcm2835SDhci.rs:1250:13 [INFO] [stdout] | [INFO] [stdout] 1250 | let card_cid = [ [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_card_cid` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `control0` is never read [INFO] [stdout] --> src/Bcm2835SDhci.rs:983:28 [INFO] [stdout] | [INFO] [stdout] 983 | let mut control0 = self.emmc.registers.CONTROL0.read(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `clk` is never read [INFO] [stdout] --> src/Bcm2835SDhci.rs:1073:13 [INFO] [stdout] | [INFO] [stdout] 1073 | clk &= !(0x0004); //0x0004 [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/Bcm2835SDhci.rs:1455:25 [INFO] [stdout] | [INFO] [stdout] 1455 | let mut wr_irpt = 1 << 5; [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `retry` [INFO] [stdout] --> src/Bcm2835SDhci.rs:1450:13 [INFO] [stdout] | [INFO] [stdout] 1450 | for retry in 0..3 { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_retry` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `command` is never read [INFO] [stdout] --> src/Bcm2835SDhci.rs:1443:27 [INFO] [stdout] | [INFO] [stdout] 1443 | let mut command = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/Bcm2835SDhci.rs:1516:25 [INFO] [stdout] | [INFO] [stdout] 1516 | let mut wr_irpt = 1 << 4; [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `retry` [INFO] [stdout] --> src/Bcm2835SDhci.rs:1511:13 [INFO] [stdout] | [INFO] [stdout] 1511 | for retry in 0..3 { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_retry` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `command` is never read [INFO] [stdout] --> src/Bcm2835SDhci.rs:1504:27 [INFO] [stdout] | [INFO] [stdout] 1504 | let mut command = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/Bcm2835SDhci.rs:399:24 [INFO] [stdout] | [INFO] [stdout] 399 | let mut res = resp[off as usize] >> shft; [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `off` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/Bcm2835SDhci.rs:402:21 [INFO] [stdout] | [INFO] [stdout] 402 | res |= resp[(off - 1) as usize] << ((32 - shft) % 32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `((off - 1))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `EmmcCtl` [INFO] [stdout] --> src/Bcm2835SDhci.rs:410:5 [INFO] [stdout] | [INFO] [stdout] 410 | / pub fn new() -> EmmcCtl { [INFO] [stdout] 411 | | info!("before new"); [INFO] [stdout] 412 | | //TODO: improve it! [INFO] [stdout] 413 | | EmmcCtl { [INFO] [stdout] ... | [INFO] [stdout] 437 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 408 + impl Default for EmmcCtl { [INFO] [stdout] 409 + fn default() -> Self { [INFO] [stdout] 410 + Self::new() [INFO] [stdout] 411 + } [INFO] [stdout] 412 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:440:9 [INFO] [stdout] | [INFO] [stdout] 440 | return self.last_cmd_success; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 440 - return self.last_cmd_success; [INFO] [stdout] 440 + self.last_cmd_success [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:443:9 [INFO] [stdout] | [INFO] [stdout] 443 | return !self.last_cmd_success; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 443 - return !self.last_cmd_success; [INFO] [stdout] 443 + !self.last_cmd_success [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:446:9 [INFO] [stdout] | [INFO] [stdout] 446 | return self.failed() && self.last_error == 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 446 - return self.failed() && self.last_error == 0; [INFO] [stdout] 446 + self.failed() && self.last_error == 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/Bcm2835SDhci.rs:625:13 [INFO] [stdout] | [INFO] [stdout] 625 | let mut control1 = self.emmc.registers.CONTROL1.read(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:449:9 [INFO] [stdout] | [INFO] [stdout] 449 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_TIMEOUT)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 449 - return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_TIMEOUT)) != 0; [INFO] [stdout] 449 + self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_TIMEOUT)) != 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:452:9 [INFO] [stdout] | [INFO] [stdout] 452 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_CRC)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 452 - return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_CRC)) != 0; [INFO] [stdout] 452 + self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_CRC)) != 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:455:9 [INFO] [stdout] | [INFO] [stdout] 455 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_END_BIT)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 455 - return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_END_BIT)) != 0; [INFO] [stdout] 455 + self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_END_BIT)) != 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:458:9 [INFO] [stdout] | [INFO] [stdout] 458 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_INDEX)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 458 - return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_INDEX)) != 0; [INFO] [stdout] 458 + self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_INDEX)) != 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:461:9 [INFO] [stdout] | [INFO] [stdout] 461 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_DATA_TIMEOUT)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 461 - return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_DATA_TIMEOUT)) != 0; [INFO] [stdout] 461 + self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_DATA_TIMEOUT)) != 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:464:9 [INFO] [stdout] | [INFO] [stdout] 464 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_DATA_CRC)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 464 - return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_DATA_CRC)) != 0; [INFO] [stdout] 464 + self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_DATA_CRC)) != 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/Bcm2835SDhci.rs:638:13 [INFO] [stdout] | [INFO] [stdout] 638 | let mut control1 = self.emmc.registers.CONTROL1.read(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:467:9 [INFO] [stdout] | [INFO] [stdout] 467 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_DATA_END_BIT)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 467 - return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_DATA_END_BIT)) != 0; [INFO] [stdout] 467 + self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_DATA_END_BIT)) != 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `complete` [INFO] [stdout] --> src/Bcm2835SDhci.rs:747:13 [INFO] [stdout] | [INFO] [stdout] 747 | let complete = timeout_wait!(self.emmc.registers.INTERRUPT.read() & 0x8001 != 0, timeout); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_complete` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:470:9 [INFO] [stdout] | [INFO] [stdout] 470 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CURRENT_LIMIT)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 470 - return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CURRENT_LIMIT)) != 0; [INFO] [stdout] 470 + self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CURRENT_LIMIT)) != 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:473:9 [INFO] [stdout] | [INFO] [stdout] 473 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_AUTO_CMD12)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 473 - return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_AUTO_CMD12)) != 0; [INFO] [stdout] 473 + self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_AUTO_CMD12)) != 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:476:9 [INFO] [stdout] | [INFO] [stdout] 476 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_ADMA)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 476 - return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_ADMA)) != 0; [INFO] [stdout] 476 + self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_ADMA)) != 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/Bcm2835SDhci.rs:784:21 [INFO] [stdout] | [INFO] [stdout] 784 | let mut irpts = self.emmc.registers.INTERRUPT.read(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `argument` [INFO] [stdout] --> src/Bcm2835SDhci.rs:772:63 [INFO] [stdout] | [INFO] [stdout] 772 | pub fn sd_issue_command_int_post(&mut self, command: u32, argument: u32, timeout: u32) -> bool { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_argument` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:479:9 [INFO] [stdout] | [INFO] [stdout] 479 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_TUNING)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 479 - return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_TUNING)) != 0; [INFO] [stdout] 479 + self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_TUNING)) != 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/Bcm2835SDhci.rs:867:21 [INFO] [stdout] | [INFO] [stdout] 867 | let mut buf = &mut self.sd_scr.scr; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/Bcm2835SDhci.rs:868:21 [INFO] [stdout] | [INFO] [stdout] 868 | let mut wr_irpt = 1 << 5; [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:539:9 [INFO] [stdout] | [INFO] [stdout] 539 | return 0; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 539 - return 0; [INFO] [stdout] 539 + 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/Bcm2835SDhci.rs:558:43 [INFO] [stdout] | [INFO] [stdout] 558 | base_clock / target_rate - if base_clock % target_rate != 0 { 1 } else { 0 } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!base_clock.is_multiple_of(target_rate)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/Bcm2835SDhci.rs:587:9 [INFO] [stdout] | [INFO] [stdout] 587 | ((divisor & 0xff) << 8) | (((divisor >> 8) & 0x3) << 6) | (0 << 5) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `((divisor & 0xff) << 8) | (((divisor >> 8) & 0x3) << 6)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `vendor` [INFO] [stdout] --> src/Bcm2835SDhci.rs:976:13 [INFO] [stdout] | [INFO] [stdout] 976 | let vendor = ver >> 24; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_vendor` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sdversion` [INFO] [stdout] --> src/Bcm2835SDhci.rs:977:13 [INFO] [stdout] | [INFO] [stdout] 977 | let sdversion = (ver >> 16) & 0xff; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sdversion` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `slot_status` [INFO] [stdout] --> src/Bcm2835SDhci.rs:978:13 [INFO] [stdout] | [INFO] [stdout] 978 | let slot_status = ver & 0xff; [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_slot_status` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `irpt_mask` [INFO] [stdout] --> src/Bcm2835SDhci.rs:1045:13 [INFO] [stdout] | [INFO] [stdout] 1045 | let irpt_mask = 0xffffffff & (!SD_CARD_INTERRUPT); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_irpt_mask` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `clk` is assigned to, but never used [INFO] [stdout] --> src/Bcm2835SDhci.rs:1072:17 [INFO] [stdout] | [INFO] [stdout] 1072 | let mut clk: u32 = self.emmc.registers.CONTROL1.read(); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_clk` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v2_later` [INFO] [stdout] --> src/Bcm2835SDhci.rs:1096:13 [INFO] [stdout] | [INFO] [stdout] 1096 | let v2_later = true; [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_v2_later` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `card_cid` [INFO] [stdout] --> src/Bcm2835SDhci.rs:1250:13 [INFO] [stdout] | [INFO] [stdout] 1250 | let card_cid = [ [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_card_cid` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `control0` is never read [INFO] [stdout] --> src/Bcm2835SDhci.rs:983:28 [INFO] [stdout] | [INFO] [stdout] 983 | let mut control0 = self.emmc.registers.CONTROL0.read(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `clk` is never read [INFO] [stdout] --> src/Bcm2835SDhci.rs:1073:13 [INFO] [stdout] | [INFO] [stdout] 1073 | clk &= !(0x0004); //0x0004 [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/Bcm2835SDhci.rs:1455:25 [INFO] [stdout] | [INFO] [stdout] 1455 | let mut wr_irpt = 1 << 5; [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `retry` [INFO] [stdout] --> src/Bcm2835SDhci.rs:1450:13 [INFO] [stdout] | [INFO] [stdout] 1450 | for retry in 0..3 { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_retry` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `command` is never read [INFO] [stdout] --> src/Bcm2835SDhci.rs:1443:27 [INFO] [stdout] | [INFO] [stdout] 1443 | let mut command = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/Bcm2835SDhci.rs:1516:25 [INFO] [stdout] | [INFO] [stdout] 1516 | let mut wr_irpt = 1 << 4; [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `retry` [INFO] [stdout] --> src/Bcm2835SDhci.rs:1511:13 [INFO] [stdout] | [INFO] [stdout] 1511 | for retry in 0..3 { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_retry` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `command` is never read [INFO] [stdout] --> src/Bcm2835SDhci.rs:1504:27 [INFO] [stdout] | [INFO] [stdout] 1504 | let mut command = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:914:13 [INFO] [stdout] | [INFO] [stdout] 914 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 914 - return true; [INFO] [stdout] 914 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:917:13 [INFO] [stdout] | [INFO] [stdout] 917 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 917 - return false; [INFO] [stdout] 917 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/Bcm2835SDhci.rs:1045:25 [INFO] [stdout] | [INFO] [stdout] 1045 | let irpt_mask = 0xffffffff & (!SD_CARD_INTERRUPT); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `(!SD_CARD_INTERRUPT)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/Bcm2835SDhci.rs:399:24 [INFO] [stdout] | [INFO] [stdout] 399 | let mut res = resp[off as usize] >> shft; [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `off` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/Bcm2835SDhci.rs:402:21 [INFO] [stdout] | [INFO] [stdout] 402 | res |= resp[(off - 1) as usize] << ((32 - shft) % 32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `((off - 1))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `EmmcCtl` [INFO] [stdout] --> src/Bcm2835SDhci.rs:410:5 [INFO] [stdout] | [INFO] [stdout] 410 | / pub fn new() -> EmmcCtl { [INFO] [stdout] 411 | | info!("before new"); [INFO] [stdout] 412 | | //TODO: improve it! [INFO] [stdout] 413 | | EmmcCtl { [INFO] [stdout] ... | [INFO] [stdout] 437 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 408 + impl Default for EmmcCtl { [INFO] [stdout] 409 + fn default() -> Self { [INFO] [stdout] 410 + Self::new() [INFO] [stdout] 411 + } [INFO] [stdout] 412 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:440:9 [INFO] [stdout] | [INFO] [stdout] 440 | return self.last_cmd_success; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 440 - return self.last_cmd_success; [INFO] [stdout] 440 + self.last_cmd_success [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:443:9 [INFO] [stdout] | [INFO] [stdout] 443 | return !self.last_cmd_success; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 443 - return !self.last_cmd_success; [INFO] [stdout] 443 + !self.last_cmd_success [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:446:9 [INFO] [stdout] | [INFO] [stdout] 446 | return self.failed() && self.last_error == 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 446 - return self.failed() && self.last_error == 0; [INFO] [stdout] 446 + self.failed() && self.last_error == 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:449:9 [INFO] [stdout] | [INFO] [stdout] 449 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_TIMEOUT)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 449 - return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_TIMEOUT)) != 0; [INFO] [stdout] 449 + self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_TIMEOUT)) != 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:452:9 [INFO] [stdout] | [INFO] [stdout] 452 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_CRC)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 452 - return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_CRC)) != 0; [INFO] [stdout] 452 + self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_CRC)) != 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:455:9 [INFO] [stdout] | [INFO] [stdout] 455 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_END_BIT)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 455 - return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_END_BIT)) != 0; [INFO] [stdout] 455 + self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_END_BIT)) != 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:458:9 [INFO] [stdout] | [INFO] [stdout] 458 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_INDEX)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 458 - return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_INDEX)) != 0; [INFO] [stdout] 458 + self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CMD_INDEX)) != 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:461:9 [INFO] [stdout] | [INFO] [stdout] 461 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_DATA_TIMEOUT)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 461 - return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_DATA_TIMEOUT)) != 0; [INFO] [stdout] 461 + self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_DATA_TIMEOUT)) != 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:464:9 [INFO] [stdout] | [INFO] [stdout] 464 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_DATA_CRC)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 464 - return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_DATA_CRC)) != 0; [INFO] [stdout] 464 + self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_DATA_CRC)) != 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:467:9 [INFO] [stdout] | [INFO] [stdout] 467 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_DATA_END_BIT)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 467 - return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_DATA_END_BIT)) != 0; [INFO] [stdout] 467 + self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_DATA_END_BIT)) != 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:470:9 [INFO] [stdout] | [INFO] [stdout] 470 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CURRENT_LIMIT)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 470 - return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CURRENT_LIMIT)) != 0; [INFO] [stdout] 470 + self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_CURRENT_LIMIT)) != 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:473:9 [INFO] [stdout] | [INFO] [stdout] 473 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_AUTO_CMD12)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 473 - return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_AUTO_CMD12)) != 0; [INFO] [stdout] 473 + self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_AUTO_CMD12)) != 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:476:9 [INFO] [stdout] | [INFO] [stdout] 476 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_ADMA)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 476 - return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_ADMA)) != 0; [INFO] [stdout] 476 + self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_ADMA)) != 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/Bcm2835SDhci.rs:1329:9 [INFO] [stdout] | [INFO] [stdout] 1329 | / if !self.card_supports_sdhc { [INFO] [stdout] 1330 | | if !self.sd_issue_command(SET_BLOCKLEN, 512, 500000) { [INFO] [stdout] 1331 | | return false; [INFO] [stdout] 1332 | | } [INFO] [stdout] 1333 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1329 ~ if !self.card_supports_sdhc [INFO] [stdout] 1330 ~ && !self.sd_issue_command(SET_BLOCKLEN, 512, 500000) { [INFO] [stdout] 1331 | return false; [INFO] [stdout] 1332 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:479:9 [INFO] [stdout] | [INFO] [stdout] 479 | return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_TUNING)) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 479 - return self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_TUNING)) != 0; [INFO] [stdout] 479 + self.failed() && (self.last_error & (1 << SD_ERR_BASE + SD_ERR_TUNING)) != 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/Bcm2835SDhci.rs:1474:33 [INFO] [stdout] | [INFO] [stdout] 1474 | ... buf[(cur_block as usize) * blocks_size_u32 + cur_word_no] = now_data; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `cur_block` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:539:9 [INFO] [stdout] | [INFO] [stdout] 539 | return 0; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 539 - return 0; [INFO] [stdout] 539 + 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/Bcm2835SDhci.rs:558:43 [INFO] [stdout] | [INFO] [stdout] 558 | base_clock / target_rate - if base_clock % target_rate != 0 { 1 } else { 0 } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!base_clock.is_multiple_of(target_rate)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/Bcm2835SDhci.rs:587:9 [INFO] [stdout] | [INFO] [stdout] 587 | ((divisor & 0xff) << 8) | (((divisor >> 8) & 0x3) << 6) | (0 << 5) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `((divisor & 0xff) << 8) | (((divisor >> 8) & 0x3) << 6)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/Bcm2835SDhci.rs:1536:44 [INFO] [stdout] | [INFO] [stdout] 1536 | ... .write(buf[(cur_block as usize) * blocks_size_u32 + cur_word_no]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `cur_block` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/Bcm2835SDhci.rs:1571:8 [INFO] [stdout] | [INFO] [stdout] 1571 | if !ctrl.read_block(0, 1, buf).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ctrl.read_block(0, 1, buf).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/Bcm2835SDhci.rs:1626:8 [INFO] [stdout] | [INFO] [stdout] 1626 | if !ctrl [INFO] [stdout] | ________^ [INFO] [stdout] 1627 | | .read_block(1, 1, unsafe { [INFO] [stdout] 1628 | | slice::from_raw_parts_mut(section.as_ptr() as *mut u32, 512 / 4) [INFO] [stdout] 1629 | | }) [INFO] [stdout] 1630 | | .is_ok() [INFO] [stdout] | |________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1626 ~ if ctrl [INFO] [stdout] 1627 + .read_block(1, 1, unsafe { [INFO] [stdout] 1628 + slice::from_raw_parts_mut(section.as_ptr() as *mut u32, 512 / 4) [INFO] [stdout] 1629 + }).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/Bcm2835SDhci.rs:1651:8 [INFO] [stdout] | [INFO] [stdout] 1651 | if !ctrl [INFO] [stdout] | ________^ [INFO] [stdout] 1652 | | .write_block(1, 1, unsafe { [INFO] [stdout] 1653 | | slice::from_raw_parts(deadbeef.as_ptr() as *mut u32, 512 / 4) [INFO] [stdout] 1654 | | }) [INFO] [stdout] 1655 | | .is_ok() [INFO] [stdout] | |________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1651 ~ if ctrl [INFO] [stdout] 1652 + .write_block(1, 1, unsafe { [INFO] [stdout] 1653 + slice::from_raw_parts(deadbeef.as_ptr() as *mut u32, 512 / 4) [INFO] [stdout] 1654 + }).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/Bcm2835SDhci.rs:1660:8 [INFO] [stdout] | [INFO] [stdout] 1660 | if !ctrl [INFO] [stdout] | ________^ [INFO] [stdout] 1661 | | .read_block(1, 1, unsafe { [INFO] [stdout] 1662 | | slice::from_raw_parts_mut(deadbeef.as_ptr() as *mut u32, 512 / 4) [INFO] [stdout] 1663 | | }) [INFO] [stdout] 1664 | | .is_ok() [INFO] [stdout] | |________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1660 ~ if ctrl [INFO] [stdout] 1661 + .read_block(1, 1, unsafe { [INFO] [stdout] 1662 + slice::from_raw_parts_mut(deadbeef.as_ptr() as *mut u32, 512 / 4) [INFO] [stdout] 1663 + }).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/Bcm2835SDhci.rs:1677:8 [INFO] [stdout] | [INFO] [stdout] 1677 | if !ctrl [INFO] [stdout] | ________^ [INFO] [stdout] 1678 | | .write_block(1, 1, unsafe { [INFO] [stdout] 1679 | | slice::from_raw_parts(section.as_ptr() as *mut u32, 512 / 4) [INFO] [stdout] 1680 | | }) [INFO] [stdout] 1681 | | .is_ok() [INFO] [stdout] | |________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1677 ~ if ctrl [INFO] [stdout] 1678 + .write_block(1, 1, unsafe { [INFO] [stdout] 1679 + slice::from_raw_parts(section.as_ptr() as *mut u32, 512 / 4) [INFO] [stdout] 1680 + }).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/Bcm2835SDhci.rs:1645:18 [INFO] [stdout] | [INFO] [stdout] 1645 | deadbeef[i * 4 + 0] = 0xDE; [INFO] [stdout] | ^^^^^^^^^ help: consider reducing it to: `(i * 4)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:914:13 [INFO] [stdout] | [INFO] [stdout] 914 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 914 - return true; [INFO] [stdout] 914 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/Bcm2835SDhci.rs:917:13 [INFO] [stdout] | [INFO] [stdout] 917 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 917 - return false; [INFO] [stdout] 917 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/Bcm2835SDhci.rs:1687:21 [INFO] [stdout] | [INFO] [stdout] 1687 | if deadbeef[i * 4 + 0] != 0xDE [INFO] [stdout] | ^^^^^^^^^ help: consider reducing it to: `(i * 4)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Emmc` [INFO] [stdout] --> src/emmc.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | / pub fn new() -> Emmc { [INFO] [stdout] 46 | | Emmc { [INFO] [stdout] 47 | | registers: unsafe { &mut *(EMMC_BASE as *mut EmmcRegisters) }, [INFO] [stdout] 48 | | } [INFO] [stdout] 49 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 44 + impl Default for Emmc { [INFO] [stdout] 45 + fn default() -> Self { [INFO] [stdout] 46 + Self::new() [INFO] [stdout] 47 + } [INFO] [stdout] 48 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `QA7Control` [INFO] [stdout] --> src/qa7_control.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | / pub fn new() -> Self { [INFO] [stdout] 61 | | QA7Control { [INFO] [stdout] 62 | | registers: unsafe { &mut *(CONTROL_BASE as *mut Registers) }, [INFO] [stdout] 63 | | } [INFO] [stdout] 64 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 58 + impl Default for QA7Control { [INFO] [stdout] 59 + fn default() -> Self { [INFO] [stdout] 60 + Self::new() [INFO] [stdout] 61 + } [INFO] [stdout] 62 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `CNTPSIRQ` contains a capitalized acronym [INFO] [stdout] --> src/timer.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | CNTPSIRQ = 0, [INFO] [stdout] | ^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Cntpsirq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `CNTPNSIRQ` contains a capitalized acronym [INFO] [stdout] --> src/timer.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | CNTPNSIRQ = 1, [INFO] [stdout] | ^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Cntpnsirq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `CNTHPIRQ` contains a capitalized acronym [INFO] [stdout] --> src/timer.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 52 | CNTHPIRQ = 2, [INFO] [stdout] | ^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Cnthpirq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `CNTVIRQ` contains a capitalized acronym [INFO] [stdout] --> src/timer.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | CNTVIRQ = 3, [INFO] [stdout] | ^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Cntvirq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> src/timer.rs:65:9 [INFO] [stdout] | [INFO] [stdout] 65 | CNTFRQ_EL0.get() as u64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `CNTFRQ_EL0.get()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> src/timer.rs:89:9 [INFO] [stdout] | [INFO] [stdout] 89 | (CNTPCT_EL0.get() * 1000000 / Self::freq()) as u64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(CNTPCT_EL0.get() * 1000000 / Self::freq())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric method [INFO] [stdout] --> src/timer.rs:96:32 [INFO] [stdout] | [INFO] [stdout] 96 | debug_assert!(count <= u32::max_value() as u64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 96 - debug_assert!(count <= u32::max_value() as u64); [INFO] [stdout] 96 + debug_assert!(count <= u32::MAX as u64); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module `Bcm2835SDhci` should have a snake case name [INFO] [stdout] --> src/lib.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub mod Bcm2835SDhci; [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `bcm2835_sdhci` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/Bcm2835SDhci.rs:1045:25 [INFO] [stdout] | [INFO] [stdout] 1045 | let irpt_mask = 0xffffffff & (!SD_CARD_INTERRUPT); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `(!SD_CARD_INTERRUPT)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/Bcm2835SDhci.rs:1329:9 [INFO] [stdout] | [INFO] [stdout] 1329 | / if !self.card_supports_sdhc { [INFO] [stdout] 1330 | | if !self.sd_issue_command(SET_BLOCKLEN, 512, 500000) { [INFO] [stdout] 1331 | | return false; [INFO] [stdout] 1332 | | } [INFO] [stdout] 1333 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1329 ~ if !self.card_supports_sdhc [INFO] [stdout] 1330 ~ && !self.sd_issue_command(SET_BLOCKLEN, 512, 500000) { [INFO] [stdout] 1331 | return false; [INFO] [stdout] 1332 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/Bcm2835SDhci.rs:1474:33 [INFO] [stdout] | [INFO] [stdout] 1474 | ... buf[(cur_block as usize) * blocks_size_u32 + cur_word_no] = now_data; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `cur_block` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/Bcm2835SDhci.rs:1536:44 [INFO] [stdout] | [INFO] [stdout] 1536 | ... .write(buf[(cur_block as usize) * blocks_size_u32 + cur_word_no]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `cur_block` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/Bcm2835SDhci.rs:1571:8 [INFO] [stdout] | [INFO] [stdout] 1571 | if !ctrl.read_block(0, 1, buf).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ctrl.read_block(0, 1, buf).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/Bcm2835SDhci.rs:1626:8 [INFO] [stdout] | [INFO] [stdout] 1626 | if !ctrl [INFO] [stdout] | ________^ [INFO] [stdout] 1627 | | .read_block(1, 1, unsafe { [INFO] [stdout] 1628 | | slice::from_raw_parts_mut(section.as_ptr() as *mut u32, 512 / 4) [INFO] [stdout] 1629 | | }) [INFO] [stdout] 1630 | | .is_ok() [INFO] [stdout] | |________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1626 ~ if ctrl [INFO] [stdout] 1627 + .read_block(1, 1, unsafe { [INFO] [stdout] 1628 + slice::from_raw_parts_mut(section.as_ptr() as *mut u32, 512 / 4) [INFO] [stdout] 1629 + }).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/Bcm2835SDhci.rs:1651:8 [INFO] [stdout] | [INFO] [stdout] 1651 | if !ctrl [INFO] [stdout] | ________^ [INFO] [stdout] 1652 | | .write_block(1, 1, unsafe { [INFO] [stdout] 1653 | | slice::from_raw_parts(deadbeef.as_ptr() as *mut u32, 512 / 4) [INFO] [stdout] 1654 | | }) [INFO] [stdout] 1655 | | .is_ok() [INFO] [stdout] | |________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1651 ~ if ctrl [INFO] [stdout] 1652 + .write_block(1, 1, unsafe { [INFO] [stdout] 1653 + slice::from_raw_parts(deadbeef.as_ptr() as *mut u32, 512 / 4) [INFO] [stdout] 1654 + }).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/Bcm2835SDhci.rs:1660:8 [INFO] [stdout] | [INFO] [stdout] 1660 | if !ctrl [INFO] [stdout] | ________^ [INFO] [stdout] 1661 | | .read_block(1, 1, unsafe { [INFO] [stdout] 1662 | | slice::from_raw_parts_mut(deadbeef.as_ptr() as *mut u32, 512 / 4) [INFO] [stdout] 1663 | | }) [INFO] [stdout] 1664 | | .is_ok() [INFO] [stdout] | |________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1660 ~ if ctrl [INFO] [stdout] 1661 + .read_block(1, 1, unsafe { [INFO] [stdout] 1662 + slice::from_raw_parts_mut(deadbeef.as_ptr() as *mut u32, 512 / 4) [INFO] [stdout] 1663 + }).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/Bcm2835SDhci.rs:1677:8 [INFO] [stdout] | [INFO] [stdout] 1677 | if !ctrl [INFO] [stdout] | ________^ [INFO] [stdout] 1678 | | .write_block(1, 1, unsafe { [INFO] [stdout] 1679 | | slice::from_raw_parts(section.as_ptr() as *mut u32, 512 / 4) [INFO] [stdout] 1680 | | }) [INFO] [stdout] 1681 | | .is_ok() [INFO] [stdout] | |________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1677 ~ if ctrl [INFO] [stdout] 1678 + .write_block(1, 1, unsafe { [INFO] [stdout] 1679 + slice::from_raw_parts(section.as_ptr() as *mut u32, 512 / 4) [INFO] [stdout] 1680 + }).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/Bcm2835SDhci.rs:1645:18 [INFO] [stdout] | [INFO] [stdout] 1645 | deadbeef[i * 4 + 0] = 0xDE; [INFO] [stdout] | ^^^^^^^^^ help: consider reducing it to: `(i * 4)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/Bcm2835SDhci.rs:1687:21 [INFO] [stdout] | [INFO] [stdout] 1687 | if deadbeef[i * 4 + 0] != 0xDE [INFO] [stdout] | ^^^^^^^^^ help: consider reducing it to: `(i * 4)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Emmc` [INFO] [stdout] --> src/emmc.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | / pub fn new() -> Emmc { [INFO] [stdout] 46 | | Emmc { [INFO] [stdout] 47 | | registers: unsafe { &mut *(EMMC_BASE as *mut EmmcRegisters) }, [INFO] [stdout] 48 | | } [INFO] [stdout] 49 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 44 + impl Default for Emmc { [INFO] [stdout] 45 + fn default() -> Self { [INFO] [stdout] 46 + Self::new() [INFO] [stdout] 47 + } [INFO] [stdout] 48 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `QA7Control` [INFO] [stdout] --> src/qa7_control.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | / pub fn new() -> Self { [INFO] [stdout] 61 | | QA7Control { [INFO] [stdout] 62 | | registers: unsafe { &mut *(CONTROL_BASE as *mut Registers) }, [INFO] [stdout] 63 | | } [INFO] [stdout] 64 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 58 + impl Default for QA7Control { [INFO] [stdout] 59 + fn default() -> Self { [INFO] [stdout] 60 + Self::new() [INFO] [stdout] 61 + } [INFO] [stdout] 62 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `CNTPSIRQ` contains a capitalized acronym [INFO] [stdout] --> src/timer.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | CNTPSIRQ = 0, [INFO] [stdout] | ^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Cntpsirq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `CNTPNSIRQ` contains a capitalized acronym [INFO] [stdout] --> src/timer.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | CNTPNSIRQ = 1, [INFO] [stdout] | ^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Cntpnsirq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `CNTHPIRQ` contains a capitalized acronym [INFO] [stdout] --> src/timer.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 52 | CNTHPIRQ = 2, [INFO] [stdout] | ^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Cnthpirq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `CNTVIRQ` contains a capitalized acronym [INFO] [stdout] --> src/timer.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | CNTVIRQ = 3, [INFO] [stdout] | ^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Cntvirq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> src/timer.rs:65:9 [INFO] [stdout] | [INFO] [stdout] 65 | CNTFRQ_EL0.get() as u64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `CNTFRQ_EL0.get()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> src/timer.rs:89:9 [INFO] [stdout] | [INFO] [stdout] 89 | (CNTPCT_EL0.get() * 1000000 / Self::freq()) as u64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(CNTPCT_EL0.get() * 1000000 / Self::freq())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric method [INFO] [stdout] --> src/timer.rs:96:32 [INFO] [stdout] | [INFO] [stdout] 96 | debug_assert!(count <= u32::max_value() as u64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 96 - debug_assert!(count <= u32::max_value() as u64); [INFO] [stdout] 96 + debug_assert!(count <= u32::MAX as u64); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module `Bcm2835SDhci` should have a snake case name [INFO] [stdout] --> src/lib.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub mod Bcm2835SDhci; [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `bcm2835_sdhci` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.04s [INFO] running `Command { std: "docker" "inspect" "c1cb2d15715ef5a87def82dde71fd9e2c321ad4c95920c06c0a078a354130642", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c1cb2d15715ef5a87def82dde71fd9e2c321ad4c95920c06c0a078a354130642", kill_on_drop: false }` [INFO] [stdout] c1cb2d15715ef5a87def82dde71fd9e2c321ad4c95920c06c0a078a354130642