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>

index | next in thread | previous in thread | raw e-mail


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?
>> 
>> static int
>> ar71xx_spi_transfer(device_t dev, device_t child, struct spi_command *cmd)
>> {
>>    if (cmd->cs == sc->magic_mapped_flash_chipsel &&
>>        cmd->tx_cmd == NULL && cmd->tx_data == NULL &&
>>        *(uint8_t *)cmd->rx_cmd == 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(...);
>> }
> 
> 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




help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E8649B82-ACD1-4B5C-98D1-49BB67BD13ED>