lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20110222200427.GB1966@bicker>
Date:	Tue, 22 Feb 2011 23:04:27 +0300
From:	Dan Carpenter <error27@...il.com>
To:	"Anoop P.A" <anoop.pa@...il.com>
Cc:	"gregkh @ suse . de" <gregkh@...e.de>,
	"dbrownell @ users . sourceforge . net" 
	<dbrownell@...rs.sourceforge.net>,
	"stern @ rowland . harvard . edu" <stern@...land.harvard.edu>,
	"pkondeti @ codeaurora . org" <pkondeti@...eaurora.org>,
	"jacob . jun . pan @ intel . com" <jacob.jun.pan@...el.com>,
	"linux-usb @ vger . kernel . org" <linux-usb@...r.kernel.org>,
	"alek . du @ intel . com" <alek.du@...el.com>,
	"linux-kernel @ vger . kernel . org" <linux-kernel@...r.kernel.org>,
	"gadiyar @ ti . com" <gadiyar@...com>,
	"ralf @ linux-mips . org" <ralf@...ux-mips.org>,
	"linux-mips @ linux-mips . org" <linux-mips@...ux-mips.org>,
	Greg KH <greg@...ah.com>
Subject: Re: [PATCH v5] EHCI bus glue for on-chip PMC MSP USB controller

On Tue, Feb 22, 2011 at 09:05:33PM +0530, Anoop P.A wrote:
> From: Anoop <paanoop1@...noop1-desktop.(none)>
> 
> This patch add bus glue for USB controller commonly found in PMC-Sierra MSP71xx family of SoC's.
> 
> 
> Signed-off-by: Anoop P A <anoop.pa@...il.com>
> ---
> Changes.
> ehci-pmcmsp.c is based on latest ehci-pci.c.Addressed some stylistic issue pointed by Greg.
> Addressed comments from Matthieu CASTET.

Could you spell that out more completely next time?

> +config USB_EHCI_HCD_PMC_MSP
> +	tristate "EHCI support for on-chip PMC MSP USB controller"

Better to say "EHCI support for on-chip PMC-Sierra MSP71xx USB controllers"

> +	depends on USB_EHCI_HCD && MSP_HAS_USB
> +	default y

New features always default to No.

> +#include <msp_usb.h>

Cannot find the msp_usb.h in linux-next.  Doesn't compile.

> +static void usb_hcd_tdi_set_mode(struct ehci_hcd *ehci)
> +{
> +	u8 *base;
> +	u8 *statreg;
> +	u8 *fiforeg;
> +	u32 val;
> +	struct ehci_regs *reg_base = ehci->regs;
> +
> +	/* get register base */
> +	base = (u8 *)reg_base + USB_EHCI_REG_USB_MODE;
> +	statreg = (u8 *)reg_base + USB_EHCI_REG_USB_STATUS;
> +	fiforeg = (u8 *)reg_base + USB_EHCI_REG_USB_FIFO;
> +
> +	/* Disable controller mode stream */
> +	val = ehci_readl(ehci, (u32 *)base);

It doesn't compile so I can't test this, but I think that this will
cause a sparse warning.  "base" should have an __iomem tag.  Please
run sparse on this driver.

> +/* called after powerup, by probe or system-pm "wakeup" */
> +static int ehci_msp_reinit(struct ehci_hcd *ehci)
> +{
> +	ehci_port_power(ehci, 0);
> +
> +	return 0;

Better to make this function void.

> +}
> +
> +/* called during probe() after chip reset completes */
> +static int ehci_msp_setup(struct usb_hcd *hcd)
> +{
> +	struct ehci_hcd		*ehci = hcd_to_ehci(hcd);
> +	u32			temp;
> +	int			retval;

Needs a blank line here to separate declarations from code.

> +	ehci->big_endian_mmio = 1;
> +	ehci->big_endian_desc = 1;
> +
> +	ehci->caps = hcd->regs;
> +	ehci->regs = hcd->regs +
> +			HC_LENGTH(ehci_readl(ehci, &ehci->caps->hc_capbase));

[snip]

> +	/* data structure init */
> +	retval = ehci_init(hcd);
> +	if (retval)
> +		return retval;
> +
> +	temp = HCS_N_CC(ehci->hcs_params) * HCS_N_PCC(ehci->hcs_params);
> +	temp &= 0x0f;

companion HCs * ports per CC & 0xf?

What's the &= 0x0f for?  It's left out of the printk.

> +	if (temp && HCS_N_PORTS(ehci->hcs_params) > temp) {
> +		ehci_dbg(ehci, "bogus port configuration: "
> +			"cc=%d x pcc=%d < ports=%d\n",
> +			HCS_N_CC(ehci->hcs_params),
> +			HCS_N_PCC(ehci->hcs_params),
> +			HCS_N_PORTS(ehci->hcs_params));
> +	}

[snip]

> +/*-------------------------------------------------------------------------*/

No need for these blank comments.

> +
> +static void msp_start_hc(struct platform_device *dev)
> +{
> +}
> +
> +static void msp_stop_hc(struct platform_device *dev)
> +{
> +}
> +

I don't understand the point of these empty functions.

> +static int ehci_msp_suspend(struct device *dev)
> +{
> +	struct usb_hcd *hcd = dev_get_drvdata(dev);
> +	struct ehci_hcd *ehci = hcd_to_ehci(hcd);
> +	unsigned long flags;
> +	int rc;
> +
> +	return 0;
> +	rc = 0;
> +
> +	if (time_before(jiffies, ehci->next_statechange))
> +		usleep(10000);

Is there still a usleep() function?  Either way, can you send us
something that compiles on linux-next?

regards,
dan carpenter


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ