Hi Hugo, kernel test robot noticed the following build errors:
[auto build test ERROR on 7c1a9408ce5f34ded5a85db81cf80e0975901685] url: https://github.com/intel-lab-lkp/linux/commits/Hugo-Villeneuve/drm-rcar-du-rzg2l_mipi_dsi-Implement-host-transfers/20250521-011613 base: 7c1a9408ce5f34ded5a85db81cf80e0975901685 patch link: https://lore.kernel.org/r/20250520171034.3488482-2-hugo%40hugovil.com patch subject: [PATCH 1/2] drm: rcar-du: rzg2l_mipi_dsi: Implement host transfers config: m68k-allmodconfig (https://download.01.org/0day-ci/archive/20250522/202505221231.a6g8hqgd-...@intel.com/config) compiler: m68k-linux-gcc (GCC) 14.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250522/202505221231.a6g8hqgd-...@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <l...@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202505221231.a6g8hqgd-...@intel.com/ All errors (new ones prefixed by >>): drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c: In function 'rzg2l_mipi_dsi_read_response': >> drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c:684:20: error: implicit >> declaration of function 'FIELD_GET' [-Wimplicit-function-declaration] 684 | datatype = FIELD_GET(RXRSS0R_DT, result); | ^~~~~~~~~ drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c: In function 'rzg2l_mipi_dsi_host_transfer': >> drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c:742:26: error: implicit >> declaration of function 'FIELD_PREP' [-Wimplicit-function-declaration] 742 | value |= FIELD_PREP(SQCH0DSC0AR_BTA, SQCH0DSC0AR_BTA_NON_READ); | ^~~~~~~~~~ vim +/FIELD_GET +684 drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c 661 662 static ssize_t rzg2l_mipi_dsi_read_response(struct rzg2l_mipi_dsi *dsi, 663 const struct mipi_dsi_msg *msg) 664 { 665 u8 *msg_rx = msg->rx_buf; 666 u16 size; 667 u8 datatype; 668 u32 result; 669 670 result = rzg2l_mipi_dsi_link_read(dsi, RXRSS0R); 671 if (result & RXRSS0R_RXPKTDFAIL) { 672 dev_err(dsi->dev, "packet rx data did not save correctly\n"); 673 return -EPROTO; 674 } 675 676 if (result & RXRSS0R_RXFAIL) { 677 dev_err(dsi->dev, "packet rx failure\n"); 678 return -EPROTO; 679 } 680 681 if (!(result & RXRSS0R_RXSUC)) 682 return -EPROTO; 683 > 684 datatype = FIELD_GET(RXRSS0R_DT, result); 685 686 switch (datatype) { 687 case 0: 688 dev_dbg(dsi->dev, "ACK\n"); 689 return 0; 690 case MIPI_DSI_RX_END_OF_TRANSMISSION: 691 dev_dbg(dsi->dev, "EoTp\n"); 692 return 0; 693 case MIPI_DSI_RX_ACKNOWLEDGE_AND_ERROR_REPORT: 694 dev_dbg(dsi->dev, "Acknowledge and error report: $%02x%02x\n", 695 (u8)FIELD_GET(RXRSS0R_DATA1, result), 696 (u8)FIELD_GET(RXRSS0R_DATA0, result)); 697 return 0; 698 case MIPI_DSI_RX_DCS_SHORT_READ_RESPONSE_1BYTE: 699 case MIPI_DSI_RX_GENERIC_SHORT_READ_RESPONSE_1BYTE: 700 msg_rx[0] = FIELD_GET(RXRSS0R_DATA0, result); 701 return 1; 702 case MIPI_DSI_RX_DCS_SHORT_READ_RESPONSE_2BYTE: 703 case MIPI_DSI_RX_GENERIC_SHORT_READ_RESPONSE_2BYTE: 704 msg_rx[0] = FIELD_GET(RXRSS0R_DATA0, result); 705 msg_rx[1] = FIELD_GET(RXRSS0R_DATA1, result); 706 return 2; 707 case MIPI_DSI_RX_GENERIC_LONG_READ_RESPONSE: 708 case MIPI_DSI_RX_DCS_LONG_READ_RESPONSE: 709 size = FIELD_GET(RXRSS0R_WC, result); 710 711 if (size > msg->rx_len) { 712 dev_err(dsi->dev, "rx buffer too small"); 713 return -ENOSPC; 714 } 715 716 memcpy(msg_rx, dsi->dcs_buf_virt, size); 717 return size; 718 default: 719 dev_err(dsi->dev, "unhandled response type: %02x\n", datatype); 720 return -EPROTO; 721 } 722 } 723 724 static ssize_t rzg2l_mipi_dsi_host_transfer(struct mipi_dsi_host *host, 725 const struct mipi_dsi_msg *msg) 726 { 727 struct rzg2l_mipi_dsi *dsi = host_to_rzg2l_mipi_dsi(host); 728 struct mipi_dsi_packet packet; 729 bool need_bta; 730 u32 value; 731 int ret; 732 733 ret = mipi_dsi_create_packet(&packet, msg); 734 if (ret < 0) 735 return ret; 736 737 /* Terminate operation after this descriptor is finished */ 738 value = SQCH0DSC0AR_NXACT_TERM; 739 740 if (msg->flags & MIPI_DSI_MSG_REQ_ACK) { 741 need_bta = true; /* Message with explicitly requested ACK */ > 742 value |= FIELD_PREP(SQCH0DSC0AR_BTA, > SQCH0DSC0AR_BTA_NON_READ); 743 } else if (msg->rx_buf && msg->rx_len > 0) { 744 need_bta = true; /* Read request */ 745 value |= FIELD_PREP(SQCH0DSC0AR_BTA, SQCH0DSC0AR_BTA_READ); 746 } else { 747 need_bta = false; 748 value |= FIELD_PREP(SQCH0DSC0AR_BTA, SQCH0DSC0AR_BTA_NONE); 749 } 750 751 /* Set transmission speed */ 752 if (msg->flags & MIPI_DSI_MSG_USE_LPM) 753 value |= SQCH0DSC0AR_SPD_LOW; 754 else 755 value |= SQCH0DSC0AR_SPD_HIGH; 756 757 /* Write TX packet header */ 758 value |= FIELD_PREP(SQCH0DSC0AR_DT, packet.header[0]) | 759 FIELD_PREP(SQCH0DSC0AR_DATA0, packet.header[1]) | 760 FIELD_PREP(SQCH0DSC0AR_DATA1, packet.header[2]); 761 762 if (mipi_dsi_packet_format_is_long(msg->type)) { 763 value |= SQCH0DSC0AR_FMT_LONG; 764 765 if (packet.payload_length > RZG2L_DCS_BUF_SIZE) { 766 dev_err(dsi->dev, "Packet Tx payload size (%d) too large", 767 (unsigned int)packet.payload_length); 768 return -ENOSPC; 769 } 770 771 /* Copy TX packet payload data to memory space */ 772 memcpy(dsi->dcs_buf_virt, packet.payload, packet.payload_length); 773 } else { 774 value |= SQCH0DSC0AR_FMT_SHORT; 775 } 776 777 rzg2l_mipi_dsi_link_write(dsi, SQCH0DSC0AR, value); 778 779 /* 780 * Write: specify payload data source location, only used for 781 * long packet. 782 * Read: specify payload data storage location of response 783 * packet. Note: a read packet is always a short packet. 784 * If the response packet is a short packet or a long packet 785 * with WC = 0 (no payload), DTSEL is meaningless. 786 */ 787 rzg2l_mipi_dsi_link_write(dsi, SQCH0DSC0BR, SQCH0DSC0BR_DTSEL_MEM_SPACE); 788 789 /* 790 * Set SQCHxSR.AACTFIN bit when descriptor actions are finished. 791 * Read: set Rx result save slot number to 0 (ACTCODE). 792 */ 793 rzg2l_mipi_dsi_link_write(dsi, SQCH0DSC0CR, SQCH0DSC0CR_FINACT); 794 795 /* Set rx/tx payload data address, only relevant for long packet. */ 796 rzg2l_mipi_dsi_link_write(dsi, SQCH0DSC0DR, (u32)dsi->dcs_buf_phys); 797 798 /* Start sequence 0 operation */ 799 value = rzg2l_mipi_dsi_link_read(dsi, SQCH0SET0R); 800 value |= SQCH0SET0R_START; 801 rzg2l_mipi_dsi_link_write(dsi, SQCH0SET0R, value); 802 803 /* Wait for operation to finish */ 804 ret = read_poll_timeout(rzg2l_mipi_dsi_link_read, 805 value, value & SQCH0SR_ADESFIN, 806 2000, 20000, false, dsi, SQCH0SR); 807 if (ret == 0) { 808 /* Success: clear status bit */ 809 rzg2l_mipi_dsi_link_write(dsi, SQCH0SCR, SQCH0SCR_ADESFIN); 810 811 if (need_bta) 812 ret = rzg2l_mipi_dsi_read_response(dsi, msg); 813 else 814 ret = packet.payload_length; 815 } 816 817 return ret; 818 } 819 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki