Module Name: src
Committed By: mlelstv
Date: Tue Mar 19 07:08:43 UTC 2019
Modified Files:
src/sys/dev/sdmmc: ld_sdmmc.c
Log Message:
Provide CID data (manufacturer/product id/product name) as disk type.
To generate a diff of this commit:
cvs rdiff -u -r1.35 -r1.36 src/sys/dev/sdmmc/ld_sdmmc.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/sdmmc/ld_sdmmc.c
diff -u src/sys/dev/sdmmc/ld_sdmmc.c:1.35 src/sys/dev/sdmmc/ld_sdmmc.c:1.36
--- src/sys/dev/sdmmc/ld_sdmmc.c:1.35 Fri Nov 9 14:39:19 2018
+++ src/sys/dev/sdmmc/ld_sdmmc.c Tue Mar 19 07:08:43 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: ld_sdmmc.c,v 1.35 2018/11/09 14:39:19 jmcneill Exp $ */
+/* $NetBSD: ld_sdmmc.c,v 1.36 2019/03/19 07:08:43 mlelstv Exp $ */
/*
* Copyright (c) 2008 KIYOHARA Takashi
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ld_sdmmc.c,v 1.35 2018/11/09 14:39:19 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ld_sdmmc.c,v 1.36 2019/03/19 07:08:43 mlelstv Exp $");
#ifdef _KERNEL_OPT
#include "opt_sdmmc.h"
@@ -92,6 +92,7 @@ struct ld_sdmmc_softc {
struct sdmmc_function *sc_sf;
struct ld_sdmmc_task sc_task[LD_SDMMC_MAXTASKCNT];
pcq_t *sc_freeq;
+ char *sc_typename;
struct evcnt sc_ev_discard; /* discard counter */
struct evcnt sc_ev_discarderr; /* discard error counter */
@@ -146,6 +147,9 @@ ld_sdmmc_attach(device_t parent, device_
sa->sf->cid.rev, sa->sf->cid.psn, sa->sf->cid.mdt);
aprint_naive("\n");
+ sc->sc_typename = kmem_asprintf("0x%02x:0x%04x:%s",
+ sa->sf->cid.mid, sa->sf->cid.oid, sa->sf->cid.pnm);
+
evcnt_attach_dynamic(&sc->sc_ev_discard, EVCNT_TYPE_MISC,
NULL, device_xname(self), "sdmmc discard count");
evcnt_attach_dynamic(&sc->sc_ev_discarderr, EVCNT_TYPE_MISC,
@@ -176,6 +180,7 @@ ld_sdmmc_attach(device_t parent, device_
ld->sc_start = ld_sdmmc_start;
ld->sc_discard = ld_sdmmc_discard;
ld->sc_ioctl = ld_sdmmc_ioctl;
+ ld->sc_typename = sc->sc_typename;
/*
* Defer attachment of ld + disk subsystem to a thread.
@@ -242,6 +247,7 @@ ld_sdmmc_detach(device_t dev, int flags)
evcnt_detach(&sc->sc_ev_discard);
evcnt_detach(&sc->sc_ev_discarderr);
evcnt_detach(&sc->sc_ev_discardbusy);
+ kmem_free(sc->sc_typename, strlen(sc->sc_typename) + 1);
return 0;
}