Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Apr 2013 16:22:49 -0700
From:      Adrian Chadd <adrian@freebsd.org>
To:        Ian Lepore <ian@freebsd.org>
Cc:        Aleksandr Rybalko <ray@freebsd.org>, Dmytro <dioptimizer@gmail.com>, freebsd-mips@freebsd.org
Subject:   Re: [PATCH] MMC/SD SPI-mode driver
Message-ID:  <CAJ-Vmonvsb77Rm_E8vk%2B-hDDq-CHVzB=DX0sYVr8-c9=5zfjvQ@mail.gmail.com>
In-Reply-To: <1365619856.41399.242.camel@revolution.hippie.lan>
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>

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

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.




Adrian


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmonvsb77Rm_E8vk%2B-hDDq-CHVzB=DX0sYVr8-c9=5zfjvQ>