From b0c5e8b9274188bf3bb238e013e324542ee747c4 Mon Sep 17 00:00:00 2001 From: Jonas Gorski Date: Sat, 13 Jan 2018 13:18:10 +0100 Subject: brcm63xx: add kernel 4.9 support Add support for kernel 4.9 based on the more upstream comformant partition defintions. Increases compressed kernel size by ~95k compared to 4.4. Signed-off-by: Jonas Gorski --- ...-make-spi-subsystem-aware-of-message-size.patch | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 target/linux/brcm63xx/patches-4.9/001-4.12-01-spi-bcm63xx-make-spi-subsystem-aware-of-message-size.patch (limited to 'target/linux/brcm63xx/patches-4.9/001-4.12-01-spi-bcm63xx-make-spi-subsystem-aware-of-message-size.patch') diff --git a/target/linux/brcm63xx/patches-4.9/001-4.12-01-spi-bcm63xx-make-spi-subsystem-aware-of-message-size.patch b/target/linux/brcm63xx/patches-4.9/001-4.12-01-spi-bcm63xx-make-spi-subsystem-aware-of-message-size.patch new file mode 100644 index 0000000000..f049af0d82 --- /dev/null +++ b/target/linux/brcm63xx/patches-4.9/001-4.12-01-spi-bcm63xx-make-spi-subsystem-aware-of-message-size.patch @@ -0,0 +1,42 @@ +From 3fcc36962c32ad0af2d5904103e2b2b824b6b1aa Mon Sep 17 00:00:00 2001 +From: Jonas Gorski +Date: Sat, 4 Feb 2017 12:32:59 +0100 +Subject: [PATCH 2/8] spi/bcm63xx: make spi subsystem aware of message size + limits + +The bcm63xx LS SPI controller does not allow manual control of the CS +lines and will toggle it automatically before after sending data, so we +are limited to messages that fit in the FIFO buffer. Since the CS lines +aren't available as GPIOs either, we will need to make slave drivers +aware of this limitation and handle it accordingly. + +Signed-off-by: Jonas Gorski +--- + drivers/spi/spi-bcm63xx.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +--- a/drivers/spi/spi-bcm63xx.c ++++ b/drivers/spi/spi-bcm63xx.c +@@ -428,6 +428,13 @@ static irqreturn_t bcm63xx_spi_interrupt + return IRQ_HANDLED; + } + ++static size_t bcm63xx_spi_max_length(struct spi_device *spi) ++{ ++ struct bcm63xx_spi *bs = spi_master_get_devdata(spi->master); ++ ++ return bs->fifo_size; ++} ++ + static const unsigned long bcm6348_spi_reg_offsets[] = { + [SPI_CMD] = SPI_6348_CMD, + [SPI_INT_STATUS] = SPI_6348_INT_STATUS, +@@ -541,6 +548,8 @@ static int bcm63xx_spi_probe(struct plat + master->transfer_one_message = bcm63xx_spi_transfer_one; + master->mode_bits = MODEBITS; + master->bits_per_word_mask = SPI_BPW_MASK(8); ++ master->max_transfer_size = bcm63xx_spi_max_length; ++ master->max_message_size = bcm63xx_spi_max_length; + master->auto_runtime_pm = true; + bs->msg_type_shift = bs->reg_offsets[SPI_MSG_TYPE_SHIFT]; + bs->msg_ctl_width = bs->reg_offsets[SPI_MSG_CTL_WIDTH]; -- cgit v1.2.3