On Wed, Sep 04, 2024 at 02:51:15PM -0700, Doug Anderson wrote:
On Mon, Sep 2, 2024 at 8:26 AM Johan Hovold johan+linaro@kernel.org wrote:
+static void qcom_geni_serial_drain_fifo(struct uart_port *uport) +{
struct qcom_geni_serial_port *port = to_dev_port(uport);
if (!qcom_geni_serial_main_active(uport))
return;
It seems like all callers already do the check and only ever call you if the port is active. Do you really need to re-check?
I wanted to make the helper self-contained and work in both cases. But since I ended up only using this helper only in the console code and will need to move it anyway (under the console ifdef), perhaps I can consider dropping it. But then again, it's just one register read.
@@ -308,6 +311,17 @@ static bool qcom_geni_serial_poll_bit(struct uart_port *uport, return qcom_geni_serial_poll_bitfield(uport, offset, field, set ? field : 0); }
+static void qcom_geni_serial_drain_fifo(struct uart_port *uport) +{
struct qcom_geni_serial_port *port = to_dev_port(uport);
if (!qcom_geni_serial_main_active(uport))
return;
qcom_geni_serial_poll_bitfield(uport, SE_GENI_M_GP_LENGTH, GP_LENGTH,
port->tx_queued);
nit: indent "port->tx_queued" to match open parenthesis?
No, I don't use open-parenthesis alignment unless that's the (consistent) style of the code I'm changing (e.g. to avoid unnecessary realignments when symbol names change and to make a point about checkpatch --pedantic warnings not being part of the coding style).
...also: as the kernel test robot reported, w/ certain CONFIGs this is defined / not used.
Yes, I need to move the helper under the console ifdef. I was just waiting to see if there was any further feedback before respinning.
Aside from the nit / robot issue, this solution looks reasonable to me. It's been long enough that I've already paged out much of the past digging I did into this driver, but this seems like it should work. Feel free to add my Reviewed-by when the robot issue is fixed.
Thanks for reviewing.
Johan