Date: Wed, 10 Apr 2013 17:45:59 -0600 From: Warner Losh <imp@bsdimp.com> To: Adrian Chadd <adrian@freebsd.org> Cc: Aleksandr Rybalko <ray@freebsd.org>, Dmytro <dioptimizer@gmail.com>, freebsd-mips@freebsd.org, Ian Lepore <ian@freebsd.org> Subject: Re: [PATCH] MMC/SD SPI-mode driver Message-ID: <E8649B82-ACD1-4B5C-98D1-49BB67BD13ED@bsdimp.com> In-Reply-To: <CAJ-Vmonvsb77Rm_E8vk%2B-hDDq-CHVzB=DX0sYVr8-c9=5zfjvQ@mail.gmail.com> References: <CAK1zEjs=hC%2BpAYBgGq4t7%2BA_JPLaH6rhvEjD%2B1RNk1Ziu8E-4g@mail.gmail.com> <CAD44qMWpz-sjNKwRH6K=xicFXYutfk7R%2BN%2B%2Bo7cbgTg7rcQbkA@mail.gmail.com> <CAK1zEjuVZU4A59q5GxLcKTnFF9mcrbVmJ=w268uSJ=3sxVf1PA@mail.gmail.com> <CAD44qMURrssyXUz-%2Btd226chPA_MbKJ29ZApozbT2cEYbQwSqw@mail.gmail.com> <CAJ-Vmo=nQMuuJAW786egjuXCf0LGOd9g%2BCEEKdOJjPLRQFpKUg@mail.gmail.com> <20130407011307.9a9a9d64.ray@freebsd.org> <CAJ-Vmo=aeLCmBYpn9YMsGjq%2B9aF_Es-rByJ3RSnYkJYUECtLuQ@mail.gmail.com> <20130407022428.86a66c6a.ray@freebsd.org> <CAJ-VmokXseALmvvA9wsgZEBKSP0AGA988592TbsRb%2B4F0-UEcw@mail.gmail.com> <20130408153334.9cc11688aedbf32dcbf83a7b@freebsd.org> <CAJ-Vmo=irADrYgM1Aw=fHbnO%2Bgf7kHy_xHeSY9mzTSifo34frg@mail.gmail.com> <1365605147.41399.227.camel@revolution.hippie.lan> <CAJ-Vmon3v1CV08u7dqn1w=Jwih2eCfjtJdmB_OjZU3cSzx-baA@mail.gmail.com> <1365609642.41399.237.camel@revolution.hippie.lan> <CAJ-Vmo=%2BtuHC4WA_5xPtjdJMGMn-_g6p5Nn7YjoPcuqb0s9AKg@mail.gmail.com> <1365619856.41399.242.camel@revolution.hippie.lan> <CAJ- Vmonvsb77Rm_E8vk%2B-hDDq-CHVzB=DX0sYVr8-c9=5zfjvQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Apr 10, 2013, at 5:22 PM, Adrian Chadd wrote: > On 10 April 2013 11:50, Ian Lepore <ian@freebsd.org> wrote: >> Maybe something like this could work? >>=20 >> static int >> ar71xx_spi_transfer(device_t dev, device_t child, struct spi_command = *cmd) >> { >> if (cmd->cs =3D=3D sc->magic_mapped_flash_chipsel && >> cmd->tx_cmd =3D=3D NULL && cmd->tx_data =3D=3D NULL && >> *(uint8_t *)cmd->rx_cmd =3D=3D SPIFLASH_READ_OPCODE && >> /* maybe some other constraints I don't know about */ >> /* maybe even check that child is the mx25l driver */) >> return do_magic_mapped_read(...); >> else >> return do_mundane_nonmapped_transfer(...); >> } >=20 > So you're special casing it in the bus code rather than the driver > code. It's still ugly, but it's hid from the driver. At least in the bus code we won't have to put this code into each of our = SPI flash drivers... Warner
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E8649B82-ACD1-4B5C-98D1-49BB67BD13ED>