https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=204521

--- Comment #50 from Jesper Schmitz Mouridsen <j...@freebsd.org> ---
Still does not work..

I looked into the bus width thing though.. it sets 1 bit even though capability
is 4 bit
in mmc.c
mmc_app_decode_scr(uint32_t *raw_scr, struct mmc_scr *scr)
{
        unsigned int scr_struct;

        memset(scr, 0, sizeof(*scr));

        scr_struct = mmc_get_bits(raw_scr, 64, 60, 4);
        if (scr_struct != 0) {
                printf("Unrecognised SCR structure version %d\n",
                    scr_struct);
                return;
        }
        scr->sda_vsn = mmc_get_bits(raw_scr, 64, 56, 4);
        scr->bus_widths = mmc_get_bits(raw_scr, 64, 48, 4);
}
and in mmc_discover_cards function in mmc.c
if ((host_caps & MMC_CAP_4_BIT_DATA) &&
                            (ivar->scr.bus_widths & SD_SCR_BUS_WIDTH_4))
                                ivar->bus_width = bus_width_4;

but bus_width is 1 and iirc 4 on openbsd so ivar->scr.bus_widths &
SD_SCR_BUS_WIDTH_4 is false. Removing it sets the bus width to 4 bits, but
still controller timeout.

so perhaps mmc_app_decode_scr does not apply to Realteks way of doing things?

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
freebsd-bugs@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"

Reply via email to