Hi, On Fri, Mar 23, 2018 at 02:17:12PM +0100, Greg Kroah-Hartman wrote: > On Tue, Mar 20, 2018 at 06:22:00PM +0100, Sebastian Reichel wrote: > > General Electric Healthcare's PPD has a secondary processor from > > NXP's Kinetis K20 series. It's firmware can be updated from Linux > > using the EzPort interface. This driver implements the firmware > > updating process. > > > > Signed-off-by: Sebastian Reichel <sebastian.reichel@xxxxxxxxxxxxxxx> > > --- > > Documentation/devicetree/bindings/misc/ge-achc.txt | 19 +- > > Bindings should be in a separate patch, right? Right. > > +static int ezport_read_data(struct spi_device *spi, u32 address, > > + u8 *buffer, size_t size) > > +{ > > + struct spi_transfer xfers[2] = {}; > > You can send SPI data from the stack? I don't think so: /** * struct spi_transfer - a read/write buffer pair * @tx_buf: data to be written (dma-safe memory), or NULL * @rx_buf: data to be read (dma-safe memory), or NULL IIUIC only spi_write_then_read() may use the stack, since the function copies the provided buffer to a second, DMA capable buffer. That function is obviously not good for big buffers, though. > > + u8 *query = kmalloc(EZPORT_FAST_READ_SIZE, GFP_KERNEL); > > + int ret; > > + > > + if (!query) > > + return -ENOMEM; > > + > > + query[0] = EZPORT_CMD_FAST_READ; > > + query[1] = address >> 16; > > + query[2] = address >> 8; > > + query[3] = address >> 0; > > + query[4] = EZPORT_DUMMY; > > + > > + xfers[0].len = EZPORT_FAST_READ_SIZE; > > + xfers[0].tx_buf = query; > > + > > + xfers[1].len = size; > > + xfers[1].rx_buf = buffer; > > + > > + ret = spi_sync_transfer(spi, xfers, 2); > > + > > + kfree(query); > > + > > + return ret; > > +} > > +static DEVICE_ATTR_WO(update_fw); > > +static DEVICE_ATTR_RO(verify_fw); > > New sysfs attributes need Documentation/ABI updates please. Ok. > Also please fix up the kbuild-reported build errors. Of course. > thanks, Thanks for the review, -- Sebastian
Attachment:
signature.asc
Description: PGP signature