From: kbuild test robot <lkp@intel.com>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: kbuild-all@01.org, linux-gpio@vger.kernel.org
Subject: [gpio:gpio-descriptors-spi 14/14] drivers/spi/spi-pl022.c:451:27: error: no member named 'cur_cs' in 'struct pl022'; did you mean 'cur_msg'?
Date: Wed, 26 Jun 2019 08:42:56 +0800 [thread overview]
Message-ID: <201906260851.tWmwom4U%lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 25732 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git gpio-descriptors-spi
head: d52781e8bf3600398a5da184d4df22072a8e5e57
commit: d52781e8bf3600398a5da184d4df22072a8e5e57 [14/14] slask
config: arm64-defconfig (attached as .config)
compiler: clang version 9.0.0 (git://gitmirror/llvm_project fee855b5bc1abe1f3f89e977ce4c81cf9bdbc2e4)
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout d52781e8bf3600398a5da184d4df22072a8e5e57
# save the attached .config to linux build tree
make.cross ARCH=arm64
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
>> drivers/spi/spi-pl022.c:451:27: error: no member named 'cur_cs' in 'struct pl022'; did you mean 'cur_msg'?
tmp &= ~(1UL << (pl022->cur_cs));
^~~~~~
cur_msg
drivers/spi/spi-pl022.c:379:22: note: 'cur_msg' declared here
struct spi_message *cur_msg;
^
>> drivers/spi/spi-pl022.c:451:16: error: invalid operands to binary expression ('unsigned long' and 'struct spi_message *')
tmp &= ~(1UL << (pl022->cur_cs));
~~~ ^ ~~~~~~~~~~~~~~~
drivers/spi/spi-pl022.c:453:26: error: no member named 'cur_cs' in 'struct pl022'; did you mean 'cur_msg'?
tmp |= (1UL << (pl022->cur_cs));
^~~~~~
cur_msg
drivers/spi/spi-pl022.c:379:22: note: 'cur_msg' declared here
struct spi_message *cur_msg;
^
drivers/spi/spi-pl022.c:453:15: error: invalid operands to binary expression ('unsigned long' and 'struct spi_message *')
tmp |= (1UL << (pl022->cur_cs));
~~~ ^ ~~~~~~~~~~~~~~~
>> drivers/spi/spi-pl022.c:502:4: error: implicit declaration of function 'pl022_cs_control' [-Werror,-Wimplicit-function-declaration]
pl022_cs_control(pl022, SSP_CHIP_DESELECT);
^
drivers/spi/spi-pl022.c:843:3: error: implicit declaration of function 'pl022_cs_control' [-Werror,-Wimplicit-function-declaration]
pl022_cs_control(pl022, SSP_CHIP_DESELECT);
^
drivers/spi/spi-pl022.c:1314:4: error: implicit declaration of function 'pl022_cs_control' [-Werror,-Wimplicit-function-declaration]
pl022_cs_control(pl022, SSP_CHIP_DESELECT);
^
drivers/spi/spi-pl022.c:1397:4: error: implicit declaration of function 'pl022_cs_control' [-Werror,-Wimplicit-function-declaration]
pl022_cs_control(pl022, SSP_CHIP_SELECT);
^
drivers/spi/spi-pl022.c:1436:3: error: implicit declaration of function 'pl022_cs_control' [-Werror,-Wimplicit-function-declaration]
pl022_cs_control(pl022, SSP_CHIP_SELECT);
^
drivers/spi/spi-pl022.c:1510:5: error: implicit declaration of function 'pl022_cs_control' [-Werror,-Wimplicit-function-declaration]
pl022_cs_control(pl022, SSP_CHIP_SELECT);
^
drivers/spi/spi-pl022.c:1515:5: error: implicit declaration of function 'pl022_cs_control' [-Werror,-Wimplicit-function-declaration]
pl022_cs_control(pl022, SSP_CHIP_SELECT);
^
drivers/spi/spi-pl022.c:1551:4: error: implicit declaration of function 'pl022_cs_control' [-Werror,-Wimplicit-function-declaration]
pl022_cs_control(pl022, SSP_CHIP_DESELECT);
^
>> drivers/spi/spi-pl022.c:1580:25: error: no member named 'chipselects' in 'struct pl022'
pl022->cur_cs = pl022->chipselects[msg->spi->chip_select];
~~~~~ ^
drivers/spi/spi-pl022.c:1580:9: error: no member named 'cur_cs' in 'struct pl022'; did you mean 'cur_msg'?
pl022->cur_cs = pl022->chipselects[msg->spi->chip_select];
^~~~~~
cur_msg
drivers/spi/spi-pl022.c:379:22: note: 'cur_msg' declared here
struct spi_message *cur_msg;
^
>> drivers/spi/spi-pl022.c:1861:4: error: implicit declaration of function 'of_property_read_u32' [-Werror,-Wimplicit-function-declaration]
of_property_read_u32(np, "pl022,interface",
^
>> drivers/spi/spi-pl022.c:1923:7: error: implicit declaration of function 'gpio_is_valid' [-Werror,-Wimplicit-function-declaration]
if (!gpio_is_valid(pl022->chipselects[spi->chip_select]))
^
drivers/spi/spi-pl022.c:1923:7: note: did you mean 'uuid_is_valid'?
include/linux/uuid.h:79:46: note: 'uuid_is_valid' declared here
bool __attribute__((__warn_unused_result__)) uuid_is_valid(const char *uuid);
^
drivers/spi/spi-pl022.c:1923:28: error: no member named 'chipselects' in 'struct pl022'
if (!gpio_is_valid(pl022->chipselects[spi->chip_select]))
~~~~~ ^
drivers/spi/spi-pl022.c:2086:2: error: implicit declaration of function 'of_property_read_u32' [-Werror,-Wimplicit-function-declaration]
of_property_read_u32(np, "num-cs", &tmp);
^
>> drivers/spi/spi-pl022.c:2090:11: error: implicit declaration of function 'of_property_read_bool' [-Werror,-Wimplicit-function-declaration]
pd->rt = of_property_read_bool(np, "pl022,rt");
^
drivers/spi/spi-pl022.c:2090:11: note: did you mean 'of_property_read_u32'?
drivers/spi/spi-pl022.c:1861:4: note: 'of_property_read_u32' declared here
of_property_read_u32(np, "pl022,interface",
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
vim +451 drivers/spi/spi-pl022.c
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 338
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 339 /**
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 340 * struct pl022 - This is the private SSP driver data structure
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 341 * @adev: AMBA device model hookup
12e8b325f drivers/spi/amba-pl022.c Linus Walleij 2011-02-08 342 * @vendor: vendor data for the IP block
12e8b325f drivers/spi/amba-pl022.c Linus Walleij 2011-02-08 343 * @phybase: the physical memory where the SSP device resides
12e8b325f drivers/spi/amba-pl022.c Linus Walleij 2011-02-08 344 * @virtbase: the virtual memory where the SSP is mapped
12e8b325f drivers/spi/amba-pl022.c Linus Walleij 2011-02-08 345 * @clk: outgoing clock "SPICLK" for the SPI bus
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 346 * @master: SPI framework hookup
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 347 * @master_info: controller-specific data from machine setup
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 348 * @pump_transfers: Tasklet used in Interrupt Transfer mode
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 349 * @cur_msg: Pointer to current spi_message being processed
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 350 * @cur_transfer: Pointer to current spi_transfer
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 351 * @cur_chip: pointer to current clients chip(assigned from controller_state)
8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 352 * @next_msg_cs_active: the next message in the queue has been examined
8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 353 * and it was found that it uses the same chip select as the previous
8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 354 * message, so we left it active after the previous transfer, and it's
8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 355 * active already.
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 356 * @tx: current position in TX buffer to be read
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 357 * @tx_end: end position in TX buffer to be read
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 358 * @rx: current position in RX buffer to be written
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 359 * @rx_end: end position in RX buffer to be written
12e8b325f drivers/spi/amba-pl022.c Linus Walleij 2011-02-08 360 * @read: the type of read currently going on
12e8b325f drivers/spi/amba-pl022.c Linus Walleij 2011-02-08 361 * @write: the type of write currently going on
12e8b325f drivers/spi/amba-pl022.c Linus Walleij 2011-02-08 362 * @exp_fifo_level: expected FIFO level
12e8b325f drivers/spi/amba-pl022.c Linus Walleij 2011-02-08 363 * @dma_rx_channel: optional channel for RX DMA
12e8b325f drivers/spi/amba-pl022.c Linus Walleij 2011-02-08 364 * @dma_tx_channel: optional channel for TX DMA
12e8b325f drivers/spi/amba-pl022.c Linus Walleij 2011-02-08 365 * @sgt_rx: scattertable for the RX transfer
12e8b325f drivers/spi/amba-pl022.c Linus Walleij 2011-02-08 366 * @sgt_tx: scattertable for the TX transfer
12e8b325f drivers/spi/amba-pl022.c Linus Walleij 2011-02-08 367 * @dummypage: a dummy page used for driving data on the bus with DMA
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 368 */
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 369 struct pl022 {
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 370 struct amba_device *adev;
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 371 struct vendor_data *vendor;
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 372 resource_size_t phybase;
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 373 void __iomem *virtbase;
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 374 struct clk *clk;
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 375 struct spi_master *master;
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 376 struct pl022_ssp_controller *master_info;
ffbbdd213 drivers/spi/spi-pl022.c Linus Walleij 2012-02-22 377 /* Message per-transfer pump */
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 378 struct tasklet_struct pump_transfers;
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 @379 struct spi_message *cur_msg;
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 380 struct spi_transfer *cur_transfer;
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 381 struct chip_data *cur_chip;
8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 382 bool next_msg_cs_active;
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 383 void *tx;
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 384 void *tx_end;
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 385 void *rx;
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 386 void *rx_end;
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 387 enum ssp_reading read;
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 388 enum ssp_writing write;
fc05475f8 drivers/spi/amba-pl022.c Linus Walleij 2010-01-22 389 u32 exp_fifo_level;
083be3f05 drivers/spi/spi-pl022.c Linus Walleij 2011-06-16 390 enum ssp_rx_level_trig rx_lev_trig;
083be3f05 drivers/spi/spi-pl022.c Linus Walleij 2011-06-16 391 enum ssp_tx_level_trig tx_lev_trig;
b1b6b9aa6 drivers/spi/amba-pl022.c Linus Walleij 2010-09-29 392 /* DMA settings */
b1b6b9aa6 drivers/spi/amba-pl022.c Linus Walleij 2010-09-29 393 #ifdef CONFIG_DMA_ENGINE
b1b6b9aa6 drivers/spi/amba-pl022.c Linus Walleij 2010-09-29 394 struct dma_chan *dma_rx_channel;
b1b6b9aa6 drivers/spi/amba-pl022.c Linus Walleij 2010-09-29 395 struct dma_chan *dma_tx_channel;
b1b6b9aa6 drivers/spi/amba-pl022.c Linus Walleij 2010-09-29 396 struct sg_table sgt_rx;
b1b6b9aa6 drivers/spi/amba-pl022.c Linus Walleij 2010-09-29 397 struct sg_table sgt_tx;
b1b6b9aa6 drivers/spi/amba-pl022.c Linus Walleij 2010-09-29 398 char *dummypage;
ffbbdd213 drivers/spi/spi-pl022.c Linus Walleij 2012-02-22 399 bool dma_running;
b1b6b9aa6 drivers/spi/amba-pl022.c Linus Walleij 2010-09-29 400 #endif
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 401 };
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 402
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 403 /**
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 404 * struct chip_data - To maintain runtime state of SSP for each client chip
556f4aeb7 drivers/spi/amba-pl022.c Linus Walleij 2010-05-05 405 * @cr0: Value of control register CR0 of SSP - on later ST variants this
556f4aeb7 drivers/spi/amba-pl022.c Linus Walleij 2010-05-05 406 * register is 32 bits wide rather than just 16
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 407 * @cr1: Value of control register CR1 of SSP
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 408 * @dmacr: Value of DMA control Register of SSP
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 409 * @cpsr: Value of Clock prescale register
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 410 * @n_bytes: how many bytes(power of 2) reqd for a given data width of client
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 411 * @enable_dma: Whether to enable DMA or not
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 412 * @read: function ptr to be used to read when doing xfer for this chip
12e8b325f drivers/spi/amba-pl022.c Linus Walleij 2011-02-08 413 * @write: function ptr to be used to write when doing xfer for this chip
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 414 * @xfer_type: polling/interrupt/DMA
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 415 *
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 416 * Runtime state of the SSP controller, maintained per chip,
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 417 * This would be set according to the current message that would be served
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 418 */
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 419 struct chip_data {
556f4aeb7 drivers/spi/amba-pl022.c Linus Walleij 2010-05-05 420 u32 cr0;
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 421 u16 cr1;
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 422 u16 dmacr;
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 423 u16 cpsr;
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 424 u8 n_bytes;
b1b6b9aa6 drivers/spi/amba-pl022.c Linus Walleij 2010-09-29 425 bool enable_dma;
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 426 enum ssp_reading read;
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 427 enum ssp_writing write;
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 428 int xfer_type;
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 429 };
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 430
d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 431 static void pl022_set_cs(struct spi_device *spi, bool enable)
db4fa45ed drivers/spi/spi-pl022.c Anders Berg 2014-09-17 432 {
d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 433 struct pl022 *pl022 = spi_controller_get_devdata(spi->controller);
db4fa45ed drivers/spi/spi-pl022.c Anders Berg 2014-09-17 434 u32 tmp;
db4fa45ed drivers/spi/spi-pl022.c Anders Berg 2014-09-17 435
d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 436 /*
d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 437 * This callback will ONLY be called of no GPIO descriptors were found
d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 438 * for the device, so we know we are dealing exclusively with variants
d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 439 * that have internal CS control here, but just to be sure: extra check
d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 440 * for now.
d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 441 */
d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 442 if (!pl022->vendor->internal_cs_ctrl) {
d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 443 dev_err(&spi->dev,
d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 444 "called internal CS control on unsupported device\n");
d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 445 return;
d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 446 }
d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 447
d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 448 /* We draw a line low here to imply we enable it */
db4fa45ed drivers/spi/spi-pl022.c Anders Berg 2014-09-17 449 tmp = readw(SSP_CSR(pl022->virtbase));
d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 450 if (enable)
db4fa45ed drivers/spi/spi-pl022.c Anders Berg 2014-09-17 @451 tmp &= ~BIT(pl022->cur_cs);
db4fa45ed drivers/spi/spi-pl022.c Anders Berg 2014-09-17 452 else
db4fa45ed drivers/spi/spi-pl022.c Anders Berg 2014-09-17 453 tmp |= BIT(pl022->cur_cs);
db4fa45ed drivers/spi/spi-pl022.c Anders Berg 2014-09-17 454 writew(tmp, SSP_CSR(pl022->virtbase));
db4fa45ed drivers/spi/spi-pl022.c Anders Berg 2014-09-17 455 }
db4fa45ed drivers/spi/spi-pl022.c Anders Berg 2014-09-17 456
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 457 /**
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 458 * giveback - current spi_message is over, schedule next message and call
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 459 * callback of this message. Assumes that caller already
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 460 * set message->status; dma and pio irqs are blocked
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 461 * @pl022: SSP driver private data structure
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 462 */
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 463 static void giveback(struct pl022 *pl022)
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 464 {
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 465 struct spi_transfer *last_transfer;
8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 466 pl022->next_msg_cs_active = false;
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 467
23e2c2aa4 drivers/spi/spi-pl022.c Axel Lin 2014-02-12 468 last_transfer = list_last_entry(&pl022->cur_msg->transfers,
23e2c2aa4 drivers/spi/spi-pl022.c Axel Lin 2014-02-12 469 struct spi_transfer, transfer_list);
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 470
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 471 /* Delay if requested before any change in chip select */
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 472 if (last_transfer->delay_usecs)
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 473 /*
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 474 * FIXME: This runs in interrupt context.
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 475 * Is this really smart?
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 476 */
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 477 udelay(last_transfer->delay_usecs);
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 478
8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 479 if (!last_transfer->cs_change) {
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 480 struct spi_message *next_msg;
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 481
8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 482 /*
8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 483 * cs_change was not set. We can keep the chip select
8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 484 * enabled if there is message in the queue and it is
8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 485 * for the same spi device.
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 486 *
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 487 * We cannot postpone this until pump_messages, because
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 488 * after calling msg->complete (below) the driver that
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 489 * sent the current message could be unloaded, which
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 490 * could invalidate the cs_control() callback...
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 491 */
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 492 /* get a pointer to the next message, if any */
ffbbdd213 drivers/spi/spi-pl022.c Linus Walleij 2012-02-22 493 next_msg = spi_get_next_queued_message(pl022->master);
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 494
8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 495 /*
8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 496 * see if the next and current messages point
8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 497 * to the same spi device.
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 498 */
8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 499 if (next_msg && next_msg->spi != pl022->cur_msg->spi)
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 500 next_msg = NULL;
8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 501 if (!next_msg || pl022->cur_msg->state == STATE_ERROR)
f6f46de10 drivers/spi/spi-pl022.c Roland Stigge 2012-08-22 @502 pl022_cs_control(pl022, SSP_CHIP_DESELECT);
8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 503 else
8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 504 pl022->next_msg_cs_active = true;
ffbbdd213 drivers/spi/spi-pl022.c Linus Walleij 2012-02-22 505
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 506 }
8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 507
8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 508 pl022->cur_msg = NULL;
8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 509 pl022->cur_transfer = NULL;
8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 510 pl022->cur_chip = NULL;
fd316941c drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2012-06-12 511
fd316941c drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2012-06-12 512 /* disable the SPI/SSP operation */
fd316941c drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2012-06-12 513 writew((readw(SSP_CR1(pl022->virtbase)) &
fd316941c drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2012-06-12 514 (~SSP_CR1_MASK_SSE)), SSP_CR1(pl022->virtbase));
fd316941c drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2012-06-12 515
cd6fa8d2c drivers/spi/spi-pl022.c Alexander Sverdlin 2015-02-27 516 spi_finalize_current_message(pl022->master);
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 517 }
b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 518
:::::: The code at line 451 was first introduced by commit
:::::: db4fa45ed3182d8206af241811dfc99369ffa849 spi: pl022: Add support for chip select extension
:::::: TO: Anders Berg <anders.berg@avagotech.com>
:::::: CC: Mark Brown <broonie@kernel.org>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 44465 bytes --]
reply other threads:[~2019-06-26 0:43 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201906260851.tWmwom4U%lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@01.org \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.