On Thu, Nov 23, 2023 at 03:49:14PM +0100, Neil Armstrong wrote: > Add Soundwire Slave driver for the WCD9390/WCD9395 Audio Codec. > The WCD9390/WCD9395 Soundwire Slaves will be used by the Please avoid using outdated terminology, "device" is probably a good alternative here. There are some usages in APIs that need to be updated but still, good to avoid where possible. > +static struct wcd939x_sdw_ch_info wcd939x_sdw_tx_ch_info[] = { > + WCD_SDW_CH(WCD939X_ADC1, WCD939X_ADC_1_4_PORT, BIT(0)), > + WCD_SDW_CH(WCD939X_ADC2, WCD939X_ADC_1_4_PORT, BIT(1)), > + WCD_SDW_CH(WCD939X_ADC3, WCD939X_ADC_1_4_PORT, BIT(2)), > + WCD_SDW_CH(WCD939X_ADC4, WCD939X_ADC_1_4_PORT, BIT(3)), > + // TOFIX support ADC3/4 & DMIC0/1 on port 2 > + //WCD_SDW_CH(WCD939X_ADC3, WCD939X_ADC_DMIC_1_2_PORT, BIT(0)), > + //WCD_SDW_CH(WCD939X_ADC4, WCD939X_ADC_DMIC_1_2_PORT, BIT(1)), > + //WCD_SDW_CH(WCD939X_DMIC0, WCD939X_ADC_DMIC_1_2_PORT, BIT(2)), > + //WCD_SDW_CH(WCD939X_DMIC1, WCD939X_ADC_DMIC_1_2_PORT, BIT(3)), Why are these commented out? > +static int wcd9390_interrupt_callback(struct sdw_slave *slave, > + struct sdw_slave_intr_status *status) > +{ > + struct wcd939x_sdw_priv *wcd = dev_get_drvdata(&slave->dev); > + struct irq_domain *slave_irq = wcd->slave_irq; > + u32 sts1, sts2, sts3; > + > + do { > + handle_nested_irq(irq_find_mapping(slave_irq, 0)); > + regmap_read(wcd->regmap, WCD939X_DIGITAL_INTR_STATUS_0, &sts1); > + regmap_read(wcd->regmap, WCD939X_DIGITAL_INTR_STATUS_1, &sts2); > + regmap_read(wcd->regmap, WCD939X_DIGITAL_INTR_STATUS_2, &sts3); > + > + } while (sts1 || sts2 || sts3); > + > + return IRQ_HANDLED; > +} We do this in the other Qualcomm drivers but it doesn't seem ideal to just ignore the interrupts. > +static int wcd939x_sdw_component_bind(struct device *dev, struct device *master, > + void *data) > +{ > + return 0; > +} > + > +static void wcd939x_sdw_component_unbind(struct device *dev, > + struct device *master, void *data) > +{ > +} > + > +static const struct component_ops wcd939x_sdw_component_ops = { > + .bind = wcd939x_sdw_component_bind, > + .unbind = wcd939x_sdw_component_unbind, > +}; Do these need to be provided if they can legitimately be empty?
Attachment:
signature.asc
Description: PGP signature