Skip site navigation (1)Skip section navigation (2)
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>